Merge "Check new user restriction for profile removal"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8da8678..3c35428 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -319,7 +319,7 @@
android:configChanges="orientation|keyboardHidden|screenSize"
android:parentActivityName="Settings$WifiSettingsActivity">
<intent-filter android:priority="1">
- <action android:name="android.settings.WIFI_IF_SETTINGS" />
+ <action android:name="android.settings.WIFI_SAVED_NETWORK_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
@@ -327,7 +327,7 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
- android:value="com.android.settings.wifi.SavedAccessPointsSettings" />
+ android:value="com.android.settings.wifi.SavedAccessPointsWifiSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
@@ -1590,7 +1590,11 @@
android:icon="@drawable/ic_settings_about"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
- <intent-filter android:priority="-1">
+ <intent-filter>
+ <action android:name="android.settings.ENTERPRISE_PRIVACY_SETTINGS" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter>
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
diff --git a/res/drawable/ic_settings_24dp.xml b/res/drawable/ic_settings_24dp.xml
index 545bc2d..da34345 100644
--- a/res/drawable/ic_settings_24dp.xml
+++ b/res/drawable/ic_settings_24dp.xml
@@ -18,7 +18,8 @@
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
- android:viewportHeight="24.0">
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
<path
android:pathData="M19.4,13.0c0.0,-0.3 0.1,-0.6 0.1,-1.0s0.0,-0.7 -0.1,-1.0l2.1,-1.7c0.2,-0.2 0.2,-0.4 0.1,-0.6l-2.0,-3.5C19.5,5.1 19.3,5.0 19.0,5.1l-2.5,1.0c-0.5,-0.4 -1.1,-0.7 -1.7,-1.0l-0.4,-2.6C14.5,2.2 14.2,2.0 14.0,2.0l-4.0,0.0C9.8,2.0 9.5,2.2 9.5,2.4L9.1,5.1C8.5,5.3 8.0,5.7 7.4,6.1L5.0,5.1C4.7,5.0 4.5,5.1 4.3,5.3l-2.0,3.5C2.2,8.9 2.3,9.2 2.5,9.4L4.6,11.0c0.0,0.3 -0.1,0.6 -0.1,1.0s0.0,0.7 0.1,1.0l-2.1,1.7c-0.2,0.2 -0.2,0.4 -0.1,0.6l2.0,3.5C4.5,18.9 4.7,19.0 5.0,18.9l2.5,-1.0c0.5,0.4 1.1,0.7 1.7,1.0l0.4,2.6c0.0,0.2 0.2,0.4 0.5,0.4l4.0,0.0c0.2,0.0 0.5,-0.2 0.5,-0.4l0.4,-2.6c0.6,-0.3 1.2,-0.6 1.7,-1.0l2.5,1.0c0.2,0.1 0.5,0.0 0.6,-0.2l2.0,-3.5c0.1,-0.2 0.1,-0.5 -0.1,-0.6L19.4,13.0zM12.0,15.5c-1.9,0.0 -3.5,-1.6 -3.5,-3.5s1.6,-3.5 3.5,-3.5s3.5,1.6 3.5,3.5S13.9,15.5 12.0,15.5z"
android:fillColor="#ffffffff" />
diff --git a/res/layout/activity_list.xml b/res/layout/activity_list.xml
new file mode 100644
index 0000000..ca9e12b
--- /dev/null
+++ b/res/layout/activity_list.xml
@@ -0,0 +1,36 @@
+<?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.
+ -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <ListView
+ android:id="@android:id/list"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+
+ <TextView
+ android:id="@android:id/empty"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="@string/activity_list_empty"
+ android:visibility="gone"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
+
+</FrameLayout>
diff --git a/res/layout/preference_category_material_settings.xml b/res/layout/preference_category_material_settings.xml
new file mode 100644
index 0000000..13cefdb
--- /dev/null
+++ b/res/layout/preference_category_material_settings.xml
@@ -0,0 +1,51 @@
+<?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.
+ -->
+
+<!-- Based off frameworks/base/core/res/res/layout/preference_category_material.xml
+ except that this supports icon -->
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingTop="16dp">
+
+ <LinearLayout
+ android:id="@+id/icon_container"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="start|center_vertical"
+ android:orientation="horizontal">
+ <com.android.internal.widget.PreferenceImageView
+ android:id="@android:id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:maxWidth="18dp"
+ android:maxHeight="18dp"/>
+ </LinearLayout>
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@android:style/TextAppearance.Material.Body2"
+ android:textColor="?android:attr/textColorPrimary"
+ android:paddingStart="60dp"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"/>
+
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/preference_dropdown_material_settings.xml b/res/layout/preference_dropdown_material_settings.xml
new file mode 100644
index 0000000..ee4051d
--- /dev/null
+++ b/res/layout/preference_dropdown_material_settings.xml
@@ -0,0 +1,89 @@
+<?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.
+ -->
+
+
+<!-- Based off frameworks/base/core/res/res/layout/preference_dropdown_material.xml
+ except that icon space in this layout is always reserved -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:gravity="center_vertical"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:background="?android:attr/selectableItemBackground"
+ android:clipToPadding="false">
+
+ <Spinner
+ android:id="@+id/spinner"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:visibility="invisible" />
+
+ <LinearLayout
+ android:id="@+id/icon_container"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:minWidth="60dp"
+ android:gravity="start|center_vertical"
+ android:orientation="horizontal"
+ android:paddingEnd="12dp"
+ android:paddingTop="4dp"
+ android:paddingBottom="4dp">
+ <android.support.v7.internal.widget.PreferenceImageView
+ android:id="@android:id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:maxWidth="48dp"
+ android:maxHeight="48dp" />
+ </LinearLayout>
+
+ <RelativeLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="16dp"
+ android:paddingBottom="16dp">
+
+ <TextView android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:singleLine="true"
+ android:textAppearance="@style/Preference_TextAppearanceMaterialSubhead"
+ android:ellipsize="marquee" />
+
+ <TextView android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignLeft="@android:id/title"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="?android:attr/textColorSecondary"
+ android:maxLines="10" />
+
+ </RelativeLayout>
+
+ <!-- Preference should place its actual preference widget here. -->
+ <LinearLayout android:id="@android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="end|center_vertical"
+ android:paddingLeft="16dp"
+ android:orientation="vertical" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/preference_material_settings.xml b/res/layout/preference_material_settings.xml
index b8a00f2..ae108da 100644
--- a/res/layout/preference_material_settings.xml
+++ b/res/layout/preference_material_settings.xml
@@ -16,18 +16,19 @@
<!-- Based off frameworks/base/core/res/res/layout/preference_material.xml
except that this has the negative margin on the image removed. -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:background="?android:attr/activatedBackgroundIndicator"
+ android:background="?android:attr/selectableItemBackground"
android:clipToPadding="false">
<LinearLayout
- android:id="@id/icon_frame"
+ android:id="@+id/icon_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="60dp"
@@ -41,7 +42,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="48dp"
- android:maxHeight="48dp" />
+ android:maxHeight="48dp"/>
</LinearLayout>
<RelativeLayout
@@ -51,30 +52,33 @@
android:paddingTop="16dp"
android:paddingBottom="16dp">
- <TextView android:id="@android:id/title"
+ <TextView
+ android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceListItem"
- android:ellipsize="marquee" />
+ android:ellipsize="marquee"/>
- <TextView android:id="@android:id/summary"
+ <TextView
+ android:id="@android:id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@android:id/title"
android:layout_alignStart="@android:id/title"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:attr/textColorSecondary"
- android:maxLines="10" />
+ android:maxLines="10"/>
</RelativeLayout>
<!-- Preference should place its actual preference widget here. -->
- <LinearLayout android:id="@android:id/widget_frame"
+ <LinearLayout
+ android:id="@android:id/widget_frame"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="end|center_vertical"
android:paddingStart="16dp"
- android:orientation="vertical" />
+ android:orientation="vertical"/>
</LinearLayout>
diff --git a/res/layout/preference_volume_slider.xml b/res/layout/preference_volume_slider.xml
index c5c7818..3eb0c97 100644
--- a/res/layout/preference_volume_slider.xml
+++ b/res/layout/preference_volume_slider.xml
@@ -14,14 +14,32 @@
limitations under the License.
-->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeight"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:clickable="false" >
+ android:clickable="false"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/icon_container"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:minWidth="44dp"
+ android:gravity="start|center_vertical"
+ android:orientation="horizontal"
+ android:paddingEnd="12dp"
+ android:paddingTop="4dp"
+ android:paddingBottom="4dp">
+ <com.android.internal.widget.PreferenceImageView
+ android:id="@android:id/icon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"/>
+ </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
@@ -31,24 +49,27 @@
android:layout_marginBottom="8dip">
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
- <TextView android:id="@android:id/title"
- android:layout_width="wrap_content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
+ android:paddingStart="16dp"
android:singleLine="true"
android:textAppearance="@android:style/TextAppearance.Material.Subhead"
android:textColor="?android:attr/textColorPrimary"
android:ellipsize="marquee"
- android:fadingEdge="horizontal" />
+ android:fadingEdge="horizontal"/>
<!-- Preference should place its actual preference widget here. -->
- <LinearLayout android:id="@android:id/widget_frame"
+ <LinearLayout
+ android:id="@android:id/widget_frame"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="end|center_vertical"
android:paddingStart="16dp"
- android:orientation="vertical" />
+ android:orientation="vertical"/>
</LinearLayout>
<FrameLayout
@@ -56,32 +77,24 @@
android:layout_height="wrap_content"
android:layout_marginTop="6dp">
- <ImageView
- android:id="@android:id/icon"
- android:layout_gravity="center_vertical|start"
- android:layout_width="24dp"
- android:layout_height="24dp" />
-
- <SeekBar android:id="@*android:id/seekbar"
- android:layout_marginStart="24dp"
+ <SeekBar
+ android:id="@*android:id/seekbar"
android:layout_gravity="center_vertical"
android:layout_width="match_parent"
- android:layout_height="wrap_content" />
+ android:layout_height="wrap_content"/>
- <TextView android:id="@+id/suppression_text"
+ <TextView
+ android:id="@+id/suppression_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|start"
android:textAlignment="viewStart"
- android:layout_marginStart="24dp"
- android:paddingStart="14dp"
android:singleLine="true"
android:ellipsize="end"
android:textAppearance="@android:style/TextAppearance.Material.Body1"
- android:textColor="?android:attr/textColorSecondary" />
+ android:textColor="?android:attr/textColorSecondary"/>
</FrameLayout>
-
</LinearLayout>
-</FrameLayout>
+</LinearLayout>
diff --git a/res/layout/support_account_spinner_item.xml b/res/layout/support_account_spinner_item.xml
new file mode 100644
index 0000000..fe37a85
--- /dev/null
+++ b/res/layout/support_account_spinner_item.xml
@@ -0,0 +1,26 @@
+<?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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@android:id/text1"
+ style="?android:attr/spinnerItemStyle"
+ android:singleLine="true"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="marquee"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textAlignment="inherit"/>
diff --git a/res/layout/support_escalation_options.xml b/res/layout/support_escalation_options.xml
index 63cc85d..17e03ff 100644
--- a/res/layout/support_escalation_options.xml
+++ b/res/layout/support_escalation_options.xml
@@ -34,11 +34,25 @@
android:gravity="center_horizontal"
android:paddingTop="8dp"
android:paddingBottom="30dp"
- android:textAppearance="@style/TextAppearance.Small"
- android:textColor="?android:attr/textColorSecondary"/>
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
+ <TextView
+ android:id="@+id/account_request_prefix"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:text="@string/support_account_request_prefix"
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
+ <Spinner
+ android:id="@+id/account_spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:layout_marginStart="16dp"
+ android:gravity="center_horizontal"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginTop="30dp"
android:gravity="center_horizontal"
android:orientation="horizontal">
<LinearLayout
@@ -60,8 +74,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
- android:textAppearance="@style/TextAppearance.Small"
- android:textColor="?android:attr/textColorSecondary"/>
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
@@ -82,8 +95,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
- android:textAppearance="@style/TextAppearance.Small"
- android:textColor="?android:attr/textColorSecondary"/>
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
diff --git a/res/layout/switch_bar.xml b/res/layout/switch_bar.xml
index 8b69a1d..11d7306 100644
--- a/res/layout/switch_bar.xml
+++ b/res/layout/switch_bar.xml
@@ -43,7 +43,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
- android:background="@null"
android:theme="@style/ThemeOverlay.SwitchBar.Settings" />
</merge>
diff --git a/res/menu/search_options_menu.xml b/res/menu/search_options_menu.xml
deleted file mode 100644
index 25a79d4..0000000
--- a/res/menu/search_options_menu.xml
+++ /dev/null
@@ -1,23 +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.
--->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:id="@+id/search"
- android:title="@string/search_menu"
- android:icon="@*android:drawable/ic_search_api_material"
- android:showAsAction="collapseActionView|ifRoom"
- android:actionViewClass="android.widget.SearchView"/>
-</menu>
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 67cdc83..4756865 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"skakel skerm aan"</item>
<item msgid="3253368931113490863">"kry rekeninge"</item>
<item msgid="780392378084812901">"laat loop op agtergrond"</item>
+ <item msgid="2629748510881309577">"toeganklikheidsvolume"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Ligging"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Skakel skerm aan"</item>
<item msgid="5258373962467495905">"Kry rekeninge"</item>
<item msgid="334625385979270703">"Laat loop op agtergrond"</item>
+ <item msgid="9039213578110332702">"Toeganklikheidsvolume"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kort"</item>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 0c0892c..b641817 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tik om aan \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" te koppel."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Wil jy koppel aan \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Telefoonboek-toegangversoek"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s wil toegang hê tot jou kontakte en oproepgeskiedenis. Gee toegang aan %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wil by jou kontakte en oproepgeskiedenis ingaan. Gee toegang aan <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Moenie weer vra nie"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Moenie weer vra nie"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Boodskaptoegangversoek"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Instellings"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Instellings"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Instellingskortpad"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Geen passende aktiwiteite gevind nie."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Vliegtuigmodus"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Nog"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Draadloos en netwerke"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Gebruik <xliff:g id="NEW_APP">%1$s</xliff:g> in plaas van <xliff:g id="CURRENT_APP">%2$s</xliff:g> om jou netwerkverbindings te bestuur?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Gebruik <xliff:g id="NEW_APP">%s</xliff:g> om jou netwerkverbindings te bestuur?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Onbekende SIM-operateur"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s het geen bekende voorsieningwebwerf nie"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> het geen bekende voorsieningwebwerf nie"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Steek asseblief SIM-kaart in en herbegin"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Koppel asseblief aan die internet"</string>
<string name="location_title" msgid="1029961368397484576">"My ligging"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Verskaffers van satellietbeelde:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Handleiding"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Kon nie die handleiding laai nie."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Derdepartylisensies"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Daar was \'n probleem om lisensies te loods."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Laai tans…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Veiligheidsinligting"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Batteryspaarder"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Skakel outomaties aan"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nooit"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"teen %1$s battery"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"met battery <xliff:g id="PERCENT">%1$s</xliff:g> vol"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Proses-statistieke"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Bleeksiel-statistieke vir lopende prosesse"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Berginggebruik"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Luivolume"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Kennisgewingvolume"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Foonluitoon"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Verstekkennisgewing-klank"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Verstekwekkerklank"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibreer ook vir oproepe"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Ander klanke"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Belbladtone"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Kan jy nie aanmeld nie?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Stuur stelselinligting"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Moenie weer wys nie"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Versoek tans as"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Voeg rekening by"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Werkprofielinstellings"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaksoektog"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Laat kontaksoektogte deur jou organisasie toe om bellers en kontakte te identifiseer"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Outo-sinkroniseer rekeningdata"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Outo-sinkroniseer persoonlike rekening se data"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Outo-sinkroniseer werkrekeningdata"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Rekeningsinkronisering"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privaatheid"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privaatheid"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Om toegang tot jou werkdata te verskaf, sal jou organisasie dalk instellings verander en sagteware op jou toestel installeer wat kan veroorsaak dat van jou persoonlike inhoud vir jou administrateur sigbaar sal wees. Kontak jou organisasie se administrateur vir meer besonderhede."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Watter tipes inligting kan jou organisasie sien?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Watter veranderinge beïnvloed wat jou organisasie kan sien?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Watter handelinge kan jou toegang tot dié toestel beïnvloed?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data wat met jou werkrekening geassosieer word, soos e-pos en kalender"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lys van alle programme op jou toestel"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Lys van al <xliff:g id="COUNT_1">%d</xliff:g> programme op jou toestel</item>
+ <item quantity="one">Lys van <xliff:g id="COUNT_0">%d</xliff:g> program op jou toestel</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Gebruik (tyd spandeer en hoeveelheid data gebruik) van elke program op jou toestel"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Verkeerloglêers op jou toestel"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Jou mees onlangse foutverslag"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Jou mees onlangse sekuriteitloglêer"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nooit"</string>
</resources>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index f94e125..955e188 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ማያ ገጽ አብራ"</item>
<item msgid="3253368931113490863">"መለያዎችን ያግኙ"</item>
<item msgid="780392378084812901">"ዳራ ውስጥ አሂድ"</item>
+ <item msgid="2629748510881309577">"የተደራሽነት መጠን"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"አካባቢ"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"ማያ ገጽ አብራ"</item>
<item msgid="5258373962467495905">"መለያዎችን ያግኙ"</item>
<item msgid="334625385979270703">"ዳራ ውስጥ አሂድ"</item>
+ <item msgid="9039213578110332702">"የተደራሽነት መጠን"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"አጭር"</item>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 5430bc5..5486dce 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"ከ«<xliff:g id="DEVICE_NAME">%1$s</xliff:g>» ለመገናኘት ነካ ያድርጉ።"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"ወደ\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ለማያያዝ ይፈልጋሉ?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"የስልክ ደብተር መዳረሻ ጥያቄ"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s የአንተን ዕውቂያዎች እና የጥሪ ታሪኮች ለመድረስ ይፈልጋል ። ለ%2$s መድረስ ይሰጥ?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> የእርስዎን እውቂያዎች እና የጥሪ ታሪክን መድረስ ይፈልጋል። መዳረሻ ለ<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ይሰጥ?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"ዳግመኛ አትጠይቅ"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ዳግመኛ አትጠይቅ"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"የመልዕክት መዳረሻ ጥያቄ"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"ቅንብሮች"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"ቅንብሮች"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"የቅንብሮች አቋራጭ"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"ምንም ተመሳሳይ እንቅስቃሴዎች አልተገኙም።"</string>
<string name="airplane_mode" msgid="8837269988154128601">"የአውሮፕላን ሁነታ"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"ተጨማሪ"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"ገመድ አልባ& አውታረ መረቦች"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"የአውታረ መረብ ግንኙነቶችዎን ለማቀናበር ከ<xliff:g id="CURRENT_APP">%2$s</xliff:g> ይልቅ <xliff:g id="NEW_APP">%1$s</xliff:g>ን ይጠቀሙ?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"የአውታረ መረብ ግንኙነቶችዎን ለማቀናበር <xliff:g id="NEW_APP">%s</xliff:g>ን ይጠቀሙ?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"ያልታወቀ የሲም አንቀሳቃሽ"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s የሚታወቅ የአቅርቦት ድር ጣቢያ የለውም"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> ምንም የሚታወቅ የማቅረቢያ ድር ጣቢያ የለውም"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"እባክዎ SIM ካርድ ያስገቡና ዳግም ያስጀምሩ"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"እባክዎ ከበይነ መረብ ጋር ያገናኙ"</string>
<string name="location_title" msgid="1029961368397484576">"የእኔ ሥፍራ"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"የሳተላይት ምስሎች አቅራቢዎች፦\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"መመሪያ"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"መመሪያውን መጫን ላይ አንድ ችግር ነበር።"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"የሶስተኛ ወገን ፈቃዶች"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ፈቃዶቹንበመስቀል ላይ ችግር ነበር።"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"በመስቀል ላይ…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"የደህንነት መረጃ"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"የባትሪ ኃይል ቆጣቢ"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"በራስ ሰር አብራ"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"በፍፁም"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"በ%1$s ባትሪ"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> ባትሪ ላይ"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"የሂደት ስታትስቲክስ"</string>
<string name="process_stats_summary" msgid="109387941605607762">"እያሄዱ ስላሉ ሂደቶች ያሉ ዝርዝር ስታትስቲክስ"</string>
<string name="app_memory_use" msgid="7849258480392171939">"የማህደረ ትውስታ አጠቃቀም"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"የጥሪ ድምጽ መጠን"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"የማሳወቂያ ድምጽ መጠን"</string>
<string name="ringtone_title" msgid="5379026328015343686">"የስልክ ጥሪ ድምፅ"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"ነባሪ የማሳወቂያ ድምጽ"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"ነባሪ የማንቂያ ድምጽ"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"እንዲሁም ለጥሪዎችም ንዘር"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"ሌሎች ድምጾች"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"የመደወያ ሰሌዳ ድምጾች"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"መግባት አልቻሉም?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"የሥርዓት መረጃን ላክ"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ዳግም አታሳይ"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"እንደሚከተለው በመጠየቅ ላይ"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"መለያ ያክሉ"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"የስራ መገለጫ ቅንብሮች"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"የእውቂያ ፍለጋ"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"በእርስዎ ድርጅት የሚደረጉ የእውቂያ ፍለጋዎች ደዋዮችን እና እውቂያዎችን እንዲለዩ ፍቀድ"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"የመለያ ውሂብን በራስ-አስምር"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"የግል መለያ ውሂብን በራስ-አስምር"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"የስራ መለያ ውሂብን በራስ-አስምር"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"የመለያ ስምሪት"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"ግላዊነት"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ግላዊነት"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"የስራ ውሂብዎ መዳረሻ ለማቅረብ የእርስዎ ድርጅት በመሣሪያዎ ላይ ቅንብሮችን ሊቀይር እና ሶፍትዌር ሊጭን ይችላል፣ ይህም አንዳንድ የግል ይዘትዎ ለአስተዳዳሪዎ እንዲታይ ሊያደርግ ይችላል። ተጨማሪ ዝርዝሮችን ለማግኘት የድርጅትዎን አስተዳዳሪ ያነጋግሩ።"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"ምን አይነት መረጃዎች ነው ድርጅትዎ ሊመለከታቸው የሚችለው?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"ምን ለውጦች ናቸው የእርስዎ ድርጅትዎ ማየት በሚችላቸው ነገሮች ላይ ተጽዕኖ ሊኖራቸው የሚችለው?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ምን እርምጃዎች ናቸው በዚህ የመሣሪያ መዳረሻዎ ላይ ተጽዕኖ ሊኖራቸው የሚችለው?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"እንደ ኢሜይል እና ቀን መቁጠሪያ ያለ ከስራ መለያዎ ጋር የተጎዳኘ ውሂብ"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"በመሣሪያዎ ላይ ያሉ የሁሉም መተግበሪያዎች ዝርዝር"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">በመሣሪያዎ ላይ ያሉት ሁሉንም <xliff:g id="COUNT_1">%d</xliff:g> መተግበሪያዎች ይዘርዝሩ</item>
+ <item quantity="other">በመሣሪያዎ ላይ ያሉት ሁሉንም <xliff:g id="COUNT_1">%d</xliff:g> መተግበሪያዎች ይዘርዝሩ</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"በመሣሪያዎ ላይ ያለው የእያንዳንዱ መተግበሪያ አጠቃቀም (የወሰደው ጊዜ እና ጥቅም ላይ የዋለው የውሂብ መጠን)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"በእርስዎ መሣሪያ ላይ ያሉ የመሣሪያ ምዝግብ ማስታወሻዎች"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"የእርስዎ በጣም ቅርብ ጊዜ የሳንካ ሪፖርት"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"የእርስዎ የበጣም ቅርብ ጊዜ የደህንነት ምዝግብ ማስታወሻ"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"በጭራሽ"</string>
</resources>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 01ee3ec..71450db 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"تشغيل الشاشة"</item>
<item msgid="3253368931113490863">"الحصول على الحسابات"</item>
<item msgid="780392378084812901">"التشغيل في الخلفية"</item>
+ <item msgid="2629748510881309577">"مستوى صوت إمكانية الوصول"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"الموقع"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"تشغيل الشاشة"</item>
<item msgid="5258373962467495905">"الحصول على الحسابات"</item>
<item msgid="334625385979270703">"التشغيل في الخلفية"</item>
+ <item msgid="9039213578110332702">"مستوى صوت إمكانية الوصول"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"قصيرة"</item>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 16e36e9..3b51a82 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -154,7 +154,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"انقر للاتصال بـ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"هل تريد الاتصال بـ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"؟"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"طلب الدخول إلى دفتر الهاتف"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"يريد %1$s الدخول إلى جهات الاتصال وسجل المكالمات. هل تريد منحه حق الدخول إلى %2$s؟"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"يريد <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> الوصول إلى جهات الاتصال وسجل المكالمات. هل تريد منحه إمكانية الوصول <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>؟"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"لا تسألني مرة أخرى"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"لا تسألني مرة أخرى"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"طلب الدخول إلى الرسائل"</string>
@@ -278,6 +278,7 @@
<string name="settings_label" msgid="1626402585530130914">"الإعدادات"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"الإعدادات"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"اختصار الإعدادات"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"لم يتم العثور على أي أنشطة متطابقة."</string>
<string name="airplane_mode" msgid="8837269988154128601">"وضع الطائرة"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"المزيد"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"اللاسلكي والشبكات"</string>
@@ -1341,7 +1342,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"هل تريد استخدام <xliff:g id="NEW_APP">%1$s</xliff:g> بدلاً من <xliff:g id="CURRENT_APP">%2$s</xliff:g> لإدارة اتصالات الشبكة لديك؟"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"هل تريد استخدام <xliff:g id="NEW_APP">%s</xliff:g> لإدارة اتصالات الشبكة لديك؟"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"مشغل SIM (مشغل شبكة الجوّال) غير معروف"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"ليس لدى %1$s موقع ويب معروف لإدارة حسابات"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"ليس لدى <xliff:g id="OPERATOR">%1$s</xliff:g> موقع ويب معروف لإدارة حسابات"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"الرجاء إدخال شريحة SIM وإعادة التشغيل"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"الرجاء الاتصال بالإنترنت"</string>
<string name="location_title" msgid="1029961368397484576">"موقعي"</string>
@@ -1397,8 +1398,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"الشركات الموفرة لصور القمر الصناعي:\n©2014 CNES / Astrium، وDigitalGlobe وBluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"الكتيب"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"حدثت مشكلة أثناء تحميل الكتيب."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"تراخيص الجهات الأخرى"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"هناك مشكلة في تحميل التراخيص."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"جارٍ التحميل…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"معلومات الأمان"</string>
@@ -2000,7 +2000,7 @@
<string name="battery_saver" msgid="1426682272004907982">"موفِّر طاقة البطارية"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"التشغيل تلقائيًا"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"أبدًا"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"عند بلوغ %1$s من طاقة البطارية"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"البطارية عند مستوى <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"إحصائيات العمليات"</string>
<string name="process_stats_summary" msgid="109387941605607762">"الإحصائيات التقنية حول العمليات الجارية"</string>
<string name="app_memory_use" msgid="7849258480392171939">"استخدام الذاكرة"</string>
@@ -2694,10 +2694,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"مستوى صوت الرنين"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"مستوى صوت الإشعارات"</string>
<string name="ringtone_title" msgid="5379026328015343686">"نغمة رنين الهاتف"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"صوت الإشعار الافتراضي"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"صوت التنبيه الافتراضي"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"الاهتزاز أيضًا مع المكالمات"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"أصوات أخرى"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"نغمات لوحة الاتصال"</string>
@@ -3314,7 +3312,7 @@
<string name="notification_log_details_ranking_null" msgid="244660392058720919">"ترتيب العناصر مفقود."</string>
<string name="notification_log_details_ranking_none" msgid="599607025882587844">"لا يحتوي ترتيب العناصر على هذا المفتاح."</string>
<string name="special_access" msgid="8275242424094109976">"الوصول الخاص"</string>
- <string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"هل تريد بالتأكيد مسح بيانات المستخدم والتحويل إلى تشفير الملفات؟"</string>
+ <string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"هل تريد فعلًا مسح بيانات المستخدم والتحويل إلى تشفير الملفات؟"</string>
<string name="button_confirm_convert_fbe" msgid="7101855374850373091">"مسح وتحويل"</string>
<string name="reset_shortcut_manager_throttling" msgid="6495066467198668994">"هل تريد إعادة تعيين تقييد المعدل في ShortcutManager؟"</string>
<string name="reset_shortcut_manager_throttling_complete" msgid="1826770872063707900">"تمت إعادة تعيين تقييد المعدل في ShortcutManager."</string>
@@ -3351,6 +3349,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"ألا تستطيع تسجيل الدخول؟"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"إرسال معلومات النظام"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"عدم عرض ذلك مجددًا"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"الطلب باعتبارك"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"إضافة حساب"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"إعدادات الملف الشخصي للعمل"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"البحث في جهات الاتصال"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"السماح بعمليات البحث عن جهات اتصال بواسطة مؤسستك لتحديد المتصلين وجهات الاتصال"</string>
@@ -3435,20 +3435,26 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"مزامنة بيانات الحساب تلقائيًا"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"مزامنة الحساب الشخصي تلقائيًا"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"مزامنة حساب العمل تلقائيًا"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"مزامنة الحساب"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"الخصوصية"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"الخصوصية"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"لتوفير إمكانية الوصول إلى بيانات عملك، يجوز أن تغيِّر مؤسستك الإعدادات وأن تثبِّت البرامج على جهازك، وهو ما قد يتسبب في ظهور بعض محتوياتك الشخصية للمشرف. اتصل بمشرف مؤسستك للحصول على المزيد من التفاصيل."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"ما أنواع المعلومات التي يمكن لمؤسستك الاطلاع عليها؟"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"ما التغييرات التي تؤثر في ما يظهر لمؤسستك؟"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ما الإجراءات التي قد تؤثر في إمكانية وصولك إلى هذا الجهاز؟"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"البيانات المقترنة مع حساب العمل، مثل البريد الإلكتروني والتقويم"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"قائمة تضم جميع التطبيقات على جهازك"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="zero">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="two">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="few">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="many">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="other">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="one">قائمة تضم جميع تطبيقات الجهاز وعددها <xliff:g id="COUNT_0">%d</xliff:g></item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"استخدام كل تطبيق على جهازك (الوقت المنقضي ومقدار البيانات المستخدمة)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"سجلات حركة المرور على جهازك"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"أحدث تقرير أخطاء"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"أحدث سجل أمني"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"أبدًا"</string>
</resources>
diff --git a/res/values-az-rAZ/arrays.xml b/res/values-az-rAZ/arrays.xml
index 7e70de9..d3ef006 100644
--- a/res/values-az-rAZ/arrays.xml
+++ b/res/values-az-rAZ/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ekranı yandırın"</item>
<item msgid="3253368931113490863">"hesabları əldə edin"</item>
<item msgid="780392378084812901">"arka fonda işləyir"</item>
+ <item msgid="2629748510881309577">"əlçatımlılıq dərəcəsi"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Məkan"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Ekranı yandırın"</item>
<item msgid="5258373962467495905">"Hesabları əldə edin"</item>
<item msgid="334625385979270703">"Arxa fonda işlədin"</item>
+ <item msgid="9039213578110332702">"Əlçatımlılıq dərəcəsi"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Qısa"</item>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 2abf5de..658c61b 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ilə bağlantı yaratmaq üçün tıklayın."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" cihazına qoşulmaq istəyirsiniz?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Telefon kitabı giriş sorğusu"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s sizin kontaktlarınıza və zəng tarixçənizə giriş istəyir. %2$s adlı istifadəçi üçün girişə icazə verilsin?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> izin kontaktlarınıza və zəng tarixçənizə giriş istəyir. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> adlı istifadəçiyə girişə icazə verilsin?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Bir daha soruşmayın"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Daha soruşma"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Mesaj giriş sorğusu"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Ayarlar"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Ayarlar"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Ayarlar qısayolunu seçin"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Uyğun gələn fəaliyyət tapılmadı."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Uçuş rejimi"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Digər"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Simsiz & şəbəkələr"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Şəbəkə bağlantılarını idarə etmək üçün <xliff:g id="CURRENT_APP">%2$s</xliff:g> əvəzinə <xliff:g id="NEW_APP">%1$s</xliff:g> istifadə edilsin?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Şəbəkə bağlantılarını idarə edilmək üçün <xliff:g id="NEW_APP">%s</xliff:g> istifadə edilsin?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Naməlum SIM operatoru"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s naməlum vebsayt təminatçısına malikdir"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> naməlum vebsayt təminatçısına malikdir"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Lütfən, SİM kart daxil edin və yenidən başladın"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Lütfən. internetə qoşulun"</string>
<string name="location_title" msgid="1029961368397484576">"Mənim yerləşməm"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Peyk şəkillərini təqdim edənlər:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Dərslik"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Dərsliklərin yüklənməsində problem var."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Üçüncü tərəf lisenziyaları"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Lisenziyaların yüklənilməsində problem var."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Yüklənir…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Təhlükəsizlik məlumatı"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Enerji qənaəti"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Avtomatik aktivləşdir"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Heç vaxt"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"at %1$s enerji"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> batareya"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Proses Statistikası"</string>
<string name="process_stats_summary" msgid="109387941605607762">"İşləmə prosesləri haqqında çağırış statistikası"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Yaddaş istifadəsi"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Zəng həcmi"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Bildiriş səsi"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Telefon zəng səsi"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Varsayılan bildiriş səsi"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Defolt zəngli saat səsi"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Həmçinin, zənglər üçün vibrasiya olsun"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Digər səslər"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Klaviş tonları"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Daxil ola bilmədiniz?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Sistem məlumatı göndərin"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Yenidən göstərməyin"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Sorğulama növü:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Hesab əlavə edin"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"İş profil ayarları"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontakt axtarışı"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Zəng edənləri və kontaktları təyin etmək üçün təşkilatınız tərəfindən kontakt axtarışlarına icazə verin"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Hesab datasını avtomatik sinxronlaşdırın"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Şəxsi hesab datasını avtomatik sinxronlaşdırın"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"İş hesab datasını avtomatik sinxronlaşdırın"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Hesab sinxronizasiyası"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Konfidensiallıq"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Konfidensiallıq"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"İş datasına girişi təmin etmək üçün, təşkilatınız, bəzi şəxsi məzmunun admin üçün görünən olmasına səbəb ola bilən ayar dəyişikliyi edə və cihazınıza tətbiq yükləyə bilər. Ətraflı məlumat üçün təşkilatın admini ilə əlaqə saxlayın."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Təşkilat hansı məlumatları görə bilər?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Hansı dəyişikliklər təşkilatın gördüklərinə təsir edir?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Hansı fəaliyyətlər Sizin bu hesaba girişinizə təsir edə bilər?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"E-poçt və təqvim kimi iş hesabı ilə əlaqədar data"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Cihazınızdakı tətbiqlərin siyahısı"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Cihazınızdakı bütün <xliff:g id="COUNT_1">%d</xliff:g> tətbiqin siyahısı</item>
+ <item quantity="one">Cihazınızdakı bütün <xliff:g id="COUNT_0">%d</xliff:g> tətbiqin siyahısı</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Cihazınızdakı hər bir tətbiqin istifadəsi (istifadə etdiyi vaxt və data miqdarı)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Cihazdakı trafik qeydiyyatı"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ən son baq hesabatı"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ən son təhlükəsizlik qeydiyyatı"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Heç vaxt"</string>
</resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index b36b281..66fda93 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"uključivanje ekrana"</item>
<item msgid="3253368931113490863">"pristup nalozima"</item>
<item msgid="780392378084812901">"rad u pozadini"</item>
+ <item msgid="2629748510881309577">"jačina zvuka za pristupačnost"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Lokacija"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Uključivanje ekrana"</item>
<item msgid="5258373962467495905">"Pristup nalozima"</item>
<item msgid="334625385979270703">"Rad u pozadini"</item>
+ <item msgid="9039213578110332702">"Jačina zvuka za pristupačnost"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kratko"</item>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 4623175..24db5d3 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -151,7 +151,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Dodirnite da biste se povezali sa uređajem „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Da li želite da se povežete sa uređajem „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Zahtev za pristup telefonskom imeniku"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s želi da pristupi vašim kontaktima i istoriji poziva. Želite li da odobrite pristup za %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi da pristupi kontaktima i istoriji poziva. Želite li da date pristup uređaju <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne pitaj ponovo"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne pitaj ponovo"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Zahtev za pristup porukama"</string>
@@ -272,6 +272,7 @@
<string name="settings_label" msgid="1626402585530130914">"Podešavanja"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Podešavanja"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Prečica podešavanja"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nije pronađena nijedna aktivnost koja se podudara."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Režim rada u avionu"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Još"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bežična veza i mreže"</string>
@@ -1311,7 +1312,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Želite li da koristite aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g> umesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> za upravljanje mrežnim vezama?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Želite li da koristite aplikaciju <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje mrežnim vezama?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nepoznati SIM operater"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nema poznatih veb-sajtova za dodelu"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznat veb-sajt za dodelu"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Ubacite SIM karticu i restartujte"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Povežite se sa internetom"</string>
<string name="location_title" msgid="1029961368397484576">"Moja lokacija"</string>
@@ -1367,8 +1368,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Dobavljači satelitskih slika:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Uputstvo"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Došlo je do problema pri učitavanju uputstva."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licence treće strane"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Došlo je do problema pri učitavanju licenci."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Učitava se…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Bezbednosne informacije"</string>
@@ -1949,7 +1949,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Štednja baterije"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automatski uključi"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikada"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"baterija je na %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"na <xliff:g id="PERCENT">%1$s</xliff:g> baterije"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistika procesa"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Štreberska statistika o aktivnim procesima"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Iskorišćenost memorije"</string>
@@ -2628,10 +2628,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Jačina zvuka zvona"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Jačina zvuka za obaveštenja"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Zvuk zvona telefona"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Podrazumevani zvuk obaveštenja"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Podrazumevani zvuk alarma"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibracija i za pozive"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Drugi zvukovi"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonovi numeričke tastature"</string>
@@ -3255,6 +3253,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Ne možete da se prijavite?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Pošaljite informacije o sistemu"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne prikazuj ponovo"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Zahtevate kao"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Dodaj nalog"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Podešavanja poslovnog profila"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pretraga kontakata"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Dozvolite da pretraživanje kontakata od strane vaše organizacije identifikuje pozivaoce i kontakte."</string>
@@ -3330,20 +3330,23 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Autom. sinhr. podatke sa naloga"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autom. sinhr. lične podatke sa naloga"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autom. sinhr. poslovne podatke sa naloga"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sinhronizacija naloga"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatnost"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatnost"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Da bi pružila pristup vašim poslovnim podacima, organizacija može da promeni podešavanja i instalira softver na uređaju, što bi deo ličnog sadržaja učinilo vidljivim administratoru. Kontaktirajte administratora organizacije za više detalja."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Koje tipove informacija može da vidi organizacija?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Koje promene utiču na to šta organizacija može da vidi?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Koje radnje mogu da utiču na vaš pristup ovom uređaju?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Podaci povezani sa poslovnim nalogom, poput imejla i kalendara"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista svih aplikacija na uređaju"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Lista svih aplikacija na uređaju: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="few">Lista svih aplikacija na uređaju: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="other">Lista svih aplikacija na uređaju: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Korišćenje (potrošeno vreme i količina iskorišćenih podataka) za svaku aplikaciju na uređaju"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Evidencija saobraćaja na uređaju"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Najnoviji izveštaj o grešci"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Najnovija bezbednosna evidencija"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikada"</string>
</resources>
diff --git a/res/values-be-rBY/arrays.xml b/res/values-be-rBY/arrays.xml
index ead37a9..3f00a01 100644
--- a/res/values-be-rBY/arrays.xml
+++ b/res/values-be-rBY/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"уключаць экран"</item>
<item msgid="3253368931113490863">"атрымліваць уліковыя запісы"</item>
<item msgid="780392378084812901">"выконваць у фонавым рэжыме"</item>
+ <item msgid="2629748510881309577">"гучнасць для спецыяльных магчымасцей"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Месцазнаходжанне"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Уключаць экран"</item>
<item msgid="5258373962467495905">"Атрымліваць уліковыя запісы"</item>
<item msgid="334625385979270703">"Выконваць у фонавым рэжыме"</item>
+ <item msgid="9039213578110332702">"Гучнасць для спецыяльных магчымасцей"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Кароткая"</item>
diff --git a/res/values-be-rBY/strings.xml b/res/values-be-rBY/strings.xml
index b7fc8ce..3bdf299 100644
--- a/res/values-be-rBY/strings.xml
+++ b/res/values-be-rBY/strings.xml
@@ -152,7 +152,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Краніце, каб падлучыцца да прылады <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Падлучыцца да прылады \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Запыт доступу да тэлефоннай кнігі"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s спрабуе атрымаць доступ да вашых кантактаў і гісторыі выклікаў. Дазволіць доступ тэлефоннай кнiзе %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> спрабуе атрымаць доступ да вашых кантактаў і гісторыі выклікаў. Даць доступ да <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Больш не пытацца"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Больш не пытацца"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Запыт доступу да паведамленняў"</string>
@@ -274,6 +274,7 @@
<string name="settings_label" msgid="1626402585530130914">"Налады"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Налады"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Ярлык налад"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Адпаведныя дзеянні не знойдзены."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Рэжым самалёту"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Яшчэ"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Бесправадныя і правадныя сеткі"</string>
@@ -1321,7 +1322,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Выкарыстоўваць <xliff:g id="NEW_APP">%1$s</xliff:g> замест <xliff:g id="CURRENT_APP">%2$s</xliff:g> для кіравання сеткавымі падлучэннямі?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Выкарыстоўваць <xliff:g id="NEW_APP">%s</xliff:g> для кіравання вашымі падлучэннямі да сеткі?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Невядомы аператар SIM-карты"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"У %1$s няма вядомага вэб-сайта для прадаст. паслуг"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"У <xliff:g id="OPERATOR">%1$s</xliff:g> няма вядомага вэб-сайта для забеспячэння паслуг"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Калі ласка, устаўце SIM-карту і перазагрузіце"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Калі ласка, падлучыцеся да Інтэрнэту"</string>
<string name="location_title" msgid="1029961368397484576">"Маё месцазнаходжанне"</string>
@@ -1377,8 +1378,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Пастаўшчыкі спадарожнікавых выяў:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Кіраўніцтва"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Не атрымлiваецца загрузіць кіраўніцтва."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Ліцэнзіі трэціх бакоў"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Немагчыма загрузіць ліцэнзіі."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Загрузка..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Інфармацыя аб бяспецы"</string>
@@ -1966,7 +1966,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Эканомія зараду акумулятара"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Уключаць аўтаматычна"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Ніколі"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"пры ўзроўні зараду %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"пры ўзроўні зараду акумулятара <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Статыстыка працэсаў"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Падрабязная статыстыка запушчаных працэсаў"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Аб\'ём выкарыстання памяці"</string>
@@ -2650,10 +2650,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Гучнасць выкліку"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Гучнасць апавяшчэнняў"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Мелодыя тэлефона"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Стандартны гук апавяшчэння"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Стандартны сігнал будзільніка"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Уключыць вібрацыю для выклікаў"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Іншыя гукі"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Гукі панэлі набору"</string>
@@ -3287,6 +3285,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Не можаце ўвайсці ў сістэму?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Адправіць інфармацыю пра сістэму"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Больш не паказваць"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Запыт ад"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Дадаць уліковы запіс"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Налады працоўнага профілю"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Пошук кантактаў"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Дазволіць вашай арганізацыі пошук кантактаў, каб вызначаць абанентаў і кантакты"</string>
@@ -3365,20 +3365,24 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Аўтасiнхр. даных улік. запісу"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Аўтасінхр. дан. асаб. ул. зап."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Аўтасінхр. дан. прац. ул. зап."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Сінхранізацыя ўліковага запісу"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Прыватнасць"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Прыватнасць"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Для забеспячэння доступу да вашых працоўных даных ваша арганізацыя можа змяніць налады і ўсталяваць пэўнае праграмнае забеспячэнне на вашу прыладу. У выніку гэтага некаторае асабістае змесціва зможа ўбачыць ваш адміністратар. Для атрымання дадатковай інфармацыі звярніцеся да адміністратара сваёй арганізацыі."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Якія віды інфармацыі можа бачыць ваша арганізацыя?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Якія змены ўплыв. на тое, што ваша арганізацыя можа бачыць?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Якія дзеянні могуць паўплыв. на ваш доступ да гэтай прылады?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Даныя, звязаныя з вашым працоўным уліковым запісам, такія як электронная пошта і каляндар"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Спіс усіх праграм на вашай прыладзе"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Спіс з <xliff:g id="COUNT_1">%d</xliff:g> праграмы на вашай прыладзе</item>
+ <item quantity="few">Спіс з усіх <xliff:g id="COUNT_1">%d</xliff:g> праграм на вашай прыладзе</item>
+ <item quantity="many">Спіс з усіх <xliff:g id="COUNT_1">%d</xliff:g> праграм на вашай прыладзе</item>
+ <item quantity="other">Спіс з <xliff:g id="COUNT_1">%d</xliff:g> праграмы на вашай прыладзе</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Выкарыстанне (патрачаны час і аб\'ём выкарыстаных даных) кожнай праграмы на вашай прыладзе"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Журналы трафіку на вашай прыладзе"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ваша апошняя справаздача пра памылку"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ваш апошні журнал бяспекі"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Ніколі"</string>
</resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index e0519cf..c4dc106 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"включване на екрана"</item>
<item msgid="3253368931113490863">"създаване на профили"</item>
<item msgid="780392378084812901">"пускане на заден план"</item>
+ <item msgid="2629748510881309577">"сила на звука за услугите за достъпност"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Местоположение"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Включване на екрана"</item>
<item msgid="5258373962467495905">"Създаване на профили"</item>
<item msgid="334625385979270703">"Пускане на заден план"</item>
+ <item msgid="9039213578110332702">"Сила на звука за услугите за достъпност"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Кратко"</item>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 41afd83..94523c5 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Докоснете за свързване с/ъс „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Искате ли да се свържете с/ъс „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Заявка за достъп до телефонния указател"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"От %1$s се иска достъп до вашите контакти и история на обажданията. Да се даде ли достъп до %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> иска да осъществи достъп до контактите и историята на обажданията ви. Искате ли да предоставите достъп до <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Без повторно питане"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Без повторно питане"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Заявка за достъп до съобщенията"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Настройки"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Настройки"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Пряк път за настройките"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Не бяха намерени съответстващи дейности."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Самолетен режим"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Още"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Кабелни и безжични мрежи"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Да се използва ли <xliff:g id="NEW_APP">%1$s</xliff:g> вместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управление на мрежовите ви връзки?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Да се използва ли <xliff:g id="NEW_APP">%s</xliff:g> за управление на мрежовите ви връзки?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Неизвестен SIM оператор"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Няма известен администриращ уебсайт за %1$s"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Няма известен администриращ уебсайт за <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Моля, поставете SIM карта и рестартирайте"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Моля, свържете се с интернет"</string>
<string name="location_title" msgid="1029961368397484576">"Моето местоположение"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Доставчици на сателитни изображения:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Ръководство"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Възникна проблем при зареждане на ръководството."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Лицензи на трети страни"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Възникна проблем при зареждането на лицензите."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Зарежда се…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Информация за безопасност"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Режим за запазване на батерията"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Автоматично включване"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Никога"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"при %1$s батерия"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"при <xliff:g id="PERCENT">%1$s</xliff:g> батерия"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Статистически данни за процесите"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Подробни статистически данни за изпълняващите се процеси"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Използвана памет"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Сила на звука при звънене"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Сила на звука при известие"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Мелодия на телефон"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Стандартен звук за известяване"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Стандартен звук за будилника"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Вибриране и при обаждания"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Други звуци"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Тонове при набиране"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Не можете да влезете в профила си?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Изпращане на системна информация"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Да не се показва отново"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Заявка за поддръжка като"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Добавяне на профил"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Настройки за служебния потребителски профил"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Търсене на контакт"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Разрешете търсене на контакти от организацията ви с цел идентифициране на обаждащите се и контактите"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Данни от профила: Авт. синхрон"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Данни от личния профил: Авт. синхрон"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Данни от служ. профил: Авт. синхрон"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Синхронизиране на профила"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Поверителност"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Поверителност"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"За да предостави достъп до служебните ви данни, организацията ви може да промени настройките и да инсталира софтуер на устройството ви, което може да доведе до това, част от личното ви съдържание да бъде видимо за администратора ви. Свържете се с него за повече подробности."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Какъв тип информация може да вижда организацията ви?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Кои промени засягат това, какво може да вижда организацията ви?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Кои действия може да повлияят на достъпа ви до това у-во?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Свързани със служебния ви профил данни, като например имейл и календар"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Списък с всички приложения на устройството ви"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Списък с всичките <xliff:g id="COUNT_1">%d</xliff:g> приложения на устройството ви</item>
+ <item quantity="one">Списък с <xliff:g id="COUNT_0">%d</xliff:g> приложение на устройството ви</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Употреба (прекарано време и количество използвани данни) на всяко приложение на устройството ви"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Регистрационни файлове за трафика на устройството ви"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Най-скорошният ви сигнал за програмна грешка"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Най-скорошният ви регистрационен файл за сигурността"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Никога"</string>
</resources>
diff --git a/res/values-bn-rBD/arrays.xml b/res/values-bn-rBD/arrays.xml
index d4d4d93..4c1e2e9 100644
--- a/res/values-bn-rBD/arrays.xml
+++ b/res/values-bn-rBD/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"স্ক্রিন চালু করুন"</item>
<item msgid="3253368931113490863">"অ্যাকাউন্ট পেয়ে যান"</item>
<item msgid="780392378084812901">"পটভূমি্তে অ্যাপ্স চলছে"</item>
+ <item msgid="2629748510881309577">"অ্যাক্সেসযোগ্যতার ভলিউম"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"অবস্থান"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"স্ক্রিন চালু করুন"</item>
<item msgid="5258373962467495905">"অ্যাকাউন্ট পেয়ে যান"</item>
<item msgid="334625385979270703">"পটভূমিতে অ্যাপ্স চলছে"</item>
+ <item msgid="9039213578110332702">"অ্যাক্সেসযোগ্যতার ভলিউম"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"স্বল্প"</item>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 32edb33..bacfe93 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" এ সংযোগ করতে আলতো চাপুন।"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"আপনি কি \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" এ সংযুক্ত করতে চান?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ফোন বইয়ের অ্যাক্সেসের অনুরোধ"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s আপনার পরিচিতিগুলি এবং পুরোনো কলের তালিকা অ্যাক্সেস চায়। %2$s এ অ্যাক্সেস দেবেন?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> আপনার পরিচিতিগুলি এবং কলের ইতিহাস অ্যাক্সেস করতে চায়৷ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>কে অ্যাক্সেস করতে দেবেন?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"আবার জিজ্ঞাসা করবেন না"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"আবার জিজ্ঞাসা করবেন না"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"বার্তা অ্যাক্সেসের অনুরোধ"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"সেটিংস"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"সেটিংস"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"সেটিংস শর্টকাট"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"কোনো সমরূপ কার্যকলাপ খুঁজে পাওয়া যায়নি৷"</string>
<string name="airplane_mode" msgid="8837269988154128601">"বিমান মোড"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"আরো"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"ওয়্যারলেস ও নেটওয়ার্ক"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"আপনার নেটওয়ার্ক সংযোগ পরিচালনা করার জন্য <xliff:g id="CURRENT_APP">%2$s</xliff:g> এর পরিবর্তে <xliff:g id="NEW_APP">%1$s</xliff:g> ব্যবহার করবেন?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"আপনার নেটওয়ার্ক সংযোগ পরিচালনা করার জন্য <xliff:g id="NEW_APP">%s</xliff:g> ব্যবহার করবেন?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"সিম এর পরিষেবা প্রদানকারী অজানা"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s এর কোনো জানা প্রভিশনিং ওয়েবসাইট নেই"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> এর কোনো পরিচিত প্রভিশনিং ওয়েবসাইট নেই"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"দয়া করে সিম কার্ড ঢোকান এবং পুনর্সূচনা করুন"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"দয়া করে ইন্টারনেটের সঙ্গে সংযুক্ত হোন"</string>
<string name="location_title" msgid="1029961368397484576">"আমার অবস্থান"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"উপগ্রহ চিত্র প্রদানকারী:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"ম্যানুয়াল"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"ম্যানুয়াল লোড হওয়ার সময়ে একটি সমস্যা হয়েছে।"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"তৃতীয় পক্ষের লাইসেন্স"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"লাইসেন্সগুলি লোড হতে একটা সমস্যা হয়েছে।"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"লোড হচ্ছে..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"নিরাপত্তা তথ্য"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"ব্যাটারি সেভার"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"স্বয়ংক্রিয়ভাবে চালু হবে"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"কখনও নয়"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s ব্যাটারি থাকলে"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g>ব্যাটারি আছে"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"প্রক্রিয়ার পরিসংখ্যান"</string>
<string name="process_stats_summary" msgid="109387941605607762">"চলমান প্রক্রিয়াগুলি গিকি পরিসংখ্যান"</string>
<string name="app_memory_use" msgid="7849258480392171939">"মেমরি ব্যবহৃত"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"রিং ভলিউম"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"বিজ্ঞপ্তির ভলিউম"</string>
<string name="ringtone_title" msgid="5379026328015343686">"ফোন রিংটোন"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"ডিফল্ট বিজ্ঞপ্তি শব্দ"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"ডিফল্ট অ্যালার্মের শব্দ"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"এছাড়াও কল এলে স্পন্দিত করুন"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"অন্যান্য শব্দগুলি"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ডায়াল প্যাডের টোনগুলি"</string>
@@ -2686,11 +2684,11 @@
<string name="notification_listener_disable_warning_summary" msgid="6738915379642948000">"যদি আপনি <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> এর জন্য বিজ্ঞপ্তির অ্যাক্সেস বন্ধ করেন, তাহলে \'বিরক্ত করবেন না\' এর অ্যাক্সেসও বন্ধ হয়ে যেতে পারে৷"</string>
<string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"বন্ধ করুন"</string>
<string name="notification_listener_disable_warning_cancel" msgid="8586417377104211584">"বাতিল করুন"</string>
- <string name="vr_listeners_title" msgid="1318901577754715777">"VR সহায়তাকারী পরিষেবাগুলি"</string>
+ <string name="vr_listeners_title" msgid="1318901577754715777">"(ভিআর)VR সহায়তাকারী পরিষেবাগুলি"</string>
<string name="no_vr_listeners" msgid="2689382881717507390">"vr সহায়তাকারী পরিষেবা হিসাবে চলার জন্য কোনো অ্যাপ্লিকেশান ইনস্টল করা নেই৷"</string>
- <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"<xliff:g id="SERVICE">%1$s</xliff:g> এর জন্য VR পরিষেবার অ্যাক্সেসের অনুমতি দেবেন?"</string>
+ <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"<xliff:g id="SERVICE">%1$s</xliff:g> এর জন্য (ভিআর)VR পরিষেবার অ্যাক্সেসের অনুমতি দেবেন?"</string>
<string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"ভার্চুয়াল রিয়েলিটি মোডে আপনি যখন অ্যাপ্লিকেশানগুলি ব্যবহার করবেন তখন <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> চালাতে পারবেন৷"</string>
- <string name="display_vr_pref_title" msgid="8104485269504335481">"যখন ডিভাইসটি VR মোডে থাকে"</string>
+ <string name="display_vr_pref_title" msgid="8104485269504335481">"যখন ডিভাইসটি (ভিআর)VR মোডে থাকে"</string>
<string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"অস্পষ্ট কমান (প্রস্তাবিত)"</string>
<string name="display_vr_pref_off" msgid="2190091757123260989">"ফ্লিকার কমান"</string>
<string name="manage_zen_access_title" msgid="2611116122628520522">"বিরক্ত করবেন না অ্যাক্সেস করুন"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"সাইন ইন করতে পারছেন না?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"সিস্টেমের তথ্য পাঠান"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"আর দেখাবেন না"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"এই রূপে অনুরোধ করা হচ্ছে"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"অ্যাকাউন্ট যোগ করুন"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"কর্মস্থলের প্রোফাইলের সেটিংস"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"পরিচিতির অনুসন্ধান"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"কলারদের এবং পরিচিতিগুলিকে চিহ্নিত করতে আপনার প্রতিষ্ঠান দ্বারা পরিচিতি অনুসন্ধানের অনুমতি দিন"</string>
@@ -3272,9 +3272,9 @@
<string name="ambient_display_pickup_summary" product="tablet" msgid="2442551819015699120">"আপনার বিজ্ঞপ্তিগুলিকে দ্রুত চেক করতে আপনার ট্যাবলেটটিকে হাতে তুলে নিন"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="2369325441608811599">"আপনার বিজ্ঞপ্তিগুলিকে দ্রুত চেক করতে আপনার ডিভাইসটিকে হাতে তুলে নিন"</string>
<string name="fingerprint_swipe_for_notifications_title" msgid="2750203868053669600">"বিজ্ঞপ্তিগুলির জন্য সোয়াইপ করুন"</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>
- <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="5372926094116306647">"আপনার বিজ্ঞপ্তিগুলি চেক করতে, আপনার ডিভাইসের পিছনে আঙ্গুলের ছাপ নেওয়ার সেন্সরে নীচের দিকে সোয়াইপ করুন৷"</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>
+ <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="5372926094116306647">"আপনার বিজ্ঞপ্তিগুলি চেক করতে, আপনার ডিভাইসের পিছনে আঙ্গুলের ছাপ নেওয়ার সেন্সরে নিচের দিকে সোয়াইপ করুন৷"</string>
<string name="gesture_setting_on" msgid="3455094265233870280">"চালু আছে"</string>
<string name="gesture_setting_off" msgid="5230169535435881894">"বন্ধ আছে"</string>
<string name="oem_unlock_enable_disabled_summary_bootloader_unlocked" msgid="4265541229765635629">"বুটলোডার ইতিমধ্যেই আনলক করা হয়েছে"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"অ্যাকাউন্টের ডেটা স্বতঃসিঙ্ক"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"ব্যক্তিগত অ্যাকাউন্টের ডেটা স্বতঃসিঙ্ক"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"কাজের অ্যাকাউন্টের ডেটা স্বতঃসিঙ্ক"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"অ্যাকাউন্ট সিঙ্ক"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"গোপনীয়তা"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"গোপনীয়তা"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"আপনার কর্মস্থলের ডেটাতে অ্যাক্সেস প্রদান করার জন্য, আপনার প্রতিষ্ঠান আপনার ডিভাইসের সেটিংস পরিবর্তন করতে এবং সফ্টওয়্যার ইনস্টল করতে পারে, যার ফলে আপনার ব্যক্তিগত কিছু সামগ্রী আপনার প্রশাসকের কাছে দৃশ্যমান হতে পারে৷ আরো বিশদ বিবরণের জন্য আপনার প্রতিষ্ঠানের প্রশাসকের সাথে যোগাযোগ করুন৷"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"আপনার প্রতিষ্ঠান কোন ধরনের তথ্য দেখতে পারে?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"\'কোন পরিবর্তনগুলি প্রভাব ফেলতে পারে\' বিষয়টিকে কি আপনার প্রতিষ্ঠান দেখতে পারে?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"এই ডিভাইসে আপনার অ্যাক্সেস করার ক্ষেত্রে কোন ক্রিয়াগুলি প্রভাব ফেলতে পারে?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ইমেল এবং ক্যালেন্ডারের মতো আপনার কর্মক্ষেত্রের অ্যাকাউন্টের সাথে যুক্ত ডেটা"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"আপনার ডিভাইসে থাকা সমস্ত অ্যাপের তালিকা"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">আপনার ডিভাইসে থাকা সমস্ত <xliff:g id="COUNT_1">%d</xliff:g>টি অ্যাপের তালিকা</item>
+ <item quantity="other">আপনার ডিভাইসে থাকা সমস্ত <xliff:g id="COUNT_1">%d</xliff:g>টি অ্যাপের তালিকা</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"আপনার ডিভাইসের প্রতিটি অ্যাপ্লিকেশানের (ডেটা ব্যবহারের সময় এবং পরিমাণ) ব্যবহার"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"আপনার ডিভাইসের ট্রাফিক লগ"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"আপনার সর্বশেষ ত্রুটির প্রতিবেদন"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"আপনার সর্বশেষ নিরাপত্তা লগ"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"কখনই নয়"</string>
</resources>
diff --git a/res/values-bs-rBA/arrays.xml b/res/values-bs-rBA/arrays.xml
index c3fcbbe..2185f2b 100644
--- a/res/values-bs-rBA/arrays.xml
+++ b/res/values-bs-rBA/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"uključi ekran"</item>
<item msgid="3253368931113490863">"pregledaj račune"</item>
<item msgid="780392378084812901">"radi u pozadini"</item>
+ <item msgid="2629748510881309577">"jačina zvuka za pristupačnost"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Lokacija"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Uključi ekran"</item>
<item msgid="5258373962467495905">"Pregledaj račune"</item>
<item msgid="334625385979270703">"Radi u pozadini"</item>
+ <item msgid="9039213578110332702">"Jačina zvuka za pristupačnost"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kratak"</item>
@@ -458,7 +460,7 @@
<item msgid="7438189122367820362">"Usluga (pokrenuta)"</item>
<item msgid="918687422516982498">"Usluga (ponovno pokretanje)"</item>
<item msgid="6807727069641853029">"Prijemnik"</item>
- <item msgid="6782857406100845127">"Početna stranica"</item>
+ <item msgid="6782857406100845127">"Kuća"</item>
<item msgid="2860945127596974299">"Posljednja aktivnost"</item>
<item msgid="8610560843693675830">"Keširana (aktivnost)"</item>
<item msgid="4338089220026248848">"Keširana (aktivnost klijenta)"</item>
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
index 24e9ab5..5d2157e 100644
--- a/res/values-bs-rBA/strings.xml
+++ b/res/values-bs-rBA/strings.xml
@@ -151,7 +151,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Dodirnite za povezivanje s uređajem \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Da li se želite povezati na \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Zahtjev za pristup imeniku"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s želi pristupiti vašim kontaktima i historiji poziva. Želite dozvoliti pristup za %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Uređaj <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi pristupiti vašim kontaktima i historiji poziva. Želite li odobriti pristup uređaju <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne pitaj ponovo"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne pitaj ponovo"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Zahtjev za pristup porukama"</string>
@@ -272,6 +272,7 @@
<string name="settings_label" msgid="1626402585530130914">"Postavke"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Postavke"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Prečica za postavke"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nije pronađena nijedna odgovarajuća aktivnost."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Način rada u avionu"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Više"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bežična veza i mreže"</string>
@@ -310,7 +311,7 @@
<string name="date_time_set_date_title" msgid="6928286765325608604">"Datum"</string>
<string name="date_time_set_date" msgid="7021491668550232105">"Postavi datum"</string>
<string name="zone_list_menu_sort_alphabetically" msgid="5683377702671088588">"Sortiraj po abecedi"</string>
- <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Sortiraj po vremenskim zonama"</string>
+ <string name="zone_list_menu_sort_by_timezone" msgid="2720190443744884114">"Poredaj po vremenskim zonama"</string>
<string name="date_picker_title" msgid="1338210036394128512">"Datum"</string>
<string name="time_picker_title" msgid="483460752287255019">"Vrijeme"</string>
<string name="lock_after_timeout" msgid="4590337686681194648">"Automatski zaključaj"</string>
@@ -886,7 +887,7 @@
<string name="wifi_calling_off_explanation" msgid="2597566001655908391">"Kada je opcija Wi-Fi pozivanje uključena, telefon može preusmjeravati pozive preko Wi-Fi mreža ili mreže vašeg operatera, u zavisnosti od toga kakve su vaše postavke i koji signal je jači. Prije nego što uključite ovu funkciju, provjerite sa svojim operaterom kakvi su troškovi i ostali detalji."</string>
<string name="emergency_address_title" msgid="3571902448699714454">"Ažuriraj adresu za hitne slučajeve"</string>
<string name="emergency_address_summary" msgid="306028701568728126">"Adresa koju hitna služba koristi kao vašu lokaciju ukoliko pozovete 911 (hitnu službu) koristeći Wi-Fi mrežu"</string>
- <string name="home_settings" msgid="212375129455718176">"Početna stranica"</string>
+ <string name="home_settings" msgid="212375129455718176">"Početna"</string>
<string name="display_settings_title" msgid="1708697328627382561">"Prikaz"</string>
<string name="sound_settings" msgid="5534671337768745343">"Zvuk"</string>
<string name="ringtone_summary" msgid="1688079785311826667">" "</string>
@@ -1311,7 +1312,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Želite li koristiti aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g> umjesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> za upravljanje mrežnim vezama?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Koristiti <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje vašim mrežnim vezama?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nepoznati SIM operater"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nema poznatu web-lokaciju za dodelu"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznatu web lokaciju za omogućavanje upotrebe"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Umetnite SIM karticu i ponovo pokrenite uređaj"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Povežite se na Internet"</string>
<string name="location_title" msgid="1029961368397484576">"Moja lokacija"</string>
@@ -1367,8 +1368,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Pružaoci satelitskih slika:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Ručno"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Došlo je do problema sa učitavanjem priručnika."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licence trećih strana"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Pojavio se problem s učitavanjem licenci."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Učitavanje…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Sigurnosne informacije"</string>
@@ -1490,8 +1490,8 @@
<string name="ask_compatibility" msgid="7225195569089607846">"Pitaj prilikom pokretanja"</string>
<string name="enable_compatibility" msgid="5806819252068617811">"Skaliraj aplikaciju"</string>
<string name="unknown" msgid="1592123443519355854">"Nepoznato"</string>
- <string name="sort_order_alpha" msgid="1410278099123670628">"Sortiraj po nazivu"</string>
- <string name="sort_order_size" msgid="7024513286636502362">"Sortiraj po veličini"</string>
+ <string name="sort_order_alpha" msgid="1410278099123670628">"Poredaj po nazivu"</string>
+ <string name="sort_order_size" msgid="7024513286636502362">"Poredaj po veličini"</string>
<string name="show_running_services" msgid="5736278767975544570">"Prikaži pokrenute usluge"</string>
<string name="show_background_processes" msgid="2009840211972293429">"Prikaži keširane procese"</string>
<string name="default_emergency_app" msgid="1951760659640369980">"Aplikacija za hitne situacije"</string>
@@ -1710,7 +1710,7 @@
<string name="battery_history_minutes_no_seconds" msgid="7780294302606853082">"<xliff:g id="MINUTES">%1$d</xliff:g> min"</string>
<string name="usage_stats_label" msgid="5890846333487083609">"Statistika korištenja"</string>
<string name="testing_usage_stats" msgid="7823048598893937339">"Statistika korištenja"</string>
- <string name="display_order_text" msgid="8592776965827565271">"Sortiraj po:"</string>
+ <string name="display_order_text" msgid="8592776965827565271">"Poredaj po:"</string>
<string name="app_name_label" msgid="5440362857006046193">"Aplikacija"</string>
<string name="last_time_used_label" msgid="8459441968795479307">"Posljednji put korišteno"</string>
<string name="usage_time_label" msgid="295954901452833058">"Vrijeme korištenja"</string>
@@ -1949,7 +1949,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Ušteda baterije"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automatsko uključivanje"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikad"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"kad je baterija na %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"na <xliff:g id="PERCENT">%1$s</xliff:g> baterije"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistika procesa"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Geeky statistike o pokrenutim procesima"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Iskorištena memorija"</string>
@@ -2628,10 +2628,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Jačina zvona"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Jačina zvuka za obavještenja"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Melodija zvona telefona"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Podrazumijevani zvuk obavještenja"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Zadani zvuk alarma"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibracija i za pozive"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Drugi zvukovi"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonovi tastature telefona"</string>
@@ -3009,8 +3007,8 @@
<string name="memory_details" msgid="5943436005716991782">"Detalji"</string>
<string name="memory_use_summary" msgid="5608257211903075754">"<xliff:g id="SIZE">%1$s</xliff:g> memorije korišteno u prosjeku u zadnja 3 sata"</string>
<string name="no_memory_use_summary" msgid="2016900536806235588">"Nikakva memorija se ne koristi u posljednja tri sata"</string>
- <string name="sort_avg_use" msgid="3998036180505143129">"Sortiraj po prosječnoj upotrebi"</string>
- <string name="sort_max_use" msgid="4629247978290075124">"Sortiraj po maksimalnom korištenju"</string>
+ <string name="sort_avg_use" msgid="3998036180505143129">"Poredaj po prosječnoj upotrebi"</string>
+ <string name="sort_max_use" msgid="4629247978290075124">"Poredaj po maksimalnom korištenju"</string>
<string name="memory_performance" msgid="5661005192284103281">"Performanse"</string>
<string name="total_memory" msgid="2017287600738630165">"Ukupno memorije"</string>
<string name="average_used" msgid="5338339266517245782">"Prosječna iskorištenost (%)"</string>
@@ -3255,6 +3253,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Ne možete se prijaviti?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Pošalji informacije o sistemu"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne prikazuj ponovo"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Tražite kao"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Dodaj račun"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Postavke radnog profila"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pretraživanje kontakata"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Dozvolite svojoj organizaciji da pretražuje kontakte kako bi identificirala pozivaoce i kontakte"</string>
@@ -3276,7 +3276,7 @@
<string name="support_estimated_wait_time" msgid="6523081420029378051">"Sačekajte ~<xliff:g id="ESTIMATE">%1$s</xliff:g>"</string>
<string name="bluetooth_talkback_computer" msgid="4875089335641234463">"Računar"</string>
<string name="bluetooth_talkback_headset" msgid="5140152177885220949">"Slušalice s mikrofonom"</string>
- <string name="bluetooth_talkback_phone" msgid="4260255181240622896">"Telefoniraj"</string>
+ <string name="bluetooth_talkback_phone" msgid="4260255181240622896">"Telefon"</string>
<string name="bluetooth_talkback_imaging" msgid="551146170554589119">"Snimanje"</string>
<string name="bluetooth_talkback_headphone" msgid="26580326066627664">"Slušalice"</string>
<string name="bluetooth_talkback_input_peripheral" msgid="5165842622743212268">"Ulazni periferni uređaj"</string>
@@ -3330,20 +3330,23 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Auto. sinhr. podataka o računu"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Auto. sinhr. lič. podat. rač."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Auto. sinhr. podat. posl. rač."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sinhronizacija računa"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatnost"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatnost"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Za pružanje pristupa vašim poslovnim podacima, vaša organizacija može promijeniti postavke i na vaš uređaj instalirati novi softver, zbog čeka će administrator moći vidjeti neki vaš lični sadržaj. Obratite se administratoru organizacije da saznate više pojedinosti."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Koje vrste informacija može vidjeti vaša organizacija?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Koje izmjene utiču na to šta vaša organizacija može vidjeti?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Koje aktivnosti mogu uticati na vaš pristup uređaju?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Podaci koji su povezani s vašim računom, kao što su e-pošta ili kalendar"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Spisak svih aplikacija na vašem uređaju"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Spisak sve <xliff:g id="COUNT_1">%d</xliff:g> aplikacije na uređaju</item>
+ <item quantity="few">Spisak sve <xliff:g id="COUNT_1">%d</xliff:g> aplikacije na uređaju</item>
+ <item quantity="other">Spisak svih <xliff:g id="COUNT_1">%d</xliff:g> aplikacija na uređaju</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Upotreba (provedeno vrijeme i iskorištena količina podataka) svake aplikacije na vašem uređaju"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Zapisnici o saobraćaju na vašem uređaju"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Vaš posljednji izvještaj o greškama"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Vaš najnoviji zapisnik o stanju sigurnosti"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikada"</string>
</resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index c8983a6..ce32bb6 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"activar la pantalla"</item>
<item msgid="3253368931113490863">"obtenir comptes"</item>
<item msgid="780392378084812901">"executar en segon pla"</item>
+ <item msgid="2629748510881309577">"volum d\'accessibilitat"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Ubicació"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Activar la pantalla"</item>
<item msgid="5258373962467495905">"Obtenir comptes"</item>
<item msgid="334625385979270703">"Executar en segon pla"</item>
+ <item msgid="9039213578110332702">"Volum d\'accessibilitat"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Curt"</item>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index cd8e422..637ff6c 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toca per connectar-te al dispositiu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Vols connectar-te a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Sol·licitud d\'accés a la llibreta de telèfons"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"A %1$s li agradaria accedir als teus contactes i a l\'historial de trucades. Vols donar accés a %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vol accedir als teus contactes i a l\'historial de trucades. Vols que <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> hi pugui accedir?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"No m\'ho tornis a preguntar"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"No m\'ho tornis a preguntar"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Sol·licitud d\'accés al missatge"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Configuració"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Configuració"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Drecera de configuració"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"No s\'ha trobat cap activitat coincident."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Mode d\'avió"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Més"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Connexions sense fil i xarxes"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Confirmes que vols fer servir <xliff:g id="NEW_APP">%1$s</xliff:g>, i no pas <xliff:g id="CURRENT_APP">%2$s</xliff:g>, per gestionar les connexions de la xarxa?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Vols fer servir <xliff:g id="NEW_APP">%s</xliff:g> per gestionar les connexions de la xarxa?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operador de SIM desconegut"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s no té cap lloc web d\'administració conegut"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> no té cap lloc web d\'administració conegut"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insereix la targeta SIM i reinicia"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Connecta a Internet"</string>
<string name="location_title" msgid="1029961368397484576">"La meva ubicació"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Proveïdors d\'imatges per satèl·lit:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"S\'ha produït un problema en carregar el manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Llicències de tercers"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"S\'ha produït un problema en llegir les llicències."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"S\'està carregant…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informació de seguretat"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Estalvi de bateria"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activa automàticament"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Mai"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"amb un %1$s de bateria"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"percentatge de bateria: <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Estadístiques sobre processos"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Estadístiques sobre els processos en execució"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Ús de la memòria"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volum del to"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volum de notificació"</string>
<string name="ringtone_title" msgid="5379026328015343686">"So de trucada"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"So de notificació predeterminat"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"So d\'alarma predeterminat"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibra també en trucades"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Altres sons"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tons del teclat"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"No pots iniciar la sessió?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Envia informació del sistema"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"No ho tornis a mostrar"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Sol·licitud en nom de:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Afegeix un compte"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Configuració del perfil professional"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Cerca de contactes"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permet que la teva organització cerqui contactes per identificar els remitents i els contactes"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sinc. aut. de dades del compte"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinc. aut. dades compte pers."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinc. aut. dades compte feina"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sincronització del compte"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privadesa"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privadesa"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Per poder proporcionar-te accés a les dades de la feina, és possible que la teva organització canviï la configuració i instal·li programari al dispositiu, la qual cosa podria permetre a l\'administrador veure el teu contingut personal. Contacta amb l\'administrador de l\'organització per obtenir més informació."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Quin tipus d\'informació pot veure la teva organització?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quins canvis afecten el que pot veure la teva organització?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quines accions poden afectar l\'accés al dispositiu?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dades associades al teu compte professional, com ara el correu electrònic i el calendari"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Llista de totes les aplicacions que hi ha al dispositiu"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Llista de les aplicacions que hi ha al dispositiu (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="one">Llista de l\'aplicació que hi ha al dispositiu (<xliff:g id="COUNT_0">%d</xliff:g>)</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Ús (temps dedicat i dades utilitzades) de cada aplicació que hi ha al dispositiu"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registres del trànsit al dispositiu"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Informe d\'errors més recent"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Registre de seguretat més recent"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Mai"</string>
</resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 1afc115..fe8b075 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"zapnout obrazovku"</item>
<item msgid="3253368931113490863">"načíst účty"</item>
<item msgid="780392378084812901">"spustit na pozadí"</item>
+ <item msgid="2629748510881309577">"hlasitost zvuků pro usnadnění přístupu"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Poloha"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Zapnout obrazovku"</item>
<item msgid="5258373962467495905">"Načíst účty"</item>
<item msgid="334625385979270703">"Spustit na pozadí"</item>
+ <item msgid="9039213578110332702">"Hlasitost zvuků pro usnadnění přístupu"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Krátká"</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 5aa641c..3818456 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -152,7 +152,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Klepnutím se připojíte k zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Chcete se připojit k zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Požadavek na přístup k telefonnímu seznamu"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Zařízení %1$s žádá o přístup k vašim kontaktům a historii hovorů. Povolit zařízení %2$s přístup?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Zařízení <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> chce získat přístup k vašim kontaktům a historii volání. Chcete zařízení <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> přístup udělit?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Příště se neptat"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Příště se neptat"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Požadavek na přístup ke zprávám"</string>
@@ -274,6 +274,7 @@
<string name="settings_label" msgid="1626402585530130914">"Nastavení"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Nastavení"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Zástupce nastavení"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nebyly nalezeny žádné odpovídající aktivity."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Režim Letadlo"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Další"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bezdrátová připojení a sítě"</string>
@@ -1321,7 +1322,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Chcete spravovat síťová připojení pomocí aplikace <xliff:g id="NEW_APP">%1$s</xliff:g> namísto aplikace <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Chcete spravovat síťová připojení pomocí aplikace <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operátor SIM karty není znám"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nemá žádný známý web pro správu účtů."</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Operátor <xliff:g id="OPERATOR">%1$s</xliff:g> nemá žádný známý web pro správu účtů"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Vložte SIM kartu a restartujte zařízení."</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Připojte se prosím k internetu."</string>
<string name="location_title" msgid="1029961368397484576">"Moje poloha"</string>
@@ -1377,8 +1378,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Poskytovatelé satelitních snímků:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Příručka"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Při načítání příručky došlo k chybě."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licence třetích stran"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Při načítání licencí došlo k chybě."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Načítání..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Bezpečnostní informace"</string>
@@ -1966,7 +1966,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Spořič baterie"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Zapnout automaticky"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikdy"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s baterie"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"při <xliff:g id="PERCENT">%1$s</xliff:g> baterie"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistiky procesů"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Podrobné statistiky běžících procesů"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Využití paměti"</string>
@@ -2650,10 +2650,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Hlasitost vyzvánění"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Hlasitost oznámení"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Vyzváněcí tón telefonu"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Výchozí zvuk oznámení"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Výchozí zvuk budíku"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"U hovorů také vibrovat"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Ostatní zvuky"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tóny číselníku"</string>
@@ -3287,6 +3285,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Nemůžete se přihlásit?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Odeslání systémových informací"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Příště již nezobrazovat"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Žádost bude odeslána pomocí účtu"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Přidat účet"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Nastavení pracovního profilu"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Vyhledávání kontaktů"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Povolit vyhledávání kontaktů organizací za účelem identifikace volajících a kontaktů"</string>
@@ -3365,20 +3365,24 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Aut. synchronizovat data účtu"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Aut. synch. data osobního účtu"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Aut. synch. data prac. účtu"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Synchronizace účtů"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Ochrana soukromí"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Ochrana soukromí"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Za účelem zpřístupnění pracovních dat vám organizace může změnit nastavení a nainstalovat do zařízení software. To může způsobit, že část vašeho soukromého obsahu bude moci zobrazit administrátor. Další informace vám poskytne administrátor organizace."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Jaké typy informací vaše organizace vidí?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Které změny mají vliv na to, co vaše organizace vidí?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Jaké akce mohou mít dopad na váš přístup k tomuto zařízení?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data přidružená k vašemu pracovnímu účtu, jako je například e-mail a kalendář"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Seznam všech aplikací v zařízení"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="few">Seznam všech <xliff:g id="COUNT_1">%d</xliff:g> aplikací v zařízení</item>
+ <item quantity="many">Seznam všech <xliff:g id="COUNT_1">%d</xliff:g> aplikace v zařízení</item>
+ <item quantity="other">Seznam všech <xliff:g id="COUNT_1">%d</xliff:g> aplikací v zařízení</item>
+ <item quantity="one">Seznam všech <xliff:g id="COUNT_0">%d</xliff:g> aplikací v zařízení</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Využití jednotlivých aplikací v zařízení (doba používání a množství využitých dat)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Protokoly provozu v zařízení"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Vaše nejnovější zpráva o chybě"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Váš nejnovější protokol zabezpečení"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikdy"</string>
</resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 497d0df..5890c06 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"tænd skærmen"</item>
<item msgid="3253368931113490863">"hent konti"</item>
<item msgid="780392378084812901">"kør i baggrunden"</item>
+ <item msgid="2629748510881309577">"lydstyrke for hjælpefunktioner"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Placering"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Tænd skærmen"</item>
<item msgid="5258373962467495905">"Hent konti"</item>
<item msgid="334625385979270703">"Kør i baggrunden"</item>
+ <item msgid="9039213578110332702">"Lydstyrke for hjælpefunktioner"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kort"</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 231da4a..61e4dfe 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tryk for at oprette forbindelse til \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Ønsker du at oprette forbindelse til \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Anmodning om adgang til telefonbog"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s vil gerne have adgang til dine kontaktpersoner og opkaldsoversigt. Vil du give %2$s adgang?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> anmoder om adgang til dine kontaktpersoner og din opkaldshistorik. Vil du give <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> adgang?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Spørg ikke igen"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Spørg ikke igen"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Anmodning om adgang til meddelelse"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Indstillinger"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Indstillinger"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Genvej til Indstillinger"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Der blev ikke fundet nogen matchende aktiviteter."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Flytilstand"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Mere"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Trådløs og netværk"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Vil du bruge <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> til at administrere dine netværksforbindelser?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Vil du bruge <xliff:g id="NEW_APP">%s</xliff:g> til at administrere dine netværksforbindelser?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"SIM fra ukendt mobilselskab"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s har intet kendt website til provisionering"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> har intet kendt website til levering"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Indsæt SIM-kort, og genstart"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Opret forbindelse til internettet"</string>
<string name="location_title" msgid="1029961368397484576">"Min placering"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Leverandører af satellitbilleder:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Brugervejledning"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Der er problemer med at indlæse brugervejledningen."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Tredjepartslicenser"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Der er problemer med at indlæse licenserne."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Indlæser..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Sikkerhedsoplysninger"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Batterisparefunktion"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Slå automatisk til"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Aldrig"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ved %1$s batteri"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ved batteriniveau på <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Processtatistikker"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Nørdede statistikker om kørende processer"</string>
<string name="app_memory_use" msgid="7849258480392171939">"hukommelse brugt"</string>
@@ -1942,7 +1942,7 @@
<string name="process_stats_type_foreground" msgid="7713118254089580536">"Forgrund"</string>
<string name="process_stats_type_cached" msgid="6314925846944806511">"Cachelagret"</string>
<string name="process_stats_os_label" msgid="4813434110442733392">"Android OS"</string>
- <string name="process_stats_os_native" msgid="5322428494231768472">"Indbygget"</string>
+ <string name="process_stats_os_native" msgid="5322428494231768472">"Native"</string>
<string name="process_stats_os_kernel" msgid="1938523592369780924">"Kerne"</string>
<string name="process_stats_os_zram" msgid="677138324651671575">"Z-Ram"</string>
<string name="process_stats_os_cache" msgid="6432533624875078233">"Cacher"</string>
@@ -1956,7 +1956,7 @@
<string name="mem_state_subtitle" msgid="2407238869781011933">"Hukommelsestilstande"</string>
<string name="mem_use_subtitle" msgid="7319468770222422412">"Anvendt hukommelse"</string>
<string name="mem_use_kernel_type" msgid="8698327165935012484">"Kerne"</string>
- <string name="mem_use_native_type" msgid="5976704902328347400">"Indbygget"</string>
+ <string name="mem_use_native_type" msgid="5976704902328347400">"Native"</string>
<string name="mem_use_kernel_cache_type" msgid="6411475064463957513">"Kernecacher"</string>
<string name="mem_use_zram_type" msgid="9087217476795358232">"ZRam-udskiftning"</string>
<string name="mem_use_free_type" msgid="717708548454880840">"Tilgængelig"</string>
@@ -2417,7 +2417,7 @@
<string name="user_enable_calling_confirm_message" msgid="8061594235219352787">"Opkaldshistorikken deles med denne bruger."</string>
<string name="user_enable_calling_and_sms_confirm_title" msgid="7243308401401932681">"Vil du aktivere telefonopkald og sms?"</string>
<string name="user_enable_calling_and_sms_confirm_message" msgid="4025082715546544967">"Opkalds- og sms-historikken deles med denne bruger."</string>
- <string name="emergency_info_title" msgid="208607506217060337">"Oplysninger om nødopkald"</string>
+ <string name="emergency_info_title" msgid="208607506217060337">"Oplysninger i nødsituationer"</string>
<string name="application_restrictions" msgid="8207332020898004394">"Tillad apps og indhold"</string>
<string name="apps_with_restrictions_header" msgid="3660449891478534440">"Applikationer med begrænsninger"</string>
<string name="apps_with_restrictions_settings_button" msgid="3841347287916635821">"Udvid indstillingerne for applikationen"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Lydstyrke for ringetone"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Lydstyrke for underretninger"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Ringetone ved opkald"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Standardlyd for underretninger"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standardlyd for alarmer"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrer også ved opkald"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Andre lyde"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Toner for numerisk tastatur"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Kan du ikke logge ind?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Send systemoplysninger"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Vis ikke igen"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Anmoder som"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Tilføj konto"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Indstillinger for arbejdsprofil"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Søgning efter kontaktpersoner"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Tillad søgninger efter kontaktpersoner efter din organisation for at identificere kontaktpersoner og personer, der ringer"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Automatisk synk. af kontodata"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Aut. synk. af data på personlig konto"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Aut. synk. af arbejdskontodata"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Kontosynkronisering"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatliv"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatliv"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Din organisation kan ændre indstillinger og installere software på din enhed for at give adgang til dine arbejdsdata. Dette kan medføre, at noget af dit indhold er synligt for administratoren. Kontakt organisationens administrator for at få flere oplysninger."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Hvilken slags oplysninger kan din organisation se?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Hvilke ændringer påvirker, hvad din organisation kan se?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Hvilke handlinger kan påvirke din adgang til denne enhed?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data, der er tilknyttet din arbejdskonto, f.eks. e-mail og kalender"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Liste over alle apps på din enhed"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">En liste med <xliff:g id="COUNT_1">%d</xliff:g> app på din enhed</item>
+ <item quantity="other">En liste med alle <xliff:g id="COUNT_1">%d</xliff:g> apps på din enhed</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Brug (tids- og dataforbrug) af hver app på din enhed"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Logfiler med trafik på din enhed"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Din seneste fejlrapport"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Din seneste sikkerhedslogfil"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Aldrig"</string>
</resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index ae1e71b..81a7980 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"Display aktivieren"</item>
<item msgid="3253368931113490863">"Konten erstellen"</item>
<item msgid="780392378084812901">"Im Hintergrund ausführen"</item>
+ <item msgid="2629748510881309577">"Laustärke der Bedienungshilfen"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Standort"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Display aktivieren"</item>
<item msgid="5258373962467495905">"Konten erstellen"</item>
<item msgid="334625385979270703">"Im Hintergrund ausführen"</item>
+ <item msgid="9039213578110332702">"Laustärke der Bedienungshilfen"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kurz"</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index d2e374c..42e708b 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -149,7 +149,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Zum Verbinden mit \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" tippen."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Möchtest du eine Verbindung mit \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" herstellen?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Anforderung für Telefonbuchzugriff"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s möchte auf deine Kontakte und deine Anrufliste zugreifen. Möchtest du %2$s den Zugriff erlauben?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> fordert Zugriff auf deine Kontakte und Anrufliste an. Möchtest du <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> Zugriff gewähren?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Nicht mehr fragen"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Nicht mehr fragen"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Anforderung für Nachrichtenzugriff"</string>
@@ -269,6 +269,7 @@
<string name="settings_label" msgid="1626402585530130914">"Einstellungen"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Einstellungen"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Einstellungsverknüpfung"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Keine passenden Aktivitäten gefunden."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Flugmodus"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Mehr"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Drahtlos & Netzwerke"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"<xliff:g id="NEW_APP">%1$s</xliff:g> statt <xliff:g id="CURRENT_APP">%2$s</xliff:g> zur Verwaltung von Netzwerkverbindungen nutzen?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"<xliff:g id="NEW_APP">%s</xliff:g> zur Verwaltung von Netzwerkverbindungen nutzen?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Unbekannter SIM-Anbieter"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Keine Bereitstellungs-Website für %1$s bekannt"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> hat keine bekannte Bereitstellungswebsite"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Lege die SIM ein und starte das Gerät neu."</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Bitte stelle eine Verbindung zum Internet her."</string>
<string name="location_title" msgid="1029961368397484576">"Mein Standort"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satellitenbilder bereitgestellt von:\n© 2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Handbuch"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Problem beim Laden des Handbuchs."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Drittlizenzen"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Beim Laden der Lizenzen ist ein Problem aufgetreten."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Wird geladen..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Sicherheitsinformationen"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Energiesparmodus"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automatisch aktivieren"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nie"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"bei Akku von %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"bei <xliff:g id="PERCENT">%1$s</xliff:g> Akku"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Prozessstatistiken"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistiken zu laufenden Prozessen"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Speichernutzung"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Klingeltonlautstärke"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Benachrichtigungslautstärke"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Klingelton"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Standardbenachrichtigungston"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standard-Weckerton"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Bei Anrufen auch vibrieren"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Andere Töne"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Wähltastentöne"</string>
@@ -3225,6 +3223,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Anmeldung nicht möglich?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Systeminformationen senden"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Nicht noch einmal anzeigen"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Anfrage senden als"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Konto hinzufügen"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Einstellungen für Arbeitsprofil"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Suche nach Kontakten"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Suche nach Kontakten durch deine Organisation erlauben, um Anrufer und Kontakte zu identifizieren"</string>
@@ -3297,20 +3297,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Kontodaten autom. synchronisieren"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Daten des privaten Kontos autom. synchronisieren"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Daten des Arbeitskontos autom. synchronisieren"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Kontosynchronisierung"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Datenschutz"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Datenschutz"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Um Zugriff auf deine geschäftlichen Daten zu gewähren, kann deine Organisation Einstellungen ändern und Software auf deinem Gerät installieren. Dadurch können private Inhalte von dir für deinen Administrator sichtbar sein. Weitere Informationen erhältst du beim Administrator deiner Organisation."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Welche Art von Informationen kann deine Organisation sehen?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Welche Änderungen beeinflussen, was ihr sehen könnt?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Welche Aktionen beeinflussen den Zugriff auf dieses Gerät?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Daten zu deinem Arbeitskonto, etwa E-Mail und Kalender"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Liste aller Apps auf deinem Gerät"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Liste aller <xliff:g id="COUNT_1">%d</xliff:g> Apps auf deinem Gerät</item>
+ <item quantity="one">Liste der <xliff:g id="COUNT_0">%d</xliff:g> App auf deinem Gerät</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Nutzungsdaten für jede App auf deinem Gerät (Nutzungsdauer und genutzte Datenmenge)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Zugriffsprotokolle auf deinem Gerät"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Dein neuester Fehlerbericht"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Dein neuestes Sicherheitsprotokoll"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nie"</string>
</resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 28c8d74..bb6c6e4 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ενεργοποίηση οθόνης"</item>
<item msgid="3253368931113490863">"λήψη λογαριασμών"</item>
<item msgid="780392378084812901">"εκτέλεση στο παρασκήνιο"</item>
+ <item msgid="2629748510881309577">"ένταση ήχου προσβασιμότητας"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Τοποθεσία"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Ενεργοποίηση οθόνης"</item>
<item msgid="5258373962467495905">"Λήψη λογαριασμών"</item>
<item msgid="334625385979270703">"Εκτέλεση στο παρασκήνιο"</item>
+ <item msgid="9039213578110332702">"Ένταση ήχου προσβασιμότητας"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Σύντομο"</item>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index c9b0884..99345ad 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Πατήστε για να συνδεθείτε στη συσκευή \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Θέλετε να συνδεθείτε στο \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\";"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Αίτημα πρόσβασης στον τηλεφωνικό κατάλογο"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Το %1$s ζητά πρόσβαση στις επαφές και στο ιστορικό κλήσεών σας. Να εκχωρηθεί πρόσβαση στο %2$s;"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Η συσκευή <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> επιθυμεί να αποκτήσει πρόσβαση στις επαφές και στο ιστορικό κλήσεων. Θέλετε να παραχωρήσετε πρόσβαση στη συσκευή <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>;"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Να μην ερωτηθώ ξανά"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Να μην ερωτηθώ ξανά"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Αίτημα πρόσβασης στο μήνυμα"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Ρυθμίσεις"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Ρυθμίσεις"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Συντόμευση ρυθμίσεων"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Δεν βρέθηκαν δραστηριότητες οι οποίες να συμφωνούν με τα κριτήρια."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Λειτουργία πτήσης"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Περισσότερα"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Ασύρματο και δίκτυα"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Χρήση της εφαρμογής <xliff:g id="NEW_APP">%1$s</xliff:g> αντί για την εφαρμογή <xliff:g id="CURRENT_APP">%2$s</xliff:g> για τη διαχείριση των συνδέσεων δικτύου σας;"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Χρήση της εφαρμογής <xliff:g id="NEW_APP">%s</xliff:g> για τη διαχείριση των συνδέσεων δικτύου σας;"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Κάρτα SIM άγνωστης εταιρείας κινητής τηλεφωνίας"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s δεν διαθέτει γνωστό ιστότοπο παροχής"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Ο τελεστής <xliff:g id="OPERATOR">%1$s</xliff:g> δεν διαθέτει γνωστό ιστότοπο παροχής"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Εισαγάγετε την κάρτα SIM και κάντε επανεκκίνηση"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Συνδεθείτε στο διαδίκτυο"</string>
<string name="location_title" msgid="1029961368397484576">"Η τοποθεσία μου"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Πηγές δορυφορικών εικόνων:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Εγχειρίδιο χρήσης"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Παρουσιάστηκε κάποιο πρόβλημα κατά τη φόρτωση του εγχειριδίου χρήσης."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Άδειες τρίτου μέρους"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Παρουσιάστηκε ένα πρόβλημα κατά τη φόρτωση των αδειών."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Φόρτωση..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Πληροφορίες ασφάλειας"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Εξοικ/ση μπαταρίας"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Αυτόματη ενεργοποίηση"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Ποτέ"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Μπαταρία %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"στο <xliff:g id="PERCENT">%1$s</xliff:g> της μπαταρίας"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Στατιστικά στοιχεία διαδικασίας"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Χρήσιμα στατιστικά στοιχεία σχετικά με τις εκτελούμενες διαδικασίες"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Χρήση μνήμης"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ένταση ήχου κλήσης"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Ένταση ήχου ειδοποίησης"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Ήχος κλήσης τηλεφώνου"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Προεπιλεγμ. ήχος ειδοποίησης"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Προεπιλεγμ. ήχος ξυπνητηριού"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Δόνηση στις κλήσεις"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Άλλοι ήχοι"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Ήχοι πληκτρολογίου κλήσης"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Δεν μπορείτε να συνδεθείτε;"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Αποστολή πληροφοριών συστήματος"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Να μην εμφανιστεί ξανά"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Αίτημα ως"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Προσθήκη λογαριασμού"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Ρυθμίσεις προφίλ εργασίας"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Αναζήτηση επαφών"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Επιτρέψτε τις αναζητήσεις επαφών από τον οργανισμό σας, για την αναγνώριση καλούντων και επαφών"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Αυτ. συγχρ. δεδομένων λογαρ."</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Αυτ. συγχρ. δεδομ. πρ. λογαρ."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Αυτ. συγχρ. δεδ. λογαρ. εργ."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Συγχρονισμός λογαριασμού"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Απόρρητο"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Απόρρητο"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Προκειμένου να παρέχει πρόσβαση στα δεδομένα εργασίας σας, ο οργανισμός σας μπορεί να αλλάζει τις ρυθμίσεις και να εγκαθιστά λογισμικό στη συσκευή σας, πράγμα το οποίο θα μπορούσε να καταστήσει τμήμα του προσωπικού περιεχομένου σας ορατό στον διαχειριστή σας. Για περισσότερες λεπτομέρειες, επικοινωνήστε με τον διαχειριστή του οργανισμού σας."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Τι τύπους πληροφοριών μπορεί να δει ο οργανισμός σας;"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Αλλαγές που επηρεάζουν τα δεδομένα που βλέπει ο οργανισμός"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Ενέργειες που μπορεί να επηρεάσουν την πρόσβαση στη συσκευή"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Δεδομένα που σχετίζονται με τον λογαριασμό εργασίας σας, όπως ηλεκτρονικό ταχυδρομείο και ημερολόγιο"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Λίστα όλων των εφαρμογών που έχουν εγκατασταθεί στη συσκευή σας"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Λίστα και των <xliff:g id="COUNT_1">%d</xliff:g> εφαρμογών που είναι εγκατεστημένες στη συσκευή σας</item>
+ <item quantity="one">Λίστα και της <xliff:g id="COUNT_0">%d</xliff:g> εφαρμογής που είναι εγκατεστημένη στη συσκευή σας</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Χρήση (χρόνος που αφιερώθηκε και όγκος δεδομένων που χρησιμοποιήθηκε) κάθε εφαρμογής στη συσκευή σας"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Αρχεία καταγραφής επισκεψιμότητας στη συσκευή σας"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Η πιο πρόσφατη αναφορά σφάλματος που υποβάλατε"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Το πιο πρόσφατο αρχείο καταγραφής ασφαλείας"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Ποτέ"</string>
</resources>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index e0085e7..43ce2b0 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"turn on screen"</item>
<item msgid="3253368931113490863">"get accounts"</item>
<item msgid="780392378084812901">"run in background"</item>
+ <item msgid="2629748510881309577">"accessibility volume"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Location"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Turn on screen"</item>
<item msgid="5258373962467495905">"Get accounts"</item>
<item msgid="334625385979270703">"Run in background"</item>
+ <item msgid="9039213578110332702">"Accessibility volume"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Short"</item>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index ad7fff5..bbce212 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tap to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Do you want to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Phone book access request"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s wants to access your contacts and call history. Give access to %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Don\'t ask again"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Don\'t ask again"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Message access request"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Settings"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Settings"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Settings shortcut"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"No matching activities found."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Aeroplane mode"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"More"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless & networks"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> to manage your network connections?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Unknown SIM operator"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s has no known provisioning website"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Please insert SIM card and restart"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Please connect to the internet"</string>
<string name="location_title" msgid="1029961368397484576">"My Location"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satellite imagery providers:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"There is a problem loading the manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Third-party licences"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"There is a problem loading the licences."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Loading…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Safety information"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Battery saver"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Turn on automatically"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Never"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"at %1$s battery"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"at <xliff:g id="PERCENT">%1$s</xliff:g> battery"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Process Stats"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Geeky stats about running processes"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Memory use"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Notification volume"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Phone ringtone"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Default notification sound"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Default alarm sound"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Also vibrate for calls"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Other sounds"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Dial pad tones"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Can\'t sign in?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Send system information"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Do not show this again"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Requesting as"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Add account"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Work profile settings"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Contact search"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Allow contact searches by your organisation to identify callers and contacts"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Auto-sync account data"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Auto-sync personal account data"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Auto-sync work account data"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Account sync"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"To provide access to your work data, your organisation may change settings and install software on your device, which could cause some of your personal content to be visible to your admin. Contact your organisation\'s admin for more details."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"What types of information can your organisation see?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"What changes affect what your organisation can see?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"What actions may impact your access to this device?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data associated with your work account, such as email and calendar"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"List of all apps on your device"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">List of all <xliff:g id="COUNT_1">%d</xliff:g> apps on your device</item>
+ <item quantity="one">List of all <xliff:g id="COUNT_0">%d</xliff:g> app on your device</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Usage (time spent and amount of data used) of each app on your device"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Traffic logs on your device"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Your most recent bug report"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Your most recent security log"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Never"</string>
</resources>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index e0085e7..43ce2b0 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"turn on screen"</item>
<item msgid="3253368931113490863">"get accounts"</item>
<item msgid="780392378084812901">"run in background"</item>
+ <item msgid="2629748510881309577">"accessibility volume"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Location"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Turn on screen"</item>
<item msgid="5258373962467495905">"Get accounts"</item>
<item msgid="334625385979270703">"Run in background"</item>
+ <item msgid="9039213578110332702">"Accessibility volume"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Short"</item>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 0f5d59f..0dff880 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tap to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Do you want to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Phone book access request"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s wants to access your contacts and call history. Give access to %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Don\'t ask again"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Don\'t ask again"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Message access request"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Settings"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Settings"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Settings shortcut"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"No matching activities found."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Aeroplane mode"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"More"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless & networks"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> to manage your network connections?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Unknown SIM operator"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s has no known provisioning website"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Please insert SIM card and restart"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Please connect to the internet"</string>
<string name="location_title" msgid="1029961368397484576">"My Location"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satellite imagery providers:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"There is a problem loading the manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Third-party licences"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"There is a problem loading the licences."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Loading…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Safety information"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Battery saver"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Turn on automatically"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Never"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"at %1$s battery"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"at <xliff:g id="PERCENT">%1$s</xliff:g> battery"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Process Stats"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Geeky stats about running processes"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Memory use"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Notification volume"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Phone ringtone"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Default notification sound"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Default alarm sound"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Also vibrate for calls"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Other sounds"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Dial pad tones"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Can\'t sign in?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Send system information"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Do not show this again"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Requesting as"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Add account"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Work profile settings"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Contact search"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Allow contact searches by your organisation to identify callers and contacts"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Auto-sync account data"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Auto-sync personal account data"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Auto-sync work account data"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Account sync"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"To provide access to your work data, your organisation may change settings and install software on your device, which could cause some of your personal content to be visible to your admin. Contact your organisation\'s admin for more details."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"What types of information can your organisation see?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"What changes affect what your organisation can see?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"What actions may impact your access to this device?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data associated with your work account, such as email and calendar"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"List of all apps on your device"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">List of all <xliff:g id="COUNT_1">%d</xliff:g> apps on your device</item>
+ <item quantity="one">List of all <xliff:g id="COUNT_0">%d</xliff:g> app on your device</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Usage (time spent and amount of data used) of each app on your device"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Traffic logs on your device"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Your most recent bug report"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Your most recent security log"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Never"</string>
</resources>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index e0085e7..43ce2b0 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"turn on screen"</item>
<item msgid="3253368931113490863">"get accounts"</item>
<item msgid="780392378084812901">"run in background"</item>
+ <item msgid="2629748510881309577">"accessibility volume"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Location"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Turn on screen"</item>
<item msgid="5258373962467495905">"Get accounts"</item>
<item msgid="334625385979270703">"Run in background"</item>
+ <item msgid="9039213578110332702">"Accessibility volume"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Short"</item>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 0f5d59f..0dff880 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tap to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Do you want to connect to \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Phone book access request"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s wants to access your contacts and call history. Give access to %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Don\'t ask again"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Don\'t ask again"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Message access request"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Settings"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Settings"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Settings shortcut"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"No matching activities found."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Aeroplane mode"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"More"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless & networks"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> to manage your network connections?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Unknown SIM operator"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s has no known provisioning website"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Please insert SIM card and restart"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Please connect to the internet"</string>
<string name="location_title" msgid="1029961368397484576">"My Location"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satellite imagery providers:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"There is a problem loading the manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Third-party licences"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"There is a problem loading the licences."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Loading…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Safety information"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Battery saver"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Turn on automatically"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Never"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"at %1$s battery"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"at <xliff:g id="PERCENT">%1$s</xliff:g> battery"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Process Stats"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Geeky stats about running processes"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Memory use"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Notification volume"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Phone ringtone"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Default notification sound"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Default alarm sound"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Also vibrate for calls"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Other sounds"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Dial pad tones"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Can\'t sign in?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Send system information"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Do not show this again"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Requesting as"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Add account"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Work profile settings"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Contact search"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Allow contact searches by your organisation to identify callers and contacts"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Auto-sync account data"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Auto-sync personal account data"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Auto-sync work account data"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Account sync"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"To provide access to your work data, your organisation may change settings and install software on your device, which could cause some of your personal content to be visible to your admin. Contact your organisation\'s admin for more details."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"What types of information can your organisation see?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"What changes affect what your organisation can see?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"What actions may impact your access to this device?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data associated with your work account, such as email and calendar"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"List of all apps on your device"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">List of all <xliff:g id="COUNT_1">%d</xliff:g> apps on your device</item>
+ <item quantity="one">List of all <xliff:g id="COUNT_0">%d</xliff:g> app on your device</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Usage (time spent and amount of data used) of each app on your device"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Traffic logs on your device"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Your most recent bug report"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Your most recent security log"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Never"</string>
</resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 7d12d4a..46cf16a 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"encender pantalla"</item>
<item msgid="3253368931113490863">"obtener cuentas"</item>
<item msgid="780392378084812901">"ejecutar en segundo plano"</item>
+ <item msgid="2629748510881309577">"volumen de accesibilidad"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Ubicación"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Encender pantalla"</item>
<item msgid="5258373962467495905">"Obtener cuentas"</item>
<item msgid="334625385979270703">"Ejecutar en segundo plano"</item>
+ <item msgid="9039213578110332702">"Volumen de accesibilidad"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Corto"</item>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index abd972a..ef08313 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Presiona para conectarte a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"¿Deseas conectarte a “<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitud de acceso a agenda telefónica"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s desea acceder a tus contactos y a tu historial de llamadas. ¿Deseas darle acceso a %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> quiere acceder a tu historial de llamadas y tus contactos. ¿Quieres otorgar acceso a <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"No volver a preguntar"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"No volver a preguntar"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitud de acceso a mensajes"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Configuración"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Configuración"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Configuración"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"No se encontraron actividades coincidentes."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Modo avión"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Más"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Conexiones inalámbricas y redes"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"¿Deseas usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para administrar tus conexiones de red?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"¿Deseas usar <xliff:g id="NEW_APP">%s</xliff:g> para administrar tus conexiones de red?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operador SIM desconocido"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s no tiene ningún sitio de aprovisionamiento."</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> no tiene ningún sitio web de aprovisionamiento"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Inserta la tarjeta SIM y reinicia."</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Conéctate a Internet."</string>
<string name="location_title" msgid="1029961368397484576">"Mi ubicación"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Proveedores de imágenes satelitales:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Se produjo un error al cargar el manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licencias de terceros"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Hay un problema para cargar las licencias."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Cargando…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Información de seguridad"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Ahorro de batería"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activar automáticamente"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"con un %1$s de batería"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"con <xliff:g id="PERCENT">%1$s</xliff:g> de batería"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Estadísticas de procesos"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Estadísticas para geeks sobre procesos activos"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Uso de memoria"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volumen de tono"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volumen de notificación"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Tono de llamada"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Sonido predeterminado"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Alarma: sonido predeterminado"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrar también en llamadas"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Otros sonidos"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonos del teclado"</string>
@@ -3221,6 +3219,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"¿No puedes acceder?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar información del sistema"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"No volver a mostrar"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitando como"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Agregar cuenta"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Configuración del perfil de trabajo"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Búsqueda de contactos"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir que tu organización busque contactos para identificar a emisores y contactos"</string>
@@ -3293,20 +3293,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sincronizar datos de la cuenta automáticamente"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sincronizar datos de la cuenta personal automáticamente"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sincronizar datos de la cuenta de trabajo automáticamente"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sincronización de la cuenta"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidad"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidad"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Para brindar acceso a tus datos de trabajo, es posible que tu organización cambie algunas opciones de configuración y también instale software en tu dispositivo, lo que podría causar que el administrador vea parte de tu contenido. Para obtener más información, comunícate con el administrador de tu organización."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"¿Qué tipo de información puede ver tu organización?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"¿Qué cambios afectan lo que puede ver tu organización?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"¿Qué acciones pueden afectar el acceso a este dispositivo?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Datos asociados a tu cuenta de trabajo, como el correo electrónico y el calendario"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista con todas las apps en tu dispositivo"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Lista con <xliff:g id="COUNT_1">%d</xliff:g> apps en tu dispositivo</item>
+ <item quantity="one">Lista con <xliff:g id="COUNT_0">%d</xliff:g> app en tu dispositivo</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uso (tiempo empleado y cantidad de datos usados) de cada app del dispositivo"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registros de tráfico en tu dispositivo"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Tu informe de errores más reciente"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Tu registro de seguridad más reciente"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
</resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index f396667..6ea68ee 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"activar pantalla"</item>
<item msgid="3253368931113490863">"obtener cuentas"</item>
<item msgid="780392378084812901">"ejecutar en segundo plano"</item>
+ <item msgid="2629748510881309577">"volumen de accesibilidad"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Ubicación"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Activar pantalla"</item>
<item msgid="5258373962467495905">"Obtener cuentas"</item>
<item msgid="334625385979270703">"Ejecutar en segundo plano"</item>
+ <item msgid="9039213578110332702">"Volumen de accesibilidad"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Breve"</item>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index adcc8e4..b6bf476 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toca para establecer conexión con \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"¿Quieres conectarte a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitud de acceso a agenda teléfonica"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s quiere acceder a tus contactos y a tu historial de llamadas. ¿Quieres permitir el acceso a %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> quiere acceder a los contactos y al historial de llamadas. ¿Quieres conceder acceso a <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"No volver a preguntar"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"No volver a preguntar"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitud de acceso a mensajes"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Ajustes"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Ajustes"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Acceso a Ajustes"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"No se ha encontrado ninguna actividad que coincida."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Modo avión"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Más"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Conexiones inalámbricas y redes"</string>
@@ -554,7 +555,7 @@
<string name="lockpattern_tutorial_cancel_label" msgid="6431583477570493261">"Cancelar"</string>
<string name="lockpattern_tutorial_continue_label" msgid="3559793618653400434">"Siguiente"</string>
<string name="lock_setup" msgid="3355847066343753943">"Se ha completado la configuración."</string>
- <string name="device_admin_title" msgid="3562216873644263804">"Administración de dispositivos"</string>
+ <string name="device_admin_title" msgid="3562216873644263804">"Administración del dispositivo"</string>
<string name="manage_device_admin" msgid="5059296715271077278">"Administradores de dispositivos"</string>
<string name="manage_device_admin_summary" msgid="7672709110988761075">"Ver o desactivar administradores de dispositivos"</string>
<string name="manage_trust_agents" msgid="4629279457536987768">"Agentes de confianza"</string>
@@ -1295,11 +1296,11 @@
<string name="sms_change_default_dialog_title" msgid="1958688831875804286">"¿Cambiar aplicación de SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="1522783933230274787">"¿Usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como aplicación de SMS?"</string>
<string name="sms_change_default_no_previous_dialog_text" msgid="602683880284921998">"¿Usar <xliff:g id="NEW_APP">%s</xliff:g> como aplicación de SMS?"</string>
- <string name="network_scorer_change_active_dialog_title" msgid="3776301550387574975">"¿Cambiar Asistente de Wi‑Fi?"</string>
+ <string name="network_scorer_change_active_dialog_title" msgid="3776301550387574975">"¿Cambiar asistente de Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"¿Quieres usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para administrar tus conexiones de red?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"¿Quieres usar <xliff:g id="NEW_APP">%s</xliff:g> para administrar tus conexiones de red?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operador de SIM desconocido"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s no tiene ningún sitio web de aprovisionamiento"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> no tiene ningún sitio web de aprovisionamiento"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Inserta la tarjeta SIM y reinicia el dispositivo"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Debes conectarte a Internet"</string>
<string name="location_title" msgid="1029961368397484576">"Mi ubicación"</string>
@@ -1355,8 +1356,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Proveedores de imágenes de satélite:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Error al intentar cargar las licencias."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licencias de terceros"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Se ha producido un problema al intentar cargar las licencias."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Cargando…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Información de seguridad"</string>
@@ -1731,7 +1731,7 @@
<string name="accessibility_display_inversion_preference_subtitle" msgid="8658240868230680912">"(Experimental) Puede afectar al rendimiento"</string>
<string name="accessibility_autoclick_preference_title" msgid="7014499339068449623">"Clic después de que el puntero deje de moverse"</string>
<string name="accessibility_autoclick_delay_preference_title" msgid="3962261178385106006">"Retraso antes del clic"</string>
- <string name="enable_quick_setting" msgid="2366999897816894536">"Mostrar en Ajustes rápidos"</string>
+ <string name="enable_quick_setting" msgid="2366999897816894536">"Mostrar en ajustes rápidos"</string>
<string name="daltonizer_type" msgid="1124178250809091080">"Modo de corrección"</string>
<plurals name="accessibilty_autoclick_preference_subtitle_extremely_short_delay" formatted="false" msgid="7340347830562315800">
<item quantity="other">Retraso demasiado corto (<xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g> ms)</item>
@@ -1930,7 +1930,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Ahorro de batería"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activar automáticamente"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"con un %1$s de batería"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"con un <xliff:g id="PERCENT">%1$s</xliff:g> de batería"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Estadísticas de procesos"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Estadísticas técnicas sobre procesos en ejecución"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Uso de memoria"</string>
@@ -2359,11 +2359,11 @@
<string name="user_list_title" msgid="7937158411137563543">"Usuarios y perfiles"</string>
<string name="user_add_user_or_profile_menu" msgid="6923838875175259418">"Añadir usuario o perfil"</string>
<string name="user_add_user_menu" msgid="1675956975014862382">"Añadir usuario"</string>
- <string name="user_summary_restricted_profile" msgid="6354966213806839107">"Perfil limitado"</string>
+ <string name="user_summary_restricted_profile" msgid="6354966213806839107">"Perfil restringido"</string>
<string name="user_need_lock_message" msgid="5879715064416886811">"Para poder crear un perfil restringido, debes configurar una pantalla de bloqueo que proteja tus aplicaciones y datos personales."</string>
<string name="user_set_lock_button" msgid="8311219392856626841">"Establecer bloqueo"</string>
<string name="user_summary_not_set_up" msgid="8778205026866794909">"Sin configurar"</string>
- <string name="user_summary_restricted_not_set_up" msgid="1628116001964325544">"No se ha configurado: perfil limitado"</string>
+ <string name="user_summary_restricted_not_set_up" msgid="1628116001964325544">"No se ha configurado: perfil restringido"</string>
<string name="user_summary_managed_profile_not_set_up" msgid="1659125858619760573">"Sin configurar: perfil de trabajo"</string>
<string name="user_admin" msgid="993402590002400782">"Administrador"</string>
<string name="user_you" msgid="1639158809315025986">"Tú (<xliff:g id="NAME">%s</xliff:g>)"</string>
@@ -2373,7 +2373,7 @@
<string name="user_add_user_item_summary" msgid="4702776187132008661">"Los usuarios tienen contenido y aplicaciones propios"</string>
<string name="user_add_profile_item_summary" msgid="5931663986889138941">"Desde tu cuenta, puedes restringir el acceso a las aplicaciones y al contenido"</string>
<string name="user_add_user_item_title" msgid="8212199632466198969">"Usuario"</string>
- <string name="user_add_profile_item_title" msgid="8353515490730363621">"Perfil limitado"</string>
+ <string name="user_add_profile_item_title" msgid="8353515490730363621">"Perfil restringido"</string>
<string name="user_add_user_title" msgid="2108112641783146007">"¿Añadir nuevo usuario?"</string>
<string name="user_add_user_message_long" msgid="8562152293752222985">"Puedes crear más usuarios para compartir este dispositivo con otras personas. Cada usuario tiene su propio espacio, que puede personalizar con aplicaciones, fondos de pantalla, etc., y puede modificar opciones de configuración del dispositivo que afectan a todos los usuarios, como la conexión Wi‑Fi.\n\nCuando se añade un usuario, este debe configurar su espacio.\n\nCualquier usuario puede actualizar las aplicaciones del resto de usuarios."</string>
<string name="user_add_user_message_short" msgid="1511354412249044381">"Al añadir un usuario nuevo, este debe configurar su espacio.\n\nCualquier usuario puede actualizar las aplicaciones del resto de usuarios."</string>
@@ -2604,10 +2604,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volumen del tono"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volumen de notificaciones"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Tono del teléfono"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Sonido de notificación predeterminado"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Sonido de alarma predeterminado"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrar también en llamadas"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Otros sonidos"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonos del teclado"</string>
@@ -3035,7 +3033,7 @@
<string name="camera_gesture_desc" msgid="1831390075255870960">"Gira la muñeca dos veces para abrir la aplicación Cámara"</string>
<string name="camera_double_tap_power_gesture_title" msgid="1651873760405034645">"Botón de encendido dos veces para cámara"</string>
<string name="camera_double_tap_power_gesture_desc" msgid="7355664631775680376">"Abre la cámara rápidamente sin desbloquear la pantalla"</string>
- <string name="screen_zoom_title" msgid="5233515303733473927">"Tamaño de la pantalla"</string>
+ <string name="screen_zoom_title" msgid="5233515303733473927">"Tamaño del contenido de la pantalla"</string>
<string name="screen_zoom_short_summary" msgid="7291960817349834688">"Aumenta o disminuye el tamaño de los elementos de la pantalla"</string>
<string name="screen_zoom_keywords" msgid="9176477565403352552">"densidad de pantalla, zoom, escala"</string>
<string name="screen_zoom_summary" msgid="6445488991799015407">"Aumenta o disminuye el tamaño de los elementos de la pantalla. Puede que algunas aplicaciones cambien de sitio."</string>
@@ -3221,6 +3219,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"¿No puedes iniciar sesión?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar información del sistema"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"No volver a mostrar"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitando como"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Añadir cuenta"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Ajustes de perfil de trabajo"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Búsqueda de contactos"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir que tu organización busque contactos para identificar llamadas y contactos"</string>
@@ -3293,20 +3293,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sincr. autom. datos de cuenta"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sincr. autom. datos personales"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sincr. autom. datos trabajo"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sincronización de la cuenta"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidad"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidad"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Para proporcionar acceso a tus datos de trabajo, es posible que tu organización cambie opciones de configuración e instale software en tu dispositivo, lo que podría permitir a tu administrar ver parte de tu contenido personal. Ponte en contacto con el administrador de tu organización para obtener más información."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"¿Qué tipos de información puede ver tu organización?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"¿Qué cambios afectan a lo que puede ver tu organización?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"¿Qué acciones pueden afectar al acceso a este dispositivo?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Datos asociados a tu cuenta de trabajo, como el correo electrónico y el calendario"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista de todas las aplicaciones del dispositivo"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Lista del número de aplicaciones del dispositivo: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="one">Lista del número de aplicaciones del dispositivo: <xliff:g id="COUNT_0">%d</xliff:g></item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uso (tiempo empleado y cantidad de datos utilizados) de cada aplicación del dispositivo"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registros de tráfico del dispositivo"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Tu informe de errores más reciente"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Tu registro de seguridad más reciente"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
</resources>
diff --git a/res/values-et-rEE/arrays.xml b/res/values-et-rEE/arrays.xml
index caa5a2c..c340b67 100644
--- a/res/values-et-rEE/arrays.xml
+++ b/res/values-et-rEE/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ekraani sisselülitamine"</item>
<item msgid="3253368931113490863">"kontode hankimine"</item>
<item msgid="780392378084812901">"taustal käitamine"</item>
+ <item msgid="2629748510881309577">"juurdepääsetavuse helitugevus"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Asukoht"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Ekraani sisselülitamine"</item>
<item msgid="5258373962467495905">"Kontode hankimine"</item>
<item msgid="334625385979270703">"Taustal käitamine"</item>
+ <item msgid="9039213578110332702">"Juurdepääsetavuse helitugevus"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Lühike"</item>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index e65a2f3..ee5cb1e 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Puudutage seadmega „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>” ühenduse loomiseks."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Kas soovite ühendada seadmega <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Taotlus telefoniraamatule juurdepääsuks"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s soovib juurdepääsu teie kontaktisikutele ja kõneajaloole. Kas lubate juurdepääsu kasutajale %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Seade <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> soovib juurdepääsu teie kontaktidele ja kõneajaloole. Kas anda seadmele <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> juurdepääs?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ära enam küsi"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ära enam küsi"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Taotlus sõnumile juurdepääsuks"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Seaded"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Seaded"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Seadete otsetee"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Sobivat tegevust ei leitud."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Lennurežiim"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Rohkem"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Traadita ühendus ja võrgud"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Kas kasutada võrguühenduste haldamiseks rakenduse <xliff:g id="CURRENT_APP">%2$s</xliff:g> asemel rakendust <xliff:g id="NEW_APP">%1$s</xliff:g>?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Kas kasutada võrguühenduste haldamiseks rakendust <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Tundmatu SIM-kaardi operaator"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Operaatoril %1$s pole teenusepakkumise veebisaite"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Operaatoril <xliff:g id="OPERATOR">%1$s</xliff:g> pole ettevalmistuse veebisaite"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Sisestage SIM-kaart ja taaskäivitage"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Looge Interneti-ühendus"</string>
<string name="location_title" msgid="1029961368397484576">"Minu asukoht"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satelliitpiltide pakkujad:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Käsitsi"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Juhendi laadimisel ilmnes probleem."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Kolmanda osapoole litsentsid"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Litsentside laadimisega on probleem."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Laadimine ..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Ohutusteave"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Akusäästja"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automaatne sisselülitamine"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Mitte kunagi"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s akutaseme juures"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"aku taseme <xliff:g id="PERCENT">%1$s</xliff:g> juures"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Protsessi statistika"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Tehnilised üksikasjad protsesside käitamise kohta"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Mälu kasutamine"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Helina helitugevus"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Märguande helitugevus"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Telefoni helin"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Märguande vaikeheli"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Äratuse vaikeheli"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibreeri ka kõnede puhul"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Muud helid"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Valimisklahvistiku toonid"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Kas te ei saa sisse logida?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Süsteemiteabe saatmine"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ära kuva enam"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Taotlemine kasutajana"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Konto lisamine"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Tööprofiili seaded"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktiotsing"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Lubage organisatsioonile helistajate ja kontaktide tuvastamiseks kontaktiotsingud"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Kontoandmete autom. sünkroon."</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Isikl. konto andm. aut. sünkr."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Töö konto andm. autom. sünkr."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Konto sünkroonimine"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privaatsus"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privaatsus"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Tööandmetele juurdepääsu andmiseks võib teie organisatsioon muuta teie seadmes seadeid ja installida sinna tarkvara. Seetõttu võib osa teie isiklikust sisust olla administraatorile nähtav. Lisateavet küsige organisatsiooni administraatorilt."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Mis tüüpi teavet teie organisatsioon näeb?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Mis muudatused mõjutavad, mida teie organisatsioon näeb?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Mis toimingud võivad mõjutada teie juurdepääsu seadmele?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Teie töökontoga seotud andmed, nt e-post ja kalender"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Loend kõigi teie seadmes olevate rakendustega"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Loend teie seadmes oleva <xliff:g id="COUNT_1">%d</xliff:g> rakendusega</item>
+ <item quantity="one">Loend teie seadmes oleva <xliff:g id="COUNT_0">%d</xliff:g> rakendusega</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Iga teie seadmes oleva rakenduse kasutus (kulutatud aeg ja andmemaht)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Teie seadmes olevad liikluslogid"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Teie kõige viimane veaaruanne"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Teie hiljutine turvalogi"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Mitte kunagi"</string>
</resources>
diff --git a/res/values-eu-rES/arrays.xml b/res/values-eu-rES/arrays.xml
index 0a23b33..f3b6233 100644
--- a/res/values-eu-rES/arrays.xml
+++ b/res/values-eu-rES/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"aktibatu pantaila"</item>
<item msgid="3253368931113490863">"lortu kontuak"</item>
<item msgid="780392378084812901">"exekutatu atzeko planoan"</item>
+ <item msgid="2629748510881309577">"erabilerraztasun-eginbideen bolumena"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Kokapena"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Aktibatu pantaila"</item>
<item msgid="5258373962467495905">"Lortu kontuak"</item>
<item msgid="334625385979270703">"Exekutatu atzeko planoan"</item>
+ <item msgid="9039213578110332702">"Erabilerraztasun-eginbideen bolumena"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Laburra"</item>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index 9a6ec33..6c34e5d 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" gailura konektatzeko, sakatu hau."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" gailura konektatu nahi duzu?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Agendarako sarbide-eskaera"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s gailuak zure kontaktuak eta deien historia atzitu nahi ditu. %2$s gailurako sarbidea eman?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> gailuak zure kontaktuak eta deien historia atzitu nahi ditu. Sarbidea eman nahi diozu <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> gailuari?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ez galdetu berriro"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ez galdetu berriro"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Mezuetarako sarbide-eskaera"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Ezarpenak"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Ezarpenak"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Ezarpenen lasterbidea"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Ez da bat datorren jarduerarik aurkitu."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Hegaldi modua"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Gehiago"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Hari gabeko konexioak eta sareak"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Sareko konexioak kudeatzeko <xliff:g id="NEW_APP">%1$s</xliff:g> erabili nahi duzu, <xliff:g id="CURRENT_APP">%2$s</xliff:g> erabili beharrean?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"<xliff:g id="NEW_APP">%s</xliff:g> erabili nahi duzu sareko konexioak kudeatzeko?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"SIM operadore ezezaguna"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s operadoreak ez du hornikuntza-webgune ezagunik."</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> operadoreak ez du hornikuntza-webgune ezagunik"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Sartu SIM txartela eta berrabiarazi"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Konektatu Internetera"</string>
<string name="location_title" msgid="1029961368397484576">"Nire kokapena"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satelite-irudien hornitzaileak:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Eskuliburua"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Arazo bat izan da eskuliburua kargatzean."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Hirugarrenen lizentziak"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Arazo bat izan da lizentziak kargatzean."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Kargatzen…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Segurtasun-informazioa"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Bateria aurrezlea"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Aktibatu automatikoki"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Inoiz ez"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Bateria: %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"bateriaren maila <xliff:g id="PERCENT">%1$s</xliff:g> denean"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Prozesu-estatistikak"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Exekutatzen ari diren prozesuei buruzko estatistika zehatzak"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Memoriaren erabilera"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Tonuaren bolumena"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Jakinarazpenen bolumena"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Telefonoaren tonu-jotzailea"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Jakinarazpen-soinu lehenetsia"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Alarmaren soinu lehenetsia"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Egin dar-dar deietan ere"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Beste soinu batzuk"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Markagailuaren tonuak"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Ezin duzu saioa hasi?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Bidali sistemari buruzko informazioa"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ez erakutsi berriro"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Kontu honen izenean egin da eskaera:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Gehitu kontua"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Laneko profilaren ezarpenak"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktu-bilaketak"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Onartu erakundeko kontaktu-bilaketek deitzaileak eta kontaktuak identifikatzea"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sinkronizatu automatikoki kontua"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinkronizatu automatikoki kontu pertsonala"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinkronizatu automatikoki laneko kontua"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Kontuaren sinkronizazioa"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Pribatutasuna"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Pribatutasuna"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Laneko datuetarako sarbidea emateko, ezarpenak alda eta softwarea instala diezazuke erakundeak gailuan eta, horrela, zure eduki pertsonala ikusteko gai izan liteke administratzailea. Xehetasun gehiago izan nahi badituzu, jarri erakundeko administratzailearekin harremanetan."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Zer motatako informazioa ikus dezake erakundeak?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Zer aldaketek dute eragina erakundeak ikus dezakeenarengan?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Zer ekintzek dute eragina gailurako nire sarbidearengan?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Laneko kontuarekin erlazionatutako datuak, adibidez, posta elektronikoa eta egutegia"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Gailuan dituzun aplikazio guztien zerrenda"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Gailuan dituzun <xliff:g id="COUNT_1">%d</xliff:g> aplikazioen zerrenda</item>
+ <item quantity="one">Gailuan duzun <xliff:g id="COUNT_0">%d</xliff:g> aplikazioa</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Gailuko aplikazio bakoitzaren erabilera (erabiltzen igarotako denbora eta erabilitako datu kopurua)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Gailuko trafikoaren erregistroak"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Azken akatsen txostena"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Azken segurtasun-erregistroa"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Inoiz ez"</string>
</resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index 9ab696d..aaf2174 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"روشن کردن صفحه"</item>
<item msgid="3253368931113490863">"دریافت حسابها"</item>
<item msgid="780392378084812901">"اجرا در پسزمینه"</item>
+ <item msgid="2629748510881309577">"میزان دسترسپذیری"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"موقعیت مکانی"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"روشن کردن صفحه"</item>
<item msgid="5258373962467495905">"دریافت حسابها"</item>
<item msgid="334625385979270703">"اجرا در پسزمینه"</item>
+ <item msgid="9039213578110332702">"میزان دسترسپذیری"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"کوتاه"</item>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index e032ca2..25a17ba 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"برای اتصال به «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>» ضربه بزنید."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"آیا میخواهید به \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" وصل شوید؟"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"درخواست دسترسی به دفترچه تلفن"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s میخواهد به مخاطبین و سابقه تماس شما دسترسی پیدا کند. اجازهٔ دسترسی به %2$s داده شود؟"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>میخواهد به مخاطیبن و سابقه تماس شما دسترسی پیدا کند. به <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> اجازه دسترسی میدهید؟"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"دوباره سؤال نشود"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"دوباره سؤال نشود"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"درخواست دسترسی به پیام"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"تنظیمات"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"تنظیمات"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"میانبر تنظیمات"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"فعالیتی مطابق با این مورد یافت نشد."</string>
<string name="airplane_mode" msgid="8837269988154128601">"حالت هواپیما"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"بیشتر"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"بیسیم و شبکهها"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"از <xliff:g id="NEW_APP">%1$s</xliff:g> بهجای <xliff:g id="CURRENT_APP">%2$s</xliff:g> استفاده میکنید تا ارتباطات شبکهتان را مدیریت کنید؟"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"برای مدیریت ارتباطات شبکهتان از <xliff:g id="NEW_APP">%s</xliff:g> استفاده میکنید؟"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"اپراتور سیمکارت ناشناس"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s وبسایت شناختهشدهای برای آمادهسازی ندارد."</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> وبسایت شناختهشدهای برای آمادهسازی ندارد"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"لطفاً سیم کارت را وارد کنید و دوباره راهاندازی کنید"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"لطفاً به اینترنت وصل شوید"</string>
<string name="location_title" msgid="1029961368397484576">"موقعیت مکانی شما"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"ارائهدهندگان تصویر ماهوارهای:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"دفترچه راهنما"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"مشکلی در بارگیری دفترچه راهنما وجود دارد."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"مجوزهای شخص ثالث"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"مشکلی در بارگیری مجوزها وجود دارد."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"در حال بارگیری…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"اطلاعات ایمنی"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"بهینهسازی باتری"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"روشن شدن خودکار"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"هیچوقت"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"در %1$s نیروی باتری"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"در <xliff:g id="PERCENT">%1$s</xliff:g> باتری"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"آمار فرآیند"</string>
<string name="process_stats_summary" msgid="109387941605607762">"آمار دقیق برای فرآیندهای در حال اجرا"</string>
<string name="app_memory_use" msgid="7849258480392171939">"استفاده از حافظه"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"میزان صدای زنگ"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"میزان صدای اعلان"</string>
<string name="ringtone_title" msgid="5379026328015343686">"آهنگ زنگ تلفن"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"صدای اعلان پیشفرض"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"صدای زنگ پیشفرض"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"برای تماس لرزش هم داشته باشد"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"سایر صداها"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"آهنگهای صفحه شمارهگیری"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"نمیتوانید به سیستم وارد شوید؟"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"ارسال اطلاعات سیستم"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"دیگر نشان داده نشود"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"درخواست بهعنوان"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"افزودن حساب"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"تنظیمات نمایه کاری"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"جستجوی مخاطب"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"جستجوهای مخاطب توسط سازمانتان برای شناسایی تماسگیرندگان و مخاطبین مجاز است"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"همگامسازی خودکار دادههای حساب"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"همگامسازی خودکار دادههای حساب شخصی"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"همگامسازی خودکار دادههای حساب کاری"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"همگامسازی حساب"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"حریم خصوصی"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"حریم خصوصی"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"برای فراهم آوردن دسترسی به دادههای کاریتان، ممکن است سازمان شما تنظیمات را تغییر دهد و نرمافزارهایی در دستگاهتان نصب کند و با این کار ممکن است بعضی از محتوای شخصیتان برای مدیر سیستم قابل مشاهده شود. برای جزئیات بیشتر با مدیر سازمانتان تماس بگیرید."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"چه اطلاعاتی را سازمان شما میتواند ببیند؟"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"چه تغییراتی روی آنچه که سازمانتان میتواند ببیند اثر میگذارد؟"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ممکن است چه عملکردهایی روی دسترسی به این دستگاه اثر بگذارند؟"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"دادههای مرتبط با حساب کاریتان مثل رایانه و تقویم"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"فهرست همه برنامهها در دستگاه شما"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">فهرست همه <xliff:g id="COUNT_1">%d</xliff:g> برنامه موجود در دستگاه شما</item>
+ <item quantity="other">فهرست همه <xliff:g id="COUNT_1">%d</xliff:g> برنامه موجود در دستگاه شما</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"مصرف (زمان صرفشده و میزان داده استفادهشده) هر برنامه در دستگاه شما"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"گزارشهای ترافیک در دستگاه شما"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"جدیدترین گزارش اشکال شما"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"جدیدترین گزارش امنیت شما"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"هرگز"</string>
</resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index 63c74e5..1a9f8f5 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"kytke näyttö päälle"</item>
<item msgid="3253368931113490863">"hae tilit"</item>
<item msgid="780392378084812901">"toimi taustalla"</item>
+ <item msgid="2629748510881309577">"esteettömyys äänenvoimakkuus"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Sijainti"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Kytke näyttö päälle"</item>
<item msgid="5258373962467495905">"Hae tilit"</item>
<item msgid="334625385979270703">"Toimi taustalla"</item>
+ <item msgid="9039213578110332702">"Esteettömyys äänenvoimakkuus"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Lyhyt"</item>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 7ebf0ff..d8d67dd 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Yhdistä laitteeseen <xliff:g id="DEVICE_NAME">%1$s</xliff:g> koskettamalla."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Haluatko yhdistää laitteeseen <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"PBAP-pyyntö"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s pyytää yhteystietojesi ja puheluhistoriasi käyttöoikeutta. Annetaanko käyttöoikeus (%2$s)?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> haluaa käyttää yhteystietoja ja soittohistoriaa. Sallitaanko sille laitteen <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> käyttö?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Älä kysy uudestaan"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Älä kysy uudestaan"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"MAP-pyyntö"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Asetukset"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Asetukset"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Asetukset-pikakuvake"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Sopivia toimintoja ei löytynyt."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Lentokonetila"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Lisää"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Langaton verkko ja verkot"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Hallinnoidaanko verkkoyhteyksiä sovelluksella <xliff:g id="NEW_APP">%1$s</xliff:g> sovelluksen <xliff:g id="CURRENT_APP">%2$s</xliff:g> sijaan?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Hallinnoidaanko verkkoyhteyksiä sovelluksella <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Tuntematon SIM-operaattori"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Ei tunnettua käyttäjien hallintasivustoa: %1$s"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Ei tunnettua käyttäjien hallintasivustoa: <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Aseta SIM-kortti ja käynnistä uudelleen"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Muodosta yhteys internetiin"</string>
<string name="location_title" msgid="1029961368397484576">"Oma sijainti"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satelliittikuvat:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Käyttöopas"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ongelma ladattaessa käyttöopasta."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Kolmannen osapuolen lisenssit"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Käyttölupien lataamisessa esiintyi ongelma."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Ladataan…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Suojaustiedot"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Virransäästö"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Käynnistä automaattisesti"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Ei koskaan"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"kun akkua jäljellä %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"kun akun varaus on <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Käsittelytiedot"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Käsittelyn tarkat tiedot"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Muistin käyttö"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Soittoäänen voimakkuus"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Ilmoituksen äänenvoimakkuus"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Puhelimen soittoääni"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Ilmoituksen oletusääni"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Herätyksen oletusääni"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Värinä myös puheluille"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Muut äänet"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Näppäimistön näppäinäänet"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Eikö sisäänkirjautuminen onnistu?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Lähetä järjestelmätiedot"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Älä näytä uudelleen"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Pyytäjä"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Lisää tili"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Työprofiilin asetukset"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Yhteystietohaku"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Salli organisaatiosi yhteystietohakujen tunnistaa soittajia ja yhteystietoja."</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Tilitietojen autom. synkron."</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Omien tietojen autom. synkron."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Työtietojen autom. synkron."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Tilin synkronointi"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Tietosuoja"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Tietosuoja"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Jotta voit käyttää työtietojasi, organisaatiosi saattaa muuttaa asetuksia ja asentaa ohjelmistoja laitteellesi. Tämän vuoksi järjestelmänvalvoja saattaa nähdä joitain henkilökohtaisista tiedoistasi. Saat lisätietoja organisaatiosi järjestelmänvalvojalta."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Minkätyyppisiä tietoja organisaatiosi voi nähdä?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Mikä muutokset vaikuttavat organisaation näkemiin tietoihin?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Mitkä toimet voivat vaikuttaa laitteen käyttöösi?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Työtilin tiedot, esimerkiksi sähköpostit ja kalenteri"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Luettelo kaikista laitteesi sovelluksista"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Luettelo kaikista laitteen <xliff:g id="COUNT_1">%d</xliff:g> sovelluksesta</item>
+ <item quantity="one">Luettelo laitteen <xliff:g id="COUNT_0">%d</xliff:g> sovelluksesta</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Jokaisen laitteen sovelluksen käyttötiedot (käytetty aika ja data)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Laitteen liikennelokit"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Viimeisin vikailmoituksesi"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Viimeisin tietoturvaloki"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Ei koskaan"</string>
</resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 2d0bdad..512c53c 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"activer l\'écran"</item>
<item msgid="3253368931113490863">"obtenir les comptes"</item>
<item msgid="780392378084812901">"fonctionner en arrière-plan"</item>
+ <item msgid="2629748510881309577">"volume d\'accessibilité"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Position"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Activer l\'écran"</item>
<item msgid="5258373962467495905">"Obtenir les comptes"</item>
<item msgid="334625385979270703">"Fonctionner en arrière-plan"</item>
+ <item msgid="9039213578110332702">"Volume d\'accessibilité"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Court"</item>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 7dd379c..b502b7d 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Touchez ici pour vous connecter à « <xliff:g id="DEVICE_NAME">%1$s</xliff:g> »."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Voulez-vous vous connecter à « <xliff:g id="DEVICE_NAME">%1$s</xliff:g> »?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Demande d\'accès au répertoire téléphonique"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s souhaite accéder à vos contacts et à l\'historique de vos appels. Autoriser l\'accès à %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> demande l\'accès à vos contacts et à l\'historique de vos appels. Autoriser l\'accès à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne plus me demander"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne plus me demander"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Demande d\'accès aux messages"</string>
@@ -215,7 +215,7 @@
<string name="oem_radio_info_label" msgid="6163141792477958941">"Infos/paramètres OEM"</string>
<string name="band_mode_title" msgid="4071411679019296568">"Définir le mode de bande radio"</string>
<string name="band_mode_loading" msgid="3555063585133586152">"Chargement de la liste de bandes en cours..."</string>
- <string name="band_mode_set" msgid="5730560180249458484">"Paramètres"</string>
+ <string name="band_mode_set" msgid="5730560180249458484">"Définir"</string>
<string name="band_mode_failed" msgid="1495968863884716379">"Échec"</string>
<string name="band_mode_succeeded" msgid="2701016190055887575">"Opération effectuée"</string>
<string name="sdcard_changes_instructions" msgid="4482324130377280131">"Les modifications prendront effet lors de la prochaine connexion du câble USB."</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Paramètres"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Paramètres"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Raccourci vers les paramètres"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Aucune activité correspondante trouvée."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Mode avion"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Plus"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Sans fil et réseaux"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Utilisez <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> pour gérer vos connexions réseau?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> pour gérer vos connexions réseau?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Fournisseur de la carte SIM inconnu"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Aucun site Web de configuration connu pour %1$s"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Aucun site Web de configuration connu pour <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insérez la carte SIM, puis redémarrez."</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Connectez-vous à Internet."</string>
<string name="location_title" msgid="1029961368397484576">"My Location"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Fournisseurs d\'images satellite :\n© CNES/Astrium, DigitalGlobe, Bluesky 2014"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manuel"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Problème lors du chargement du manuel."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licences tierces"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Un problème est survenu lors du chargement des licences."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Chargement en cours..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informations de sécurité"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Économie d\'énergie"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activer automatiquement"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Jamais"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"lorsque la pile atteint %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"à <xliff:g id="PERCENT">%1$s</xliff:g> d\'autonomie restante"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistiques des processus"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistiques détaillées sur les processus en cours d\'exécution"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Mémoire utilisée"</string>
@@ -2231,7 +2231,7 @@
<string name="data_usage_auto_sync_off_dialog" msgid="4025938250775413864">"Cette action limite la consommation de données et l\'utilisation de la pile, mais vous devrez synchroniser manuellement chaque compte pour recueillir les informations récentes. Par ailleurs, vous ne recevrez pas de notifications en cas de mise à jour."</string>
<string name="data_usage_cycle_editor_title" msgid="1373797281540188533">"Date de réinitialisation du cycle de consommation"</string>
<string name="data_usage_cycle_editor_subtitle" msgid="5512903797979928416">"Jour du mois :"</string>
- <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Paramètres"</string>
+ <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Définir"</string>
<string name="data_usage_warning_editor_title" msgid="3704136912240060339">"Définir l\'avertissement d\'utilisation des données"</string>
<string name="data_usage_limit_editor_title" msgid="9153595142385030015">"Définir la limite de consommation des données"</string>
<string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Limitation de la consommation de données mobiles"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume de la sonnerie"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volume des notifications"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Sonnerie du téléphone"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Son de notification par défaut"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Son par défaut pour l\'alarme"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibreur aussi pour les appels"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Autres sons"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonalités du clavier"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Vous n\'arrivez pas à vous connecter?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Envoyer les données système"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne plus afficher"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Effectuer la demande avec le compte"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Ajouter un compte"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Paramètres du profil professionnel"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Recherche de contacts"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Autoriser les recherches de contacts dans votre organisation à identifier les appelants et les contacts"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Synchro auto données du compte"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sync auto données compte perso"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sync auto données compte prof."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Synchronisation du compte"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Confidentialité"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Confidentialité"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Pour vous fournir l\'accès aux données d\'entreprise, votre organisation peut modifier des paramètres et installer des logiciels sur votre appareil, ce qui pourrait rendre certains contenus personnels visibles par votre administrateur. Pour obtenir plus de détails, communiquez avec l\'administrateur de votre organisation."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Quels types de données votre organisation peut-elle voir?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quels changements influent sur ce que votre org. peut voir?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quelles actions peuvent influer sur votre accès à cet appareil?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Les données associées à votre compte professionnel, comme les courriels et l\'agenda"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Liste de toutes les applications installées sur votre appareil"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Liste de toutes les applications installées sur votre appareil (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="other">Liste de toutes les applications installées sur votre appareil (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Utilisation (la durée d\'utilisation et la quantité de données utilisée) de chaque application installée sur votre appareil"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Journaux de trafic sur votre appareil"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Votre rapport de bogue le plus récent"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Votre journal de sécurité le plus récent"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Jamais"</string>
</resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 07d0ede..4c8ae2a 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"activer l\'écran"</item>
<item msgid="3253368931113490863">"obtenir les comptes"</item>
<item msgid="780392378084812901">"exécuter en arrière-plan"</item>
+ <item msgid="2629748510881309577">"volume d\'accessibilité"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Position"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Activer l\'écran"</item>
<item msgid="5258373962467495905">"Obtenir les comptes"</item>
<item msgid="334625385979270703">"Exécuter en arrière-plan"</item>
+ <item msgid="9039213578110332702">"Volume d\'accessibilité"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Court"</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 226c64a..361f771 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Appuyez pour vous connecter à l\'appareil \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Voulez-vous vous connecter à \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Demande d\'accès au répertoire"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s souhaite accéder à vos contacts et à l\'historique de vos appels. Autoriser l\'accès à %2$s ?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> requiert l\'accès à vos contacts et à l\'historique de vos appels. Autoriser l\'accès à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne plus me demander"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne plus me demander"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Demande d\'accès aux messages"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Paramètres"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Paramètres"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Raccourci vers les paramètres"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Aucune activité correspondante trouvée."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Mode Avion"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Plus"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Sans fil et réseaux"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Utiliser <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> pour gérer vos connexions réseau ?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> pour gérer vos connexions réseau ?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Opérateur de carte SIM inconnu"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Aucun site Web de configuration connu pour %1$s"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Aucun site Web de gestion des comptes connu pour <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insérez la carte SIM, puis redémarrez."</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Connectez-vous à Internet."</string>
<string name="location_title" msgid="1029961368397484576">"Ma position"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Fournisseurs d\'images satellite :\n© CNES/Astrium, DigitalGlobe, Bluesky 2014"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manuel"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Un problème est survenu lors du chargement du manuel."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licences tierces"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Un problème est survenu lors du chargement des licences."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Chargement..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informations de sécurité"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Économiseur de batterie"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activer automatiquement"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Jamais"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Lorsque la batterie atteint %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"niveau de la batterie : <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistiques relatives aux processus"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistiques détaillées relatives aux processus en cours d\'exécution"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Utilisation de la mémoire"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume de la sonnerie"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volume des notifications"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Sonnerie du téléphone"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Son de notification par défaut"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Son de l\'alarme par défaut"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrer aussi pour les appels"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Autres sons"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonalités du numéroteur"</string>
@@ -2794,7 +2792,7 @@
<string name="switch_on_text" msgid="1124106706920572386">"Activé"</string>
<string name="switch_off_text" msgid="1139356348100829659">"Désactivé"</string>
<string name="screen_pinning_title" msgid="2292573232264116542">"Épinglage d\'écran"</string>
- <string name="screen_pinning_description" msgid="3360904523688769289">"Lorsque ce paramètre est activé, vous pouvez épingler écran pour ancrer dans vue jusqu\'à annulation de l\'opération.\n\nPour épingler écran :\n\n1. Assurez-vous que l\'épinglage écran est activé.\n\n2. Ouvrez écran à épingler.\n\n3. Appuyez sur \"Aperçu\".\n\n4. Balayez écran vers haut, puis appuyez sur icône épinglage."</string>
+ <string name="screen_pinning_description" msgid="3360904523688769289">"Lorsque ce paramètre est activé, vous pouvez épingler l\'écran afin de l\'ancrer dans la vue jusqu\'à ce que vous annuliez l\'épinglage.\n\nPour épingler l\'écran, procédez comme suit :\n\n1. Assurez-vous que l\'épinglage de l\'écran est activé.\n\n2. Ouvrez l\'écran que vous voulez épingler.\n\n3. Appuyez sur \"Aperçu\".\n\n4. Balayez l\'écran vers le haut, puis appuyez sur l\'icône d\'épinglage."</string>
<string name="screen_pinning_unlock_pattern" msgid="8282268570060313339">"Demander schéma de déverrouillage avant d\'annuler épinglage"</string>
<string name="screen_pinning_unlock_pin" msgid="8757588350454795286">"Demander PIN avant annuler épinglage"</string>
<string name="screen_pinning_unlock_password" msgid="2514079566873826434">"Demander le mot de passe avant d\'annuler l\'épinglage"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Vous ne pouvez pas vous connecter ?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Envoyer des informations sur le système"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne plus afficher"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Demande envoyée depuis le compte"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Ajouter un compte"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Paramètres du profil professionnel"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Recherche de contacts"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Autoriser les recherches de contacts dans votre organisation à identifier les appelants et les contacts"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Synchro auto données du compte"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Synchro auto données perso"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Synchro auto données pro"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Synchronisation du compte"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Confidentialité"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Confidentialité"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Afin d\'accéder à vos données professionnelles, votre organisation peut modifier des paramètres et installer des logiciels sur votre appareil. Ceci risque de rendre certains de vos contenus personnels visibles pour votre administrateur. Pour en savoir plus, contactez l\'administrateur de votre organisation."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Quels types d\'informations votre organisation peut-elle voir ?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quels changements affectent ce que votre organisation peut voir ?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quelles actions peuvent affecter votre accès à cet appareil ?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Informations associées à votre compte professionnel, telles que les e-mails et les données de l\'agenda"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Liste de toutes les applications installées sur votre appareil"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Liste de toute les applications installées sur votre appareil (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="other">Liste de toute les applications installées sur votre appareil (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Informations relatives à l\'utilisation (temps passé et quantité de données utilisée) de chaque application installée sur votre appareil"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Journaux de trafic sur votre appareil"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Votre dernier rapport de bug"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Votre dernier journal de sécurité"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Jamais"</string>
</resources>
diff --git a/res/values-gl-rES/arrays.xml b/res/values-gl-rES/arrays.xml
index 734cff4..25c95a1 100644
--- a/res/values-gl-rES/arrays.xml
+++ b/res/values-gl-rES/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"activar pantalla"</item>
<item msgid="3253368931113490863">"obter contas"</item>
<item msgid="780392378084812901">"executar en segundo plano"</item>
+ <item msgid="2629748510881309577">"volume de accesibilidade"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Localización"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Activar pantalla"</item>
<item msgid="5258373962467495905">"Obter contas"</item>
<item msgid="334625385979270703">"Executar en segundo plano"</item>
+ <item msgid="9039213578110332702">"Volume de accesibilidade"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Curto"</item>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 449df83..dd12d53 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toca aquí para conectarte a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Queres conectarte a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitude de acceso á axenda telefónica"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s quere acceder aos teus contactos e ao historial de chamadas. Queres conceder acceso a %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> quere acceder aos teus contactos e ao historial de chamadas. Queres darlle acceso a <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Non preguntar de novo"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Non preguntar de novo"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitude de acceso á mensaxe"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Configuración"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Configuración"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Atallo de configuración"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Non se atoparon actividades que coincidan."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Modo avión"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Máis"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Sen fíos e redes"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Queres utilizar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para xestionar as túas conexións de rede?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Queres utilizar <xliff:g id="NEW_APP">%s</xliff:g> para xestionar as túas conexións de rede?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operador da SIM descoñecido"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s sen sitio web de aprovisionamento coñecido"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> non ten un sitio web de aprovisionamento coñecido"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Introduce unha tarxeta SIM e reinicia"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Conéctate a Internet"</string>
<string name="location_title" msgid="1029961368397484576">"A miña localización"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Provedores de imaxes por satélite:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Hai un problema para cargar o manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenzas de terceiros"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Hai un problema para cargar as licenzas."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Cargando..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Información de seguridade"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Aforro de batería"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activar automaticamente"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"cun %1$s de batería"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"coa batería ao <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Estatísticas de procesos"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Estatísticas frikis sobre procesos en execución"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Uso da memoria"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do timbre"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volume das notificacións"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Ton de chamada do teléfono"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Son de notificación predeterminado"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Son de alarma predeterminado"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrar tamén nas chamadas"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Outros sons"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tons do teclado de marcación"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Non podes iniciar sesión?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar información do sistema"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Non mostrar de novo"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitando como"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Engadir conta"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Configuración do perfil de traballo"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Busca de contactos"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permite buscas de contactos por parte da túa organización para identificar os emisores das chamadas e os contactos"</string>
@@ -3292,23 +3292,25 @@
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Agora o xestor de almacenamento administra o teu espazo"</string>
<string name="account_for_section_header" msgid="5867553104728848377">"Contas"</string>
<string name="configure_section_header" msgid="7391183586410814450">"Configurar"</string>
- <string name="auto_sync_account_title" msgid="7647106425106072285">"Datos da conta de sincronización automática"</string>
+ <string name="auto_sync_account_title" msgid="7647106425106072285">"Sincronizar automaticamente os datos da conta"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Datos da conta persoal de sincronización automática"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Datos da conta laboral de sincronización automática"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sincronización da conta"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidade"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidade"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Para proporcionar acceso aos datos do traballo, a túa organización pode cambiar a configuración e instalar software no teu dispositivo, o cal podería provocar que o administrador poida ver parte do teu contido persoal. Ponte en contacto co administrador da túa organización para obter máis información."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Que tipo de información pode ver a túa organización?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Que cambios afectan ao que pode ver a túa organización?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Que accións afectan ao teu acceso a este dispositivo?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Datos asociados coa túa conta do traballo, como o correo electrónico e o calendario"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista de todas as aplicacións do teu dispositivo"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Lista das <xliff:g id="COUNT_1">%d</xliff:g> aplicacións do teu dispositivo</item>
+ <item quantity="one">Lista de <xliff:g id="COUNT_0">%d</xliff:g> aplicación do teu dispositivo</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uso de cada aplicación do teu dispositivo, tendo en conta o tempo investido e a cantidade de datos utilizados"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Rexistros de tráfico do teu dispositivo"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"O teu informe de erros máis recente"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"O teu rexistro de seguranza máis recente"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
</resources>
diff --git a/res/values-gu-rIN/arrays.xml b/res/values-gu-rIN/arrays.xml
index 1aafd42..e9532fb 100644
--- a/res/values-gu-rIN/arrays.xml
+++ b/res/values-gu-rIN/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"સ્ક્રીન ચાલુ કરો"</item>
<item msgid="3253368931113490863">"એકાઉન્ટ્સ મેળવો"</item>
<item msgid="780392378084812901">"પૃષ્ઠભૂમિમાં ચલાવો"</item>
+ <item msgid="2629748510881309577">"ઍક્સેસિબિલિટી વૉલ્યૂમ"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"સ્થાન"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"સ્ક્રીન ચાલુ કરો"</item>
<item msgid="5258373962467495905">"એકાઉન્ટ્સ મેળવો"</item>
<item msgid="334625385979270703">"પૃષ્ઠભૂમિમાં ચલાવો"</item>
+ <item msgid="9039213578110332702">"ઍક્સેસિબિલિટી વૉલ્યૂમ"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"નાનો"</item>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 8f0d06e..fded54d 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" સાથે કનેક્ટ કરવા માટે ટૅપ કરો."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"શું તમે \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" સાથે કનેક્ટ કરવા માંગો છો?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ફોન પુસ્તિકા ઍક્સેસની વિનંતી"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s તમારા સંપર્કો અને કૉલ ઇતિહાસને અૅક્સેસ કરવા માંગે છે. %2$s ને અૅક્સેસ આપીએ?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, તમારા સંપર્કો અને કૉલ ઇતિહાસને ઍક્સેસ કરવા માગે છે. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ને ઍક્સેસ આપીએ?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"ફરીથી પૂછશો નહીં"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ફરીથી પૂછશો નહીં"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"સંદેશ ઍક્સેસ વિનંતી"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"સેટિંગ્સ"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"સેટિંગ્સ"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"સેટિંગ્સ શૉર્ટકટ"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"કોઈ મેળ ખાતી પ્રવૃત્તિઓ મળી નથી."</string>
<string name="airplane_mode" msgid="8837269988154128601">"એરપ્લેન મોડ"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"વધુ"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"વાયરલેસ અને નેટવર્ક્સ"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"તમારા નેટવર્ક્સ કનેક્શન્સનું સંચાલન કરવા માટે <xliff:g id="CURRENT_APP">%2$s</xliff:g> ને બદલે <xliff:g id="NEW_APP">%1$s</xliff:g> નો ઉપયોગ કરીએ?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"તમારા નેટવર્ક કનેક્શન્સનું સંચાલન કરવા માટે <xliff:g id="NEW_APP">%s</xliff:g> નો ઉપયોગ કરો?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"અજાણ્યો SIM ઓપરેટર"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s પાસે જાણીતી જોગવાઈ કરતી વેબસાઇટ નથી"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> પાસે કોઈ જાણીતી જોગવાઈ કરતી વેબસાઇટ નથી"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"કૃપા કરીને SIM કાર્ડ શામેલ કરો અને પુનઃપ્રારંભ કરો"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"કૃપા કરીને ઇન્ટરનેટ સાથે કનેક્ટ કરો"</string>
<string name="location_title" msgid="1029961368397484576">"મારું સ્થાન"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"ઉપગ્રહ છબી પ્રદાતાઓ:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"મેન્યુઅલ"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"મેન્યુઅલ લોડ કરવામાં સમસ્યા છે."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"તૃતીય-પક્ષ લાઇસન્સીસ"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"લાઇસન્સીસ લોડ કરવામાં સમસ્યા છે."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"લોડ કરી રહ્યું છે..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"સલામતી માહિતી"</string>
@@ -1932,9 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"બૅટરી સેવર"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"આપમેળે ચાલુ કરો"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ક્યારેય નહીં"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for battery_saver_turn_on_automatically_pct (7536784431655058267) -->
- <skip />
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> બૅટરી પર"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"પ્રક્રિયા આંકડા"</string>
<string name="process_stats_summary" msgid="109387941605607762">"ચાલુ પ્રક્રિયાઓ વિશેનાં અવ્યવસ્થિત આંકડાઓ"</string>
<string name="app_memory_use" msgid="7849258480392171939">"મેમરીનો ઉપયોગ"</string>
@@ -2608,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"રિંગ વોલ્યુમ"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"સૂચના વૉલ્યૂમ"</string>
<string name="ringtone_title" msgid="5379026328015343686">"ફોન રિંગટોન"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"ડિફૉલ્ટ સૂચના માટે ધ્વનિ"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"ડિફૉલ્ટ એલાર્મ ધ્વનિ"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"કૉલ્સ માટે પણ વાઇબ્રેટ કરો"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"અન્ય ધ્વનિઓ"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ડાયલપેડ ટોન્સ"</string>
@@ -3225,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"શું સાઇન ઇન કરી શકતાં નથી?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"સિસ્ટમ માહિતી મોકલો"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ફરી બતાવશો નહીં"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"આ તરીકે વિનંતી કરી રહ્યું છે"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"એકાઉન્ટ ઉમેરો"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"કાર્ય પ્રોફાઇલ સેટિંગ્સ"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"સંપર્ક શોધ"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"કૉલર્સ અને સંપર્કોને ઓળખવા માટે તમારી સંસ્થા દ્વારા સંપર્ક શોધની મંજૂરી આપો"</string>
@@ -3297,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"એકાઉન્ટ ડેટા સ્વતઃ સમન્વયન"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"વ્યક્તિગત એકાઉન્ટ ડેટા સ્વતઃ સમન્વયન"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"કાર્યાલય એકાઉન્ટ ડેટા સ્વતઃ-સમન્વયન"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"એકાઉન્ટ સમન્વયન"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"ગોપનીયતા"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ગોપનીયતા"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"તમારા કાર્ય ડેટાની અૅક્સેસ આપવા માટે, તમારી સંસ્થા તમારા ઉપકરણ પર સેટિંગ્સ બદલી અને સોફ્ટવેર ઇન્સ્ટૉલ કરી શકે છે, કે જેનાથી તમારી કેટલીક વ્યક્તિગત સામગ્રી, તમારા વ્યવસ્થાપકને દૃશ્યક્ષમ થઈ શકશે. વધુ વિગતો માટે તમારી સંસ્થાના વ્યવસ્થાપકનો સંપર્ક કરો."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"તમારી સંસ્થા કઈ પ્રકારની માહિતી જોઈ શકે છે?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"તમારી સંસ્થા જે જોઈ શકે છે તેને કયા ફેરફારો પ્રભાવિત કરે છે?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"કઈ ક્રિયાઓ આ ઉપકરણ પરની તમારી ઍક્સેસને પ્રભાવિત કરી શકે છે?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"તમારા કાર્ય એકાઉન્ટ સાથે સંકળાયેલ ડેટા, જેમ કે ઇમેઇલ અને કૅલેન્ડર"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"તમારા ઉપકરણ પરની તમામ ઍપ્લિકેશનોની સૂચિ"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">તમારા ઉપકરણ પરની તમામ <xliff:g id="COUNT_1">%d</xliff:g> ઍપ્લિકેશનની સૂચિ</item>
+ <item quantity="other">તમારા ઉપકરણ પરની તમામ <xliff:g id="COUNT_1">%d</xliff:g> ઍપ્લિકેશનની સૂચિ</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"તમારા ઉપકરણ પર દરેક ઍપ્લિકેશનનો વપરાશ (પસાર કરેલ સમય અને ઉપયોગમાં લીધેલ ડેટાનું પ્રમાણ)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"તમારા ઉપકરણ પરના ટ્રાફિક લૉગ્સ"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"તમારી સૌથી તાજેતરની બગ રિપોર્ટ"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"તમારો સૌથી તાજેતરનો સુરક્ષા લૉગ"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"ક્યારેય નહીં"</string>
</resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 693be56..a361456 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"स्क्रीन चालू करें"</item>
<item msgid="3253368931113490863">"खाते प्राप्त करें"</item>
<item msgid="780392378084812901">"पृष्ठभूमि में चलाएं"</item>
+ <item msgid="2629748510881309577">"एक्सेस-योग्यता वॉल्यूम"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"स्थान"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"स्क्रीन चालू करें"</item>
<item msgid="5258373962467495905">"खाते प्राप्त करें"</item>
<item msgid="334625385979270703">"पृष्ठभूमि में चलाएं"</item>
+ <item msgid="9039213578110332702">"एक्सेस-योग्यता वॉल्यूम"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"कम"</item>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 8d56a0f..7b0ca4d 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" से कनेक्ट करने के लिए टैप करें."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"क्या आप \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" से कनेक्ट करना चाहते हैं?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"फ़ोन बुक एक्सेस अनुरोध"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s आपके संपर्कों और कॉल इतिहास में पहुंच प्राप्त करना चाहता है. %2$s पर पहुंच दें?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> आपके संपर्क और कॉल इतिहास एक्सेस करना चाहता है. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> को एक्सेस दें?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"फिर से न पूछें"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"फिर से न पूछें"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"संदेश एक्सेस अनुरोध"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"सेटिंग"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"सेटिंग"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"सेटिंग शॉर्टकट"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"कोई मिलती-जुलती गतिविधि नहीं मिली."</string>
<string name="airplane_mode" msgid="8837269988154128601">"हवाई जहाज मोड"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"अधिक"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"वायरलेस और नेटवर्क"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"आपके नेटवर्क कनेक्शन प्रबंधित करने के लिए <xliff:g id="CURRENT_APP">%2$s</xliff:g> के बजाय <xliff:g id="NEW_APP">%1$s</xliff:g> का उपयोग करें?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"आपके नेटवर्क कनेक्शन प्रबंधित करने के लिए <xliff:g id="NEW_APP">%s</xliff:g> का उपयोग करें?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"अज्ञात सिम ऑपरेटर"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s की कोई भी ज्ञात प्रावधान वेबसाइट नहीं है"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> की कोई भी ज्ञात प्रावधान वेबसाइट नहीं है"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"कृपया सिम कार्ड डालें और पुन: प्रारंभ करें"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"कृपया इंटरनेट से कनेक्ट करें"</string>
<string name="location_title" msgid="1029961368397484576">"मेरा स्थान"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"उपग्रह इमेजरी प्रदाता:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"मैन्युअल"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"मैन्युअल को लोड करने में कोई समस्या है."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"तृतीय-पक्ष लाइसेंस"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"लाइसेंस लोड करने में एक समस्या है."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"लोड हो रहा है..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"सुरक्षा जानकारी"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"बैटरी सेवर"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"अपने आप चालू करें"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"कभी नहीं"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s बैटरी पर"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> बैटरी होने पर"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"प्रोसेस के आंकड़े"</string>
<string name="process_stats_summary" msgid="109387941605607762">"चल रही प्रक्रिया के बारे में आकंड़े"</string>
<string name="app_memory_use" msgid="7849258480392171939">"मेमोरी उपयोग"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"रिंग का वॉल्यूम"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"नोटिफिकेशन वॉल्यूम"</string>
<string name="ringtone_title" msgid="5379026328015343686">"फ़ोन रिंगटोन"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"डिफ़ॉल्ट नोटिफ़िकेशन ध्वनि"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"डिफ़ॉल्ट अलार्म ध्वनि"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"कॉल के लिए भी कंपन"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"अन्य ध्वनियां"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"डायल पैड टोन"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"प्रवेश नहीं कर पा रहे हैं?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"सिस्टम जानकारी भेजें"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"दोबारा ना दिखाएं"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"इस रूप में अनुरोध किया जा रहा है"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"खाता जोड़ें"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"कार्य प्रोफ़ाइल सेटिंग"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"संपर्क खोज"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"कॉलर और संपर्कों की पहचान करने के लिए अपने संगठन में संपर्क खोज करने दें"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"खाता डेटा स्वतः सिंक करें"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"निजी खाता डेटा स्वतः सिंक करें"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"कार्य खाता डेटा स्वतः सिंक करें"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"खाता सिंक"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"गोपनीयता"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"गोपनीयता"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"आपके कार्यस्थल डेटा का एक्सेस प्रदान करने के लिए, आपका संगठन सेटिंग में बदलाव कर सकता है और आपके डिवाइस पर सॉफ़्टवेयर इंस्टॉल कर सकता है जिसके कारण आपकी कुछ व्यक्तिगत सामग्री आपके व्यवस्थापक को दिखाई दे सकती है. अधिक विवरण के लिए अपने संगठन के व्यवस्थापक से संपर्क करें."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"आपके संगठन को किस प्रकार की जानकारी दिखाई दे सकती है?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"संगठन को दिखाई देने वाली जानकारी किन बदलावों से प्रभावित होती है?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"इस डिवाइस का एक्सेस किन कार्रवाइयों से प्रभावित हो सकता है?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"आपके कार्य खाते से संबद्ध डेटा, जैसे कि ईमेल और कैलेंडर"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"आपके डिवाइस पर मौजूद सभी ऐप्लिकेशन की सूची"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">आपके डिवाइस पर मौजूद सभी <xliff:g id="COUNT_1">%d</xliff:g> ऐप्लिकेशन की सूची</item>
+ <item quantity="other">आपके डिवाइस पर मौजूद सभी <xliff:g id="COUNT_1">%d</xliff:g> ऐप्लिकेशन की सूची</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"आपके डिवाइस पर मौजूद प्रत्येक ऐप्लिकेशन का उपयोग (दिए गए समय और उपयोग किए गए डेटा की मात्रा)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"आपके डिवाइस पर ट्रैफ़िक लॉग"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"आपकी हाल ही की बग रिपोर्ट"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"आपका हाल ही का सुरक्षा लॉग"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"कभी नहीं"</string>
</resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index ec98fa5..acca38e 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"uključivanje zaslona"</item>
<item msgid="3253368931113490863">"dohvaćanje računa"</item>
<item msgid="780392378084812901">"izvođenje u pozadini"</item>
+ <item msgid="2629748510881309577">"glasnoća pristupačnosti"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Lokacija"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Uključi zaslon"</item>
<item msgid="5258373962467495905">"Dohvati račune"</item>
<item msgid="334625385979270703">"Izvodi u pozadini"</item>
+ <item msgid="9039213578110332702">"Glasnoća pristupačnosti"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kratko"</item>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 88a8077..8707039 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -151,7 +151,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Dodirnite za povezivanje s uređajem \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Želite li se povezati s uređajem \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Zahtjev za pristup telefonskom imeniku"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Korisnik %1$s želio bi pristupiti vašim kontaktima i povijesti poziva. Dati pristup korisniku %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi pristupiti vašim kontaktima i povijesti poziva. Želite li da <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> dobije pristup?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Više me ne pitaj"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Više me ne pitaj"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Zahtjev za pristup porukama"</string>
@@ -272,6 +272,7 @@
<string name="settings_label" msgid="1626402585530130914">"Postavke"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Postavke"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Prečac postavki"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nisu pronađene podudarne radnje."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Način rada u zrakoplovu"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Više"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bežično povezivanje i mreže"</string>
@@ -1311,7 +1312,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Želite li upotrebljavati aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g>, a ne <xliff:g id="CURRENT_APP">%2$s</xliff:g>, za upravljanje mrežnim vezama?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Želite li upotrebljavati aplikaciju <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje mrežnim vezama?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nepoznati operater SIM kartice"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nema poznatu web-lokaciju za niz usluga"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznatu web-lokaciju za pružanje niza usluga"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Umetnite SIM karticu i pokrenite ponovo"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Povežite se s internetom"</string>
<string name="location_title" msgid="1029961368397484576">"Moja lokacija"</string>
@@ -1367,8 +1368,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Davatelji satelitskih slika:\n©2014. CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Priručnik"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Došlo je do problema prilikom učitavanja priručnika."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licence trećih strana"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Došlo je do problema s učitavanjem licenci."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Učitavanje…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Sigurnosne informacije"</string>
@@ -1949,7 +1949,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Štednja baterije"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Uključi automatski"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikada"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Na %1$s baterije"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"na <xliff:g id="PERCENT">%1$s</xliff:g> baterije"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistički podaci o procesima"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Detaljni statistički podaci o trenutačnim procesima"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Upotreba memorije"</string>
@@ -2628,10 +2628,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Glasnoća zvona"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Glasnoća obavijesti"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Melodija zvona telefona"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Zadani zvuk obavijesti"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Zadani zvuk alarma"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibracija i za pozive"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Ostali zvukovi"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonovi brojčanika"</string>
@@ -3255,6 +3253,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Ne možete se prijaviti?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Slanje informacija o sustavu"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne prikazuj ponovo"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Zahtjev šalje"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Dodaj račun"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Postavke radnog profila"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pretraživanje kontakata"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Omogućuje pretraživanjima kontakata vaše organizacije da identificiraju pozivatelje i kontakte"</string>
@@ -3330,20 +3330,23 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Autom. sink. podataka o računu"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autom. sink. osobnog računa"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autom. sink. radnog računa"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sinkronizacija računa"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatnost"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatnost"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Da bi vam omogućila pristup podacima s posla, vaša organizacija može promijeniti postavke i instalirati softver na vašem uređaju, pa bi dio vašeg osobnog sadržaja mogao biti vidljiv administratoru. Više pojedinosti možete saznati od administratora organizacije."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Koju vrstu podataka može vidjeti vaša organizacija?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Koje promjene utječu na ono što organizacija može vidjeti?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Koje radnje mogu utjecati na vaš pristup ovom uređaju?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Podaci povezani s vašim radnim računom, na primjer e-pošta i kalendar"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Popis svih aplikacija na uređaju"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Popis svih aplikacija na uređaju (<xliff:g id="COUNT_1">%d</xliff:g> aplikacija)</item>
+ <item quantity="few">Popis svih aplikacija na uređaju (<xliff:g id="COUNT_1">%d</xliff:g> aplikacije)</item>
+ <item quantity="other">Popis svih <xliff:g id="COUNT_1">%d</xliff:g> aplikacija na uređaju</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Upotreba (utrošeno vrijeme i količina podataka) svake aplikacije na uređaju"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Zapisnici o prometu na uređaju"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Vaše najnovije izvješće o programskoj pogrešci"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Najnoviji sigurnosni zapisnik"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikada"</string>
</resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index b012555..cff6bd4 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"képernyő bekapcsolása"</item>
<item msgid="3253368931113490863">"fiókok beszerzése"</item>
<item msgid="780392378084812901">"futtatás a háttérben"</item>
+ <item msgid="2629748510881309577">"kisegítő lehetőségek – hangerő"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Hely"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Képernyő bekapcsolása"</item>
<item msgid="5258373962467495905">"Fiókok beszerzése"</item>
<item msgid="334625385979270703">"Futtatás a háttérben"</item>
+ <item msgid="9039213578110332702">"Kisegítő lehetőségek – hangerő"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Rövid"</item>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 603dec2..1dc1dd9 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Koppintson rá a(z) „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>” eszközhöz való csatlakozáshoz."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Szeretne csatlakozni a következő eszközhöz: \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Telefonkönyv-hozzáférési kérelem"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"A(z) %1$s szeretne hozzáférni névjegyeihez és a híváselőzményekhez. Megadja a hozzáférést a(z) %2$s eszköznek?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"A(z) <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> szeretne hozzáférni az Ön névjegyeihez és híváslistájához. Megadja a hozzáférést a(z) <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> eszköznek?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne jelenjen meg többé"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne jelenjen meg többé"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Üzenet-hozzáférési kérelem"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Beállítások"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Beállítások"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Beállítások parancsikon"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nincs megfelelő tevékenység."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Repülési üzemmód"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Továbbiak"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Vezeték nélküli és egyéb hálózatok"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Szeretné a(z) <xliff:g id="NEW_APP">%1$s</xliff:g> alkalmazást használni a(z) <xliff:g id="CURRENT_APP">%2$s</xliff:g> helyett a hálózati kapcsolatok kezelésére?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Szeretné a(z) <xliff:g id="NEW_APP">%s</xliff:g> alkalmazást használni a hálózati kapcsolatok kezelésére?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Ismeretlen szolgáltató"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s – nincs ismert hozzáférés-kezelő webhely"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nem rendelkezik hozzáférés-kezelő webhellyel"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Helyezze be a SIM-kártyát és indítsa újra"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Csatlakozzon az internethez"</string>
<string name="location_title" msgid="1029961368397484576">"Saját pozíció"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"A műholdképek szolgáltatói:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Útmutató"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Probléma adódott az útmutató betöltésekor."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Harmadik felek licencei"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Gond van a licencek betöltésével."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Betöltés…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Biztonsági információk"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Akkumulátorkímélő mód"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automatikus bekapcsolás"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Soha"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s-os töltöttségnél"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> töltöttségnél"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Folyamatstatisztikák"</string>
<string name="process_stats_summary" msgid="109387941605607762">"A futó folyamatok statisztikái"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Memóriahasználat"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Csengés hangereje"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Értesítés hangereje"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Telefon csengőhangja"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Alapértelmezett értesítőhang"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Alapértelmezett ébresztőhang"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"A hívásoknál rezegjen is"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Egyéb hangok"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"A tárcsázó hangjai"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Nem tud bejelentkezni?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Rendszeradatok elküldése"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne jelenjen meg újra"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Lekérés a következőként:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Fiók hozzáadása"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Munkaprofil beállításai"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Névjegykeresés"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Névjegykeresés engedélyezése a szervezet számára a hívó felek és ismerősök azonosítása érdekében"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Fiókadat-szinkronizálás"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Személyesfiók-szinkronizálás"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Munkafiók-szinkronizálás"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Fiók szinkronizálása"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Adatvédelem"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Adatvédelem"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Előfordulhat, hogy szervezete módosítja az Ön beállításait, és szoftvereket telepít eszközére annak érdekében, hogy hozzáférést biztosítson munkahelyi adataihoz. Emiatt lehetséges, hogy személyes tartalmai láthatóvá válnak a rendszergazda számára. További információért lépjen kapcsolatba a szervezet rendszergazdájával."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Milyen típusú információkat láthat a szervezete?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Milyen változások befolyásolják, hogy mit láthat szervezete?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Milyen műveletek befolyásolják a hozzáférést az eszközhöz?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"A munkahelyi fiókjához tartozó adatok, pl. e-mail és naptár"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Az eszközön lévő összes alkalmazás listája"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Az eszközén lévő mind a(z) <xliff:g id="COUNT_1">%d</xliff:g> alkalmazásból álló lista</item>
+ <item quantity="one">Az eszközén lévő mind a(z) <xliff:g id="COUNT_0">%d</xliff:g> alkalmazásból álló lista</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Az egyes alkalmazások használata (a használati idő és a felhasznált adatok) eszközén"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Forgalmi naplók eszközén"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Az Ön legutóbbi hibajelentése"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Legutóbbi biztonsági naplója"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Soha"</string>
</resources>
diff --git a/res/values-hy-rAM/arrays.xml b/res/values-hy-rAM/arrays.xml
index fa941b6..4bc7d6d 100644
--- a/res/values-hy-rAM/arrays.xml
+++ b/res/values-hy-rAM/arrays.xml
@@ -70,7 +70,7 @@
<item msgid="8934131797783724664">"Սկանավորում…"</item>
<item msgid="8513729475867537913">"Միանում է..."</item>
<item msgid="515055375277271756">"Նույնականացում…"</item>
- <item msgid="1943354004029184381">"IP հասցեն գտնվում է...."</item>
+ <item msgid="1943354004029184381">"IP հասցեի ստացում…"</item>
<item msgid="4221763391123233270">"Միացված է"</item>
<item msgid="624838831631122137">"Կասեցված է"</item>
<item msgid="7979680559596111948">"Անջատվում է…"</item>
@@ -88,7 +88,7 @@
<item msgid="8937994881315223448">"Միացված է <xliff:g id="NETWORK_NAME">%1$s</xliff:g>-ին"</item>
<item msgid="1330262655415760617">"Անջատված"</item>
<item msgid="7698638434317271902">"Անջատվում է <xliff:g id="NETWORK_NAME">%1$s</xliff:g>-ից…"</item>
- <item msgid="197508606402264311">"Անջատված"</item>
+ <item msgid="197508606402264311">"Անջատած է"</item>
<item msgid="8578370891960825148">"Անհաջող"</item>
<item msgid="5660739516542454527">"Արգելափակված"</item>
<item msgid="1805837518286731242">"Վատ ցանցից ժամանակավոր խուսափում"</item>
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"միացնել էկրանը"</item>
<item msgid="3253368931113490863">"ստանալ հաշիվները"</item>
<item msgid="780392378084812901">"աշխատել ֆոնային ռեժիմում"</item>
+ <item msgid="2629748510881309577">"մատչելիության ծավալ"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Տեղակայում"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Միացնել էկրանը"</item>
<item msgid="5258373962467495905">"Ստանալ հաշիվները"</item>
<item msgid="334625385979270703">"Աշխատել ֆոնային ռեժիմում"</item>
+ <item msgid="9039213578110332702">"Մատչելիության ծավալ"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Կարճաժամկետ"</item>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 7b45304..f7967de 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Հպեք` «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>»-ին միանալու համար:"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Ցանկանու՞մ եք միանալ «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>»-ին:"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Հեռախոսագիրք մուտք գործելու հայց"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s-ը ուզում է մուտք գործել ձեր կոնտակտներ ու զանգերի պատմություն: Տա՞լ մուտքի իրավունք %2$s-ին:"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> սարքը ցանկանում է օգտագործել ձեր կոնտակտները և զանգերի պատմությունը: Տրամադրե՞լ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> սարքին այդ թույլտվությունը:"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Նորից չհարցնել"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Նորից չհարցնել"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Հաղորդագրություն մուտք գործելու հայց"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Կարգավորումներ"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Կարգավորումներ"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Կարգավորումների դյուրանցում"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Համընկնող գործողություններ չգտնվեցին:"</string>
<string name="airplane_mode" msgid="8837269988154128601">"Ինքնաթիռի ռեժիմ"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Ավելին"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Անլար կապ և ցանցեր"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Օգտագործե՞լ <xliff:g id="NEW_APP">%1$s</xliff:g> ծրագիրը <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ի փոխարեն՝ ձեր ցանցային կապերը կառավարելու համար:"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Օգտագործե՞լ <xliff:g id="NEW_APP">%s</xliff:g> ծրագիրը՝ ձեր ցանցային կապերը կառավարելու համար:"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Անհայտ SIM օպերատոր"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s-ը չունի ոչ մի ծանոթ նախակարգման վեբկայք"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>-ը չունի ոչ մի ծանոթ նախակարգման վեբկայք"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Խնդրում ենք տեղադրել SIM քարտ և վերագործարկել"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Խնդրում ենք միանալ ինտերնետին"</string>
<string name="location_title" msgid="1029961368397484576">"Իմ տեղադրությունը"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Արբանյակային պատկերների մատակարարներ՝\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Ձեռքով"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ձեռնարկը բեռնելու խնդիր կա:"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Երրորդ կողմի լիցենզիաներ"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Խնդիր կա լիցենզիաները բեռնելիս:"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Բեռնում...."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Անվտանգության տեղեկատվություն"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Մարտկոցի էներգախնայիչ"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Ավտոմատ միանալ"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Երբեք"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s մարտկոց"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"մատկոցի <xliff:g id="PERCENT">%1$s</xliff:g> լիցքի դեպքում"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Գործընթացի վիճակագրություն"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Ընթացիկ գործընթացների տեխնիկական վիճակագրություն"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Օգտագործվող հիշողություն"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Զանգի բարձրությունը"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Ծանուցման ձայնի բարձրություն"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Հեռախոսի զանգերանգ"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Ծանուցման կանխադրված ձայնը"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Զարթուցիչի կանխադրված ձայնը"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Նաև թրթռալ զանգերի ժամանակ"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Այլ ձայներ"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Թվաշարի հնչերանգները"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Չե՞ք կարողանում մուտք գործել:"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Ուղարկել համակարգի մասին տեղեկատվություն"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Այլևս ցույց չտալ"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Հարցվում է որպես"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Ավելացնել հաշիվ"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Աշխատանքային պրոֆիլի կարգավորումներ"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Կոնտակտների որոնում"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Թույլատրել ձեր կազմակերպությանը որոնել կոնտակտներ՝ զանգողներին և կոնտակտները նույնականացնելու համար:"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Ինքնահամաժամել հաշվի տվյալները"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Ինքնահամաժամել անձնական հաշվի տվյալները"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Ինքնահամաժամել աշխատանքային հաշվի տվյալները"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Հաշվի համաժամացում"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Գաղտնիություն"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Գաղտնիություն"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Ձեր աշխատանքային տվյալների հասանելիությունն ապահովելու նպատակով ձեր կազմակերպությունը կարող է փոխել սարքի կարգավորումները և տեղադրել ծրագիր, ինչի արդյունքում ձեր անձնական տվյալները կարող են ադմինիստրատորին տեսանելի դառնալ: Լրացուցիչ տեղեկություններ ստանալու համար դիմեք ձեր կազմակերպության ադմինիստրատորին:"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Ի՞նչ տեսակի տվյալներ կարող է տեսնել ձեր կազմակերպությունը:"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Ո՞ր փոփոխությոններն են ազդում ձեր կազմակերպության համար տեսանելի տվյալների վրա:"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Ի՞նչ գործողություններ կարող են ազդել այս սարք մուտք գործելու ձեր իրավունքի վրա:"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Ձեր աշխատանքային հաշվի հետ առնչվող տվյալներ, օրինակ՝ էլ. փոստ և օրացուից"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Ձեր սարքի բոլոր հավելվածների ցուցակը"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">List of all <xliff:g id="COUNT_1">%d</xliff:g> apps on your device</item>
+ <item quantity="other">Ձեր սարքի բոլոր <xliff:g id="COUNT_1">%d</xliff:g> հավելվածների ցուցակը</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Ձեր սարքի յուրաքանչյուր հավելվածի օգտագործումը (օգտագործման տևողությունը և օգտագործված տվյալների ծավալը)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Ձեր սարքի թրաֆիկի մատյանները"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ձեր ամենավերջի վրիպակի զեկույցը"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ձեր ամենավերջին անվտանգության մատյանը"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Երբեք"</string>
</resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index dce8434..351c363 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"aktifkan layar"</item>
<item msgid="3253368931113490863">"dapatkan akun"</item>
<item msgid="780392378084812901">"jalankan di latar belakang"</item>
+ <item msgid="2629748510881309577">"volume aksesibilitas"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Lokasi"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Aktifkan layar"</item>
<item msgid="5258373962467495905">"Dapatkan akun"</item>
<item msgid="334625385979270703">"Jalankan di latar belakang"</item>
+ <item msgid="9039213578110332702">"Volume aksesibilitas"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Singkat"</item>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index e495023..2827d07 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Ketuk untuk menyambung ke \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Sambungkan ke \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Permintaan akses buku telepon"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ingin mengakses kontak dan riwayat panggilan Anda. Berikan akses ke %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ingin mengakses kontak dan histori panggilan. Berikan akses ke <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Jangan tanya lagi"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Jangan tanya lagi"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Permintaan akses pesan"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Setelan"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Setelan"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Pintasan setelan"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Tidak ditemukan aktivitas yang sesuai."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Mode pesawat"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Lainnya"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Jaringan & nirkabel"</string>
@@ -398,8 +399,8 @@
<string name="crypt_keeper_encrypt_title" product="tablet" msgid="1060273569887301457">"Enkripsi tablet"</string>
<string name="crypt_keeper_encrypt_title" product="default" msgid="1878996487755806122">"Enkripsi ponsel"</string>
<string name="crypt_keeper_encrypted_summary" msgid="1868233637888132906">"Dienkripsi"</string>
- <string name="crypt_keeper_desc" product="tablet" msgid="503014594435731275">"Anda dapat mengenkripsi akun, setelan, aplikasi yang diunduh serta datanya, media, dan file lainnya. Setelah mengenkripsi tablet, anggaplah Anda telah menyiapkan kunci layar (pola, PIN numerik, atau sandi), Anda perlu membuka layar untuk mendekripsi tablet setiap kali menyalakannya. Satu-satunya cara lain untuk mendekripsi adalah mengembalikannya ke setelan pabrik yang akan menghapus semua data Anda.\n\nProses enkripsi membutuhkan waktu satu jam atau lebih. Anda perlu memulainya dengan baterai yang terisi penuh dan mencolokkan tablet ke sumber listrik selama proses berlangsung. Jika Anda menghentikannya, semua atau beberapa data Anda akan hilang."</string>
- <string name="crypt_keeper_desc" product="default" msgid="2579929266645543631">"Anda dapat mengenkripsi akun, setelan, aplikasi yang diunduh serta datanya, media, dan file lainnya. Setelah mengenkripsi ponsel, anggaplah Anda telah menyiapkan kunci layar (pola, PIN numerik, atau sandi), Anda perlu membuka layar untuk mendekripsi ponsel setiap kali menyalakannya. Satu-satunya cara lain untuk mendekripsi adalah mengembalikannya ke setelan pabrik yang akan menghapus semua data Anda.\n\nProses enkripsi membutuhkan waktu satu jam atau lebih. Anda perlu memulainya dengan baterai yang terisi penuh dan mencolokkan ponsel ke sumber listrik selama proses berlangsung. Jika Anda menghentikannya, semua atau beberapa data Anda akan hilang."</string>
+ <string name="crypt_keeper_desc" product="tablet" msgid="503014594435731275">"Anda dapat mengenkripsi akun, setelan, aplikasi yang didownload serta datanya, media, dan file lainnya. Setelah mengenkripsi tablet, anggaplah Anda telah menyiapkan kunci layar (pola, PIN numerik, atau sandi), Anda perlu membuka layar untuk mendekripsi tablet setiap kali menyalakannya. Satu-satunya cara lain untuk mendekripsi adalah mengembalikannya ke setelan pabrik yang akan menghapus semua data Anda.\n\nProses enkripsi membutuhkan waktu satu jam atau lebih. Anda perlu memulainya dengan baterai yang terisi penuh dan mencolokkan tablet ke sumber listrik selama proses berlangsung. Jika Anda menghentikannya, semua atau beberapa data Anda akan hilang."</string>
+ <string name="crypt_keeper_desc" product="default" msgid="2579929266645543631">"Anda dapat mengenkripsi akun, setelan, aplikasi yang didownload serta datanya, media, dan file lainnya. Setelah mengenkripsi ponsel, anggaplah Anda telah menyiapkan kunci layar (pola, PIN numerik, atau sandi), Anda perlu membuka layar untuk mendekripsi ponsel setiap kali menyalakannya. Satu-satunya cara lain untuk mendekripsi adalah mengembalikannya ke setelan pabrik yang akan menghapus semua data Anda.\n\nProses enkripsi membutuhkan waktu satu jam atau lebih. Anda perlu memulainya dengan baterai yang terisi penuh dan mencolokkan ponsel ke sumber listrik selama proses berlangsung. Jika Anda menghentikannya, semua atau beberapa data Anda akan hilang."</string>
<string name="crypt_keeper_button_text" product="tablet" msgid="1189623490604750854">"Enkripsi tablet"</string>
<string name="crypt_keeper_button_text" product="default" msgid="2008346408473255519">"Enkripsi ponsel"</string>
<string name="crypt_keeper_low_charge_text" msgid="2029407131227814893">"Isi daya baterai Anda dan coba lagi."</string>
@@ -783,9 +784,9 @@
<string name="wifi_cancel" msgid="6763568902542968964">"Batal"</string>
<string name="wifi_skip_anyway" msgid="6965361454438011190">"Lewati saja"</string>
<string name="wifi_dont_skip" msgid="3615535136327231588">"Kembali"</string>
- <string name="wifi_skipped_message" product="tablet" msgid="6761689889733331124">"PERINGATAN: jika Anda melompati Wi‑Fi, tablet Anda hanya akan menggunakan data seluler untuk unduhan dan pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
- <string name="wifi_skipped_message" product="device" msgid="1385490367826852775">"PERINGATAN: jika Anda melompati Wi‑Fi, perangkat Anda hanya akan menggunakan data seluler untuk unduhan dan pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
- <string name="wifi_skipped_message" product="default" msgid="6084295135297772350">"PERINGATAN: jika Anda melompati Wi‑Fi, ponsel Anda hanya akan menggunakan data seluler untuk unduhan atau pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
+ <string name="wifi_skipped_message" product="tablet" msgid="6761689889733331124">"PERINGATAN: jika Anda melompati Wi‑Fi, tablet Anda hanya akan menggunakan data seluler untuk download dan pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
+ <string name="wifi_skipped_message" product="device" msgid="1385490367826852775">"PERINGATAN: jika Anda melompati Wi‑Fi, perangkat Anda hanya akan menggunakan data seluler untuk download dan pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
+ <string name="wifi_skipped_message" product="default" msgid="6084295135297772350">"PERINGATAN: jika Anda melompati Wi‑Fi, ponsel Anda hanya akan menggunakan data seluler untuk download atau pembaruan awal. Untuk menghindari kemungkinan biaya data, sambungkan ke Wi‑Fi."</string>
<string name="wifi_and_mobile_skipped_message" product="tablet" msgid="6324917391996718760">"Jika Anda mengabaikan Wi‑Fi:\n\n"<li>"Tablet tidak akan memiliki sambungan internet."</li>\n\n<li>"Anda tidak akan mendapatkan pembaruan perangkat lunak jika tidak tersambung ke internet."</li>\n\n<li>"Anda tidak dapat mengaktifkan fitur perlindungan perangkat saat ini."</li></string>
<string name="wifi_and_mobile_skipped_message" product="device" msgid="1110629752293998468">"Jika Anda mengabaikan Wi‑Fi:\n\n"<li>"Perangkat tidak akan memiliki sambungan internet."</li>\n\n<li>"Anda tidak akan mendapatkan pembaruan perangkat lunak jika tidak tersambung ke internet."</li>\n\n<li>"Anda tidak dapat mengaktifkan fitur perlindungan perangkat saat ini."</li></string>
<string name="wifi_and_mobile_skipped_message" product="default" msgid="8271524692702309267">"Jika Anda mengabaikan Wi‑Fi:\n\n"<li>"Ponsel tidak akan memiliki sambungan internet."</li>\n\n<li>"Anda tidak akan mendapatkan pembaruan perangkat lunak jika tidak tersambung ke internet."</li>\n\n<li>"Anda tidak dapat mengaktifkan fitur perlindungan perangkat saat ini."</li></string>
@@ -1069,7 +1070,7 @@
<string name="memory_calculating_size" msgid="2188358544203768588">"Menghitung..."</string>
<string name="memory_apps_usage" msgid="5128673488173839077">"Aplikasi & data aplikasi"</string>
<string name="memory_media_usage" msgid="3738830697707880405">"Media"</string>
- <string name="memory_downloads_usage" msgid="3755173051677533027">"Unduhan"</string>
+ <string name="memory_downloads_usage" msgid="3755173051677533027">"Download"</string>
<string name="memory_dcim_usage" msgid="558887013613822577">"Gambar, video"</string>
<string name="memory_music_usage" msgid="1363785144783011606">"Audio (musik, nada dering, podcast, dll.)"</string>
<string name="memory_media_misc_usage" msgid="6094866738586451683">"File lainnya"</string>
@@ -1155,7 +1156,7 @@
<string name="storage_detail_other" msgid="8404938385075638238">"Lainnya"</string>
<string name="storage_detail_system" msgid="4629506366064709687">"Sistem"</string>
<string name="storage_detail_explore" msgid="7911344011431568294">"Jelajahi <xliff:g id="NAME">^1</xliff:g>"</string>
- <string name="storage_detail_dialog_other" msgid="8907101974576694793">"Lainnya meliputi file bersama yang disimpan oleh aplikasi, file yang diunduh dari internet atau Bluetooth, file Android, dan sebagainya. \n\nUntuk melihat konten yang terlihat dari <xliff:g id="NAME">^1</xliff:g> ini, tap Jelajahi."</string>
+ <string name="storage_detail_dialog_other" msgid="8907101974576694793">"Lainnya meliputi file bersama yang disimpan oleh aplikasi, file yang didownload dari internet atau Bluetooth, file Android, dan sebagainya. \n\nUntuk melihat konten yang terlihat dari <xliff:g id="NAME">^1</xliff:g> ini, tap Jelajahi."</string>
<string name="storage_detail_dialog_system" msgid="3417679651116003900">"Sistem meliputi file yang tidak dapat ditampilkan Android satu per satu."</string>
<string name="storage_detail_dialog_user" msgid="1675756743326079688">"<xliff:g id="USER_0">^1</xliff:g> mungkin telah menyimpan foto, musik, film, aplikasi atau data lain yang menghabiskan <xliff:g id="SIZE">^2</xliff:g> penyimpanan. \n\nUntuk melihat detailnya, beralihlah ke <xliff:g id="USER_1">^1</xliff:g>."</string>
<string name="storage_wizard_init_title" msgid="5085400514028585772">"Siapkan <xliff:g id="NAME">^1</xliff:g>"</string>
@@ -1241,8 +1242,8 @@
<string name="reset_network_complete_toast" msgid="787829973559541880">"Setelan jaringan telah disetel ulang"</string>
<string name="device_reset_title" msgid="2384019005638768076">"Setel ulang perangkat"</string>
<string name="master_clear_title" msgid="5907939616087039756">"Kembalikan ke setelan pabrik"</string>
- <string name="master_clear_desc" product="tablet" msgid="9146059417023157222">"Ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" tablet Anda, termasuk:\n\n"<li>"Akun Google Anda"</li>\n<li>"Data sistem dan apl serta setelan"</li>\n<li>"Apl unduhan"</li></string>
- <string name="master_clear_desc" product="default" msgid="4800386183314202571">"Ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" ponsel Anda, termasuk:\n\n"<li>"Akun Google Anda"</li>\n<li>"Data sistem dan apl serta setelan"</li>\n<li>"Apl unduhan"</li></string>
+ <string name="master_clear_desc" product="tablet" msgid="9146059417023157222">"Ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" tablet Anda, termasuk:\n\n"<li>"Akun Google Anda"</li>\n<li>"Data sistem dan apl serta setelan"</li>\n<li>"Apl download"</li></string>
+ <string name="master_clear_desc" product="default" msgid="4800386183314202571">"Ini akan menghapus semua data dari "<b>"penyimpanan internal"</b>" ponsel Anda, termasuk:\n\n"<li>"Akun Google Anda"</li>\n<li>"Data sistem dan apl serta setelan"</li>\n<li>"Apl download"</li></string>
<string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Saat ini Anda telah masuk ke akun berikut ini:\n"</string>
<string name="master_clear_other_users_present" product="default" msgid="5161423070702470742">\n\n"Ada pengguna lain yang aktif di perangkat ini.\n"</string>
<string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musik"</li>\n<li>"Foto"</li>\n<li>"Data pengguna lainnya"</li></string>
@@ -1253,8 +1254,8 @@
<string name="erase_external_storage_description" product="nosdcard" msgid="4728558173931599429">"Hapus semua data di penyimpanan USB internal, seperti musik atau foto."</string>
<string name="erase_external_storage_description" product="default" msgid="1737638779582964966">"Hapus semua data di kartu SD, seperti musik atau foto"</string>
<string name="master_clear_button_text" product="tablet" msgid="3130786116528304116">"Setel ulang tablet"</string>
- <string name="master_clear_button_text" product="default" msgid="7550632653343157971">"Setel ulang telepon"</string>
- <string name="master_clear_final_desc" msgid="7318683914280403086">"Hapus semua informasi pribadi dan aplikasi yang diunduh? Tindakan ini tidak dapat diurungkan!"</string>
+ <string name="master_clear_button_text" product="default" msgid="7550632653343157971">"Setel ulang ponsel"</string>
+ <string name="master_clear_final_desc" msgid="7318683914280403086">"Hapus semua informasi pribadi dan aplikasi yang didownload? Tindakan ini tidak dapat diurungkan!"</string>
<string name="master_clear_final_button_text" msgid="5390908019019242910">"Hapus semua"</string>
<string name="master_clear_failed" msgid="2503230016394586353">"Penyetelan ulang tidak dilakukan karena layanan System Clear tidak tersedia."</string>
<string name="master_clear_confirm_title" msgid="7572642091599403668">"Setel ulang?"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> sebagai ganti <xliff:g id="CURRENT_APP">%2$s</xliff:g> untuk mengelola sambungan jaringan?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> untuk mengelola sambungan jaringan?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operator SIM tidak dikenal"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s tak punya situs web penyediaan yang dikenal"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> tidak punya situs web penyediaanyang dikenal"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Masukkan kartu SIM dan mulai ulang"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Sambungkan ke internet"</string>
<string name="location_title" msgid="1029961368397484576">"Lokasiku"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Penyedia citra satelit:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ada masalah saat memuat manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Lisensi pihak ketiga"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Ada masalah saat memuat lisensi."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Memuat…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informasi keselamatan"</string>
@@ -1493,7 +1493,7 @@
<string name="filter_dlg_title" msgid="8693024463731076091">"Pilih opsi filter"</string>
<string name="filter_apps_all" msgid="5142129378749391876">"Semua"</string>
<string name="filter_apps_disabled" msgid="5364447573326472890">"Dinonaktifkan"</string>
- <string name="filter_apps_third_party" msgid="7786348047690140979">"Terunduh"</string>
+ <string name="filter_apps_third_party" msgid="7786348047690140979">"Terdownload"</string>
<string name="filter_apps_running" msgid="7767071454371350486">"Menjalankan"</string>
<string name="filter_apps_onsdcard" product="nosdcard" msgid="4843063154701023349">"Penyimpanan USB"</string>
<string name="filter_apps_onsdcard" product="default" msgid="1477351142334784771">"Pada kartu SD"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Penghemat baterai"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Aktifkan secara otomatis"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Tidak pernah"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"saat baterai %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"jika <xliff:g id="PERCENT">%1$s</xliff:g> baterai"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistik Proses"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistik teknis tentang proses yang berjalan"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Penggunaan memori"</string>
@@ -2250,7 +2250,7 @@
<string name="data_usage_total_during_range_mobile" product="tablet" msgid="1925687342154538972">"<xliff:g id="RANGE">%2$s</xliff:g>: sekitar <xliff:g id="TOTAL">%1$s</xliff:g> yang digunakan menurut tablet. Hitungan data operator dapat berbeda."</string>
<string name="data_usage_total_during_range_mobile" product="default" msgid="5063981061103812900">"<xliff:g id="RANGE">%2$s</xliff:g>: sekitar <xliff:g id="TOTAL">%1$s</xliff:g> yang digunakan menurut ponsel. Hitungan data operator dapat berbeda."</string>
<string name="data_usage_metered_title" msgid="7383175371006596441">"Batasan jaringan"</string>
- <string name="data_usage_metered_body" msgid="3262343834446126044">"Jaringan terukur diperlakukan seperti seluler jika data latar belakang dibatasi. Aplikasi mungkin memberi peringatan sebelum menggunakan jaringan ini untuk unduhan yang besar."</string>
+ <string name="data_usage_metered_body" msgid="3262343834446126044">"Jaringan terukur diperlakukan seperti seluler jika data latar belakang dibatasi. Aplikasi mungkin memberi peringatan sebelum menggunakan jaringan ini untuk download yang besar."</string>
<string name="data_usage_metered_mobile" msgid="2326986339431119372">"Jaringan seluler"</string>
<string name="data_usage_metered_wifi" msgid="1761738002328299714">"Jaringan Wi‑Fi terukur"</string>
<string name="data_usage_metered_wifi_disabled" msgid="727808462375941567">"Untuk memilih jaringan terukur, aktifkan Wi‑Fi."</string>
@@ -2579,7 +2579,7 @@
<string name="keywords_reset_apps" msgid="5293291209613191845">"setel ulang, preferensi, default"</string>
<string name="keywords_emergency_app" msgid="3143078441279044780">"darurat, es, aplikasi, default"</string>
<string name="keywords_default_phone_app" msgid="4213090563141778486">"ponsel, telepon, default"</string>
- <string name="keywords_all_apps" msgid="7814015440655563156">"apl unduh aplikasi sistem"</string>
+ <string name="keywords_all_apps" msgid="7814015440655563156">"apl download aplikasi sistem"</string>
<string name="keywords_app_permissions" msgid="4229936435938011023">"aplikasi, izin, keamanan"</string>
<string name="keywords_default_apps" msgid="223872637509160136">"aplikasi, default"</string>
<string name="keywords_ignore_optimizations" msgid="6102579291119055029">"abaikan, pengoptimalan, istirahatkan, aplikasi siaga"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume dering"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volume notifikasi"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Nada dering ponsel"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Suara notifikasi default"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Suara alarm default"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Getarkan juga untuk panggilan"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Suara lainnya"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Nada tombol nomor"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Tidak dapat masuk?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Kirim informasi sistem"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Jangan tampilkan lagi"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Meminta sebagai"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Tambahkan akun"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Setelan profil kerja"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Penelusuran kontak"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Izinkan penelusuran kontak oleh organisasi untuk mengidentifikasi penelepon dan kontak"</string>
@@ -3282,8 +3282,8 @@
<string name="oem_unlock_enable_disabled_summary_connectivity_or_locked" msgid="5884723935668892613">"Sambungkan ke internet atau hubungi operator"</string>
<string name="oem_unlock_enable_disabled_summary_sim_locked_device" msgid="4149387448213399630">"Tidak tersedia pada perangkat yang dikunci oleh operator"</string>
<string name="automatic_storage_manager_freed_bytes" msgid="7517560170441007788">"<xliff:g id="SIZE">%1$s</xliff:g> total dibuat tersedia\n\nTerakhir dijalankan pada <xliff:g id="DATE">%2$s</xliff:g>"</string>
- <string name="automatic_storage_manager_downloads_days_title" msgid="8899594124034695459">"Hapus unduhan"</string>
- <string name="downloads_backup_preference_title" msgid="2312237179341156671">"Cadangan unduhan"</string>
+ <string name="automatic_storage_manager_downloads_days_title" msgid="8899594124034695459">"Hapus download"</string>
+ <string name="downloads_backup_preference_title" msgid="2312237179341156671">"Cadangan download"</string>
<string name="downloads_backup_text" msgid="8351770128253816819"></string>
<string name="web_action_enable_title" msgid="8502552575492048305">"Buka tautan di aplikasi"</string>
<string name="web_action_enable_summary" msgid="4679844581193646863">"Buka tautan di aplikasi yang didukung, meski aplikasi tidak terpasang di perangkat"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sinkron otomatis data akun"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinkron otomatis data akun pribadi"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinkron otomatis data akun kerja"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sinkronisasi akun"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privasi"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privasi"</string>
- <string name="enterprise_privacy_header" msgid="5605095630252702716">"Untuk menyediakan akses ke data kerja, organisasi mungkin mengubah setelan dan memasang perangkat lunak di perangkat Anda, sehingga menyebabkan beberapa konten pribadi dapat dilihat oleh admin. Hubungi admin organisasi untuk detail selengkapnya."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_header" msgid="5605095630252702716">"Untuk menyediakan akses ke data kerja, organisasi mungkin mengubah setelan dan memasang software di perangkat Anda, sehingga menyebabkan beberapa konten pribadi dapat dilihat oleh admin. Hubungi admin organisasi untuk informasi selengkapnya."</string>
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Informasi jenis apa yang dapat dilihat organisasi?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Apa yang memengaruhi informasi yang dapat dilihat organisasi?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Tindakan apa yang mungkin memengaruhi akses ke perangkat ini?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data yang terkait dengan akun kerja, seperti email dan kalender"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Daftar semua aplikasi di perangkat"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Daftar semua <xliff:g id="COUNT_1">%d</xliff:g> aplikasi di perangkat</item>
+ <item quantity="one">Daftar semua <xliff:g id="COUNT_0">%d</xliff:g> aplikasi di perangkat</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Penggunaan (waktu yang dihabiskan dan jumlah data yang digunakan) tiap aplikasi di perangkat"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Log lalu lintas jaringan di perangkat"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Laporan bug terbaru"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Log keamanan terbaru"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Tidak pernah"</string>
</resources>
diff --git a/res/values-is-rIS/arrays.xml b/res/values-is-rIS/arrays.xml
index d5bda57..be09e61 100644
--- a/res/values-is-rIS/arrays.xml
+++ b/res/values-is-rIS/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"kveikja á skjánum"</item>
<item msgid="3253368931113490863">"fá reikninga"</item>
<item msgid="780392378084812901">"keyra í bakgrunni"</item>
+ <item msgid="2629748510881309577">"hljóðstyrkur aðgengis"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Staðsetning"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Kveikja á skjánum"</item>
<item msgid="5258373962467495905">"Fá reikninga"</item>
<item msgid="334625385979270703">"Keyra í bakgrunni"</item>
+ <item msgid="9039213578110332702">"Hljóðstyrkur aðgengis"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Stutt"</item>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index 1e4cf41..f2fe89e 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Ýttu til að tengjast „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Viltu tengjast „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Beiðni um aðgang að símaskrá"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s vill fá aðgang að tengiliðunum þínum og símtalaferli. Veita %2$s aðgang?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vill fá aðgang að tengiliðunum þínum og símtalaferlinum. Viltu veita <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> aðgang?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ekki spyrja aftur"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ekki spyrja aftur"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Beiðni um skilaboðaaðgang"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Stillingar"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Stillingar"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Flýtileið stillinga"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Engar aðgerðir með samsvörun fundust."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Flugstilling"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Meira"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Þráðlaus net og símkerfi"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Nota <xliff:g id="NEW_APP">%1$s</xliff:g> í stað <xliff:g id="CURRENT_APP">%2$s</xliff:g> til að stjórna nettengingunum þínum?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Nota <xliff:g id="NEW_APP">%s</xliff:g> til að stjórna nettengingunum þínum?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Óþekkt símafyrirtæki SIM-korts"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s er ekki með neitt þekkt úthlutunarvefsvæði"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> er ekki með neitt þekkt úthlutunarvefsvæði"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Settu SIM-kortið í og endurræstu"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Tengdu tækið við netið"</string>
<string name="location_title" msgid="1029961368397484576">"Staðsetningin mín"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Gervihnattamyndir frá:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Handbók"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Vandamál kom upp við að hlaða handbókina."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Leyfi þriðju aðila"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Vandamál kom upp við að hlaða leyfin."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Hleður…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Öryggisupplýsingar"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Rafhlöðusparnaður"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Kveikja sjálfkrafa"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Aldrei"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"þegar hleðsla rafhlöðu er %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"við <xliff:g id="PERCENT">%1$s</xliff:g> rafhlöðu"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Tölfræði vinnsluferla"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Nördaleg tölfræði um opin vinnsluferli"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Minnisnotkun"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Hljóðstyrkur hringingar"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Hljóðstyrkur tilkynninga"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Hringitónn síma"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Sjálfgefið hljóð tilkynninga"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Sjálfgefið hljóð í vekjara"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Titra líka fyrir símtöl"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Önnur hljóð"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tónar takkaborðs"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Geturðu ekki skráð þig inn?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Senda kerfisupplýsingar"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ekki birta aftur"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Beðið um sem"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Bæta reikningi við"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Stillingar vinnusniðs"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Tengiliðaleit"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Leyfa fyrirtækinu þínu að leita í tengiliðum til að bera kennsl á þá sem hringja og tengiliði"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Samst. reikningsg. sjálfkrafa"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Samst. einkareikng. sjálfkr."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Samst. vinnureikngögn sjálfkr."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Samstilling reiknings"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Persónuvernd"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Persónuvernd"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Til að veita aðgang að vinnugögnunum þínum gæti fyrirtækið þitt breytt stillingum og sett upp forrit í tækinu þínu, sem gæti valdið því að persónulegt efni þitt yrði sýnilegt kerfisstjóra. Hafðu samband við kerfisstjóra fyrirtækisins til að fá frekari upplýsingar."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Hvers konar upplýsingar getur fyrirtækið þitt séð?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Hvaða breytingar hafa áhrif á hvað fyrirtækið þitt getur séð?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Hvaða aðgerðir gætu haft áhrif á aðgang þinn að tækinu þínu?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Gögn sem tengjast vinnureikningnum, eins og tölvupóst og dagatal"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista með öllum forritum í tækinu þínu"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Lista með öllum <xliff:g id="COUNT_1">%d</xliff:g> forritinu í tækinu þínu</item>
+ <item quantity="other">Lista með öllum <xliff:g id="COUNT_1">%d</xliff:g> forritunum á tækinu þínu</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Notkun (hversu miklum tíma er varið og hversu mikið af gögnum er notað) fyrir hvert forrit í tækinu þínu"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Umferðarannála í tækinu þínu"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Nýlegasta villutilkynningin"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Nýjasta öryggisannálinn þinn"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Aldrei"</string>
</resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index 5b14b32..a934526 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"attivazione dello schermo"</item>
<item msgid="3253368931113490863">"recupero di account"</item>
<item msgid="780392378084812901">"esecuzione in background"</item>
+ <item msgid="2629748510881309577">"volume accessibilità"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Posizione"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Attivazione dello schermo"</item>
<item msgid="5258373962467495905">"Recupero di account"</item>
<item msgid="334625385979270703">"Esecuzione in background"</item>
+ <item msgid="9039213578110332702">"Volume accessibilità"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Breve"</item>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index cd69a48..b9d432f 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tocca per connetterti a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Vuoi connetterti a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Richiesta di accesso alla rubrica"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s desidera accedere ai tuoi contatti e alla tua cronologia chiamate. Consentire l\'accesso a %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> desidera accedere ai tuoi contatti e alla tua cronologia chiamate. Consentire l\'accesso al dispositivo <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Non chiedermelo più"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Non chiedermelo più"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Richiesta di accesso ai messaggi"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Impostazioni"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Impostazioni"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Scorciatoia Impostazioni"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nessuna attività corrispondente trovata."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Modalità aereo"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Altro"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless e reti"</string>
@@ -761,7 +762,7 @@
<string name="wifi_wps_available_second_item" msgid="8427520131718215301">" (WPS disponibile)"</string>
<string name="wifi_wps_nfc_enter_password" msgid="2288214226916117159">"Inserisci la password di rete"</string>
<string name="wifi_scan_always_turnon_message" msgid="203123538572122989">"Per migliorare la precisione della posizione e per altri scopi, <xliff:g id="APP_NAME">%1$s</xliff:g> chiede di attivare la ricerca della rete, anche quando il Wi-Fi è disattivato.\n\nConsetirlo a tutte le app che vogliono eseguire la ricerca?"</string>
- <string name="wifi_scan_always_turnoff_message" msgid="5538901671131941043">"Per disattivare questa impostazione, vai alla sezione Avanzate nel menu di overflow."</string>
+ <string name="wifi_scan_always_turnoff_message" msgid="5538901671131941043">"Per disattivare questa impostazione, vai alla sezione Avanzate nel menu extra."</string>
<string name="wifi_scan_always_confirm_allow" msgid="5355973075896817232">"Consenti"</string>
<string name="wifi_scan_always_confirm_deny" msgid="4463982053823520710">"Rifiuta"</string>
<string name="wifi_hotspot_title" msgid="7726205804813286950">"Accedere per connettersi?"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Utilizzare <xliff:g id="NEW_APP">%1$s</xliff:g> invece di <xliff:g id="CURRENT_APP">%2$s</xliff:g> per gestire le connessioni di rete?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Utilizzare <xliff:g id="NEW_APP">%s</xliff:g> per gestire le connessioni di rete?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operatore SIM sconosciuto"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Nessun sito web di provisioning per %1$s"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Nessun sito web di provisioning per <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Inserisci la scheda SIM e riavvia"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Connettiti a Internet"</string>
<string name="location_title" msgid="1029961368397484576">"La mia posizione"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Fornitori di immagini satellitari:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manuale"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Si è verificato un problema durante il caricamento del manuale."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenze di terze parti"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Errore durante il caricamento delle licenze."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Caricamento..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informazioni sulla sicurezza"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Risparmio energetico"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Attiva automaticamente"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Mai"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"al %1$s di batteria"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"al seguente livello di carica: <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistiche sui processi"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistiche tecniche sui processi in esecuzione"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Memoria usata"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume suoneria"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volume notifiche"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Suoneria telefono"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Suono di notifica predefinito"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Suono sveglia predefinito"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrazione per le chiamate"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Altri suoni"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Toni tastierino"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Non riesci ad accedere?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Invia informazioni sul sistema"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Non mostrare più"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Richiesta come"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Aggiungi account"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Impostazioni profilo di lavoro"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Ricerca di contatti"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Consenti ricerche di contatti in base all\'organizzazione per identificare chiamanti e contatti"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sincr. automatica dati account"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sincr. automat. dati account pers."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sincr. automat. dati account lavoro"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sincronizzazione account"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Per fornire l\'accesso ai tuoi dati di lavoro, la tua organizzazione può modificare le impostazioni e installare un programma software sul tuo dispositivo. In questo modo alcuni dei tuoi contenuti personali potrebbero essere visibili all\'amministratore. Contatta l\'amministratore dell\'organizzazione per ulteriori dettagli."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Quali tipi di dati sono visibili alla tua organizzazione?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quali modifiche influiscono su ciò che può vedere la tua organizzazione?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quali azioni influsicono sull\'accesso a questo dispositivo?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dati associati al tuo account di lavoro, ad esempio email e calendario."</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Elenco di tutte le app sul tuo dispositivo"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Elenco di tutte le app sul dispositivo (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="one">Elenco di tutte le app sul dispositivo (<xliff:g id="COUNT_0">%d</xliff:g>)</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Utilizzo (tempo di utilizzo e quantità di dati consumati) per ciascuna app sul tuo dispositivo"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Log relativi al traffico sul tuo dispositivo"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"La tua segnalazione di bug più recente"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Il tuo log di sicurezza più recente"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Mai"</string>
</resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index bea70fd..087cccf 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"הפעלת מסך"</item>
<item msgid="3253368931113490863">"קבלת חשבונות"</item>
<item msgid="780392378084812901">"הרצה ברקע"</item>
+ <item msgid="2629748510881309577">"עוצמת קול של נגישות"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"מיקום"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"הפעלת מסך"</item>
<item msgid="5258373962467495905">"קבלת חשבונות"</item>
<item msgid="334625385979270703">"הרצה ברקע"</item>
+ <item msgid="9039213578110332702">"עוצמת קול של נגישות"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"קצר"</item>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 9cc0336..1b28fbb 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -152,7 +152,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"הקש כדי להתחבר אל \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"האם ברצונך להתחבר אל \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"בקשת גישה לספר טלפונים"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s רוצה לגשת לאנשי הקשר ולהיסטוריית השיחות שלך. האם להעניק ל-%2$s גישה?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> רוצה לגשת אל אנשי הקשר ולהיסטוריית השיחות שלך. האם לתת הרשאה ל-<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"אל תשאל שוב"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"אל תשאל שוב"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"בקשת גישה להודעות"</string>
@@ -274,6 +274,7 @@
<string name="settings_label" msgid="1626402585530130914">"הגדרות"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"הגדרות"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"קיצור דרך של הגדרות"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"לא נמצאו פעילויות תואמות."</string>
<string name="airplane_mode" msgid="8837269988154128601">"מצב טיסה"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"עוד"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"אלחוטי ורשתות"</string>
@@ -1321,7 +1322,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"האם להשתמש ב-<xliff:g id="NEW_APP">%1$s</xliff:g> במקום ב-<xliff:g id="CURRENT_APP">%2$s</xliff:g> כדי לנהל את חיבורי הרשת שלך?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"האם להשתמש ב-<xliff:g id="NEW_APP">%s</xliff:g> כדי לנהל את חיבורי הרשת שלך?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"מפעיל SIM לא ידוע"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"ל-%1$s אין אתר מוכר לניהול תצורה"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"ל-<xliff:g id="OPERATOR">%1$s</xliff:g> אין אתר ידוע לניהול תצורה"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"הכנס כרטיס SIM ואתחל"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"התחבר לאינטרנט"</string>
<string name="location_title" msgid="1029961368397484576">"המיקום שלי"</string>
@@ -1377,8 +1378,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"ספקים של צילומי לוויין:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"ידני"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"יש בעיה בטעינת המדריך."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"רישיונות צד שלישי"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"יש בעיה בטעינת הרישיון."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"טוען..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"מידע על בטיחות"</string>
@@ -1966,7 +1966,7 @@
<string name="battery_saver" msgid="1426682272004907982">"חיסכון בסוללה"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"הפעל אוטומטית"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"אף פעם"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"בעוצמת סוללה של %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"סוללה ברמת טעינה של <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"סטטיסטיקה של תהליך"</string>
<string name="process_stats_summary" msgid="109387941605607762">"סטטיסטיקה של מומחי מחשבים על התהליכים הפועלים"</string>
<string name="app_memory_use" msgid="7849258480392171939">"זיכרון בשימוש"</string>
@@ -2652,10 +2652,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"עוצמת צלצול"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"עוצמת קול של הודעות"</string>
<string name="ringtone_title" msgid="5379026328015343686">"רינגטון של טלפון"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"צליל ברירת המחדל להודעות"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"צליל ברירת המחדל להתראה"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"הפעל גם רטט עבור שיחות"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"צלילים אחרים"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"צלילים של לוח חיוג"</string>
@@ -3289,6 +3287,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"לא מצליח להיכנס?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"שליחת פרטי מערכת"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"אל תציג שוב"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"מבקש בשם"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"הוסף חשבון"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"הגדרות של פרופיל עבודה"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"חיפוש אנשי קשר"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"אפשר לחיפושי אנשי קשר שמבצע הארגון לזהות מתקשרים ואנשי קשר"</string>
@@ -3329,33 +3329,24 @@
<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>
- <!-- no translation found for double_tap_power_for_camera_title (64716226816032800) -->
- <skip />
- <!-- no translation found for double_tap_power_for_camera_summary (242037150983277829) -->
- <skip />
+ <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_twist_for_camera_mode_title" msgid="4877834147983530479">"מעבר בין מצלמות"</string>
<string name="double_twist_for_camera_mode_summary" msgid="122977081337563340"></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>
- <!-- no translation found for ambient_display_summary (2521630136233865893) -->
- <skip />
+ <string name="ambient_display_summary" msgid="2521630136233865893">"כדי לבדוק במהירות את ההודעות שלך, הקש פעמיים על המסך."</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>
- <!-- no translation found for ambient_display_pickup_summary (8696432220086951466) -->
- <skip />
- <!-- no translation found for ambient_display_pickup_summary (2442551819015699120) -->
- <skip />
- <!-- no translation found for ambient_display_pickup_summary (2369325441608811599) -->
- <skip />
+ <string name="ambient_display_pickup_summary" product="default" msgid="8696432220086951466">"כדי לבדוק במהירות את ההודעות שלך, הרם את הטלפון."</string>
+ <string name="ambient_display_pickup_summary" product="tablet" msgid="2442551819015699120">"כדי לבדוק במהירות את ההודעות שלך, הרם את הטאבלט."</string>
+ <string name="ambient_display_pickup_summary" product="device" msgid="2369325441608811599">"כדי לבדוק במהירות את ההודעות שלך, הרם את המכשיר."</string>
<string name="fingerprint_swipe_for_notifications_title" msgid="2750203868053669600">"החלקה לקריאת הודעות"</string>
- <!-- no translation found for fingerprint_swipe_for_notifications_summary (1770661868393713922) -->
- <skip />
- <!-- no translation found for fingerprint_swipe_for_notifications_summary (902719947767712895) -->
- <skip />
- <!-- no translation found for fingerprint_swipe_for_notifications_summary (5372926094116306647) -->
- <skip />
+ <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"כדי לבדוק את ההודעות, החלק מטה על חיישן טביעות האצבע בחלק האחורי של הטלפון."</string>
+ <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"כדי לבדוק את ההודעות, החלק מטה על חיישן טביעות האצבע בחלק האחורי של הטאבלט."</string>
+ <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="5372926094116306647">"כדי לבדוק את ההודעות, החלק מטה על חיישן טביעות האצבע בחלק האחורי של המכשיר."</string>
<string name="gesture_setting_on" msgid="3455094265233870280">"פועל"</string>
<string name="gesture_setting_off" msgid="5230169535435881894">"כבוי"</string>
<string name="oem_unlock_enable_disabled_summary_bootloader_unlocked" msgid="4265541229765635629">"הנעילה של מנהל האתחול כבר בוטלה"</string>
@@ -3376,20 +3367,24 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"סנכרון אוטומטי לנתוני החשבון"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"סנכרון אוט\' לנתוני חשבון פרטי"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"סנכרון אוט\' לנתוני חשבון עבודה"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"סנכרון חשבון"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"פרטיות"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"פרטיות"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"כדי לספק לך גישה אל נתוני העבודה שלך, ייתכן שהארגון ישנה את ההגדרות ויתקין תוכנה במכשיר. פעולה זו עשויה לגרום לכך שחלק מהתוכן הפרטי שלך יהיה גלוי למנהל המערכת. צור קשר עם מנהל המערכת בארגון לפרטים נוספים."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"אילו סוגי מידע יכול הארגון שלך לראות?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"אילו שינויים משפיעים על הנתונים שהארגון שלך יכול לראות?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"אילו פעולות עשויות להשפיע על הגישה שלך למכשיר זה?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"נתונים המשויכים לחשבון העבודה שלך, כגון אימייל ויומן"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"רשימה של כל האפליקציות במכשיר"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="two">רשימה של <xliff:g id="COUNT_1">%d</xliff:g> האפליקציות הכלולות במכשיר</item>
+ <item quantity="many">רשימה של <xliff:g id="COUNT_1">%d</xliff:g> האפליקציות הכלולות במכשיר</item>
+ <item quantity="other">רשימה של <xliff:g id="COUNT_1">%d</xliff:g> האפליקציות הכלולות במכשיר</item>
+ <item quantity="one">רשימה של אפליקציה <xliff:g id="COUNT_0">%d</xliff:g> הכלולה במכשיר</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"נתוני שימוש (משך זמן ההפעלה וכמות הנתונים שנעשה בה שימוש) של כל אפליקציה במכשיר"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"יומני תנועה במכשיר זה"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"הדוח האחרון שלך על באג"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"יומן האבטחה האחרון שלך"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"אף פעם"</string>
</resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index 57f3e6f..2856897 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"画面をオン"</item>
<item msgid="3253368931113490863">"アカウントの取得"</item>
<item msgid="780392378084812901">"バックグラウンドで実行"</item>
+ <item msgid="2629748510881309577">"ユーザー補助機能の音量"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"位置情報"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"画面をオン"</item>
<item msgid="5258373962467495905">"アカウントの取得"</item>
<item msgid="334625385979270703">"バックグラウンドで実行"</item>
+ <item msgid="9039213578110332702">"ユーザー補助機能の音量"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"短め"</item>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index ff9cb99..ea85477 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」に接続するにはタップしてください。"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」に接続してもよろしいですか?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"電話帳へのアクセスのリクエスト"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$sが連絡先と通話履歴にアクセスしようとしています。%2$sにアクセスを許可しますか?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> が連絡先と通話履歴にアクセスしようとしています。<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> にアクセスを許可しますか?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"次回から表示しない"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"次回から表示しない"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"メッセージへのアクセスのリクエスト"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"設定"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"設定"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"設定のショートカット"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"一致するアクティビティが見つかりません。"</string>
<string name="airplane_mode" msgid="8837269988154128601">"機内モード"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"もっと見る"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"無線とネットワーク"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ネットワーク接続の管理に<xliff:g id="CURRENT_APP">%2$s</xliff:g>ではなく<xliff:g id="NEW_APP">%1$s</xliff:g>を使用しますか?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ネットワーク接続の管理に<xliff:g id="NEW_APP">%s</xliff:g>を使用しますか?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"不明なSIM事業者"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$sには既知のプロビジョニングウェブサイトがありません"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> には既知のプロビジョニング ウェブサイトがありません"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"SIMカードを挿入して再起動してください"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"インターネットに接続してください"</string>
<string name="location_title" msgid="1029961368397484576">"現在地"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"航空写真の提供:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"マニュアル"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"マニュアルの読み込み中に問題が発生しました。"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"サードパーティ ライセンス"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ライセンスの読み込み中に問題が発生しました。"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"読み込み中..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"安全に関する情報"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"バッテリーセーバー"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"自動的にON"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"使用しない"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"電池残量%1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"電池残量が <xliff:g id="PERCENT">%1$s</xliff:g> になったとき"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"プロセスの統計情報"</string>
<string name="process_stats_summary" msgid="109387941605607762">"プロセスの実行に関する独自の統計情報"</string>
<string name="app_memory_use" msgid="7849258480392171939">"メモリ使用"</string>
@@ -2610,10 +2610,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"着信音の音量"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"通知の音量"</string>
<string name="ringtone_title" msgid="5379026328015343686">"着信音"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"デフォルトの通知音"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"デフォルトのアラーム音"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"着信時もバイブレーションON"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"その他の音"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ダイヤルパッドの操作音"</string>
@@ -3121,7 +3119,7 @@
<string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> データ警告"</string>
<string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> データ警告 / <xliff:g id="ID_2">%2$s</xliff:g> データ上限"</string>
<string name="billing_cycle" msgid="5169909190811133499">"請求期間"</string>
- <string name="billing_cycle_summary" msgid="9009106526129293752">"月単位の請求期間の開始日は、毎月 <xliff:g id="ID_1">%1$s</xliff:g>です"</string>
+ <string name="billing_cycle_summary" msgid="9009106526129293752">"月単位の請求期間の開始日は、毎月 <xliff:g id="ID_1">%1$s</xliff:g> 日です"</string>
<string name="billing_cycle_fragment_summary" msgid="1940518156600077066">"<xliff:g id="ID_1">%1$s</xliff:g> 日から月単位で請求"</string>
<string name="network_restrictions" msgid="8234695294536675380">"ネットワーク制限"</string>
<string name="operator_warning" msgid="1862988028996859195">"端末で記録されるデータ使用量と携帯通信会社のデータ使用量は異なる場合があります"</string>
@@ -3227,6 +3225,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"ログインできない場合"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"システム情報の送信"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"今後表示しない"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"次のアカウントでリクエスト:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"アカウントを追加"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"仕事用プロファイルの設定"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"連絡先の検索"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"発信者や連絡先を特定するために組織による連絡先の検索を許可します"</string>
@@ -3299,20 +3299,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"アカウント データを自動同期"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"個人用アカウント データを自動同期"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"仕事用アカウント データを自動同期"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"アカウントの同期"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"プライバシー"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"プライバシー"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"仕事データへのアクセスを可能にするために、組織によって端末の設定変更やソフトウェアのインストールが行われることがあります。その結果、一部の個人的なコンテンツを管理者に見られる可能性があります。詳しくは、組織の管理者にお問い合わせください。"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"組織が表示できる情報の種類"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"組織が表示できる情報の種類に影響を及ぼす変更"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"この端末へのアクセスに影響を及ぼす可能性のある操作"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"メールアドレスやカレンダーなど、仕事用アカウントと関連付けられたデータ"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"端末上のすべてのアプリの一覧"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">端末上のすべてのアプリ(<xliff:g id="COUNT_1">%d</xliff:g> 個)の一覧</item>
+ <item quantity="one">端末上のすべてのアプリ(<xliff:g id="COUNT_0">%d</xliff:g> 個)の一覧</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"端末上の各アプリの使用量(時間と使用データ量)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"端末のトラフィック ログ"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"最新のバグレポート"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"最新のセキュリティ ログ"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"未実行"</string>
</resources>
diff --git a/res/values-ka-rGE/arrays.xml b/res/values-ka-rGE/arrays.xml
index 29d802d..13d37e3 100644
--- a/res/values-ka-rGE/arrays.xml
+++ b/res/values-ka-rGE/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ეკრანის ჩართვა"</item>
<item msgid="3253368931113490863">"ანგარიშების მიღება"</item>
<item msgid="780392378084812901">"ფონურ რეჟიმში გაშვება"</item>
+ <item msgid="2629748510881309577">"მარტივი წვდომის ხმის სიმძლავრე"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"მდებარეობა"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"ეკრანის ჩართვა"</item>
<item msgid="5258373962467495905">"ანგარიშების მიღება"</item>
<item msgid="334625385979270703">"ფონურ რეჟიმში გაშვება"</item>
+ <item msgid="9039213578110332702">"მარტივი წვდომის ხმის სიმძლავრე"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"მოკლე"</item>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index cb3cf11..f83c911 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"შეეხეთ „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“-თან დასაკავშირებლად."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"გსურთ „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“-თან დაკავშირება?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ტელეფონების წიგნზე წვდომის მოთხოვნა"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s სურს თქვენს კონტაქტებსა და ზარების ჟურნალთან დაკავშირება. ვუზრუნველყოთ %2$s წვდომით?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> თქვენს კონტაქტებსა და საუბრის ისტორიაზე წვდომას ითხოვს. გსურთ, მისცეთ წვდომა <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>-ს?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"აღარ მკითხო"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"აღარ მკითხო"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"შეტყობინებებზე წვდომის მოთხოვნა"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"პარამეტრები"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"პარამეტრები"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"პარამეტრების მალსახმობი"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"შესატყვისი აქტივობები ვერ მოიძებნა."</string>
<string name="airplane_mode" msgid="8837269988154128601">"თვითმფრინავის რეჟიმი"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"დამატებით"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"უსადენო კავშირი და ქსელები"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"გსურთ ქსელის სამართავად <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ის ნაცვლად <xliff:g id="NEW_APP">%1$s</xliff:g> გამოიყენოთ?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"გსურთ ქსელის კავშირების სამართავად <xliff:g id="NEW_APP">%s</xliff:g>-ის გამოყენება?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"უცნობი SIM-ოპერატორი"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s-ს განთავსების ნაცნობი საიტი არ გააჩნია"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>-ს უზრუნველყოფის ნაცნობი ვებსაიტი არ გააჩნია"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"გთხოვთ, ჩადოთ SIM ბარათი და გადატვირთოთ"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"გთხოვთ, დააკავშიროთ ინტერნეტთან"</string>
<string name="location_title" msgid="1029961368397484576">"ჩემი მდებარეობა"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"სატელიტური სურათების პროვაიდერები:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"სახელმძღვანელო"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"სახელმძღვანელოს ჩატვირთვისას წარმოიქმნა პრობლემა."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"მესამე მხარის ლიცენზიები"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ლიცენზიის ჩამოტვირთვასთან პრობლემაა."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"ჩატვირთვა…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"ინფორმაცია უსაფრთხოების შესახებ"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"ბატარეის მზოგი"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ავტომატურად გამორთვა"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"არასოდეს"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ბატარეის %1$s-ზე"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ბატარეის <xliff:g id="PERCENT">%1$s</xliff:g>-ზე"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"პროცესის სტატისტიკა"</string>
<string name="process_stats_summary" msgid="109387941605607762">"მიმდინარე პროცესების შემაჯამებელი სტატისტიკა"</string>
<string name="app_memory_use" msgid="7849258480392171939">"გამოყენებული მეხსიერება"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"ზარის სიმძლავრე"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"შეტყობინების ხმა"</string>
<string name="ringtone_title" msgid="5379026328015343686">"ტელეფონის ზარი"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"შეტყობინებების ნაგულისხმევი ხმა"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"მაღვიძარას ნაგულისხმევი ხმა"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ზარებზე ასევე ვიბრირება"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"სხვა ხმები"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ციფერბლატის ტონური რეჟიმი"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"ვერ შედიხართ?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"სისტემის ინფორმაციის გაგზავნა"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"აღარ გამოჩნდეს"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"მოთხოვნა, როგორც:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"ანგარიშის დამატება"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"სამსახურის პროფილის პარამეტრები"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"კონტაქტების ძიება"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"აბონენტებისა და კონტაქტების ამოცნობის მიზნით, თქვენი ორგანიზაციისთვის კონტაქტების ძიების დაშვება"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"ანგარიშის მონაცემების ავტოსინქრონიზაცია"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"პირადი ანგარიშის მონაცემების ავტოსინქრონიზაცია"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"სამსახურის ანგარიშის მონაცემების ავტოსინქრონიზაცია"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"ანგარიშის სინქრონიზაცია"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"კონფიდენციალურობა"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"კონფიდენციალურობა"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"თქვენი სამსახურის მონაცემებზე წვდომის უზრუნველსაყოფად, თქვენმა ორგანიზაციამ შეიძლება შეცვალოს თქვენი მოწყობილობის პარამეტრები და მასზე პროგრამული უზრუნველყოფის ინსტალაცია მოახდინოს, რის შემდეგაც თქვენი პერსონალური კონტენტის ნაწილი შეიძლება თქვენი ადმინისტრატორისთვის ხილული გახდეს. დეტალური ინფორმაციისთვის დაუკავშირდით თქვენი ორგანიზაციის ადმინისტრატორს."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"რა ტიპის ინფორმაციაა ხილული თქვენი ორგანიზაციისთვის?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"რას ექნება გავლენა თქვენი ორგანიზაციისთვის ხილულ კონტენტზე?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"რომელ ქმედებებს შეუძლია ამ მოწყობილობაზე წვდომაზე გავლენა?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"თქვენს სამსახურის ანგარიშთან დაკავშირებული მონაცემები, როგორიცაა ელფოსტა და კალენდარი"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"თქვენს მოწყობილობაზე არსებული ყველა აპის სია"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">თქვენს მოწყობილობაზე არსებული <xliff:g id="COUNT_1">%d</xliff:g>-ვე აპის სია</item>
+ <item quantity="one">თქვენს მოწყობილობაზე არსებული <xliff:g id="COUNT_0">%d</xliff:g>-ვე აპის სია</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"თქვენს მოწყობილობაზე არსებული თითოეული აპის გამოყენება (დახარჯული დრო და გამოყენებული მონაცემები)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"თქვენი მოწყობილობის ტრაფიკის ჟურნალები"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"ხარვეზის შესახებ ყველაზე ბოლო ანგარიში"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"უსაფრთხოების ყველაზე ბოლო ჟურნალი"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"არასოდეს"</string>
</resources>
diff --git a/res/values-kk-rKZ/arrays.xml b/res/values-kk-rKZ/arrays.xml
index c398609..d810aad 100644
--- a/res/values-kk-rKZ/arrays.xml
+++ b/res/values-kk-rKZ/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"экранды қосу"</item>
<item msgid="3253368931113490863">"есептік жазбаларды алу"</item>
<item msgid="780392378084812901">"фонда іске қосу"</item>
+ <item msgid="2629748510881309577">"арнайы мүмкіндіктердің дыбыс деңгейі"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Орын"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Экранды қосу"</item>
<item msgid="5258373962467495905">"Есептік жазбаларды алу"</item>
<item msgid="334625385979270703">"Фонда іске қосу"</item>
+ <item msgid="9039213578110332702">"Арнайы мүмкіндіктердің дыбыс деңгейі"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Қысқа"</item>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index dacc5ae..546db13 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" қосылу үшін түртіңіз."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" құрылғысына жалғануды қалайсыз ба?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Телефон кітапшасына кіру өтініші"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s контактілеріңізге және қоңырау тарихына кіруді қалайды. %2$s кірсін бе?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> контактілерге және қоңырау тарихына кіргісі келеді. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> құрылғысына рұқсат берілсін бе?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Қайта сұрамаңыз"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Қайта сұрамаңыз"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Хабарға кіру өтініші"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Параметрлер"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Параметрлер"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Параметрлердің төте пернелері"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Сәйкес әрекеттер табылмады."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Ұшақ режимі"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Басқалары"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Сымсыз желілер"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Желілік байланыстарды басқару үшін <xliff:g id="CURRENT_APP">%2$s</xliff:g> орнына <xliff:g id="NEW_APP">%1$s</xliff:g> қолданбасын пайдалану керек пе?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Желілік байланыстарды басқару үшін <xliff:g id="NEW_APP">%s</xliff:g> қолданбасын пайдалану керек пе?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Белгісіз SIM операторы"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s операторының ешқандай танымал жабдықтаушы веб-сайты жоқ"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> операторының қызмет көрсетуші вебсайты жоқ"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"SIM картасын енгізіп, қайта бастаңыз"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Интернетке қосылыңыз"</string>
<string name="location_title" msgid="1029961368397484576">"Mенің аймағым"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Жерсерік кескіндерін жеткізушілер:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Қолмен"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Нұсқаулықты жүктеу кезінде мәселе болды."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Үшінші тараптық лицензиялар"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Лицензияларды жүктеу барысында мәселе орын алды."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Жүктелуде..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Қауіпсіздік ақпараты"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Батарея үнемдегіш"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Автоматты түрде қосу"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Ешқашан"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s батареяда"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"батарея заряды <xliff:g id="PERCENT">%1$s</xliff:g> болғанда"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Үрдіс статистикалары"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Қосылған үрдістерге қатысты статистикалар"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Жад қолдану"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Қоңыраудың дыбыс деңгейі"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Хабарландырудың дыбыс деңгейі"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Телефон әуені"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Әдепкі хабарландыру сигналы"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Әдепкі дабыл сигналы"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Қоңырау кезіндегі діріл"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Басқа дыбыстар"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Нөмір тергіш дыбысы"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Кіре алмадыңыз ба?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Жүйе туралы ақпаратты жіберу"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Енді көрсетпеу"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Келесі болып сұралуда:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Есептік жазбаны енгізу"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Жұмыс профилінің параметрлері"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Контакт іздеу"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Қоңырау шалушылар мен контактілерді анықтау үшін ұйым бойынша контакт іздеуге рұқсат беру"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Есептік жазба деректерін автоматты синхрондау"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Жеке есептік жазба деректерін автоматты синхрондау"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Жұмыс есептік жазбасы деректерін автоматты синхрондау"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Есептік жазбаны синхрондау"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Құпиялылық"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Құпиялылық"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Жұмыс деректеріне кіру рұқсатын беру үшін ұйымыңыз параметрлерді өзгертіп, бағдарламалық құралды құрылғыңызға орнатады. Мұның нәтижесінде кейбір жеке мәліметтеріңізді әкімші көруі мүмкін. Оған хабарласып, толығырақ ақпарат алыңыз."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Ұйымыңыз қандай ақпаратты көре алады?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Қандай өзгерістер ұйымның қай ақпаратты көре алатынына әсерін тигізеді?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Қандай әрекеттер құрылғыға кіруіңізге әсерін тигізуі мүмкін?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Электрондық пошта мен күнтізбе сияқты жұмыс есептік жазбасына байланысты деректер"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Құрылғыдағы барлық қолданбалардың тізімі"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Құрылғыдағы <xliff:g id="COUNT_1">%d</xliff:g> қолданбаның тізімі</item>
+ <item quantity="one">Құрылғыдағы <xliff:g id="COUNT_0">%d</xliff:g> қолданбаның тізімі</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Құрылғыда әр қолданбаның пайдаланылуы туралы мәліметтер (жұмсалған уақыты және пайдаланылған деректер көлемі)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Құрылғыдағы трафик журналдары"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ең соңғы қате туралы есеп"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ең соңғы қауіпсіздік журналы"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Ешқашан"</string>
</resources>
diff --git a/res/values-km-rKH/arrays.xml b/res/values-km-rKH/arrays.xml
index 0958547..2d9d3be 100644
--- a/res/values-km-rKH/arrays.xml
+++ b/res/values-km-rKH/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"បើកអេក្រង់"</item>
<item msgid="3253368931113490863">"ទទួលគណនី"</item>
<item msgid="780392378084812901">"រត់នៅក្នុងផ្ទៃខាងក្រោយ"</item>
+ <item msgid="2629748510881309577">"កម្រិតសំឡេងភាពងាយស្រួល"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"ទីតាំង"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"បើកអេក្រង់"</item>
<item msgid="5258373962467495905">"ទទួលគណនី"</item>
<item msgid="334625385979270703">"រត់នៅក្នុងផ្ទៃខាងក្រោយ"</item>
+ <item msgid="9039213578110332702">"កម្រិតសំឡេងភាពងាយស្រួល"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"ខ្លី"</item>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index 8c8cbef..26802f3 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"ប៉ះដើម្បីតភ្ជាប់ជាមួយ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"តើអ្នកចង់តភ្ជាប់ទៅ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ស្នើសុំចូលដំណើរការសៀវភៅទូរស័ព្ទ"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ចង់ចូលទំនាក់ទំនង និងប្រវត្តិហៅរបស់អ្នក។ ផ្ដល់សិទ្ធិឲ្យ %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ចង់ចូលប្រើទំនាក់ទំនង និងប្រវត្តិហៅទូរសព្ទរបស់អ្នក។ អនុញ្ញាតឲ្យ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ចូលប្រើដែរទេ?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"កុំសួរម្ដងទៀត"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"កុំសួរម្ដងទៀត"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"ស្នើសុំចូលដំណើរការសារ"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"ការកំណត់"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"ការកំណត់"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"កំណត់ផ្លូវកាត់"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"រកមិនឃើញសកម្មភាពផ្គូផ្គងទេ។"</string>
<string name="airplane_mode" msgid="8837269988154128601">"ពេលជិះយន្តហោះ"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"ច្រើនទៀត"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"ឥតខ្សែ & បណ្ដាញ"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ប្រើ <xliff:g id="NEW_APP">%1$s</xliff:g> ជំនួសឲ្យ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ដើម្បីគ្រប់គ្រងការភ្ជាប់បណ្ដាញរបស់អ្នក?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ប្រើ <xliff:g id="NEW_APP">%s</xliff:g> ដើម្បីគ្រប់គ្រងការភ្ជាប់បណ្ដាញរបស់អ្នក?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"មិនស្គាល់ប្រតិបត្តិករស៊ីមកាត"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s គ្មានតំបន់បណ្ដាញដែលផ្ដល់បានស្គាល់"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> មិនមានគេហទំព័រសម្រាប់ផ្តល់សិទ្ធិចូលប្រើដែលស្គាល់នោះទេ"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"សូមបញ្ចូលស៊ីមកាត និងចាប់ផ្ដើមឡើងវិញ"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"សូមភ្ជាប់អ៊ីនធឺណិត"</string>
<string name="location_title" msgid="1029961368397484576">"ទីតាំងខ្ញុំ"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"កម្មវិធីផ្ដល់សេវារូបភាពផ្កាយរណប៖\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"ឯកសារណែនាំ"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"មានបញ្ហាក្នុងការបើកឯកសារណែនាំ"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"អាជ្ញាប័ណ្ណភាគីទីបី"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"មានបញ្ហាក្នុងការផ្ទុកអាជ្ញាប័ណ្ណ។"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"កំពុងផ្ទុក..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"ព័ត៌មានសុវត្ថិភាព"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"កម្មវិធីសន្សំថ្ម"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"បើកដោយស្វ័យប្រវត្តិ"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"កុំ"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"នៅថ្ម %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"នៅពេលដែលថ្មសល់ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"ស្ថិតិដំណើរការ"</string>
<string name="process_stats_summary" msgid="109387941605607762">"ស្ថិតិ Geeky អំពីដំណើរការ"</string>
<string name="app_memory_use" msgid="7849258480392171939">"ការប្រើអង្គចងចាំ"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"កម្រិតសំឡេងរោទ៍"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"កម្រិតសំឡេងការជូនដំណឹង"</string>
<string name="ringtone_title" msgid="5379026328015343686">"សំឡេងរោទ៍ទូរស័ព្ទ"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"សំឡេងជូនដំណឹងលំនាំដើម"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"សំឡេងម៉ោងរោទិ៍លំនាំដើម"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ញ័រសម្រាប់ការហៅដែរ"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"សំឡេងផ្សេងទៀត"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"សំឡេងបន្ទះលេខ"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"មិនអាចចូលគណនីបានឬ?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"ផ្ញើព័ត៌មានប្រព័ន្ធ"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"កុំបង្ហាញម្តងទៀត"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"ស្នើសុំជា"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"បញ្ចូលគណនី"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"ការកំណត់ប្រវត្តិរូបការងារ"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"ការស្វែងរកទំនាក់ទំនង"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"អនុញ្ញាតការស្វែងរកទំនាក់ទំនងដោយស្ថាប័នរបស់អ្នកដើម្បីកំណត់អត្តសញ្ញាណអ្នកហៅ និងលេខទំនាក់ទំនង"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"ធ្វើសមកាលកម្មទិន្នន័យគណនីដោយស្វ័យប្រវត្តិ"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"ធ្វើសមកាលកម្មទិន្នន័យគណនីផ្ទាល់ខ្លួនដោយស្វ័យប្រវត្តិ"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"ធ្វើសមកាលកម្មទិន្នន័យគណនីការងារដោយស្វ័យប្រវត្តិ"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"ធ្វើសមកាលកម្មគណនី"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"ឯកជនភាព"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ឯកជនភាព"</string>
- <string name="enterprise_privacy_header" msgid="5605095630252702716">"ដើម្បីផ្តល់លទ្ធភាពចូលប្រើទិន្នន័យការងាររបស់អ្នក ស្ថាប័នរបស់អ្នកអាចនឹងប្តូរការកំណត់ ហើយដំឡើងកម្មវិធីនៅលើឧបករណ៍របស់អ្នក ដែលវាអាចធ្វើឲ្យអ្នកគ្រប់គ្រងរបស់អ្នកមើលឃើញមាតិកាផ្ទាល់ខ្លួនមួយចំនួនរបស់អ្នក។ សូមទាក់ទងទៅអ្នកគ្រប់គ្រងរបស់ស្ថាប័នអ្នក សម្រាប់ព័ត៌មានលម្អិតបន្ថែម។"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_header" msgid="5605095630252702716">"ដើម្បីផ្តល់លទ្ធភាពចូលប្រើទិន្នន័យការងាររបស់អ្នក ស្ថាប័នរបស់អ្នកអាចនឹងប្តូរការកំណត់ ហើយដំឡើងកម្មវិធីនៅលើឧបករណ៍របស់អ្នក ដែលអាចធ្វើឲ្យអ្នកគ្រប់គ្រងរបស់អ្នកមើលឃើញមាតិកាផ្ទាល់ខ្លួនមួយចំនួនរបស់អ្នក។ សូមទាក់ទងទៅអ្នកគ្រប់គ្រងរបស់ស្ថាប័នអ្នក សម្រាប់ព័ត៌មានលម្អិតបន្ថែម។"</string>
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"តើព័ត៌មានប្រភេទណាដែលស្ថាប័នរបស់អ្នកអាចមើលឃើញ?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"តើការផ្លាស់ប្តូរអ្វីខ្លះដែលប៉ះពាល់ដល់លទ្ធភាពនៃការមើលឃើញរបស់ស្ថាប័នអ្នក?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"តើសកម្មភាពអ្វីខ្លះដែលអាចប៉ះពាល់ដល់ការចូលប្រើឧបករណ៍នេះរបស់អ្នក?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ទិន្នន័យដែលពាក់ព័ន្ធនឹងគណនីការងាររបស់អ្នក ដូចជាអ៊ីមែល និងប្រតិទិន"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"បញ្ជីនៃកម្មវិធីទាំងអស់នៅលើឧបករណ៍របស់អ្នក"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">បញ្ជីនៃកម្មវិធីទាំង <xliff:g id="COUNT_1">%d</xliff:g> នៅលើឧបករណ៍របស់អ្នក</item>
+ <item quantity="one">បញ្ជីនៃកម្មវិធីទាំង <xliff:g id="COUNT_0">%d</xliff:g> នៅលើឧបករណ៍របស់អ្នក</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"ការប្រើប្រាស់ (រយៈពេលនៃការប្រើប្រាស់ និងបរិមាណទិន្នន័យដែលបានប្រើប្រាស់) កម្មវិធីនីមួយៗនៅលើឧបករណ៍របស់អ្នក"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"កំណត់ហេតុចរាចរណ៍នៅលើឧបករណ៍របស់អ្នក"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"របាយការណ៍អំពីបញ្ហាថ្មីបំផុតរបស់អ្នក"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"កំណត់ហេតុសុវត្ថិភាពថ្មីបំផុតរបស់អ្នក"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"កុំឲ្យសោះ"</string>
</resources>
diff --git a/res/values-kn-rIN/arrays.xml b/res/values-kn-rIN/arrays.xml
index 2ac2e1f..737d468 100644
--- a/res/values-kn-rIN/arrays.xml
+++ b/res/values-kn-rIN/arrays.xml
@@ -277,7 +277,7 @@
<item msgid="6325739889222559394">"ಮಾಧ್ಯಮ ವಾಲ್ಯೂಮ್"</item>
<item msgid="5762123934816216821">"ಎಚ್ಚರಿಕೆ ವಾಲ್ಯೂಮ್"</item>
<item msgid="785049718065337473">"ಅಧಿಸೂಚನೆ ವಾಲ್ಯೂಮ್"</item>
- <item msgid="6700305533746877052">"bluetooth ವಾಲ್ಯೂಮ್"</item>
+ <item msgid="6700305533746877052">"ಬ್ಲೂಟೂತ್ ವಾಲ್ಯೂಮ್"</item>
<item msgid="2029227495214047094">"ಎಚ್ಚರವಹಿಸಿ"</item>
<item msgid="26109888160231211">"ಪರಿವೀಕ್ಷಣೆ ಸ್ಥಾನ"</item>
<item msgid="5753382310468855812">"ಪರಿವೀಕ್ಷಣೆಯ ಹೆಚ್ಚಿನ ಸಾಮರ್ಥ್ಯದ ಸ್ಥಾನ"</item>
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ಸ್ಕ್ರೀನ್ ಆನ್ ಮಾಡಿ"</item>
<item msgid="3253368931113490863">"ಖಾತೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ"</item>
<item msgid="780392378084812901">"ಹಿನ್ನೆಲೆಯಲ್ಲಿ ರನ್ ಮಾಡಿ"</item>
+ <item msgid="2629748510881309577">"ಪ್ರವೇಶಿಸುವಿಕೆ ವಾಲ್ಯೂಮ್"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"ಸ್ಥಾನ"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"ಸ್ಕ್ರೀನ್ ಆನ್ ಮಾಡಿ"</item>
<item msgid="5258373962467495905">"ಖಾತೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ"</item>
<item msgid="334625385979270703">"ಹಿನ್ನೆಲೆಯಲ್ಲಿ ರನ್ ಮಾಡಿ"</item>
+ <item msgid="9039213578110332702">"ಪ್ರವೇಶಿಸುವಿಕೆ ವಾಲ್ಯೂಮ್"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"ಚಿಕ್ಕದು"</item>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index af5393b..cbb5bc9 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ಗೆ ಸಂಪರ್ಕಪಡಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ಗೆ ಸಂಪರ್ಕಪಡಿಸಲು ನೀವು ಬಯಸುವಿರಾ?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ಫೋನ್ ಬುಕ್ ಪ್ರವೇಶಿಸುವಿಕೆಯ ವಿನಂತಿ"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ನಿಮ್ಮ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಕರೆಯ ಇತಿಹಾಸವನ್ನು ಪ್ರವೇಶಿಸಲು ಬಯಸುತ್ತದೆ. %2$s ಗೆ ಪ್ರವೇಶ ನೀಡುವುದೇ?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ನಿಮ್ಮ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಕರೆ ಇತಿಹಾಸ ಪ್ರವೇಶಿಸಲು ಬಯಸುತ್ತದೆ. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ಗೆ ಪ್ರವೇಶ ನೀಡುವುದೇ?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"ಮತ್ತೆ ಕೇಳಬೇಡಿ"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ಮತ್ತೆ ಕೇಳಬೇಡ"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"ಸಂದೇಶ ಪ್ರವೇಶಿಸುವಿಕೆಯ ವಿನಂತಿ"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"ಸೆಟ್ಟಿಂಗ್ಗಳ ಶಾರ್ಟ್ಕಟ್"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"ಯಾವುದೇ ಹೊಂದಾಣಿಕೆಯ ಚಟುವಟಿಕೆಗಳು ಕಂಡುಬಂದಿಲ್ಲ."</string>
<string name="airplane_mode" msgid="8837269988154128601">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"ಇನ್ನಷ್ಟು"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"ವಯರ್ಲೆಸ್ & ನೆಟ್ವರ್ಕ್ಗಳು"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ವಹಿಸಲು <xliff:g id="CURRENT_APP">%2$s</xliff:g> ಬದಲಿಗೆ <xliff:g id="NEW_APP">%1$s</xliff:g> ಬಳಸುವುದೇ?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ವಹಿಸಲು <xliff:g id="NEW_APP">%s</xliff:g> ಬಳಸುವುದೇ?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"ಅಪರಿಚಿತ ಸಿಮ್ ಆಪರೇಟರ್"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s ಯಾವುದೇ ತಿಳಿದಿರುವ ಪೂರೈಕೆಯ ವೆಬ್ಸೈಟ್ಗಳಿಲ್ಲ"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> ಯಾವುದೇ ತಿಳಿದಿರುವ ಪೂರೈಕೆಯ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಹೊಂದಿಲ್ಲ"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"ದಯವಿಟ್ಟು ಸಿಮ್ ಕಾರ್ಡ್ ಅನ್ನು ಸೇರಿಸಿ ಮತ್ತು ಮರುಪ್ರಾರಂಭಿಸಿ"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"ದಯವಿಟ್ಟು ಇಂಟರ್ನೆಟ್ಗೆ ಸಂಪರ್ಕಪಡಿಸಿ"</string>
<string name="location_title" msgid="1029961368397484576">"ನನ್ನ ಸ್ಥಾನ"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"ಉಪಗ್ರಹ ಚಿತ್ರಣ ಪೂರೈಕೆದಾರರು:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"ಹಸ್ತಚಾಲಿತ"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"ಹಸ್ತಚಾಲಿತವಾಗಿ ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ಸಮಸ್ಯೆ ಕಂಡುಬಂದಿದೆ."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"ಥರ್ಡ್ ಪಾರ್ಟಿ ಪರವಾನಗಿಗಳು"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ಪರವಾನಗಿಗಳನ್ನು ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ಸಮಸ್ಯೆ ಇದೆ."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"ಲೋಡ್ ಆಗುತ್ತಿದೆ..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"ಸುರಕ್ಷತೆ ಮಾಹಿತಿ"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"ಬ್ಯಾಟರಿ ಸೇವರ್"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಆಗುವಿಕೆ"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ಎಂದಿಗೂ ಬೇಡ"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s ಬ್ಯಾಟರಿ ಇರುವಾಗ"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ಬ್ಯಾಟರಿಯಲ್ಲಿ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"ಪ್ರಕ್ರಿಯೆಯ ಅಂಕಿಅಂಶಗಳು"</string>
<string name="process_stats_summary" msgid="109387941605607762">"ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರಕ್ರಿಯೆಗಳ ಕುರಿತು Geeky ಅಂಕಿಅಂಶಗಳು"</string>
<string name="app_memory_use" msgid="7849258480392171939">"ಸ್ಮರಣೆ ಬಳಕೆ"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"ರಿಂಗ್ ವಾಲ್ಯೂಮ್"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"ಅಧಿಸೂಚನೆ ವಾಲ್ಯೂಮ್"</string>
<string name="ringtone_title" msgid="5379026328015343686">"ಫೋನ್ ರಿಂಗ್ಟೋನ್"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"ಡೀಫಾಲ್ಟ್ ಅಧಿಸೂಚನೆ ಧ್ವನಿ"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"ಡಿಫಾಲ್ಟ್ ಅಲಾರಮ್ ಧ್ವನಿ"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ಕರೆಗಳಿಗೂ ಸಹ ವೈಬ್ರೇಟ್"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"ಇತರ ಧ್ವನಿಗಳು"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ಡಯಲ್ ಪ್ಯಾಡ್ ಟೋನ್ಗಳು"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"ಸೈನ್ ಇನ್ ಆಗಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲವೇ?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"ಸಿಸ್ಟಂ ಮಾಹಿತಿಯನ್ನು ಕಳುಹಿಸಿ"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ಮತ್ತೆ ತೋರಿಸಬೇಡ"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"ಇದರಂತೆ ವಿನಂತಿಸಲಾಗುತ್ತಿದೆ"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"ಖಾತೆ ಸೇರಿಸಿ"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"ಸಂಪರ್ಕ ಹುಡುಕಿ"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"ಕರೆದಾತರು ಮತ್ತು ಸಂಪರ್ಕಗಳನ್ನು ಗುರುತಿಸಲು ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಮೂಲಕ ಸಂಪರ್ಕ ಹುಡುಕಾಟಗಳಿಗೆ ಅನುಮತಿಸಿ"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"ಸ್ವಯಂ-ಸಿಂಕ್ ಖಾತೆಯ ಡೇಟಾ"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"ಸ್ವಯಂ-ಸಿಂಕ್ ವೈಯಕ್ತಿಕ ಖಾತೆ ಡೇಟಾ"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"ಸ್ವಯಂ-ಸಿಂಕ್ ಕೆಲಸದ ಖಾತೆಯ ಡೇಟಾ"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"ಖಾತೆ ಸಿಂಕ್"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"ಗೌಪ್ಯತೆ"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ಗೌಪ್ಯತೆ"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"ನಿಮ್ಮ ಕೆಲಸದ ಡೇಟಾಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸಲು, ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಿಸಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸಾಫ್ಟ್ವೇರ್ ಸ್ಥಾಪಿಸಬಹುದು, ಇದರಿಂದ ನಿಮ್ಮ ಕೆಲವು ವೈಯಕ್ತಿಕ ವಿಷಯವು ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಗೆ ಗೋಚರಿಸುವಂತಾಗುತ್ತದೆ. ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗಾಗಿ ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"ಯಾವ ಪ್ರಕಾರದ ಮಾಹಿತಿಯನ್ನು ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ನೋಡಬಹುದು?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"ಯಾವ ಬದಲಾವಣೆಗಳು ಪರಿಣಾಮ ಬೀರಬಹುದು, ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ಯಾವುದನ್ನು ನೋಡಬಹುದು?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ಈ ಸಾಧನಕ್ಕೆ ನಿಮ್ಮ ಪ್ರವೇಶವು ಯಾವ ರೀತಿಯಲ್ಲಿ ಪರಿಣಾಮ ಬೀರಬಹುದು?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ಇಮೇಲ್ ಮತ್ತು ಕ್ಯಾಲೆಂಡರ್ನಂತಹ ನಿಮ್ಮ ಕೆಲಸದ ಖಾತೆ ಜೊತೆಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಡೇಟಾ"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಪಟ್ಟಿ"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಎಲ್ಲಾ <xliff:g id="COUNT_1">%d</xliff:g> ಅಪ್ಲಿಕೇಶನ್ಗಳ ಪಟ್ಟಿ</item>
+ <item quantity="other">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಎಲ್ಲಾ <xliff:g id="COUNT_1">%d</xliff:g> ಅಪ್ಲಿಕೇಶನ್ಗಳ ಪಟ್ಟಿ</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಪ್ರತಿ ಅಪ್ಲಿಕೇಶನ್ನ ಬಳಕೆ (ವ್ಯಯಿಸಿದ ಸಮಯ ಮತ್ತು ಬಳಸಲಾದ ಡೇಟಾದ ಪ್ರಮಾಣ)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಟ್ರಾಫಿಕ್ ಲಾಗ್ಗಳು"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"ನಿಮ್ಮ ಇತ್ತೀಚಿನ ಬಗ್ ವರದಿ"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"ನಿಮ್ಮ ಅತ್ಯಂತ ಇತ್ತೀಚಿನ ಭದ್ರತಾ ಲಾಗ್"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"ಎಂದಿಗೂ ಇಲ್ಲ"</string>
</resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index 770e300..a91c2d7 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"화면 켜기"</item>
<item msgid="3253368931113490863">"계정 가져오기"</item>
<item msgid="780392378084812901">"백그라운드에서 실행"</item>
+ <item msgid="2629748510881309577">"접근성 볼륨"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"위치"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"화면 켜기"</item>
<item msgid="5258373962467495905">"계정 가져오기"</item>
<item msgid="334625385979270703">"백그라운드에서 실행"</item>
+ <item msgid="9039213578110332702">"접근성 볼륨"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"짧게"</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index fa01259..0775426 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'에 연결하려면 탭하세요."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'에 연결하시겠습니까?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"전화번호부 액세스 요청"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s이(가) 주소록과 통화 기록에 액세스하려고 합니다. %2$s에 액세스 권한을 제공하시겠습니까?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>에서 주소록과 통화 기록에 액세스하려고 합니다. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>에 액세스 권한을 부여하시겠습니까?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"다시 묻지 않음"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"다시 묻지 않음"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"메시지 액세스 요청"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"설정"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"설정"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"설정 바로가기"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"일치하는 활동이 없습니다."</string>
<string name="airplane_mode" msgid="8837269988154128601">"비행기 모드"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"더보기"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"무선 및 네트워크 설정"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> 대신 <xliff:g id="NEW_APP">%1$s</xliff:g>을(를) 사용하여 네트워크 연결을 관리하시겠습니까?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"<xliff:g id="NEW_APP">%s</xliff:g>을(를) 사용하여 네트워크 연결을 관리하시겠습니까?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"알 수 없는 SIM 연산자입니다."</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s에 알려진 프로비저닝 웹사이트가 없습니다."</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>에 알려진 프로비저닝 웹사이트가 없습니다."</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"SIM 카드를 삽입하고 다시 시작하세요."</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"인터넷에 연결하세요."</string>
<string name="location_title" msgid="1029961368397484576">"사용자 위치"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"위성 이미지 제공업체:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"수동"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"설명서를 로드하는 중에 문제가 발생했습니다."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"타사 라이선스"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"라이선스를 로드하는 동안 문제가 발생했습니다."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"로드 중..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"안전 정보"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"배터리 세이버"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"자동으로 사용 설정"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"사용 안함"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s 배터리"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"배터리 잔량 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"프로세스 통계"</string>
<string name="process_stats_summary" msgid="109387941605607762">"프로세스 실행에 관한 통계"</string>
<string name="app_memory_use" msgid="7849258480392171939">"메모리 사용량"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"벨소리 볼륨"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"알림 볼륨"</string>
<string name="ringtone_title" msgid="5379026328015343686">"전화 벨소리"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"기본 알림 소리"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"기본 알람 소리"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"전화 올 때 벨소리와 함께 진동"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"기타 소리"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"다이얼패드 신호음"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"로그인할 수 없나요?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"시스템 정보 보내기"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"다시 표시 안 함"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"요청 계정:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"계정 추가"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"직장 프로필 설정"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"연락처 검색"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"조직에서 연락처를 검색하여 발신자 및 연락처를 확인할 수 있도록 허용합니다."</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"계정 데이터 자동 동기화"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"개인 계정 데이터 자동 동기화"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"직장 계정 데이터 자동 동기화"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"계정 동기화"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"개인정보 보호"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"개인정보 보호"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"직장 데이터 액세스 권한을 부여하려면 조직에서 설정을 변경하고 기기에 소프트웨어를 설치해야 할 수 있습니다. 이렇게 하면 내 개인 콘텐츠 일부를 관리자가 볼 수 있게 됩니다. 자세한 내용을 알아보려면 조직의 관리자에게 문의하세요."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"조직에서 어떤 유형의 정보를 볼 수 있나요?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"어떤 변경사항이 조직에서 볼 수 있는 정보에 영향을 미치나요?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"어떤 작업이 이 기기에 액세스하는 데 영향을 미칠 수 있나요?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"이메일, 캘린더와 같이 직장 계정과 연결된 데이터"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"기기에 설치된 모든 앱 목록"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">기기에 설치된 모든 앱 <xliff:g id="COUNT_1">%d</xliff:g>개 목록</item>
+ <item quantity="one">기기에 설치된 모든 앱 <xliff:g id="COUNT_0">%d</xliff:g>개 목록</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"기기의 각 앱 사용량(사용 시간, 사용 데이터양)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"기기의 트래픽 로그"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"최근 버그 신고"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"최근 보안 로그"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"사용 안함"</string>
</resources>
diff --git a/res/values-ky-rKG/arrays.xml b/res/values-ky-rKG/arrays.xml
index 217daf7..841becb 100644
--- a/res/values-ky-rKG/arrays.xml
+++ b/res/values-ky-rKG/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"экранды күйгүзүү"</item>
<item msgid="3253368931113490863">"каттоо эсептерин алуу"</item>
<item msgid="780392378084812901">"фондо ойнотуу"</item>
+ <item msgid="2629748510881309577">"атайын мүмкүнчүлүктөрдүн үнүнүн катуулугу"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Орду"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Экранды күйгүзүү"</item>
<item msgid="5258373962467495905">"Каттоо эсептерин алуу"</item>
<item msgid="334625385979270703">"Фондо ойнотуу"</item>
+ <item msgid="9039213578110332702">"Атайын мүмкүнчүлүктөрдүн үнүнүн катуулугу"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Кыска"</item>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 8f9b3f5..18f7156 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -149,7 +149,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" менен туташуу үчүн таптап коюңуз."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" түзмөгүнө туташкыңыз келеби?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Байланыштарга жетки алуу сурамы"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s сиздин байланыштарыңызга жана чалуулар тизмеңизге жетки алгысы келет. %2$s уруксат берилсинби?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> байланыштарыңыз менен чалуу таржымалыңызды пайдалануу мүмкүнчүлүгүн суранып жатат. Ага <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> түзмөгүн пайдалануу мүмкүнчүлүгү берилсинби?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Кайра сураба"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Кайра сураба"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Билдирүүлөрдү көрүү талабы"</string>
@@ -268,7 +268,8 @@
<string name="done" msgid="6942539184162713160">"Даяр"</string>
<string name="settings_label" msgid="1626402585530130914">"Жөндөөлөр"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Жөндөөлөр"</string>
- <string name="settings_shortcut" msgid="3936651951364030415">"Тууралоолордун тез чакырмасы"</string>
+ <string name="settings_shortcut" msgid="3936651951364030415">"Жөндөөлөр"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Туура келген аракеттер табылган жок."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Учак режими"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Дагы"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Зымсыз тармактар"</string>
@@ -885,7 +886,7 @@
<string name="ring_volume_title" msgid="5592466070832128777">"Шыңгырдын катуулугу"</string>
<string name="vibrate_in_silent_title" msgid="3897968069156767036">"Үнсүз режимде дирилдесин"</string>
<string name="notification_sound_title" msgid="5137483249425507572">"Эскертменин абалкы үнү"</string>
- <string name="incoming_call_volume_title" msgid="8073714801365904099">"Рингтон"</string>
+ <string name="incoming_call_volume_title" msgid="8073714801365904099">"Шыңгыр"</string>
<string name="notification_volume_title" msgid="2012640760341080408">"Эскертме"</string>
<string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"Эскертмелер үчүн кирүүчү чалуунун үн көлөмү колдонулсун"</string>
<string name="home_work_profile_not_supported" msgid="7457951997970419085">"Жумуш профилдерин колдоого албайт"</string>
@@ -1300,7 +1301,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Тармактык туташууларыңызды башкаруу үчүн, <xliff:g id="CURRENT_APP">%2$s</xliff:g> ордуна <xliff:g id="NEW_APP">%1$s</xliff:g> колдоносузбу?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Тармактык туташууларыңызды башкаруу үчүн <xliff:g id="NEW_APP">%s</xliff:g> колдоносузбу?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Белгисиз SIM оператору"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s операторунда белгилүү камсыздоочу вебсайт жок"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> операторунда белгилүү камсыздоочу вебсайт жок"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"SIM-картаны салып, кайра иштетиңиз"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Интернетке кошулуңуз"</string>
<string name="location_title" msgid="1029961368397484576">"Жайгашкан жерим"</string>
@@ -1356,8 +1357,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Спутник сүрөттөрүн камсыздагычтар:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Нускама"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Нускаманы жүктөөдө көйгөй чыкты."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Үчүнчү тараптын уруксаттамалары"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Уруксаттамалар жүктөлүп жатканда көйгөй келип чыкты."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Жүктөлүүдө…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Коопсуздук маалыматы"</string>
@@ -1931,7 +1931,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Батареяны үнөмдөгүч"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Автоматтык түрдө күйгүзүү"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Эч качан"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"батареянын кубаты %1$s болгондо"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> батарея менен"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Процесстин статистикасы"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Иштеп жаткан процесстердин өзгөчө статистикасы"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Эс тутумдун пайдаланылышы"</string>
@@ -2605,10 +2605,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Шыңгырдын катуулугу"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Эскертме үнүнүн катуулугу"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Телефондун рингтону"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Демейки эскертменин добушу"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Демейки ойготкуч добушу"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Дирилдеп чалынсын"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Башка үндөр"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Тергич үндөрү"</string>
@@ -3222,6 +3220,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Кире албай жатасызбы?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Тутум маалыматын жөнөтүү"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Экинчи көрсөтүлбөсүн"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Төмөнкү катары талап кылууда"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Каттоо эсебин кошуу"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Жумуш профилинин жөндөөлөрү"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Байланыштарды издөө"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Чалуучуларды жана байланыштарды аныктоо үчүн ишканаңыз байланыштарды издешине уруксат бериңиз"</string>
@@ -3294,20 +3294,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Аккаунтту авто-шайкештештирүү"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Жеке аккаунтту авто-шайкешт."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Жумуш аккаунтун авто-шайкешт."</string>
- <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Купуялык"</string>
- <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Купуялык"</string>
- <string name="enterprise_privacy_header" msgid="5605095630252702716">"Жумушуңузга байланыштуу дайындарга мүмкүнчүлүк берүү үчүн ишканаңыз жөндөөлөрдү өзгөртүп, түзмөгүңүзгө программа орнотушу мүмкүн жана ошол себептен, жеке мазмунуңуздун айрымдары администраторуңузга көрүнүп калышы мүмкүн. Көбүрөөк маалымат үчүн ишканаңыздын администраторуна кайрылыңыз."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="account_sync_title" msgid="7214747784136106491">"Каттоо эсебин шайкештештирүү"</string>
+ <string name="enterprise_privacy_settings" msgid="6419290515657989967">"Купуялуулук"</string>
+ <string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Купуялуулук"</string>
+ <string name="enterprise_privacy_header" msgid="5605095630252702716">"Жумушка керектүү жөндөөлөрдү өзгөртүп же түзмөгүңүзгө программа орнотуп жатканда, айрым жеке дайындарыңыз администраторуңузга көрүнүп калышы мүмкүн. Көбүрөөк маалымат үчүн ишканаңыздын администраторуна кайрылыңыз."</string>
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Уюмуңуз маалыматтын кандай түрлөрүн көрө алат?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Уюмуңуз кайсы маалыматты көрө аларына кандай өзгөрүүлөр таасирин тийгизет?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Сиздин бул түзмөккө кирүүңүзгө кандай аракеттер таасирин тийгизиши мүмкүн?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Электрондук почта жана Жылнаама сыяктуу жумуш каттоо эсебиңиз менен байланышкан дайындар"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Түзмөгүңүздөгү бардык колдонмолордун тизмеси"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Түзмөгүңүздөгү <xliff:g id="COUNT_1">%d</xliff:g> колдонмодон турган тизме</item>
+ <item quantity="one">Түзмөгүңүздөгү <xliff:g id="COUNT_0">%d</xliff:g> колдонмодон турган тизме</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Түзмөгүңүздөгү ар бир колдонмонун колдонулушу (сарпталган убакыт жана колдонулган дайындардын суммасы)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Түзмөгүңүздөгү трафиктин таржымалы"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Мүчүлүштүк тууралуу акыркы кабарлооңуз"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Түзмөгүңүздүн эң акыркы коопсуздук таржымалы"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Эч качан"</string>
</resources>
diff --git a/res/values-lo-rLA/arrays.xml b/res/values-lo-rLA/arrays.xml
index 4c8d1ff..f1b952d 100644
--- a/res/values-lo-rLA/arrays.xml
+++ b/res/values-lo-rLA/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ເປີດໜ້າຈໍ"</item>
<item msgid="3253368931113490863">"ຮັບບັນຊີ"</item>
<item msgid="780392378084812901">"ນຳໃຊ້ໃນພື້ນຫຼັງ"</item>
+ <item msgid="2629748510881309577">"accessibility volume"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"ຕຳແໜ່ງ"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"ເປີດໜ້າຈໍ"</item>
<item msgid="5258373962467495905">"ຮັບບັນຊີ"</item>
<item msgid="334625385979270703">"ນຳໃຊ້ໃນພື້ນຫຼັງ"</item>
+ <item msgid="9039213578110332702">"Accessibility volume"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"ສັ້ນ"</item>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index a9f1042..705aed1 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"ແຕະເພື່ອເຊື່ອມຕໍ່ກັບ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"ທ່ານຕ້ອງການເຊື່ອມຕໍ່ຫາ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ບໍ່?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ຮ້ອງຂໍການເຂົ້າເຖິງປຶ້ມໂທລະສັບ"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ຕ້ອງການເຂົ້າເຖິງລາຍຊື່ຜູ່ຕິດຕໍ່ ແລະປະຫວັດການໂທຂອງທ່ານ. ອະນຸມັດການເຂົ້າເຖິງ %2$s ຫຼືບໍ່?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"ບໍ່ຕ້ອງຖາມຄືນ"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ບໍ່ຕ້ອງຖາມຄືນ"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"ຮ້ອງຂໍການເຂົ້າເຖິງຂໍ້ຄວາມ"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"ການຕັ້ງຄ່າ"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"ການຕັ້ງຄ່າ"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"ທາງລັດການຕັ້ງຄ່າ"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"ບໍ່ພົບກິດຈະກຳທີ່ກົງກັນ."</string>
<string name="airplane_mode" msgid="8837269988154128601">"ໂໝດຢູ່ໃນຍົນ"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"ເພີ່ມເຕີມ"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"ລະບົບໄຮ້ສາຍ & ເຄືອຂ່າຍ"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ໃຊ້ <xliff:g id="NEW_APP">%1$s</xliff:g> ແທນ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ເພື່ອຈັດການການເຊື່ອມຕໍ່ເຄືອຂ່າຍຂອງທ່ານ?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ໃຊ້ <xliff:g id="NEW_APP">%s</xliff:g> ເພື່ອຈັດການການເຊື່ອມຕໍ່ເຄືອຂ່າຍຂອງທ່ານບໍ?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"ຜູ່ໃຫ້ບໍລິການ SIM ທີ່ບໍ່ຮູ້ຈັກ"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s ບໍ່ມີເວັບໄຊການຈັດສັນ ທີ່ລະບົບຮູ້ຈັກ"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"ກະລຸນາໃສ່ຊິມກາດ ແລະເປີດເຄື່ອງຄືນໃໝ່"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"ກະລຸນາເຊື່ອມຕໍ່ກັບອິນເຕີເນັດ"</string>
<string name="location_title" msgid="1029961368397484576">"ທີ່ຢູ່ຂອງຂ້ອຍ"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"ຜູ່ສະໜອງພາບຖ່າຍດາວທຽມ:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"ຕັ້ງຄ່າເອງ"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"ເກີດບັນຫາໃນການໂຫລດຄູ່ມື."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Third-party licenses"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ເກີດບັນຫາໃນການໂຫຼດຂໍ້ມູນລິຂະສິດ."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"ກຳລັງໂຫລດ..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"ຂໍ້ມູນດ້ານຄວາມປອດໄພ"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"ປະຢັດແບັດເຕີຣີ"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ເປີດໃຊ້ອັດຕະໂນມັດ"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ບໍ່ມີປິດ"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ເມື່ອແບັດເຕີຣີເຫຼືອ %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"at <xliff:g id="PERCENT">%1$s</xliff:g>battery"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"ສະຖິຕິໂປຣເຊສ"</string>
<string name="process_stats_summary" msgid="109387941605607762">"ສະຖານະ Geeky ກ່ຽວກັບໂປຣເຊສທີ່ກຳລັງເຮັດວຽກຢູ່"</string>
<string name="app_memory_use" msgid="7849258480392171939">"ໜ່ວຍຄວາມຈຳທີ່ໃຊ້"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"ລະດັບສຽງໂທລະສັບ"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"ລະດັບສຽງແຈ້ງເຕືອນ"</string>
<string name="ringtone_title" msgid="5379026328015343686">"ຣິງໂທນໂທລະສັບ"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"ສຽງແຈ້ງເຕືອນເລີ່ມຕົ້ນ"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"ສຽງໂມງປຸກຕາມຄ່າເລີ່ມຕົ້ນ"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ສັ່ນເຕືອນເມື່ອມີການໂທເຂົ້າ"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"ສຽງອື່ນໆ"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ສຽງປຸ່ມກົດ"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"ບໍ່ສາມາດເຂົ້າສູ່ລະບົບບໍ?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"ສົ່ງຂໍ້ມູນລະບົບ"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ບໍ່ຕ້ອງສະແດງອີກ"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"ກຳລັງຮ້ອງຂໍໃນນາມ"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"ເພີ່ມບັນຊີ"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"ການຕັ້ງຄ່າໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"ຊອກຫາລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"ອະນຸຍາດໃຫ້ລາຍຊື່ຜູ້ຕິດຕໍ່ຊອກຫາໂດຍອົງກອນຂອງທ່ານໄດ້ເພື່ອຢືນຢັນຜູ້ໂທ ແລະ ລາຍຊື່ຜູ້ຕິດຕໍ່ຕ່າງໆ"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"ຊິ້ງຂໍ້ມູນບັນຊີອັດຕະໂນມັດ"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"ຊິ້ງຂໍ້ມູນບັນຊີສ່ວນຕົວອັດຕະໂນມັດ"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"ຊິ້ງຂໍ້ມູນບັນຊີບ່ອນເຮັດວຽກອັດຕະໂນມັດ"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"ການຊິ້ງຂໍ້ມູນບັນຊີ"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"ຄວາມເປັນສ່ວນຕົວ"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ຄວາມເປັນສ່ວນຕົວ"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"ເພື່ອສະໜອງສິດການເຂົ້າເຖິງຂໍ້ມູນບ່ອນເຮັດວຽກຂອງທ່ານ, ອົງກອນຂອງທ່ານສາມາດປ່ຽນການຕັ້ງຄ່າ ແລະ ຕິດຕັ້ງຊອບແວໃສ່ອຸປະກອນຂອງທ່ານໄດ້, ເຊິ່ງອາດເຮັດໃຫ້ເນື້ອຫາສ່ວນຕົວບາງຢ່າງຂອງທ່ານເບິ່ງເຫັນໄດ້ໂດຍຜູ້ເບິ່ງແຍງລະບົບ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານສຳລັບຂໍ້ມູນເພີ່ມເຕີມ."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"What types of information can your organization see?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"What changes affect what your organization can see?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"What actions may impact your access to this device?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data associated with your work account, such as email and calendar"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"List of all apps on your device"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">List of all <xliff:g id="COUNT_1">%d</xliff:g> apps on your device</item>
+ <item quantity="one">List of all <xliff:g id="COUNT_0">%d</xliff:g> app on your device</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Usage (time spent and amount of data used) of each app on your device"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Traffic logs on your device"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Your most recent bug report"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Your most recent security log"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"ບໍ່ມີກຳນົດ"</string>
</resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 1b4a01f..370614c 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"įjungti ekraną"</item>
<item msgid="3253368931113490863">"gauti paskyras"</item>
<item msgid="780392378084812901">"vykdyti fone"</item>
+ <item msgid="2629748510881309577">"pritaikymo neįgaliesiems garsas"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Vietovė"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Įjungti ekraną"</item>
<item msgid="5258373962467495905">"Gauti paskyras"</item>
<item msgid="334625385979270703">"Vykdyti fone"</item>
+ <item msgid="9039213578110332702">"Pritaikymo neįgaliesiems garsas"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Trumpa"</item>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 39afc33..7d14305 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -152,7 +152,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Palieskite, kad prisijungtumėte prie „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Ar norite prisijungti prie „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Prieigos prie telefonų knygos užklausa"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s nori pasiekti jūsų kontaktus ir skambučių istoriją. Suteikti prieigą %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"„<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>“ nori pasiekti jūsų kontaktus ir skambučių istoriją. Suteikti „<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>“ prieigą?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Daugiau neklausti"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Daugiau neklausti"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Prieigos prie pranešimų užklausa"</string>
@@ -274,6 +274,7 @@
<string name="settings_label" msgid="1626402585530130914">"Nustatymai"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Nustatymai"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Spartusis nustatymų klavišas"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nerasta jokios atitinkančios veiklos."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Lėktuvo režimas"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Daugiau"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Belaidis ryšys ir tinklai"</string>
@@ -1321,7 +1322,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Naudoti <xliff:g id="NEW_APP">%1$s</xliff:g> vietoje <xliff:g id="CURRENT_APP">%2$s</xliff:g> tinklo ryšiams tvarkyti?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Naudoti <xliff:g id="NEW_APP">%s</xliff:g> tinklo ryšiams tvarkyti?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nežinomas SIM operatorius"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"„%1$s“ neturi aprūpinimo svetainės"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"„<xliff:g id="OPERATOR">%1$s</xliff:g>“ neturi jokios žinomos aprūpinimo svetainės"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Įdėkite SIM kortelę ir paleiskite iš naujo"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Prisijunkite prie interneto"</string>
<string name="location_title" msgid="1029961368397484576">"Mano vieta"</string>
@@ -1377,8 +1378,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Palydovinių vaizdų teikėjai:\n© CNES / „Astrium“, „DigitalGlobe“, „Bluesky“, 2014 m."</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Neautomatiškai"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Įkeliant vadovą iškilo problema."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Trečiųjų šalių licencijos"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Įkeliant licencijas iškilo problema."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Įkeliama…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Saugos informacija"</string>
@@ -1966,7 +1966,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Akumuliatoriaus tausojimo priemonė"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Įjungti automatiškai"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Niekada"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"kai yra %1$s akumuliatoriaus energijos"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"kai akumuliatoriaus įkrovos lygis yra <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Procesų statistika"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Entuziastų pateikta statistika apie vykstančius procesus"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Naudojama atmintis"</string>
@@ -2650,10 +2650,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Skambučio garsumas"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Pranešimo garsumas"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Telefono skambėjimo tonas"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Numatytasis pranešimo garsas"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Numatytasis signalo garsas"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Taip pat vibruoti, kai skamb."</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Kiti garsai"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Skambinimo skydelio tonai"</string>
@@ -3289,6 +3287,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Negalite prisijungti?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Siųsti sistemos informaciją"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Daugiau nerodyti"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Užklausa pateikiama kaip"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Pridėti paskyrą"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Darbo profilio nustatymai"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktų paieška"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Leiskite nustatyti skambintojus ir kontaktus atliekant organizacijos kontaktų paiešką"</string>
@@ -3367,20 +3367,24 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Autom. sinchr. pask. duomenis"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Aut. sinchr. asm. pask. duom."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Aut. sinchr. darbo pask. duom."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Paskyros sinchronizavimas"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatumas"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatumas"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Norėdama suteikti prieigą prie jūsų darbo duomenų, organizacija gali pakeisti nustatymus ir įdiegti programinę įrangą jūsų įrenginyje, todėl administratorius gali matyti kai kurį asmeninį turinį. Jei reikia daugiau išsamios informacijos, susisiekite su organizacijos administratoriumi."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Kokio tipo informaciją organizacija gali matyti?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Kokie pakeit. turi įtakos tam, ką organizacija gali matyti?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Kokie veiksmai gali paveikti prieigą prie šio įrenginio?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Su darbo paskyra susiję duomenys, pvz., el. pašto ir kalendoriaus"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Visų įrenginyje esančių programų sąrašas"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Visų įrenginyje esančių programų (<xliff:g id="COUNT_1">%d</xliff:g>) sąrašas</item>
+ <item quantity="few">Visų įrenginyje esančių programų (<xliff:g id="COUNT_1">%d</xliff:g>) sąrašas</item>
+ <item quantity="many">Visų įrenginyje esančių programų (<xliff:g id="COUNT_1">%d</xliff:g>) sąrašas</item>
+ <item quantity="other">Visų įrenginyje esančių programų (<xliff:g id="COUNT_1">%d</xliff:g>) sąrašas</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Kiekvienos įrenginyje esančios programos naudojimas (praleistas laikas ir sunaudotų duomenų kiekis)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Srauto žurnalai jūsų įrenginyje"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Pats naujausias pranešimas apie riktą"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Pats naujausias saugos žurnalas"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Niekada"</string>
</resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 8174071..c394322 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ieslēgt ekrānu"</item>
<item msgid="3253368931113490863">"iegūt kontus"</item>
<item msgid="780392378084812901">"darbināt fonā"</item>
+ <item msgid="2629748510881309577">"pieejamības paziņojumu skaļums"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Atrašanās vieta"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Ieslēgt ekrānu"</item>
<item msgid="5258373962467495905">"Iegūt kontus"</item>
<item msgid="334625385979270703">"Darbināt fonā"</item>
+ <item msgid="9039213578110332702">"Pieejamības paziņojumu skaļums"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Īss"</item>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index df01aa5..254dafb 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -151,7 +151,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Pieskarieties, lai izveidotu savienojumu ar ierīci “<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Vai vēlaties izveidot savienojumu ar ierīci <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Pieprasījums piekļūt tālruņu grāmatai"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Ierīce %1$s vēlas piekļūt jūsu kontaktpersonām un zvanu vēsturei. Vai sniegt piekļuvi ierīcei %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vēlas piekļūt jūsu kontaktpersonu datiem un zvanu vēsturei. Vai piešķirt šo piekļuvi ierīcei <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Nejautāt atkārtoti"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Nejautāt atkārtoti"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Pieprasījums piekļūt ziņojumam"</string>
@@ -272,6 +272,7 @@
<string name="settings_label" msgid="1626402585530130914">"Iestatījumi"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Iestatījumi"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Saīsne Iestatījumi"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Netika atrasta neviena atbilstoša darbība."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Lidojuma režīms"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Vairāk"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bezvadu sakari un tīkli"</string>
@@ -1311,7 +1312,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Vai tīkla savienojumu pārvaldībai izmantot lietotni <xliff:g id="NEW_APP">%1$s</xliff:g>, nevis <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Vai tīkla savienojumu pārvaldībai izmantot lietotni <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nezināms SIM operators"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Operatora %1$s nodrošināšanas vietne nav zināma."</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Operatoram <xliff:g id="OPERATOR">%1$s</xliff:g> nav zināmas nodrošināšanas vietnes."</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Lūdzu, ievietojiet SIM karti un restartējiet."</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Lūdzu, izveidojiet savienojumu ar internetu."</string>
<string name="location_title" msgid="1029961368397484576">"Mana atrašanās vieta"</string>
@@ -1367,8 +1368,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satelītuzņēmumu nodrošinātāji:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Rokasgrāmata"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Radās ar rokasgrāmatas ielādi saistīta problēma."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Trešo pušu licences"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Radās ar licenču ielādi saistīta problēma."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Notiek ielāde…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informācija par drošību"</string>
@@ -1949,7 +1949,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Akumulatora enerģijas taupīšanas režīms"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Ieslēgt automātiski"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nekad"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ar akumulatora jaudu %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ar akumulatora uzlādes līmeni <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Procesu statistika"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistika par darbības procesiem"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Atmiņas lietojums"</string>
@@ -2628,10 +2628,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Zvana skaļums"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Paziņojumu skaļums"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Tālruņa zvana signāls"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Paziņojuma noklusējuma skaņa"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Signāla noklusējuma skaņa"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrācija zvaniem"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Citas skaņas"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Numura sastādīšanas tastatūras skaņas"</string>
@@ -3255,6 +3253,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Vai neizdodas pierakstīties?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Sistēmas informācijas nosūtīšana"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Vairs nerādīt"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Pieprasījums tiks iesniegts, izmantojot kontu"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Pievienot kontu"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Darba profila iestatījumi"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktpersonu meklēšana"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Atļaut identificēt zvanītājus un kontaktpersonas, kad organizācijā tiek meklētas kontaktpersonas"</string>
@@ -3330,20 +3330,23 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Autom. sinhronizēt konta datus"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Aut. sinhr. pers. konta datus"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Aut. sinhr. darba konta datus"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Konta sinhronizācija"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Konfidencialitāte"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Konfidencialitāte"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Lai nodrošinātu piekļuvi jūsu darba datiem, jūsu organizācija var mainīt iestatījumus un instalēt programmatūru jūsu ierīcē. Tādējādi administratoram var būt redzama daļa jūsu personiskā satura. Lai iegūtu detalizētāku informāciju, sazinieties ar organizācijas administratoru."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Kāda veida informāciju var skatīt jūsu organizācija?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Kādas izmaiņas ietekmē organizācijai redzamo informāciju?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Kādas darbības var ietekmēt jūsu piekļuvi šai ierīcei?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Ar jūsu darba kontu saistīti dati, piemēram, e-pasta un kalendāra dati"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Visu jūsu ierīcē instalēto lietotņu saraksts"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="zero">Visu jūsu ierīcē instalēto lietotņu (<xliff:g id="COUNT_1">%d</xliff:g>) saraksts</item>
+ <item quantity="one">Visu jūsu ierīcē instalēto lietotņu (<xliff:g id="COUNT_1">%d</xliff:g>) saraksts</item>
+ <item quantity="other">Visu jūsu ierīcē instalēto lietotņu (<xliff:g id="COUNT_1">%d</xliff:g>) saraksts</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Katras jūsu ierīcē instalētās lietotnes lietojuma dati (pavadītais laiks un izmantoto datu daudzums)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Jūsu ierīces datplūsmas žurnāli"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Jūsu pēdējais kļūdas pārskats"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Jūsu pēdējais drošības žurnāls"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nekad"</string>
</resources>
diff --git a/res/values-mk-rMK/arrays.xml b/res/values-mk-rMK/arrays.xml
index 719aec9..a1836f6 100644
--- a/res/values-mk-rMK/arrays.xml
+++ b/res/values-mk-rMK/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"вклучи го екранот"</item>
<item msgid="3253368931113490863">"земи сметки"</item>
<item msgid="780392378084812901">"извршувај во заднина"</item>
+ <item msgid="2629748510881309577">"јачина на звук на пристапноста"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Локација"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Вклучи го екранот"</item>
<item msgid="5258373962467495905">"Земи сметки"</item>
<item msgid="334625385979270703">"Извршувај во заднина"</item>
+ <item msgid="9039213578110332702">"Јачина на звук на пристапноста"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Кратко"</item>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index 3ee377a..af2111d 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Допрeте за да се поврзе со „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Дали сакате да се поврзете со „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Барање за пристап кон телефонски именик"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s сака да пристапи кон вашите контакти и историја на повици. Дозволи пристап на %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> сака да пристапи кон вашите контакти и историјата на повици. Дозволи пристап на <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Не прашувај повторно"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Не прашувај повторно"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Порака за барање пристап"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Поставки"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Поставки"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Кратенка за подесувања"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Не се пронајдени активности што се соовпаѓаат."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Режим на работа во авион"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Повеќе"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Безжичен и мрежи"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Да се користи <xliff:g id="NEW_APP">%1$s</xliff:g> наместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управување со мрежните врски?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Да се користи <xliff:g id="NEW_APP">%s</xliff:g> за управување на вашите мрежни врски?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Непознат СИМ-оператор"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s нема познато одредување на веб-сајт"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> нема познато обезбедување веб-сајт"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Вметнете СИМ картичката и рестартирајте"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Поврзете се на интернет"</string>
<string name="location_title" msgid="1029961368397484576">"Моја локација"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Даватели на сателитски снимки:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Упатство"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Постои проблем со вчитување на упатството."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Лиценци на трети лица"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Постои проблем при вчитување на лиценците."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Се вчитува..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Безбедносни информации"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Штедач на батерија"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Вклучи автоматски"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Никогаш"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"на %1$s батерија"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"при <xliff:g id="PERCENT">%1$s</xliff:g> батерија"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Статистика на процес"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Паметна статистика за процеси кои се извршуваат"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Употреба на меморија"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Јачина на звук на ѕвонење"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Јачина на звук на известување"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Мелодија на телефон"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Стандарден звук за известување"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Стандарден звук за аларм"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Вибрации и за повици"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Други звуци"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Тонови на тастатура за бирање"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Не може да се најавите?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Испрати системски информации"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Не покажувај повторно"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Бара како"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Додај сметка"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Поставки на работен профил"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Пребарување контакти"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Дозволете при пребарувањата контакти на вашата организација да се препознаваат повикувачи и контакти"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Автосинхр. податоци за сметка"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Автосинхр. лични податоци"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Автосинхр. подат. за службена"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Синхронизирање сметка"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Приватност"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Приватност"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"За да се обезбеди пристап до деловните податоци, вашата организација може да ги промени поставките и да инсталира софтвер на вашиот уред, што би можело да предизвика некои од вашите лични податоци да бидат видливи за администраторот. За повеќе детали, контактирајте со администраторот во организацијата."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Кои видови информации може да ги види вашата организација?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Кои промени влијаат на она што го гледа организацијата?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Кои дејства може да влијаат на вашиот пристап до уредов?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Податоци поврзани со вашата службена сметка, како е-пошта и календар"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Список со сите апликации на уредот"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Список со сите <xliff:g id="COUNT_1">%d</xliff:g> апликации на уредот</item>
+ <item quantity="other">Список со сите <xliff:g id="COUNT_1">%d</xliff:g> апликации на уредот</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Користење (поминато време и искористена количина на податоци) на секоја апликација на уредот"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Дневници за сообраќајот на уредот"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Вашиот најнов извештај за грешки"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Вашиот најнов безбедносен дневник"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Никогаш"</string>
</resources>
diff --git a/res/values-ml-rIN/arrays.xml b/res/values-ml-rIN/arrays.xml
index 119a991..7a3c581 100644
--- a/res/values-ml-rIN/arrays.xml
+++ b/res/values-ml-rIN/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"സ്ക്രീൻ ഓണാക്കുക"</item>
<item msgid="3253368931113490863">"അക്കൗണ്ടുകൾ സ്വന്തമാക്കുക"</item>
<item msgid="780392378084812901">"പശ്ചാത്തലത്തിൽ റൺ ചെയ്യുക"</item>
+ <item msgid="2629748510881309577">"പ്രവേശനക്ഷമതാ വോളിയം"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"ലൊക്കേഷൻ"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"സ്ക്രീൻ ഓണാക്കുക"</item>
<item msgid="5258373962467495905">"അക്കൗണ്ടുകൾ സ്വന്തമാക്കുക"</item>
<item msgid="334625385979270703">"പശ്ചാത്തലത്തിൽ റൺ ചെയ്യുക"</item>
+ <item msgid="9039213578110332702">"പ്രവേശനക്ഷമതാ വോളിയം"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"ഹ്രസ്വം"</item>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index 3300569..1358502 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" എന്ന ഉപകരണത്തിലേക്ക് കണക്റ്റുചെയ്യാൻ ടാപ്പുചെയ്യുക."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" എന്നതിൽ കണക്റ്റുചെയ്യണോ?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ഫോൺ ബുക്ക് ആക്സസ്സ് അഭ്യർത്ഥന"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s, നിങ്ങളുടെ കോൺടാക്റ്റുകളും കോൾ ചരിത്രവും ആക്സസ്സുചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു. %2$s എന്നതിലേക്ക് ആക്സസ്സ് നൽകണോ?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"നിങ്ങളുടെ കോൺടാക്റ്റുകളും കോൾ ചരിത്രവും ആക്സസ്സ് ചെയ്യുന്നതിന് <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ആഗ്രഹിക്കുന്നു. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ഉപകരണത്തിന് ആക്സസ്സ് നൽകണോ?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"വീണ്ടും ആവശ്യപ്പെടരുത്"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"വീണ്ടും ആവശ്യപ്പെടരുത്"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"സന്ദേശ ആക്സസ്സ് അഭ്യർത്ഥന"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"ക്രമീകരണം"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"ക്രമീകരണം"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"ക്രമീകരണങ്ങളിലേയ്ക്ക്"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"പൊരുത്തമുള്ള പ്രവർത്തനങ്ങളൊന്നും കണ്ടെത്തിയില്ല."</string>
<string name="airplane_mode" msgid="8837269988154128601">"ഫ്ലൈറ്റ് മോഡ്"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"കൂടുതൽ"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"വയർലസ്സും നെറ്റ്വർക്കും"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"നിങ്ങളുടെ നെറ്റ്വർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കാൻ <xliff:g id="CURRENT_APP">%2$s</xliff:g> എന്നതിന് പകരം <xliff:g id="NEW_APP">%1$s</xliff:g> എന്നതാണോ ഉപയോഗിക്കുന്നത്?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"നിങ്ങളുടെ നെറ്റ്വർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കാൻ <xliff:g id="NEW_APP">%s</xliff:g> ആണോ ഉപയോഗിക്കുന്നത്?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"അജ്ഞാത സിം ഓപ്പറേറ്റർ"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s-ന് അറിയപ്പെടുന്ന പ്രൊവിഷനിംഗ് വെബ്സൈറ്റ് ഒന്നുമില്ല"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> എന്ന ഓപ്പറേറ്റർക്ക് അറിയപ്പെടുന്ന പ്രൊവിഷനിംഗ് വെബ്സൈറ്റ് ഒന്നുമില്ല"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"സിം കാർഡ് ചേർത്തതിനുശേഷം പുനരാരംഭിക്കുക"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"ഇന്റർനെറ്റിൽ കണക്റ്റുചെയ്യുക"</string>
<string name="location_title" msgid="1029961368397484576">"എന്റെ ലൊക്കേഷൻ"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"ഉപഗ്രഹ ഇമേജറി ദാതാക്കൾ:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"മാനുവൽ"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"മാനുവൽ ലോഡുചെയ്യുന്നതിൽ ഒരു പ്രശ്നമുണ്ട്."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"മൂന്നാം കക്ഷി ലൈസൻസുകൾ"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ലൈസൻസുകൾ ലോഡുചെയ്യുന്നതിൽ ഒരു പ്രശ്നമുണ്ട്."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"ലോഡുചെയ്യുന്നു..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"സുരക്ഷാ വിവരം"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"ബാറ്ററി സേവർ"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ഓട്ടോമാറ്റിക്കായി ഓണാക്കുക"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ഒരിക്കലും"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s ബാറ്ററി"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> ബാറ്ററിയിൽ"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"പ്രോസസ്സ് സ്ഥിതിവിവരക്കണക്കുകൾ"</string>
<string name="process_stats_summary" msgid="109387941605607762">"പ്രവർത്തന പ്രോസസ്സുകളെക്കുറിച്ചുള്ള Geeky സ്ഥിതിവിവരക്കണക്കുകൾ"</string>
<string name="app_memory_use" msgid="7849258480392171939">"മെമ്മറി ഉപയോഗം"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"റിംഗ് വോളിയം"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"അറിയിപ്പ് വോളിയം"</string>
<string name="ringtone_title" msgid="5379026328015343686">"ഫോൺ റിംഗ്ടോൺ"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"ഡിഫോൾട്ട് അറിയിപ്പ് ശബ്ദം"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"ഡിഫോൾട്ട് അലാറം ശബ്ദം"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"കോളുകൾക്കും വൈബ്രേറ്റ്"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"മറ്റു ശബ്ദങ്ങൾ"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ഡയൽ പാഡ് ടോണുകൾ"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"സൈൻ ഇൻ ചെയ്യാൻ കഴിയുന്നില്ലേ?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"സിസ്റ്റം വിവരങ്ങൾ അയയ്ക്കുക"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"വീണ്ടും കാണിക്കരുത്"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"ഇനിപ്പറയുന്നതായി അഭ്യർത്ഥിക്കുന്നു"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"അക്കൗണ്ട് ചേർക്കുക"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"ഔദ്യോഗിക പ്രൊഫൈൽ ക്രമീകരണം"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"കോൺടാക്റ്റ് തിരയൽ"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"വിളിക്കുന്നവരെയും കോൺടാക്റ്റുകളെയും തിരിച്ചറിയുന്നതിന് കോൺടാക്റ്റുകൾ തിരയാൻ നിങ്ങളുടെ സ്ഥാപനത്തെ അനുവദിക്കുക"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"അക്കൗണ്ട് വിവരങ്ങൾ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"വ്യക്തിഗത അക്കൗണ്ട് വിവരങ്ങൾ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"ഔദ്യോഗിക അക്കൗണ്ട് വിവരങ്ങൾ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"അക്കൗണ്ട് സമന്വയം"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"സ്വകാര്യത"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"സ്വകാര്യത"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"ഔദ്യോഗിക ഡാറ്റയിലേക്ക് നിങ്ങൾക്ക് ആക്സസ്സ് നൽകുന്നതിന്, സ്ഥാപനം നിങ്ങളുടെ ഉപകരണത്തിലെ ക്രമീകരണം മാറ്റുകയും അതിൽ സോഫ്റ്റ്വെയർ ഇൻസ്റ്റാൾ ചെയ്യുകയും ചെയ്തേക്കാം, ഇതിനാൽ അഡ്മിൻ നിങ്ങളുടെ ചില വ്യക്തിഗത ഉള്ളടക്കങ്ങൾ കാണുന്നതിന് സാധ്യതയുണ്ട്. കൂടുതൽ വിശദാംശങ്ങൾ അറിയുന്നതിന് സ്ഥാപനത്തിന്റെ അഡ്മിനെ ബന്ധപ്പെടുക."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"എന്തൊക്കെ തരം വിവരങ്ങളാണ് നിങ്ങളുടെ സ്ഥാപനത്തിന് കാണാൻ കഴിയുക?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"നിങ്ങളുടെ സ്ഥാപനത്തിന് എന്തൊക്കെ കാണാൻ കഴിയുമെന്നതിനെ ഏതൊക്കെ മാറ്റങ്ങൾ ബാധിക്കും?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ഈ ഉപകരണത്തിലേക്കുള്ള നിങ്ങളുടെ ആക്സസ്സിനെ ഏതൊക്കെ പ്രവൃത്തികൾ ബാധിക്കാം?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"നിങ്ങളുടെ ഔദ്യോഗിക അക്കൗണ്ടുമായി ബന്ധപ്പെടുത്തിയിട്ടുള്ള, ഇമെയിലും കലണ്ടറും പോലുള്ള വിവരങ്ങൾ"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"നിങ്ങളുടെ ഉപകരണത്തിലെ എല്ലാ ആപ്സും ലിസ്റ്റുചെയ്യുക"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">നിങ്ങളുടെ ഉപകരണത്തിലെ എല്ലാ <xliff:g id="COUNT_1">%d</xliff:g> ആപ്സും ലിസ്റ്റുചെയ്യുക</item>
+ <item quantity="one">നിങ്ങളുടെ ഉപകരണത്തിലെ എല്ലാ <xliff:g id="COUNT_0">%d</xliff:g> ആപ്പും ലിസ്റ്റുചെയ്യുക</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"നിങ്ങളുടെ ഉപകരണത്തിലെ ഓരോ ആപ്പിന്റെയും ഉപയോഗം (ചെലവിട്ട സമയവും ഉപയോഗിച്ച ഡാറ്റയുടെ അളവും)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"നിങ്ങളുടെ ഉപകരണത്തിലെ ട്രാഫിക് ലോഗുകൾ"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"നിങ്ങളുടെ ഏറ്റവും പുതിയ ബഗ് റിപ്പോർട്ട്"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"നിങ്ങളുടെ ഏറ്റവും പുതിയ സുരക്ഷാ ലോഗ്"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"ഒരിക്കലും വേണ്ട"</string>
</resources>
diff --git a/res/values-mn-rMN/arrays.xml b/res/values-mn-rMN/arrays.xml
index d749193..68894a5 100644
--- a/res/values-mn-rMN/arrays.xml
+++ b/res/values-mn-rMN/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"дэлгэцийг асаах"</item>
<item msgid="3253368931113490863">"бүртгэл авах"</item>
<item msgid="780392378084812901">"дэвсгэрт ажиллуулах"</item>
+ <item msgid="2629748510881309577">"хүртээмжийн дууны түвшин"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Байршил"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Дэлгэцийг асаах"</item>
<item msgid="5258373962467495905">"Бүртгэл авах"</item>
<item msgid="334625385979270703">"Дэвсгэрт ажиллуулах"</item>
+ <item msgid="9039213578110332702">"Хүртээмжийн дууны түвшин"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Богино"</item>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 9d2c56a..2ab8856 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" руу холбохын тулд дарна уу."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Та \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"-д холбогдохыг хүсч байна уу?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Утасны лавлахад хандах хүсэлт"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s таны харилцагчид болон ярианы түүхэд хандалт хийх хүсэлтэй байна. %2$s-д хандалт хийхийг зөвшөөрөх үү?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> таны харилцагчид болон дуудлагын түүхэнд хандах хүсэлтэй байна. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>-д хандах зөвшөөрөл олгох уу?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Дахиж үл асуух"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Дахиж үл асуух"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Зурваст хандах хүсэлт"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Тохиргоо"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Тохиргоо"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Тохиргооны товчилбор"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Тохирох үйл ажиллагаа олдсонгүй."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Нислэгийн горим"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Цааш"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Утасгүй & сүлжээ"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Өөрийн сүлжээнии холболтуудыг удирдахад <xliff:g id="NEW_APP">%1$s</xliff:g>-г <xliff:g id="CURRENT_APP">%2$s</xliff:g>-н оронд ашиглах уу?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Сүлжээний холболтуудыг удирдахад <xliff:g id="NEW_APP">%s</xliff:g>-г ашиглах уу?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Тодорхойгүй SIM оператор"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s-д мэдэгдэж байгаа эрх зохицуулах вебсайт байхгүй байна"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>-д мэдэгдэж буй хангалтын вэбсайт алга"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"SIM карт оруулаад дахин эхлүүлнэ үү"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Интернэтэд холбогдоно уу"</string>
<string name="location_title" msgid="1029961368397484576">"Миний Байршил"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Сансрын зураг нийлүүлэгчид: \n © 2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Гар ажиллагаатай"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Гар ажиллагааг ачаалах явцад алдаа гарлаа."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Гуравдагч талын лиценз"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Лицензүүдийг ачааллах явцад алдаа гарлаа."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Ачаалж байна..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Аюулгүй байдлын мэдээлэл"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Батарей хэмнэгч"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Автоматаар асаах"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Хэзээ ч үгүй"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"батерей %1$s болмогц"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"батерей <xliff:g id="PERCENT">%1$s</xliff:g> болоход"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Процессын статус"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Ажиллаж байгаа процессуудын талаарх статус"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Санах ойн ашиглалт"</string>
@@ -2475,7 +2475,7 @@
<string name="app_restrictions_custom_label" msgid="6160672982086584261">"Апп хязгаарлалт тохируулах"</string>
<string name="user_restrictions_controlled_by" msgid="3164078767438313899">"Контрол хийгч <xliff:g id="APP">%1$s</xliff:g>"</string>
<string name="app_sees_restricted_accounts" msgid="7503264525057246240">"Энэ апп таны акаунтуудад хандалт хийж чадна"</string>
- <string name="app_sees_restricted_accounts_and_controlled_by" msgid="6968697624437267294">"Энэхүү програм нь таны хаягт нэвтрэх боломжтой байна. <xliff:g id="APP">%1$s</xliff:g> хянаж байна"</string>
+ <string name="app_sees_restricted_accounts_and_controlled_by" msgid="6968697624437267294">"Энэхүү апп нь таны хаягт нэвтрэх боломжтой байна. <xliff:g id="APP">%1$s</xliff:g> хянаж байна"</string>
<string name="restriction_wifi_config_title" msgid="8889556384136994814">"Wi‑Fi болон мобайл"</string>
<string name="restriction_wifi_config_summary" msgid="70888791513065244">"Wi‑Fi болон Мобайл тохиргоог өөрчлөхийг зөвшөөрөх"</string>
<string name="restriction_bluetooth_config_title" msgid="8871681580962503671">"Bluetooth"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Хонхны дууны хэмжээ"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Мэдэгдлийн дууны хэмжээ"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Утасны хонхны ая"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Мэдэгдлийн хонхны дуу"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Сэрүүлгийн үндсэн ая"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Дуудлагад бас чичрэх"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Бусад ая"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Залгах товчлуурын ая"</string>
@@ -2684,11 +2682,11 @@
<string name="notification_listener_disable_warning_summary" msgid="6738915379642948000">"Хэрэв та <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>-н мэдэгдлийн хандалтыг унтраавал Бүү саад бол хандалт мөн адил унтрах болно."</string>
<string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"Унтраах"</string>
<string name="notification_listener_disable_warning_cancel" msgid="8586417377104211584">"Цуцлах"</string>
- <string name="vr_listeners_title" msgid="1318901577754715777">"VR туслагч үйлчилгээ"</string>
- <string name="no_vr_listeners" msgid="2689382881717507390">"Суулгасан апп-с VR туслагч үйлчилгээгээр ажиллах хүсэлт гаргаагүй байна."</string>
- <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"VR үйлчилгээг <xliff:g id="SERVICE">%1$s</xliff:g>-д хандахыг зөвшөөрөх үү?"</string>
+ <string name="vr_listeners_title" msgid="1318901577754715777">"Виртуал Орчин (VR) туслагч үйлчилгээ"</string>
+ <string name="no_vr_listeners" msgid="2689382881717507390">"Суулгасан апп-с Виртуал Орчин (VR) туслагч үйлчилгээгээр ажиллах хүсэлт гаргаагүй байна."</string>
+ <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"Виртуал Орчин (VR) үйлчилгээг <xliff:g id="SERVICE">%1$s</xliff:g>-д хандахыг зөвшөөрөх үү?"</string>
<string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"<xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> нь таныг апп-г виртуал бодит горимд ашиглах үед ажиллах болно."</string>
- <string name="display_vr_pref_title" msgid="8104485269504335481">"Төхөөрөмж VR горимын үед"</string>
+ <string name="display_vr_pref_title" msgid="8104485269504335481">"Төхөөрөмж Виртуал Орчин (VR) горимын үед"</string>
<string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"Бүдгэрлийг бууруулах (санал болгож буй)"</string>
<string name="display_vr_pref_off" msgid="2190091757123260989">"Анивчилтыг бууруулах"</string>
<string name="manage_zen_access_title" msgid="2611116122628520522">"\"Бүү саад бол\" хандалт"</string>
@@ -3221,6 +3219,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Нэвтэрч чадахгүй байна уу?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Системийн мэдээллийг илгээх"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Дахин бүү үзүүл"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Дараахаар хүсэлт гаргаж байна"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Бүртгэл нэмэх"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Ажлын профайлын тохиргоо"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Харилцагч хайх"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Дуудлага хийгч болон харилцагчийг тогтоохын тулд танай байгууллагыг харилцагчийн хайлт хийхийг зөвшөөрдөг"</string>
@@ -3293,20 +3293,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Бүртгэлийн өгөгдлийг автоматаар синк хийх"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Хувийн бүртгэлийн өгөгдлийг автоматаар синк хийх"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Ажлын бүртгэлийн өгөгдлийг автоматаар синк хийх"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Бүртгэл синк хийх"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Нууцлал"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Нууцлал"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Tаныг ажлын өгөгдөлд хандуулахын тулд танай байгууллага таны төхөөрөмжийн зарим тохиргоог өөрчилж, програм хангамж суулгах шаардлагатай бөгөөд ингэснээр таны зарим хувийн агуулга админд харагдах болно. Дэлгэрэнгүй мэдээлэл авахын тулд админтайгаа холбогдоно уу."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Танай байгууллага ямар мэдээлэл харж болох вэ?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Ямар өөрчлөлт танай байгууллагын харж болох мэдээлэлд нөлөөлөх вэ?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Ямар үйлдэл таны энэ төхөөрөмжийн хандалтад нөлөөлөх вэ?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Имэйл, хуанли зэрэг таны ажлын бүртгэлтэй холбоотой өгөгдөл"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Таны төхөөрөмжийн бүх апп-н жагсаалт"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Таны төхөөрөмжийн бүх <xliff:g id="COUNT_1">%d</xliff:g> апп-н жагсаалт</item>
+ <item quantity="one">Таны төхөөрөмжийн бүх <xliff:g id="COUNT_0">%d</xliff:g> апп-н жагсаалт</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Таны төхөөрөмжийн апп тус бүрийн (зарцуулсан цаг болон нийт ашигласан дата) хэрэглээ"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Таны төхөөрөмжийн замын хөдөлгөөний бүртгэл"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Таны сүүлийн үеийн алдааны тайлан"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Таны сүүлийн үеийн аюулгүй байдлын бүртгэл"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Хэзээ ч үгүй"</string>
</resources>
diff --git a/res/values-mr-rIN/arrays.xml b/res/values-mr-rIN/arrays.xml
index a0c3a56..130e2eb 100644
--- a/res/values-mr-rIN/arrays.xml
+++ b/res/values-mr-rIN/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"स्क्रीन चालू करा"</item>
<item msgid="3253368931113490863">"खाती मिळवा"</item>
<item msgid="780392378084812901">"पार्श्वभूमीमध्ये चालवा"</item>
+ <item msgid="2629748510881309577">"प्रवेशयोग्यता आकारमान"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"स्थान"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"स्क्रीन चालू करा"</item>
<item msgid="5258373962467495905">"खाती मिळवा"</item>
<item msgid="334625385979270703">"पार्श्वभूमीमध्ये चालवा"</item>
+ <item msgid="9039213578110332702">"प्रवेशयोग्यता आकारमान"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"लहान"</item>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index 148b02c..8d4792d 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" शी कनेक्ट करण्यासाठी टॅप करा."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"आपण \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" शी कनेक्ट करू इच्छिता?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"फोन पुस्तकात प्रवेश करण्याची विनंती"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ला आपल्या संपर्कांमध्ये आणि कॉल इतिहासामध्ये प्रवेश करण्याची आवश्यकता आहे. %2$s ला प्रवेश करण्याची अनुमती द्यायची?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> आपले संपर्क आणि कॉल इतिहासामध्येे प्रवेश करू इच्छिते. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ला प्रवेश द्यायचा?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"पुन्हा विचारू नका"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"पुन्हा विचारू नका"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"संदेशात प्रवेश करण्याची विनंती"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"सेटिंग्ज"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"सेटिंग्ज"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"सेटिंग्ज शॉर्टकट"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"कोणतेही जुळणारे क्रियाकलाप आढळले नाहीत."</string>
<string name="airplane_mode" msgid="8837269988154128601">"विमान मोड"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"अधिक"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"वायरलेस आणि नेटवर्क"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"आपली नेटवर्क कनेक्शन व्यवस्थापित करण्यासाठी <xliff:g id="CURRENT_APP">%2$s</xliff:g> ऐवजी <xliff:g id="NEW_APP">%1$s</xliff:g> वापरायचा?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"आपली नेटवर्क कनेक्शन व्यवस्थापित करण्यासाठी <xliff:g id="NEW_APP">%s</xliff:g> वापरायचा?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"अज्ञात सिम ऑपरेटर"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s कडे कोणतीही ज्ञात तरतूद वेबसाइट नाही"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> मध्ये कोणतीही ज्ञात तरतूद वेबसाइट नाही"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"कृपया सिम कार्ड घाला आणि रीस्टार्ट करा"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"कृपया इंटरनेटशी कनेक्ट करा"</string>
<string name="location_title" msgid="1029961368397484576">"माझे स्थान"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"उपग्रह प्रतिमा प्रदाते:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"व्यक्तिचलित"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"व्यक्तिचलित लोड करताना समस्या आली."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"तृतीय-पक्ष परवाने"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"परवाने लोड करताना समस्या आली."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"लोड करत आहे..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"सुरक्षितता माहिती"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"बॅटरी सेव्हर"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"स्वयंचलितपणे चालू करा"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"कधीही नाही"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s बॅटरी वर"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g>बॅटरीवर"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"प्रक्रिया आकडेवारी"</string>
<string name="process_stats_summary" msgid="109387941605607762">"चालत असलेल्या प्रक्रियांबद्दल गीकी आकडेवारी"</string>
<string name="app_memory_use" msgid="7849258480392171939">"मेमरी वापर"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"रिंग व्हॉल्यूम"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"सूचना व्हॉल्यूम"</string>
<string name="ringtone_title" msgid="5379026328015343686">"फोन रिंगटोन"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"डीफॉल्ट सूचना ध्वनी"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"डीफॉल्ट अलार्म ध्वनी"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"कॉल साठी कंपन देखील"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"इतर ध्वनी"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"डायल पॅड टोन"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"साइन इन करू शकत नाही?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"सिस्टीम माहिती पाठवा"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"परत दर्शवू नका"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"म्हणून विनंती करीत आहे"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"खाते जोडा"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"कार्य प्रोफाइल सेटिंग्ज"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"संपर्क शोध"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"कॉलर आणि संपर्कांना ओळखण्यासाठी आपल्या संस्थेनुसार संपर्क शोधांची अनुमती द्या"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"खाते डेटा स्वयं संकालित करा"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"वैयक्तिक खाते डेटा स्वयं संकालित करा"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"कार्य खाते डेटा स्वयं संकालित करा"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"खाते संकालन"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"गोपनीयता"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"गोपनीयता"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"आपल्या कार्य डेटामध्ये प्रवेश देण्यासाठी, आपली संस्था कदाचित आपल्या डिव्हाइस वरील सेटिंग्ज बदलू शकते आणि सॉफ्टवेअर स्थापित करू शकते ज्यामुळे आपली काही वैयक्तिक सामग्री आपल्या प्रशासकास दृश्यमान होऊ शकेल. अधिक तपशीलांसाठी आपल्या संस्थेच्या प्रशासकाशी संपर्क साधा."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"आपली संस्था कोणत्या प्रकारांची माहिती पाहू शकते?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"आपली संस्था जे पाहू शकते त्यास कोणते बदल प्रभावित करतात?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"या डिव्हाइस मधील आपल्या प्रवेशास कोणत्या क्रिया प्रभावित करू शकतात?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"आपल्या कार्य खात्यासह संबद्ध असलेला डेटा़ जसे की, ईमेल आणि कॅलेंडर"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"आपल्या डिव्हाइस वरील सर्व अॅप्सची सूची"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">आपल्या डिव्हाइस वरील सर्व <xliff:g id="COUNT_1">%d</xliff:g> अॅपची सूची</item>
+ <item quantity="other">आपल्या डिव्हाइस वरील सर्व <xliff:g id="COUNT_1">%d</xliff:g> अॅप्सची सूची</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"आपल्या डिव्हाइस वरील प्रत्येक अॅपचा (घालविलेला कालावधी आणि वापरलेल्या डेटाचे प्रमाण) वापर"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"आपल्या डिव्हाइस वरील रहदारी लॉग"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"आपले अगदी अलीकडील दोष अहवाल"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"आपली अगदी अलीकडील सुरक्षितता लॉग"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"कधीही नाही"</string>
</resources>
diff --git a/res/values-ms-rMY/arrays.xml b/res/values-ms-rMY/arrays.xml
index 13f1fc1..4b514f2 100644
--- a/res/values-ms-rMY/arrays.xml
+++ b/res/values-ms-rMY/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"hidupkan skrin"</item>
<item msgid="3253368931113490863">"dapatkan akaun"</item>
<item msgid="780392378084812901">"jalankan di latar belakang"</item>
+ <item msgid="2629748510881309577">"kelantangan kebolehaksesan"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Lokasi"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Hidupkan skrin"</item>
<item msgid="5258373962467495905">"Dapatkan akaun"</item>
<item msgid="334625385979270703">"Jalankan di latar belakang"</item>
+ <item msgid="9039213578110332702">"Kelantangan kebolehaksesan"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Pendek"</item>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index b0fe5fe..c705ed2 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Sentuh untuk menyambung ke \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Adakah anda mahu menyambung kepada \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Permintaan akses buku telefon"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s mahu mengakses kenalan dan sejarah panggilan anda. Beri akses kepada %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> mahu mengakses kenalan anda dan sejarah panggilan. Beri akses kepada <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Jangan tanya lagi"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Jangan tanya lagi"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Permintaan akses mesej"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Tetapan"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Tetapan"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Pintasan tetapan"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Tiada aktiviti yang sepadan ditemui."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Mod pesawat"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Lagi"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wayarles & rangkaian"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> bukannya <xliff:g id="CURRENT_APP">%2$s</xliff:g> untuk mengurus sambungan rangkaian anda?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> untuk mengurus sambungan rangkaian anda?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Pengendali SIM yang tidak diketahui"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s tdk mempunyai tapak web peruntukan dikenali"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> tiada tapak web peruntukan yang dikenali"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Sila masukkan kad SIM dan mulakan semula"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Sila sambung ke internet"</string>
<string name="location_title" msgid="1029961368397484576">"Lokasi Saya"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Pembekal imej satelit:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Terdapat masalah memuatkan manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Lesen pihak ketiga"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Terdapat masalah memuatkan lesen."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Memuatkan..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Maklumat keselamatan"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Penjimat bateri"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Hidupkan secara automatik"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Tidak sekali-kali"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"pada %1$s bateri"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"pada <xliff:g id="PERCENT">%1$s</xliff:g> bateri"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistik Proses"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistik skema tentang proses yang sedang berjalan"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Penggunaan memori"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Kelantangan deringan"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Kelantangan pemberitahuan"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Nada dering telefon"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Bunyi pemberitahuan lalai"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Bunyi penggera lalai"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Juga bergetar untuk panggilan"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Bunyi lain"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Nada pad dail"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Tidak dapat log masuk?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Hantar maklumat sistem"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Jangan tunjukkan lagi"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Meminta sebagai"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Tambah akaun"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Tetapan profil kerja"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Carian kenalan"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Benarkan carian kenalan oleh organisasi anda untuk mengenal pasti pemanggil dan kenalan"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Autosegerak data akaun"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autosegerak data akaun peribadi"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autosegerak data akaun kerja"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Penyegerakan akaun"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privasi"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privasi"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Untuk menyediakan akses kepada data kerja, organisasi anda boleh menukar tetapan dan memasang perisian pada peranti anda. Tindakan ini boleh menyebabkan sesetengah kandungan peribadi anda kelihatan kepada pentadbir. Hubungi pentadbir organisasi anda untuk mendapatkan butiran lanjut."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Apakah jenis maklumat yg dapat dilihat oleh organisasi anda?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Apakah perubahan yg mnjjskn perkara yg dpt dilht organisasi?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Apakah tindakan yang menjejaskan akses anda ke peranti ini?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data yang dikaitkan dengan akaun kerja anda, seperti e-mel dan kalendar"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Senarai semua apl pada peranti anda"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Senarai kesemua <xliff:g id="COUNT_1">%d</xliff:g> apl pada peranti anda</item>
+ <item quantity="one">Senarai kesemua <xliff:g id="COUNT_0">%d</xliff:g> apl pada peranti anda</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Penggunaan (masa dan amaun data yang digunakan) setiap apl pada peranti anda"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Log trafik pada peranti anda"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Laporan pepijat anda yang terbaharu"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Log keselamatan anda yang terbaharu"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Tidak pernah"</string>
</resources>
diff --git a/res/values-my-rMM/arrays.xml b/res/values-my-rMM/arrays.xml
index 575b425..8e20ce2 100644
--- a/res/values-my-rMM/arrays.xml
+++ b/res/values-my-rMM/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"မျက်နှာပြင်ကို ဖွင့်ပါ"</item>
<item msgid="3253368931113490863">"အကောင့်များကို ရယူပါ"</item>
<item msgid="780392378084812901">"နောက်ခံမှာ အလုပ်လုပ်ပါ"</item>
+ <item msgid="2629748510881309577">"အများသုံးစွဲနိုင်မှု အသံ"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"တည်နေရာ"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"မျက်နှာပြင်ကို ဖွင့်ပါ"</item>
<item msgid="5258373962467495905">"အကောင့်များကို ရယူပါ"</item>
<item msgid="334625385979270703">"နောက်ခံမှာ အလုပ်လုပ်ပါ"</item>
+ <item msgid="9039213578110332702">"အများသုံးစွဲနိုင်မှု အသံ"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"အတို"</item>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 72c0686..640c881 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" သို့ချိတ်ဆက်ရန် တို့ပါ။"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"နှင့်ချိတ်ဆက်ချင်ပါသလား"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ဖုန်းလိပ်စာစာအုပ်သုံးစွဲခွင့်တောင်းခံခြင်း"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s မှ သင်၏ အဆက်အသွယ်များနှင့် ယခင်ခေါ်ဆိုမှုမှတ်တမ်းကို သုံးစွဲခွင့် တောင်းခံနေသည်။ %2$s ကိုသုံးစွဲခွင့်ပေးမည်လား ?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> သည် သင့်အဆက်အသွယ်များနှင့် ခေါ်ဆိုမှုမှတ်တမ်းကို အသုံးပြုလိုပါသည်။ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ကို အသုံးပြုခွင့်ပေးလိုပါသလား။"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"နောက်ထပ်မမေးပါနှင့်"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"နောက်ထပ်မမေးပါနှင့်"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"စာသုံးခွင့်ပြုရန်တောင်းခံချက်"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"ဆက်တင်များ"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"ဆက်တင်များ"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"ဆက်တင်အတိုကောက်"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"ကိုက်ညီမှုရှိသည့် လုပ်ဆောင်ချက်ကို မတွေ့ပါ။"</string>
<string name="airplane_mode" msgid="8837269988154128601">"လေယာဉ်ပေါ်သုံးစနစ်"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"နောက်ထပ်"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"ကြိုးမဲ့နှင့် ကွန်ယက်များ"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"သင်၏ ကွန်ရက် ချိတ်ဆက်မှုများကို စီမံကွပ်ကဲရန် <xliff:g id="NEW_APP">%1$s</xliff:g>ကို <xliff:g id="CURRENT_APP">%2$s</xliff:g>၏အစား သုံးရမလား?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"သင်၏ ကွန်ရက် ချိတ်ဆက်မှုများကို စီမံကွပ်ကဲရန် <xliff:g id="NEW_APP">%s</xliff:g>ကို သုံးရမလား?{"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"မသိရ ဆင်းမ် အော်ပရေတာ"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s တွင် သိပြီးသား သတ်မှတ်ဝက်ဘ်ဆိုက်မရှိပါ။"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> တွင် မည်သည့်ဝဘ်ဆိုက်မျှ ပေးထားခြင်းမရှိပါ"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"ကျေးဇူးပြု၍ ဆင်းမ်ကဒ်ထည့်၍ အစမှ ပြန်စပါ။"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"ကျေးဇူးပြု၍ အင်တာနက်ဖြင့် ချိတ်ဆက်ပါ။"</string>
<string name="location_title" msgid="1029961368397484576">"ကျွန်ုပ်၏တည်နေရာ"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"ဂြိုဟ်တုပုံ ပေးပို့သူများ-\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"ကိုယ်တိုင်ထည့်သွင်းခြင်း"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"လမ်းညွှန်ကို ဖတ်တင်ရန် ပြသနာရှိနေပါသည်"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"ပြင်ပကုမ္ပဏီလိုင်စင်များ"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"လိုင်စင်များကို ဖတ်တင်ရန် ပြသနာရှိနေပါသည်"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"ဖွင့်နေစဉ်"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"လုံခြုံမှုဆိုင်ရာအချက်အလက်များ"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"ဘက်ထရီ ချွေတာသူ"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"အလိုအလျောက် ဖွင့်ရန်"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ဘယ်တော့မှ"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ဘက်ထရီ %1$s မှာ"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ဘတ်ထရီ <xliff:g id="PERCENT">%1$s</xliff:g> ၌"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"လုပ်ငန်းစဉ်ကိန်းဂဏန်းများ"</string>
<string name="process_stats_summary" msgid="109387941605607762">"အလုပ်လုပ်ခြင်းလုပ်ငန်းစဉ်များအကြောင်း ပညာရှင်အဆင့်စာရင်း"</string>
<string name="app_memory_use" msgid="7849258480392171939">"မှတ်ဉာဏ်သုံးခြင်း"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"ဖုန်းမြည်သံ ပမာဏ"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"အကြောင်းကြားချက်သံ ပမာဏ"</string>
<string name="ringtone_title" msgid="5379026328015343686">"ဖုန်းဝင်တီးလုံး"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"မူရင်းအကြောင်းကြားသံ"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"မူရင်းနှိုးစက်သံ"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ဖုန်းဝင်လျှင် တုန်ခါရန်"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"အခြားအသံများ"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ဖုန်းဒိုင်ခွက် အသံ"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"လက်မှတ်ထိုးဝင်၍ မရဘူးလား။"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"စနစ်အချက်အလက်များကို ပို့ပါ"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"နောက်တစ်ခါ မပြပါနှင့်"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"အဖြစ် တောင်းဆိုနေသည်"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"အကောင့်ထည့်ရန်"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"အလုပ်ပရိုဖိုင်ဆက်တင်များ"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"အဆက်အသွယ်ကို ရှာဖွေပါ"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"ခေါ်ဆိုသူများနှင့် အဆက်အသွယ်များကို မည်သူမည်ဝါဖြစ်ကြောင်း ခွဲခြားနိုင်ရန်အတွက် သင့်အဖွဲ့အစည်းအမည်ကို အဆက်အသွယ်အား ရှာဖွေခွင့်ပြုပါ"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"အကောင့်ဒေတာ အော်တိုစင့်ခ်လုပ်ပါ"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"ကိုယ်ပိုင်အကောင့်ဒေတာ အော်တိုစင့်ခ်လုပ်ပါ"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"အကောင့်ဒေတာ အော်တိုစင့်ခ်လုပ်ပါ"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"အကောင့်ကို စင့်ခ်လုပ်ရန်"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"ပုဂ္ဂိုလ်ရေး"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ပုဂ္ဂိုလ်ရေး"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"သင့်အလုပ်ဒေတာများကို အသုံးပြုခွင့်ပေးရန် သင့်အဖွဲ့အစည်းသည် သင့်စက်ပစ္စည်းပေါ်တွင် ဆော့ဖ်ဝဲထည့်သွင်းခြင်းနှင့် ဆက်တင်များပြောင်းလဲခြင်းတို့ ပြုလုပ်နိုင်ပါသည်။ ထိုသို့လုပ်ခြင်းအားဖြင့် အချို့သော သင့်ကိုယ်ရေးကိုယ်တာ အချက်အလက်များကို စီမံခန့်ခွဲသူက မြင်နိုင်ပါလိမ့်မည်။ အသေးစိတ် ထပ်မံသိရှိလိုပါက သင့်အဖွဲ့အစည်း၏ စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"သင့်အဖွဲ့အစည်းသည် မည်သည့်အချက်အလက်များကို မြင်နိုင်သနည်း။"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"သင့်အဖွဲ့အစည်းကမည်သည့်အပြောင်းအလဲသက်ရောက်မှုအားမြင်နိုင်သလဲ။"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"မည်သည့်လုပ်ရပ်က ဤစက်အားအသုံးပြုမှုကိုသက်ရောက် စေနိုင်သနည်း။"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"အီးမေးလ်နှင့် ပြက္ခဒိန်ကဲ့သို့ သင့်အလုပ်အကောင့်နှင့် ဆက်စပ်နေသည့် ဒေတာ"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"သင့်စက်ပစ္စည်းပေါ်ရှိ အက်ပ်အားလုံးစာရင်း"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">သင့်စက်ပစ္စည်းပေါ်ရှိ အက်ပ် <xliff:g id="COUNT_1">%d</xliff:g> ခုစာရင်း</item>
+ <item quantity="one">သင့်စက်ပစ္စည်းပေါ်ရှိ အက်ပ် <xliff:g id="COUNT_0">%d</xliff:g> ခုစာရင်း</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"သင့်စက်ပစ္စည်းပေါ်ရှိ အက်ပ်တစ်ခုစီတိုင်းအား အသုံးပြုမှု (သုံးစွဲမှုကြာချိန်နှင့် အသုံးပြုသည့်ဒေတာ ပမာဏ)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"သင့်စက်ပစ္စည်းပေါ်ရှိ ယာဉ်ကြောအသွားအလာ မှတ်တမ်းများ"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"သင့်မကြာသေးမီက ချွတ်ယွင်းမှုအစီရင်ခံချက်များ"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"သင့်လတ်တလော လုံခြုံရေးမှတ်တမ်း"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"ဘယ်တော့မှ"</string>
</resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index e61521d..518814b 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"slå på skjermen"</item>
<item msgid="3253368931113490863">"hent kontoer"</item>
<item msgid="780392378084812901">"kjør i bakgrunnen"</item>
+ <item msgid="2629748510881309577">"tilgjengelighetsvolum"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Sted"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Slå på skjermen"</item>
<item msgid="5258373962467495905">"Hent kontoer"</item>
<item msgid="334625385979270703">"Kjør i bakgrunnen"</item>
+ <item msgid="9039213578110332702">"Tilgjengelighetsvolum"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kort"</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 6a498ca..3588f52 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Trykk for å koble til «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>»."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Ønsker du å koble til «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>»?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Forespørsel om tilgang for telefonbok"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ønsker adgang til kontaktene og ringeloggen din. Vil du gi %2$s tilgang?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ønsker å få tilgang til kontaktene dine og anropsloggen din. Vil du gi tilgang til <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ikke spør igjen"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ikke spør igjen"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Forespørsel om meldingstilgang"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Innstillinger"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Innstillinger"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Snarvei for Innstillinger"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Finner ingen samsvarende aktiviteter."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Flymodus"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Mer"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Trådløst og nettverk"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Vil du bruke <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> til å administrere nettverkstilkoblingene?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Vil du bruke <xliff:g id="NEW_APP">%s</xliff:g> til å administrere nettverkstilkoblingene?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Ukjent SIM-operatør"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s har ikke noe kjent nettsted for identitetshåndtering"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> mangler kjent nettsted for identitetshåndtering"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Sett inn SIM-kortet og start enheten på nytt"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Koble deg til Internett"</string>
<string name="location_title" msgid="1029961368397484576">"Min posisjon"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Leverandører av satellittbilder:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Brukerveiledning"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Det oppsto et problem ved innlasting av brukerveiledningen."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Tredjepartslisenser"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Kunne ikke hente lisensene."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"henter…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Sikkerhetsinformasjon"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Batterisparing"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Slå på automatisk"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Aldri"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Når batteriet har %1$s igjen"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"med <xliff:g id="PERCENT">%1$s</xliff:g> batteri"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Prosess-statistikk"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Nerdete statistikk om prosesser som er i gang"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Minnebruk"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ringevolum"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Varselvolum"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Telefonringelyd"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Standard varsellyd"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standard alarmlyd"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrer også når det ringer"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Andre lyder"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tastaturtoner"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Har du problemer med påloggingen?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Send systeminformasjon"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ikke vis dette igjen"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Sender forespørsel som"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Legg til konto"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Innstillinger for jobbprofilen"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktsøk"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Tillat kontaktsøk for organisasjonen din for å identifisere innringere og kontakter"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Autosynk. av kontodata"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autosynk. av pers. kontodata"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autosynk. av jobbkontodata"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Kontosynkronisering"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Personvern"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Personvern"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"For å gi tilgang til jobbdataene dine kan organisasjonen din endre innstillinger og installere programvare på enheten din. Dette kan føre til at noe av det personlige innholdet ditt blir synlig for administratoren din. Ta kontakt med organisasjonens administrator for mer informasjon."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Hva slags informasjon kan organisasjonen din se?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Hvilke endringer påvirker hva organisasjonen din kan se?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Hvilke handlinger kan påvirke tilgangen din til enheten?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data som er knyttet til jobbkontoen din, for eksempel e-post og kalender"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Liste over alle appene på enheten din"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Liste over alle appene på enheten din (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="one">Liste over alle appene på enheten din (<xliff:g id="COUNT_0">%d</xliff:g>)</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Bruk (tid og datamengde som er brukt) for hver app på enheten din"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Trafikklogger på enheten din"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Den nyeste feilrapporten din"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Den nyeste sikkerhetsloggen din"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Aldri"</string>
</resources>
diff --git a/res/values-ne-rNP/arrays.xml b/res/values-ne-rNP/arrays.xml
index 9282407..c1a5ca4 100644
--- a/res/values-ne-rNP/arrays.xml
+++ b/res/values-ne-rNP/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"स्क्रिन सक्रिय गर्नुहोस्"</item>
<item msgid="3253368931113490863">"खाताहरू प्राप्त गर्नुहोस्"</item>
<item msgid="780392378084812901">"पृष्ठभूमिमा सञ्चालन गर्नुहोस्"</item>
+ <item msgid="2629748510881309577">"पहुँचको मात्रा"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"स्थान"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"स्क्रिन सक्रिय गर्नुहोस्"</item>
<item msgid="5258373962467495905">"खाताहरू प्राप्त गर्नुहोस्"</item>
<item msgid="334625385979270703">"पृष्ठभूमिमा सञ्चालन गर्नुहोस्"</item>
+ <item msgid="9039213578110332702">"पहुँचको मात्रा"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"छोटो"</item>
@@ -412,7 +414,7 @@
<item msgid="758587126802411846">"सेतोमा कालो"</item>
<item msgid="1495307195241623402">"कालोमा पहेँलो"</item>
<item msgid="6039700130994371612">"नीलोमा पहेँलो"</item>
- <item msgid="7169235156349580064">"अनुकूलन"</item>
+ <item msgid="7169235156349580064">"आफू अनुकूल"</item>
</string-array>
<string-array name="vpn_types_long">
<item msgid="2732002039459078847">"PPTP VPN"</item>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 014f4e9..4f7a2e9 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" सँग जडान गर्न ट्याप गर्नुहोस्।"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" सँग जडित हुन चाहनु हुन्छ?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"फोन पुस्तिका पहुँच अनुरोध"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s तपाईँका सबै सम्पर्कहरू र कल इतिहासहरूमा पहुँच गर्न चाहन्छ। %2$s को लागि पहुँच दिने हो?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> तपाईंका सम्पर्कहरू र कलको इतिहासमाथि पहुँच गर्न चाहनुहुन्छ। <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> माथि पहुँच गर्न दिने हो?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"फेरि नसोध्नुहोस्"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"फेरि नसोध्नुहोस्"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"सन्देश पहुँच अनुरोध"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"सेटिङहरू"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"सेटिङहरू"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"सेटिङ सर्टकट"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"कुनै मिल्दो गतिविधि भेट्टिएन।"</string>
<string name="airplane_mode" msgid="8837269988154128601">"हवाइजहाज मोड"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"थप"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"ताररहित सञ्जाल"</string>
@@ -805,7 +806,7 @@
<string name="wifi_ip_settings_invalid_ip_address" msgid="2513142355364274970">"एउटा मान्य IP ठेगाना टाइप गर्नुहोस्।"</string>
<string name="wifi_ip_settings_invalid_gateway" msgid="8164264988361096450">"एउटा मान्य गेटवे ठेगाना टाइप गर्नुहोस्।"</string>
<string name="wifi_ip_settings_invalid_dns" msgid="8744583948328391047">"एउटा मान्य DNS ठेगाना टाइप गर्नुहोस्।"</string>
- <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="40470058023181052">"नेटवर्क प्रेफिक्सको लम्बाइ ० देखि ३२का बिच टाइप गर्नुहोस्।"</string>
+ <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="40470058023181052">"नेटवर्क प्रेफिक्सको लम्बाइ ० देखि ३२का बीच टाइप गर्नुहोस्।"</string>
<string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
<string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
<string name="wifi_gateway" msgid="163914742461092086">"गेटवे"</string>
@@ -948,7 +949,7 @@
<string name="night_display_category_status" msgid="1952928783124400330">"वस्तुस्थिति"</string>
<string name="night_display_auto_mode_title" msgid="8046314360381608455">"स्वतः सक्रिय पार्नुहोस्"</string>
<string name="night_display_auto_mode_never" msgid="6723636142053240947">"कहिले पनि होइन"</string>
- <string name="night_display_auto_mode_custom" msgid="6012300346981608242">"अनुकूलन समय सहितको कार्यतालिका"</string>
+ <string name="night_display_auto_mode_custom" msgid="6012300346981608242">"आफू अनुकूल समय सहितको कार्यतालिका"</string>
<string name="night_display_auto_mode_twilight" msgid="2123345097508167094">"सूर्यास्तदेखि सूर्योदयसम्म"</string>
<string name="night_display_start_time_title" msgid="8918016772613689584">"सुरु समय"</string>
<string name="night_display_end_time_title" msgid="8286061578083519350">"समय समाप्ति"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"तपाईँको सञ्जाल जडानहरू व्यवस्थापन गर्न <xliff:g id="CURRENT_APP">%2$s</xliff:g> सट्टामा <xliff:g id="NEW_APP">%1$s</xliff:g> प्रयोग गर्ने?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"तपाईँको सञ्जाल जडानहरू व्यवस्थापन गर्न <xliff:g id="NEW_APP">%s</xliff:g> प्रयोग गर्ने?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"अज्ञात SIM सञ्चालक"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s को कुनै ज्ञात प्रावधानीकरण वेबसाइट छैन"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> को प्रावधानीकरणको कुनै ज्ञात वेबसाइट छैन"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"कृपया SIM कार्ड भित्र राखेर पुनः स्टार्ट गर्नुहोस्"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"कृपया इन्टरनेटसँग जोड्नुहोस्"</string>
<string name="location_title" msgid="1029961368397484576">"मेरो स्थान"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"स्याटलाइट कल्पना प्रदायकहरू:\n©२०१४ CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"म्यानुअल"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"म्यानुअल लोड गर्दा एउटा समस्या आएको छ।"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"तेस्रो-पक्षका इजाजतपत्रहरू"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"लाइसेन्स लोड गर्न समस्या आएको छ।"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"लोड हुँदै..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"सुरक्षित जानकारी"</string>
@@ -1706,7 +1706,7 @@
<string name="accessibility_settings" msgid="3975902491934816215">"पहुँच"</string>
<string name="accessibility_settings_title" msgid="2130492524656204459">"उपलब्धता सेटिङहरू"</string>
<string name="vision_settings_title" msgid="4204111425716868288">"दृश्यका सेटिङहरू"</string>
- <string name="vision_settings_description" msgid="5679491180156408260">"तपाईंले आफ्नो आवश्यकताहरूसँग मेल खाने बनाउन यस यन्त्रलाई अनुकूलन गर्न सक्नुहुन्छ। यी पहुँच सुविधाहरू सेटिङमा पछि परिवर्तन गर्न सकिनेछ।"</string>
+ <string name="vision_settings_description" msgid="5679491180156408260">"तपाईंले आफ्नो आवश्यकताहरूसँग मेल खाने बनाउन यस यन्त्रलाई आफू अनुकूल गर्न सक्नुहुन्छ। यी पहुँच सुविधाहरू सेटिङमा पछि परिवर्तन गर्न सकिनेछ।"</string>
<string name="accessibility_services_title" msgid="2592221829284342237">"सेवाहरू"</string>
<string name="talkback_title" msgid="7912059827205988080">"Talkback"</string>
<string name="talkback_summary" msgid="8331244650729024963">"मुख्तया दृष्टिविहीन र कम दृष्टि भएका व्यक्तिहरूको लागि स्क्रिन रिडर"</string>
@@ -1763,7 +1763,7 @@
<string name="captioning_locale" msgid="4559155661018823503">"भाषा"</string>
<string name="captioning_text_size" msgid="6737002449104466028">"पाठ आकार"</string>
<string name="captioning_preset" msgid="8939737196538429044">"क्याप्सन शैली"</string>
- <string name="captioning_custom_options_title" msgid="5067500939930322405">"अनुकूलन विकल्प"</string>
+ <string name="captioning_custom_options_title" msgid="5067500939930322405">"आफू अनुकूल विकल्प"</string>
<string name="captioning_background_color" msgid="9053011212948992570">"पृष्ठभूमि रङ्ग"</string>
<string name="captioning_background_opacity" msgid="6029993616419971202">"पृष्ठभूमि अपारदर्शकता"</string>
<string name="captioning_window_color" msgid="6902052743419717394">"window रङ्ग क्याप्सन गर्नुहोस्"</string>
@@ -1928,11 +1928,11 @@
<string name="menu_stats_refresh" msgid="1676215433344981075">"पुनःताजा गर्नुहोस्"</string>
<string name="process_kernel_label" msgid="3916858646836739323">"एन्ड्रोइड OS"</string>
<string name="process_mediaserver_label" msgid="6500382062945689285">"मिडिया सर्भर"</string>
- <string name="process_dex2oat_label" msgid="2592408651060518226">"अनुप्रयोग अनुकूलन"</string>
+ <string name="process_dex2oat_label" msgid="2592408651060518226">"अनुप्रयोग आफू अनुकूल"</string>
<string name="battery_saver" msgid="1426682272004907982">"ब्याट्री सेभर"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"स्वतः खोल्नुहोस्"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"कहिले पनि होइन"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s ब्याट्रीमा"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> ब्याट्री हुँदा"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"प्रक्रिया तथ्याङ्क"</string>
<string name="process_stats_summary" msgid="109387941605607762">"चालु रहने प्रक्रियाहरूको बारेको geeky तथ्याङ्क"</string>
<string name="app_memory_use" msgid="7849258480392171939">"मेमोरी प्रयोग"</string>
@@ -2377,7 +2377,7 @@
<string name="user_add_user_item_title" msgid="8212199632466198969">"प्रयोगकर्ता"</string>
<string name="user_add_profile_item_title" msgid="8353515490730363621">"प्रतिबन्धित प्रोफाइल"</string>
<string name="user_add_user_title" msgid="2108112641783146007">"नयाँ प्रयोगकर्ता थप्ने हो?"</string>
- <string name="user_add_user_message_long" msgid="8562152293752222985">"यस यन्त्रलाई अन्य व्यक्तिसँग साझेदारी गर्न थप प्रयोगकर्ताहरू सिर्जना गरेर गर्न सक्नुहुनेछ। प्रत्येक प्रयोगकर्ताको आफ्नै ठाउँ हुन्छ, जसलाई तिनीहरूले अनुप्रयोगहरू, वालपेपर र अन्य धेरै अन्तर्गत अनुकूलन गर्न र सक्छन्। प्रयोगकर्ताले यन्त्र सेटिङ पनि मिलाउन सक्छन् जस्तै Wi-Fi, जसले सबैलाई असर गर्छ।\n\nजब तपाईँ नयाँ प्रयोगकर्ता थप्नु हुन्छ, त्यो व्यक्तिले आफ्नो ठाउँ सेटअप गर्न आवश्यक छ।\n\nकुनै पनि प्रयोगकर्ताले सबै अन्य प्रयोगकर्ताहरूको लागि अनुप्रयोगहरू अद्यावधिक गर्न सक्नेछ।"</string>
+ <string name="user_add_user_message_long" msgid="8562152293752222985">"यस यन्त्रलाई अन्य व्यक्तिसँग साझेदारी गर्न थप प्रयोगकर्ताहरू सिर्जना गरेर गर्न सक्नुहुनेछ। प्रत्येक प्रयोगकर्ताको आफ्नै ठाउँ हुन्छ, जसलाई तिनीहरूले अनुप्रयोगहरू, वालपेपर र अन्य धेरै अन्तर्गत आफू अनुकूल गर्न र सक्छन्। प्रयोगकर्ताले यन्त्र सेटिङ पनि मिलाउन सक्छन् जस्तै Wi-Fi, जसले सबैलाई असर गर्छ।\n\nजब तपाईँ नयाँ प्रयोगकर्ता थप्नु हुन्छ, त्यो व्यक्तिले आफ्नो ठाउँ सेटअप गर्न आवश्यक छ।\n\nकुनै पनि प्रयोगकर्ताले सबै अन्य प्रयोगकर्ताहरूको लागि अनुप्रयोगहरू अद्यावधिक गर्न सक्नेछ।"</string>
<string name="user_add_user_message_short" msgid="1511354412249044381">"जब तपाईंले नयाँ प्रयोगकर्ता थप्नुहुन्छ, त्यो व्यक्तिले आफ्नो ठाउँ सेट गर्न आवश्यक छ।\n\nकुनै पनि प्रयोगकर्ताले सबै अन्य प्रयोगकर्ताहरूका लागि अनुप्रयोगहरू अद्यावधिक गर्न सक्छन्।"</string>
<string name="user_setup_dialog_title" msgid="1765794166801864563">"अहिले प्रयोगकर्ता सेटअप गर्ने हो?"</string>
<string name="user_setup_dialog_message" msgid="1004068621380867148">"यन्त्र लिन र आफ्नो ठाउँ बनाउन व्यक्ति उपलब्ध छ भन्ने कुराको निश्चित गर्नुहोस्"</string>
@@ -2556,7 +2556,7 @@
<string name="keywords_display_brightness_level" msgid="3891383826236015854">"मधुरो स्क्रिन, टचस्क्रिन, ब्याट्री"</string>
<string name="keywords_display_auto_brightness" msgid="3325150824507953765">"मधुरो स्क्रिन, टचस्क्रिन, ब्याट्री"</string>
<string name="keywords_display_night_display" msgid="7630169927425425754">"मधुरो स्क्रिन, रात, हल्का रङ"</string>
- <string name="keywords_display_wallpaper" msgid="7362076351860131776">"पृष्ठभूमि, निजीकृत गर्नुहोस्, प्रदर्शन अनुकूलन गर्नुहोस्"</string>
+ <string name="keywords_display_wallpaper" msgid="7362076351860131776">"पृष्ठभूमि, निजीकृत गर्नुहोस्, प्रदर्शन आफू अनुकूल गर्नुहोस्"</string>
<string name="keywords_display_font_size" msgid="3404655440064726124">"पाठ आकार"</string>
<string name="keywords_display_cast_screen" msgid="7684618996741933067">"प्रोजेक्ट गर्नुहोस्, cast गर्नुहोस्"</string>
<string name="keywords_storage" msgid="3299217909546089225">"ठाउँ, डिस्क, हार्ड ड्राइभ, यन्त्र उपयोग"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"घन्टीको मात्रा"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"ध्वनी सूचना"</string>
<string name="ringtone_title" msgid="5379026328015343686">"फोन रिङटोन"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"सूचना सम्बन्धी पूर्वनिर्धारित ध्वनि"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"अलार्मको पूर्वनिर्धारित ध्वनि"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"कलका लागि भाइब्रेट पनि"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"अन्य ध्वनिहरू"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"प्याड टोनहरू डायल गर्नुहोस्"</string>
@@ -2931,12 +2929,12 @@
<string name="memory_avg_desc" msgid="1551240906596518412">"औसत <xliff:g id="MEMORY">%1$s</xliff:g>"</string>
<string name="memory_use_running_format" msgid="4172488041800743760">"<xliff:g id="MEMORY">%1$s</xliff:g> / <xliff:g id="RUNNING">%2$s</xliff:g>"</string>
<string name="process_format" msgid="77905604092541454">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
- <string name="high_power_apps" msgid="3459065925679828230">"ब्याट्री अनुकूलन"</string>
- <string name="high_power_filter_on" msgid="3222265297576680099">"अनुकूलन भएको छैन"</string>
- <string name="high_power_on" msgid="6216293998227583810">"अनुकूलन नगरिएको"</string>
- <string name="high_power_off" msgid="3393904131961263278">"ब्याट्री प्रयोग अनुकूलन गर्दै"</string>
- <string name="high_power_system" msgid="7362862974428225301">"ब्याट्री अनुकूलन उपलब्ध छैन"</string>
- <string name="high_power_desc" msgid="6283926163708585760">"ब्याट्री अनुकूलन लागू नगर्नुहोस्। तपाईँको ब्याट्री निकै छिटो सिध्याउन सक्छ।"</string>
+ <string name="high_power_apps" msgid="3459065925679828230">"ब्याट्री आफू अनुकूल"</string>
+ <string name="high_power_filter_on" msgid="3222265297576680099">"आफू अनुकूल भएको छैन"</string>
+ <string name="high_power_on" msgid="6216293998227583810">"आफू अनुकूल नगरिएको"</string>
+ <string name="high_power_off" msgid="3393904131961263278">"ब्याट्री प्रयोग आफू अनुकूल गर्दै"</string>
+ <string name="high_power_system" msgid="7362862974428225301">"ब्याट्री आफू अनुकूल उपलब्ध छैन"</string>
+ <string name="high_power_desc" msgid="6283926163708585760">"ब्याट्री आफू अनुकूल लागू नगर्नुहोस्। तपाईँको ब्याट्री निकै छिटो सिध्याउन सक्छ।"</string>
<string name="high_power_prompt_title" msgid="4257734526819699048">"ब्याट्री अनुकूलनको उपेक्षा गर्ने हो?"</string>
<string name="high_power_prompt_body" msgid="4072587909486730876">"अनुप्रयोग <xliff:g id="APP_NAME">%1$s</xliff:g> लाई पृष्ठभूमिमा जडित रहन दिने हो? यसले थप ब्याट्री खपत गर्न सक्छ।"</string>
<string name="battery_summary" msgid="101415762036784289">"<xliff:g id="PERCENTAGE">%1$d</xliff:g>%% पछिल्लो पूरा चार्ज देखिको प्रयोग"</string>
@@ -2999,11 +2997,11 @@
<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="ignore_optimizations_on" msgid="6915689518016285116">"अनुकूलन नगर्नुहोस्"</string>
+ <string name="ignore_optimizations_on" msgid="6915689518016285116">"आफू अनुकूल नगर्नुहोस्"</string>
<string name="ignore_optimizations_off" msgid="6153196256410296835">"अनुकुलन गर्नुहोस्"</string>
<string name="ignore_optimizations_on_desc" msgid="2321398930330555815">"यसले तपाईँको ब्याट्री चाँडै खपत गर्न सक्छ।"</string>
<string name="ignore_optimizations_off_desc" msgid="5255731062045426544">"अझ टिकाउयुक्त ब्याट्रीका लागि सिफारिस गरिएको"</string>
- <string name="ignore_optimizations_title" msgid="2829637961185027768">"<xliff:g id="APP">%s</xliff:g> लाई ब्याट्री अनुकूलन बेवास्ता गर्नै अनुमति दिने हो?"</string>
+ <string name="ignore_optimizations_title" msgid="2829637961185027768">"<xliff:g id="APP">%s</xliff:g> लाई ब्याट्री आफू अनुकूल बेवास्ता गर्नै अनुमति दिने हो?"</string>
<string name="app_list_preference_none" msgid="108006867520327904">"कुनै पनि होइन"</string>
<string name="work_profile_usage_access_warning" msgid="8870622842216566692">"यस अनुप्रयोगका लागि प्रयोग पहुँच बन्द गर्नाले तपाईँको कार्य प्रोफाइलमा अनुप्रयोगहरूका डेटाको प्रयोग ट्र्याक गर्न तपाईँको प्रशासकलाई रोक्दैन।"</string>
<string name="accessibility_lock_screen_progress" msgid="2408292742980383166">"<xliff:g id="COUNT_1">%2$d</xliff:g> को <xliff:g id="COUNT_0">%1$d</xliff:g> वर्णहरू प्रयोग गरिए"</string>
@@ -3154,7 +3152,7 @@
<!-- String.format failed for translation -->
<!-- no translation found for battery_saver_desc_turn_on_auto_pct (7472323223085636533) -->
<skip />
- <string name="not_battery_optimizing" msgid="5362861851864837617">"ब्याट्री अनुकूलन प्रयोग गरिएको छैन"</string>
+ <string name="not_battery_optimizing" msgid="5362861851864837617">"ब्याट्री आफू अनुकूल प्रयोग गरिएको छैन"</string>
<string name="lockscreen_remote_input" msgid="969871538778211843">"यदि यन्त्रलाई लक गरिएको छ भने सूचनाहरूमा जवाफ वा अन्य पाठ टाइप गर्न रोक लगाउनुहोस्"</string>
<string name="default_spell_checker" msgid="8506899870026026660">"पूर्वनिर्धारित हिज्जे परीक्षक"</string>
<string name="choose_spell_checker" msgid="6596539862291699367">"हिज्जे परीक्षक छनोट गर्नुहोस्"</string>
@@ -3176,7 +3174,7 @@
<string name="notification_log_details_actions" msgid="242523930165118066">"कारवाहीहरू"</string>
<string name="notification_log_details_title" msgid="7177091647508863295">"शीर्षक"</string>
<string name="notification_log_details_remoteinput" msgid="8328591329858827409">"रिमोट इनपुटहरू"</string>
- <string name="notification_log_details_content_view" msgid="6638731378278561786">"अनुकूलन दृश्य"</string>
+ <string name="notification_log_details_content_view" msgid="6638731378278561786">"आफू अनुकूल दृश्य"</string>
<string name="notification_log_details_extras" msgid="4188418723779942047">"अतिरिक्त"</string>
<string name="notification_log_details_icon" msgid="8939114059726188218">"आइकन"</string>
<string name="notification_log_details_parcel" msgid="243148037601903212">"पार्सलको आकार"</string>
@@ -3225,6 +3223,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"साइन इन गर्न सक्नुहुन्न?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"प्रणाली सम्बन्धी जानकारी पठाउनुहोस्"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"फेरि नदेखाउनुहोस्"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"निम्न प्रयोगकर्ताको रूपमा अनुरोध गर्दै"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"खाता थप्नुहोस्"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"कार्य प्रोफाइलका सेटिङहरू"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"सम्पर्कको खोजी"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"कलर र सम्पर्कहरूको पहिचान गर्न तपाईँको संगठन अनुसार गरिने सम्पर्कका खोजीहरूलाई अनुमति दिनुहोस्"</string>
@@ -3297,20 +3297,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"खाताको डेटा स्वतः सिंक गर्नुहोस्"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"व्यक्तिगत खाताको डेटा स्वतः सिंक गर्नुहोस्"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"कार्य खाताको डेटा स्वतः सिंक गर्नुहोस्"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"खाताको सिंक"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"गोपनीयता"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"गोपनीयता"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"तपाईंको कार्यको डेटामाथि पहुँच प्रदान गर्न, तपाईंको संगठनले सेटिङहरू परिवर्तन गर्न र तपाईंको यन्त्रमा सफ्टवेयर स्थापना गर्न सक्ने भएकाले तपाईंका कतिपय व्यक्तिगत सामग्रीहरू तपाईंका प्रशासकले देख्न सक्ने हुन सक्छन्। थप विवरणका लागि आफ्नो संगठनका प्रशासकसँग सम्पर्क गर्नुहोस्।"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"तपाईंको संस्थाले कस्ता प्रकारका जानकारीहरू हेर्न सक्छ?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"तपाईंको संस्थाले हेर्न सक्ने कुरालाई कस्तो परिवर्तनले प्रभाव पार्दछ?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"तपाईंको यस यन्त्रमाथिको पहुँचमा कुन कुन कारबाहीहरूले प्रभाव पार्न सक्छन्?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"इमेल र पात्रो जस्ता तपाईंका काम सम्बन्धी खातासँग सम्बन्धित डेटा"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"तपाईंको यन्त्रमा भएका सबै अनुप्रयोगहरूको सूची"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">तपाईंको यन्त्रका सबै <xliff:g id="COUNT_1">%d</xliff:g> वटा अनुप्रयोगहरूको सूची </item>
+ <item quantity="one"> तपाईंको यन्त्रका सबै <xliff:g id="COUNT_0">%d</xliff:g> वटा अनुप्रयोगको सूची</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"तपाईंको यन्त्रमा भएका प्रत्येक अनुप्रयोगको प्रयोग (खर्च गरिएको समय र प्रयोग गरिएको डेटाको मात्रा)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"तपाईंको यन्त्रका ट्राफिक सम्बन्धी लगहरू"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"तपाईंको सबैभन्दा पछिल्लो बग रिपोर्ट"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"तपाईंको सबैभन्दा पछिको सुरक्षा लग"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"कहिल्यै पनि होइन"</string>
</resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index c0654d8..36c677c 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"scherm inschakelen"</item>
<item msgid="3253368931113490863">"accounts ophalen"</item>
<item msgid="780392378084812901">"uitvoeren op de achtergrond"</item>
+ <item msgid="2629748510881309577">"toegankelijkheidsvolume"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Locatie"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Scherm inschakelen"</item>
<item msgid="5258373962467495905">"Accounts ophalen"</item>
<item msgid="334625385979270703">"Uitvoeren op de achtergrond"</item>
+ <item msgid="9039213578110332702">"Toegankelijkheidsvolume"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kort"</item>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index c071182..5530050 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tik om verbinding te maken met \'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Wil je verbinding maken met \'<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\'?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Toegangsverzoek voor telefoonboek"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s wil toegang tot je contacten en oproepgeschiedenis. Toegang verlenen aan %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wil toegang hebben tot je contacten en oproepgeschiedenis. Toegang verlenen aan <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Niet meer vragen"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Niet meer vragen"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Toegangsverzoek voor berichten"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Instellingen"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Instellingen"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Snelle link voor instellingen"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Geen overeenkomende activiteiten gevonden."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Vliegtuigmodus"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Meer"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Draadloos en netwerken"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"<xliff:g id="NEW_APP">%1$s</xliff:g> gebruiken in plaats van <xliff:g id="CURRENT_APP">%2$s</xliff:g> om je netwerkverbindingen te beheren?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"<xliff:g id="NEW_APP">%s</xliff:g> gebruiken om je netwerkverbindingen te beheren?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Onbekende simkaartprovider"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s heeft geen bekende website voor provisioning"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> heeft geen bekende registratiewebsite"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Plaats een simkaart en start het apparaat opnieuw"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Maak verbinding met internet"</string>
<string name="location_title" msgid="1029961368397484576">"Mijn locatie"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Providers van satellietbeelden:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Handleiding"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Er is een probleem bij het laden van de handleiding."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenties van derden"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Er is een probleem bij het laden van de licenties."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Laden..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Veiligheidsinformatie"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Accubesparing"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Automatisch inschakelen"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nooit"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"op %1$s acculading"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"bij <xliff:g id="PERCENT">%1$s</xliff:g> batterijlading"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Processtatistieken"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistieken voor nerds over actieve processen"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Geheugengebruik"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Beltoonvolume"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Meldingsvolume"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Beltoon telefoon"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Standaard meldingsgeluid"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standaard alarmgeluid"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Ook trillen voor oproepen"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Andere geluiden"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Toetsenbloktonen"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Kun je niet inloggen?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Systeeminformatie verzenden"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Niet opnieuw weergeven"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Aanvragen als"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Account toevoegen"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Instellingen voor werkprofiel"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Contacten zoeken"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Contactzoekopdrachten door je organisatie toestaan om bellers en contacten te identificeren"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Accountgegevens autom. synchr."</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Persoonl. accountgeg. auto-synchr."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Werkaccountgegev. auto-synchr."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Accountsynchronisatie"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Je organisatie kan instellingen wijzigen en software installeren om toegang te bieden tot je werkgegevens. Dit kan ertoe leiden dat een gedeelte van je persoonlijke content zichtbaar wordt voor je beheerder. Neem voor meer informatie contact op met de beheerder van je organisatie."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Welke typen gegevens kan je organisatie zien?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Welke wijzigingen beïnvloeden wat je organisatie kan zien?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Welke acties kunnen je toegang tot dit apparaat beïnvloeden?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Gegevens die zijn gekoppeld aan je werkaccount, zoals e-mail en agenda"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lijst met alle apps op je apparaat"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Lijst met alle <xliff:g id="COUNT_1">%d</xliff:g> apps op je apparaat</item>
+ <item quantity="one">Lijst met alle <xliff:g id="COUNT_0">%d</xliff:g> app op je apparaat</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Gebruik (bestede tijd en gebruikte hoeveelheid data) van elke app op je apparaat"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Verkeerslogboeken op je apparaat"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Je recentste bugrapport"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Je recentste beveiligingslogboek"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nooit"</string>
</resources>
diff --git a/res/values-pa-rIN/arrays.xml b/res/values-pa-rIN/arrays.xml
index a45b7af..94a1cc8 100644
--- a/res/values-pa-rIN/arrays.xml
+++ b/res/values-pa-rIN/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ਸਕਰੀਨ ਚਾਲੂ ਕਰੋ"</item>
<item msgid="3253368931113490863">"ਖਾਤੇ ਲਓ"</item>
<item msgid="780392378084812901">"ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚਲਾਓ"</item>
+ <item msgid="2629748510881309577">"ਪਹੁੰਚਯੋਗਤਾ ਵੌਲਿਊਮ"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"ਟਿਕਾਣਾ"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"ਸਕਰੀਨ ਚਾਲੂ ਕਰੋ"</item>
<item msgid="5258373962467495905">"ਖਾਤੇ ਲਓ"</item>
<item msgid="334625385979270703">"ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚਲਾਓ"</item>
+ <item msgid="9039213578110332702">"ਪਹੁੰਚਯੋਗਤਾ ਵੌਲਿਊਮ"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"ਛੋਟਾ"</item>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index f9384bf..b13ff64 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"ਕੀ ਤੁਸੀਂ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ਨਾਲ ਕਨੈਕਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ਫੋਨ ਬੁੱਕ ਪਹੁੰਚ ਬੇਨਤੀ"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ। ਕੀ %2$s ਨੂੰ ਪਹੁੰਚ ਦੇਣੀ ਹੈ?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਅਤੇ ਇਤਿਹਾਸ \'ਤੇ ਪਹੁੰਚ ਕਰਨਾ ਚਾਹੁੁੰਦਾ ਹੈ। ਕੀ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ਨੂੰ ਪਹੁੰਚ ਦੇਣੀ ਹੈ?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"ਦੁਬਾਰਾ ਨਾ ਪੁੱਛਣਾ"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ਦੁਬਾਰਾ ਨਾ ਪੁੱਛਣਾ"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"ਸੁਨੇਹਾ ਪਹੁੰਚ ਬੇਨਤੀ"</string>
@@ -176,7 +176,7 @@
<string name="proxy_error" msgid="8926675299638611451">"ਧਿਆਨ ਦਿਓ"</string>
<string name="proxy_error_dismiss" msgid="4993171795485460060">"ਠੀਕ"</string>
<string name="proxy_error_invalid_host" msgid="6865850167802455230">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤਾ ਹੋਸਟਨਾਮ ਪ੍ਰਮਾਣਿਕ ਨਹੀਂ ਹੈ।"</string>
- <string name="proxy_error_invalid_exclusion_list" msgid="678527645450894773">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤੀ ਵਰਜਨ ਸੂਚੀ ਸਹੀ ਢੰਗ ਨਾਲ ਫੌਰਮੈਟ ਨਹੀਂ ਕੀਤੀ ਹੋਈ ਹੈ। ਵਰਜਨ ਵਾਲੇ ਡੋਮੇਨਾਂ ਦੀ ਇੱਕ ਕਾਮਾ-ਵੱਖ ਕੀਤੀ ਸੂਚੀ ਟਾਈਪ ਕਰੋ।"</string>
+ <string name="proxy_error_invalid_exclusion_list" msgid="678527645450894773">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤੀ ਰੂਪ ਸੂਚੀ ਸਹੀ ਢੰਗ ਨਾਲ ਫੌਰਮੈਟ ਨਹੀਂ ਕੀਤੀ ਹੋਈ ਹੈ। ਰੂਪ ਵਾਲੇ ਡੋਮੇਨਾਂ ਦੀ ਇੱਕ ਕਾਮਾ-ਵੱਖ ਕੀਤੀ ਸੂਚੀ ਟਾਈਪ ਕਰੋ।"</string>
<string name="proxy_error_empty_port" msgid="5539106187558215246">"ਤੁਹਾਨੂੰ ਪੋਰਟ ਖੇਤਰ ਪੂਰਾ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
<string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"ਜੇਕਰ ਹੋਸਟ ਖੇਤਰ ਖਾਲੀ ਹੈ ਤਾਂ ਪੋਰਟ ਖੇਤਰ ਖਾਲੀ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।"</string>
<string name="proxy_error_invalid_port" msgid="5988270202074492710">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤਾ ਪੋਰਟ ਪ੍ਰਮਾਣਿਕ ਨਹੀਂ ਹੈ।"</string>
@@ -199,7 +199,7 @@
<string name="radio_info_call_status_label" msgid="2611065018172747413">"ਵੌਇਸ ਕਾਲ ਸਥਿਤੀ:"</string>
<string name="radio_info_ppp_sent_label" msgid="7748668735880404586">"ਡੈਟਾ ਭੇਜਿਆ ਗਿਆ:"</string>
<string name="radio_info_message_waiting_label" msgid="1037302619943328273">"ਸੁਨੇਹਾ ਉਡੀਕ:"</string>
- <string name="radio_info_phone_number_label" msgid="7942153178953255231">"ਫੋਨ ਨੰਬਰ:"</string>
+ <string name="radio_info_phone_number_label" msgid="7942153178953255231">"ਫ਼ੋਨ ਨੰਬਰ:"</string>
<string name="radio_info_band_mode_label" msgid="8730871744887454509">"ਰੇਡੀਓ ਬੈਂਡ ਚੁਣੋ"</string>
<string name="radio_info_voice_network_type_label" msgid="1443496502370667071">"ਵੌਇਸ ਨੈੱਟਵਰਕ ਪ੍ਰਕਾਰ:"</string>
<string name="radio_info_data_network_type_label" msgid="7094323145105149312">"ਡੈਟਾ ਨੈੱਟਵਰਕ ਪ੍ਰਕਾਰ:"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"ਸੈਟਿੰਗਾਂ"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"ਸੈਟਿੰਗਾਂ"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"ਸੈਟਿੰਗਾਂ ਸ਼ਾਰਟਕੱਟ"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"ਕੋਈ ਮੇਲ ਖਾਂਦੀਆਂ ਸਰਗਰਮੀਆਂ ਨਹੀਂ ਮਿਲੀਆਂ।"</string>
<string name="airplane_mode" msgid="8837269988154128601">"ਹਵਾਈ ਜਹਾਜ਼ ਮੋਡ"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"ਹੋਰ"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"ਵਾਇਰਲੈੱਸ ਅਤੇ ਨੈੱਟਵਰਕ"</string>
@@ -1022,29 +1023,29 @@
<string name="device_info_settings" product="default" msgid="475872867864762157">"ਫੋਨ ਸਥਿਤੀ"</string>
<string name="system_update_settings_list_item_title" msgid="3342887311059985961">"ਸਿਸਟਮ ਅਪਡੇਟਾਂ"</string>
<string name="system_update_settings_list_item_summary" msgid="3853057315907710747"></string>
- <string name="firmware_version" msgid="4801135784886859972">"Android ਵਰਜਨ"</string>
+ <string name="firmware_version" msgid="4801135784886859972">"Android ਰੂਪ"</string>
<string name="security_patch" msgid="8438384045870296634">"Android ਸੁਰੱਖਿਆ ਪੈਚ ਪੱਧਰ"</string>
<string name="model_info" msgid="1952009518045740889">"ਮਾਡਲ"</string>
<string name="fcc_equipment_id" msgid="149114368246356737">"ਉਪਕਰਨ ID"</string>
- <string name="baseband_version" msgid="1848990160763524801">"ਬੇਸਬੈਂਡ ਵਰਜਨ"</string>
- <string name="kernel_version" msgid="9192574954196167602">"Kernel ਵਰਜਨ"</string>
+ <string name="baseband_version" msgid="1848990160763524801">"ਬੇਸਬੈਂਡ ਰੂਪ"</string>
+ <string name="kernel_version" msgid="9192574954196167602">"Kernel ਰੂਪ"</string>
<string name="build_number" msgid="3075795840572241758">"ਬਿਲਡ ਨੰਬਰ"</string>
<string name="selinux_status" msgid="6212165375172061672">"SELinux ਸਥਿਤੀ"</string>
<string name="device_info_not_available" msgid="8062521887156825182">"ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
<string name="device_status_activity_title" msgid="1411201799384697904">"ਸਥਿਤੀ"</string>
<string name="device_status" msgid="607405385799807324">"ਸਥਿਤੀ"</string>
<string name="device_status_summary" product="tablet" msgid="3292717754497039686">"ਬੈਟਰੀ, ਨੈੱਟਵਰਕ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੀ ਸਥਿਤੀ"</string>
- <string name="device_status_summary" product="default" msgid="2599162787451519618">"ਫੋਨ ਨੰਬਰ, ਸਿਗਨਲ ਆਦਿ"</string>
+ <string name="device_status_summary" product="default" msgid="2599162787451519618">"ਫ਼ੋਨ ਨੰਬਰ, ਸਿਗਨਲ ਆਦਿ"</string>
<string name="storage_settings" msgid="4211799979832404953">"ਸਟੋਰੇਜ"</string>
<string name="storage_usb_settings" msgid="7293054033137078060">"ਸਟੋਰੇਜ"</string>
<string name="storage_settings_title" msgid="8746016738388094064">"ਸਟੋਰੇਜ ਸੈਟਿੰਗਾਂ"</string>
<string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"USB ਸਟੋਰੇਜ ਨੂੰ ਅਨਮਾਉਂਟ ਕਰੋ, ਉਪਲਬਧ ਸਟੋਰੇਜ ਦੇਖੋ"</string>
<string name="storage_settings_summary" product="default" msgid="9176693537325988610">"SD ਕਾਰਡ ਅਨਮਾਉਂਟ ਕਰੋ, ਉਪਲਬਧ ਸਟੋਰੇਜ ਦੇਖੋ"</string>
<string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string>
- <string name="status_number" product="default" msgid="5123197324870153205">"ਮੇਰਾ ਫੋਨ ਨੰਬਰ"</string>
+ <string name="status_number" product="default" msgid="5123197324870153205">"ਮੇਰਾ ਫ਼ੋਨ ਨੰਬਰ"</string>
<string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
<string name="status_msid_number" msgid="909010114445780530">"MSID"</string>
- <string name="status_prl_version" msgid="1007470446618081441">"PRL ਵਰਜਨ"</string>
+ <string name="status_prl_version" msgid="1007470446618081441">"PRL ਰੂਪ"</string>
<string name="status_meid_number" msgid="1751442889111731088">"MEID"</string>
<string name="status_icc_id" msgid="943368755577172747">"ICCID"</string>
<string name="status_network_type" msgid="952552009117455166">"ਸੈਲਿਊਲਰ ਨੈੱਟਵਰਕ ਪ੍ਰਕਾਰ"</string>
@@ -1086,8 +1087,8 @@
<string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
<string name="sd_format" product="nosdcard" msgid="2148179271623099054">"USB ਸਟੋਰੇਜ ਮਿਟਾਓ"</string>
<string name="sd_format" product="default" msgid="2576054280507119870">"SD ਕਾਰਡ ਮਿਟਾਓ"</string>
- <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"ਅੰਦਰੂਨੀ USB ਸਟੋਰੇਜ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਸੰਗੀਤ ਅਤੇ ਫੋਟੋਆਂ"</string>
- <string name="sd_format_summary" product="default" msgid="212703692181793109">"SD ਕਾਰਡ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਸੰਗੀਤ ਅਤੇ ਫੋਟੋਆਂ"</string>
+ <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"ਅੰਦਰੂਨੀ USB ਸਟੋਰੇਜ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਸੰਗੀਤ ਅਤੇ ਫ਼ੋਟੋਆਂ"</string>
+ <string name="sd_format_summary" product="default" msgid="212703692181793109">"SD ਕਾਰਡ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਸੰਗੀਤ ਅਤੇ ਫ਼ੋਟੋਆਂ"</string>
<string name="memory_clear_cache_title" msgid="5423840272171286191">"ਕੀ ਕੈਚ ਕੀਤਾ ਡੈਟਾ ਹਟਾਉਣਾ ਹੈ?"</string>
<string name="memory_clear_cache_message" msgid="4550262490807415948">"ਇਹ ਸਾਰੇ ਐਪਸ ਲਈ ਕੈਚ ਕੀਤਾ ਡੈਟਾ ਹਟਾ ਦੇਵੇਗਾ।"</string>
<string name="mtp_ptp_mode_summary" msgid="3710436114807789270">"MTP ਜਾਂ PTP ਫੰਕਸ਼ਨ ਸਕਿਰਿਆ ਹੈ"</string>
@@ -1122,7 +1123,7 @@
<string name="usb_mtp_title" msgid="3399663424394065964">"ਮੀਡੀਆ ਡੀਵਾਈਸ (MTP)"</string>
<string name="usb_mtp_summary" msgid="4617321473211391236">"Windows ਤੇ ਜਾਂ Mac Android ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ ਵਰਤਦੇ ਹੋਏ ਤੁਹਾਨੂੰ ਮੀਡੀਆ ਫਾਈਲਾਂ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ (www.android.com/filetransfer ਦੇਖੋ)"</string>
<string name="usb_ptp_title" msgid="3852760810622389620">"ਕੈਮਰਾ (PTP)"</string>
- <string name="usb_ptp_summary" msgid="7406889433172511530">"ਤੁਹਾਨੂੰ ਕੈਮਰਾ ਸੌਫਟਵੇਅਰ ਵਰਤਦੇ ਹੋਏ ਫੋਟੋਆਂ ਅਤੇ ਕੰਪਿਊਟਰ ਤੇ ਕੋਈ ਵੀ ਫਾਈਲਾਂ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜੋ MTP ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ"</string>
+ <string name="usb_ptp_summary" msgid="7406889433172511530">"ਤੁਹਾਨੂੰ ਕੈਮਰਾ ਸੌਫਟਵੇਅਰ ਵਰਤਦੇ ਹੋਏ ਫ਼ੋਟੋਆਂ ਅਤੇ ਕੰਪਿਊਟਰ ਤੇ ਕੋਈ ਵੀ ਫਾਈਲਾਂ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜੋ MTP ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ"</string>
<string name="usb_midi_title" msgid="3069990264258413994">"MIDI"</string>
<string name="usb_midi_summary" msgid="539169474810956358">"MIDI ਸਮਰਥਿਤ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਤੇ MIDI ਸੌਫਟਵੇਅਰ ਨਾਲ USB ਤੇ ਕੰਮ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
<string name="storage_other_users" msgid="808708845102611856">"ਹੋਰ ਉਪਭੋਗਤਾ"</string>
@@ -1142,11 +1143,11 @@
<string name="storage_dialog_unmounted" msgid="6403320870103261477">"ਇਹ <xliff:g id="NAME_0">^1</xliff:g> ਸੁਰੱਖਿਅਤ ਰੂਪ ਨਾਲ ਹਟਾਇਆ ਗਿਆ ਹੈ, ਪਰੰਤੂ ਅਜੇ ਵੀ ਉਪਲਬਧ ਹੈ। \n\nਇਹ <xliff:g id="NAME_1">^1</xliff:g> ਵਰਤਣ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਇਸਨੂੰ ਮਾਉਂਟ ਕਰਨਾ ਪਵੇਗਾ।"</string>
<string name="storage_dialog_unmountable" msgid="3732209361668282254">"ਇਹ <xliff:g id="NAME_0">^1</xliff:g> ਕਰਪਟ ਹੈ। \n\nਇਹ <xliff:g id="NAME_1">^1</xliff:g> ਵਰਤਣ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਇਸਨੂੰ ਸੈਟ ਅਪ ਕਰਨਾ ਪਵੇਗਾ।"</string>
<string name="storage_dialog_unsupported" msgid="4503128224360482228">"ਇਹ ਡੀਵਾਈਸ ਇਸ <xliff:g id="NAME_0">^1</xliff:g> ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ। \n\nਇਸ ਡੀਵਾਈਸ ਨਾਲ ਇਹ <xliff:g id="NAME_1">^1</xliff:g> ਵਰਤਣ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਇਸਨੂੰ ਸੈਟ ਅਪ ਕਰਨਾ ਪਵੇਗਾ।"</string>
- <string name="storage_internal_format_details" msgid="4018647158382548820">"ਫਾਰਮੈਟ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਦੂਜੀਆਂ ਡਿਵਾਈਆਂ ਵਿੱਚ ਇਸ <xliff:g id="NAME_0">^1</xliff:g> ਦਾ ਉਪਯੋਗ ਕਰ ਸਕਦੇ ਹੋ. \n\nਇਸ <xliff:g id="NAME_1">^1</xliff:g> \'ਤੇ ਮੌਜੂਦ ਸਾਰਾ ਡੇਟਾ ਸਾਫ਼ ਕਰ ਦੇਵੇਗਾ. ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਬੈੱਕ ਅੱਪ ਲੈਣ \'ਤੇ ਵਿਚਾਰ ਕਰੋ. \n\n"<b>"ਫੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਆ ਦਾ ਬੈੱਕ ਅੱਪ ਲਓ"</b>" \nਆਪਣੀ ਮੀਡੀਆ ਫ਼ਾਈਲਾਂ ਨੂੰ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਵਿਕਲਪਿਕ ਸਟੋਰੇਜ ਵਿੱਚ ਮੂਵ ਕਰੋ, ਜਾਂ ਉਹਨਾਂ ਨੂੰ ਕਿਸੇ USB ਕੇਬਲ ਦਾ ਉਪਯੋਗ ਕਰਕੇ ਕਿਸੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰੋ. \n\n"<b>"ਐਪਸ ਦਾ ਬੈੱਕ ਅੱਪ ਲਓ"</b>" \nਇਸ <xliff:g id="NAME_6">^1</xliff:g> \'ਤੇ ਸਟੋਰ ਕੀਤੀ ਸਾਰੀਆਂ ਐਪਸ ਦੀਆਂ ਸਥਾਪਨਾ ਨੂੰ ਰੱਦ ਕੀਤਾ ਜਾਵੇਗਾ ਅਤੇ ਉਹਨਾਂ ਦੇ ਡੇਟਾ ਨੂੰ ਸਾਫ਼ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ. ਇਹਨਾਂ ਐਪਸ ਨੂੰ ਰੱਖਣ ਲਈ, ਇਹਨਾਂ ਨੂੰ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਵਿਕਲਪਿਕ ਸਟੋਰੇਜ ਵਿੱਚ ਲੈ ਜਾਓ."</string>
+ <string name="storage_internal_format_details" msgid="4018647158382548820">"ਫਾਰਮੈਟ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਦੂਜੀਆਂ ਡਿਵਾਈਆਂ ਵਿੱਚ ਇਸ <xliff:g id="NAME_0">^1</xliff:g> ਦਾ ਉਪਯੋਗ ਕਰ ਸਕਦੇ ਹੋ. \n\nਇਸ <xliff:g id="NAME_1">^1</xliff:g> \'ਤੇ ਮੌਜੂਦ ਸਾਰਾ ਡੇਟਾ ਸਾਫ਼ ਕਰ ਦੇਵੇਗਾ. ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਬੈੱਕ ਅੱਪ ਲੈਣ \'ਤੇ ਵਿਚਾਰ ਕਰੋ. \n\n"<b>"ਫ਼ੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਆ ਦਾ ਬੈੱਕ ਅੱਪ ਲਓ"</b>" \nਆਪਣੀ ਮੀਡੀਆ ਫ਼ਾਈਲਾਂ ਨੂੰ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਵਿਕਲਪਿਕ ਸਟੋਰੇਜ ਵਿੱਚ ਮੂਵ ਕਰੋ, ਜਾਂ ਉਹਨਾਂ ਨੂੰ ਕਿਸੇ USB ਕੇਬਲ ਦਾ ਉਪਯੋਗ ਕਰਕੇ ਕਿਸੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰੋ. \n\n"<b>"ਐਪਸ ਦਾ ਬੈੱਕ ਅੱਪ ਲਓ"</b>" \nਇਸ <xliff:g id="NAME_6">^1</xliff:g> \'ਤੇ ਸਟੋਰ ਕੀਤੀ ਸਾਰੀਆਂ ਐਪਸ ਦੀਆਂ ਸਥਾਪਨਾ ਨੂੰ ਰੱਦ ਕੀਤਾ ਜਾਵੇਗਾ ਅਤੇ ਉਹਨਾਂ ਦੇ ਡੇਟਾ ਨੂੰ ਸਾਫ਼ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ. ਇਹਨਾਂ ਐਪਸ ਨੂੰ ਰੱਖਣ ਲਈ, ਇਹਨਾਂ ਨੂੰ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਵਿਕਲਪਿਕ ਸਟੋਰੇਜ ਵਿੱਚ ਲੈ ਜਾਓ."</string>
<string name="storage_internal_unmount_details" msgid="3582802571684490057"><b>"ਜਦੋਂ ਤੁਸੀਂ ਇਸ <xliff:g id="NAME_0">^1</xliff:g> ਨੂੰ ਬਾਹਦ ਕੱਢਦੇ ਹੋ, ਤਾਂ ਇਸ \'ਤੇ ਸਟੋਰ ਕੀਤੀਆਂ ਐਪਸ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦੇਣਗੀ, ਅਤੇ ਇਸ \'ਤੇ ਸਟੋਰ ਕੀਤੀਆਂ ਮੀਡੀਆ ਫ਼ਾਈਲਾਂ ਉਦੋਂ ਤੱਕ ਉਪਲਬਧ ਨਹੀਂ ਹੋਣਗੀਆਂ ਜਦੋਂ ਤੱਕ ਇਸਨੂੰ ਮੁੜ ਸੰਮਿਲਿਤ ਨਾ ਕੀਤਾ ਜਾਵੇ।"</b>" \n\nਇਸ <xliff:g id="NAME_1">^1</xliff:g> ਨੂੰ ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਕੰਮ ਕਰਨ ਲਈ ਫਾਰਮੈਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸਾਂ \'ਤੇ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ।"</string>
- <string name="storage_internal_forget_details" msgid="9028875424669047327">"ਐਪਸ, ਫੋਟੋਆਂ, ਜਾਂ ਇਸ <xliff:g id="NAME">^1</xliff:g> ਵਿੱਚ ਸ਼ਾਮਿਲ ਡੇਟਾ ਦਾ ਉਪਯੋਗ ਕਰਨ ਲਈ, ਇਸਨੂੰ ਮੁੜ ਸੰਮਿਲਿਤ ਕਰੋ। \n\nਵਿਕਲਪਿਕ ਰੂਪ ਵਿੱਚ, ਤੁਸੀਂ ਇਸ ਸਟੋਰੇਜ ਨੂੰ ਭੁੱਲਣਾ ਚੁਣ ਸਕਦੇ ਹੋ ਜੇਕਰ ਇਹ ਡੀਵਾਈਸ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। \n\nਜੇਕਰ ਤੁਸੀਂ ਭੁੱਲਣਾ ਚੁਣਦੇ ਹੋ, ਤਾਂ ਡੀਵਾਈਸ ਵਿੱਚ ਸ਼ਾਮਿਲ ਸਾਰਾ ਡੇਟਾ ਹਮੇਸ਼ਾ ਲਈ ਗੁਆਚ ਜਾਵੇਗਾ। \n\nਤੁਸੀਂ ਐਪਸ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਮੁੜ ਸਥਾਪਿਤ ਕਰ ਸਕਦੇ ਹੋ, ਲੇਕਿਨ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਸਟੋਰ ਕੀਤਾ ਉਹਨਾਂ ਦਾ ਡੇਟਾ ਗੁਆਚ ਜਾਵੇਗਾ।"</string>
+ <string name="storage_internal_forget_details" msgid="9028875424669047327">"ਐਪਸ, ਫ਼ੋਟੋਆਂ, ਜਾਂ ਇਸ <xliff:g id="NAME">^1</xliff:g> ਵਿੱਚ ਸ਼ਾਮਿਲ ਡੇਟਾ ਦਾ ਉਪਯੋਗ ਕਰਨ ਲਈ, ਇਸਨੂੰ ਮੁੜ ਸੰਮਿਲਿਤ ਕਰੋ। \n\nਵਿਕਲਪਿਕ ਰੂਪ ਵਿੱਚ, ਤੁਸੀਂ ਇਸ ਸਟੋਰੇਜ ਨੂੰ ਭੁੱਲਣਾ ਚੁਣ ਸਕਦੇ ਹੋ ਜੇਕਰ ਇਹ ਡੀਵਾਈਸ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। \n\nਜੇਕਰ ਤੁਸੀਂ ਭੁੱਲਣਾ ਚੁਣਦੇ ਹੋ, ਤਾਂ ਡੀਵਾਈਸ ਵਿੱਚ ਸ਼ਾਮਿਲ ਸਾਰਾ ਡੇਟਾ ਹਮੇਸ਼ਾ ਲਈ ਗੁਆਚ ਜਾਵੇਗਾ। \n\nਤੁਸੀਂ ਐਪਸ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਮੁੜ ਸਥਾਪਿਤ ਕਰ ਸਕਦੇ ਹੋ, ਲੇਕਿਨ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਸਟੋਰ ਕੀਤਾ ਉਹਨਾਂ ਦਾ ਡੇਟਾ ਗੁਆਚ ਜਾਵੇਗਾ।"</string>
<string name="storage_internal_forget_confirm_title" msgid="1370847944388479245">"ਕੀ <xliff:g id="NAME">^1</xliff:g> ਭੁੱਲ ਗਏ?"</string>
- <string name="storage_internal_forget_confirm" msgid="1148446041396902905">"ਇਸ <xliff:g id="NAME">^1</xliff:g> ਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ ਐਪਸ, ਫੋਟੋਆਂ ਅਤੇ ਡੈਟਾ ਹਮੇਸ਼ਾਂ ਲਈ ਨਸ਼ਟ ਹੋ ਜਾਏਗਾ।"</string>
+ <string name="storage_internal_forget_confirm" msgid="1148446041396902905">"ਇਸ <xliff:g id="NAME">^1</xliff:g> ਤੇ ਸਟੋਰ ਕੀਤੇ ਸਾਰੇ ਐਪਸ, ਫ਼ੋਟੋਆਂ ਅਤੇ ਡੈਟਾ ਹਮੇਸ਼ਾਂ ਲਈ ਨਸ਼ਟ ਹੋ ਜਾਏਗਾ।"</string>
<string name="storage_detail_apps" msgid="6141154016753507490">"ਐਪਾਂ"</string>
<string name="storage_detail_images" msgid="6950678857740634769">"ਚਿੱਤਰ"</string>
<string name="storage_detail_videos" msgid="2919743464827110953">"ਵੀਡੀਓ"</string>
@@ -1157,12 +1158,12 @@
<string name="storage_detail_explore" msgid="7911344011431568294">"<xliff:g id="NAME">^1</xliff:g> ਐਕਸਪਲੋਰ ਕਰੋ"</string>
<string name="storage_detail_dialog_other" msgid="8907101974576694793">"ਹੋਰਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ ਐਪਾਂ ਦੁਆਰਾ ਰੱਖਿਅਤ ਸਾਂਝੀਆਂ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ, ਇੰਟਰਨੈੱਟ ਜਾਂ ਬਲੂਟੁੱਥ ਤੋਂ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ, Android ਫ਼ਾਈਲਾਂ, ਅਤੇ ਹੋਰ ਵੀ ਬਹੁਤ ਕੁਝ। \n\nਇਸ <xliff:g id="NAME">^1</xliff:g> ਦੀਆਂ ਦਿਖਣਯੋਗ ਸਮੱਗਰੀਆਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਪੜਚੋਲ ਕਰੋ \'ਤੇ ਟੈਪ ਕਰੋ।"</string>
<string name="storage_detail_dialog_system" msgid="3417679651116003900">"ਸਿਸਟਮ ਵਿੱਚ ਅਜਿਹੀਆਂ ਫ਼ਾਈਲਾਂ ਸ਼ਾਮਲ ਹਨ ਜਿੰਨ੍ਹਾਂ ਨੂੰ Android ਵਿਅਕਤੀਗਤ ਤੌਰ \'ਤੇ ਨਹੀਂ ਵਿਖਾ ਸਕਦਾ ਹੈ।"</string>
- <string name="storage_detail_dialog_user" msgid="1675756743326079688">"<xliff:g id="USER_0">^1</xliff:g> ਨੇ ਫੋਟੋਆਂ, ਸੰਗੀਤ, ਮੂਵੀਜ, ਐਪਸ ਜਾਂ ਹੋਰ ਡੈਟਾ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੋ ਸਕਦਾ ਹੈ ਜੋ <xliff:g id="SIZE">^2</xliff:g> ਸਟੋਰੇਜ ਲੈ ਰਿਹਾ ਹੈ। \n\n ਵੇਰਵੇ ਦੇਖਣ ਲਈ, <xliff:g id="USER_1">^1</xliff:g> ਤੇ ਸਵਿਚ ਕਰੋ।"</string>
+ <string name="storage_detail_dialog_user" msgid="1675756743326079688">"<xliff:g id="USER_0">^1</xliff:g> ਨੇ ਫ਼ੋਟੋਆਂ, ਸੰਗੀਤ, ਮੂਵੀਜ, ਐਪਸ ਜਾਂ ਹੋਰ ਡੈਟਾ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੋ ਸਕਦਾ ਹੈ ਜੋ <xliff:g id="SIZE">^2</xliff:g> ਸਟੋਰੇਜ ਲੈ ਰਿਹਾ ਹੈ। \n\n ਵੇਰਵੇ ਦੇਖਣ ਲਈ, <xliff:g id="USER_1">^1</xliff:g> ਤੇ ਸਵਿਚ ਕਰੋ।"</string>
<string name="storage_wizard_init_title" msgid="5085400514028585772">"ਆਪਣੇ <xliff:g id="NAME">^1</xliff:g> ਨੂੰ ਸੈੱਟ ਅੱਪ ਕਰੋ"</string>
<string name="storage_wizard_init_external_title" msgid="4867326438945303598">"ਪੋਰਟੇਬਲ ਸਟੋਰੇਜ ਦੇ ਰੂਪ ਵਿੱਚ ਉਪਯੋਗ ਕਰੋ"</string>
- <string name="storage_wizard_init_external_summary" msgid="7476105886344565074">"ਡਿਵਾਈਸਾਂ ਦੇ ਵਿੱਚਕਾਰ ਫੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਓ ਨੂੰ ਮੂਵ ਕਰਨ ਲਈ."</string>
+ <string name="storage_wizard_init_external_summary" msgid="7476105886344565074">"ਡਿਵਾਈਸਾਂ ਦੇ ਵਿੱਚਕਾਰ ਫ਼ੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਓ ਨੂੰ ਮੂਵ ਕਰਨ ਲਈ."</string>
<string name="storage_wizard_init_internal_title" msgid="9100613534261408519">"ਅੰਦਰਲੀ ਸਟੋਰੇਜ ਦੇ ਰੂਪ ਵਿੱਚ ਉਪਯੋਗ ਕਰੋ"</string>
- <string name="storage_wizard_init_internal_summary" msgid="6240417501036216410">"ਐਪਸ ਅਤੇ ਫੋਟੋਆਂ ਸਮੇਤ, ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਕੁਝ ਵੀ ਸਟੋਰ ਕਰਨ ਦੇ ਲਈ. ਫਾਰਮੈਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਜੋ ਇਸਨੂੰ ਦੂਜੀਆਂ ਡੀਵਾਈਸਾਂ ਦੇ ਨਾਲ ਕੰਮ ਕਰਨ ਤੋਂ ਬਚਾਉਂਦੀ ਹੈ."</string>
+ <string name="storage_wizard_init_internal_summary" msgid="6240417501036216410">"ਐਪਸ ਅਤੇ ਫ਼ੋਟੋਆਂ ਸਮੇਤ, ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਕੁਝ ਵੀ ਸਟੋਰ ਕਰਨ ਦੇ ਲਈ. ਫਾਰਮੈਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਜੋ ਇਸਨੂੰ ਦੂਜੀਆਂ ਡੀਵਾਈਸਾਂ ਦੇ ਨਾਲ ਕੰਮ ਕਰਨ ਤੋਂ ਬਚਾਉਂਦੀ ਹੈ."</string>
<string name="storage_wizard_format_confirm_title" msgid="2814021794538252546">"ਅੰਦਰਲੀ ਸਟੋਰੇਜ ਦੇ ਰੂਪ ਵਿੱਚ ਫਾਰਮੈਟ ਕਰੋ"</string>
<string name="storage_wizard_format_confirm_body" msgid="4401758710076806509">"ਇਸਨੂੰ <xliff:g id="NAME_0">^1</xliff:g> ਨੂੰ ਸੁਰੱਖਿਅਤ ਬਣਾਉਣ ਲਈ ਇਹ ਫਾਰਮੈਟ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ. \n\nਫਾਰਮੈਟ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਇਹ <xliff:g id="NAME_1">^1</xliff:g> will ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਕੰਮ ਕਰੇਗਾ. \n\n "<b>"ਫਾਰਮੈਟ ਕਰਨਾ ਵਰਤਮਾਨ ਵਿੱਚ <xliff:g id="NAME_2">^1</xliff:g> \'ਤੇ ਸਟੋਰ ਕੀਤੀ ਸਾਰੇ ਡੇਟਾ ਨੂੰ ਸਾਫ਼ ਕਰ ਦਿੰਦਾ ਹੈ."</b>" ਡੇਟਾ ਗੁਆਚਣ ਤੋਂ ਬੱਚਣ ਲਈ, ਇਸਦਾ ਬੈੱਕ ਅੱਪ ਲੈਣ \'ਤੇ ਵਿਚਾਰ ਕਰੋ."</string>
<string name="storage_wizard_format_confirm_public_title" msgid="4905690038882041566">"ਪੋਰਟੇਬਲ ਸਟੋਰੇਜ ਵੱਜੋਂ ਫਾਰਮੈਟ ਕਰੋ"</string>
@@ -1171,7 +1172,7 @@
<string name="storage_wizard_format_progress_title" msgid="6487352396450582292">"<xliff:g id="NAME">^1</xliff:g> ਨੂੰ ਫਾਰਮੈਟ ਕਰ ਰਿਹਾ ਹੈ…"</string>
<string name="storage_wizard_format_progress_body" msgid="4445041233802828430">"<xliff:g id="NAME">^1</xliff:g> ਨੂੰ ਫਾਰਮੈਟ ਕਰਨ ਵੇਲੇ ਇਸਨੂੰ ਨਾ ਹਟਾਓ."</string>
<string name="storage_wizard_migrate_title" msgid="1363078147938160407">"ਡੇਟਾ ਨੂੰ ਨਵੇਂ ਸਟੋਰੇਜ ਵਿੱਚ ਮੂਵ ਕਰੋ"</string>
- <string name="storage_wizard_migrate_body" msgid="890751699549542345">"ਤੁਸੀਂ ਇਸ ਨਵੇਂ <xliff:g id="NAME">^1</xliff:g>ਵਿੱਚ ਆਪਣੀਆਂ ਫੋਟੋਆਂ, ਫ਼ਾਈਲਾਂ ਅਤੇ ਐਪ ਦੇ ਡੇਟਾ ਨੂੰ ਮੂਵ ਕਰ ਸਕਦੇ ਹੋ।\n\nਇਹ ਮੂਵ ਲਗਭਗ <xliff:g id="TIME">^2</xliff:g> ਲੈਂਦਾ ਹੈ ਅੰਦਰਲੀ ਸਟੋਰੇਜ \'ਤੇ <xliff:g id="SIZE">^3</xliff:g> ਖਾਲੀ ਕਰ ਦੇਵੇਗਾ। ਕੁਝ ਐਪਸ ਇਹ ਕਿਰਿਆ ਹੋਣ ਵੇਲੇ ਕੰਮ ਨਹੀਂ ਕਰਨਗੇ।"</string>
+ <string name="storage_wizard_migrate_body" msgid="890751699549542345">"ਤੁਸੀਂ ਇਸ ਨਵੇਂ <xliff:g id="NAME">^1</xliff:g>ਵਿੱਚ ਆਪਣੀਆਂ ਫ਼ੋਟੋਆਂ, ਫ਼ਾਈਲਾਂ ਅਤੇ ਐਪ ਦੇ ਡੇਟਾ ਨੂੰ ਮੂਵ ਕਰ ਸਕਦੇ ਹੋ।\n\nਇਹ ਮੂਵ ਲਗਭਗ <xliff:g id="TIME">^2</xliff:g> ਲੈਂਦਾ ਹੈ ਅੰਦਰਲੀ ਸਟੋਰੇਜ \'ਤੇ <xliff:g id="SIZE">^3</xliff:g> ਖਾਲੀ ਕਰ ਦੇਵੇਗਾ। ਕੁਝ ਐਪਸ ਇਹ ਕਿਰਿਆ ਹੋਣ ਵੇਲੇ ਕੰਮ ਨਹੀਂ ਕਰਨਗੇ।"</string>
<string name="storage_wizard_migrate_now" msgid="4523444323744239143">"ਹੁਣੇ ਮੂਵ ਕਰੋ"</string>
<string name="storage_wizard_migrate_later" msgid="3173482328116026253">"ਬਾਅਦ ਵਿੱਚ ਮੂਵ ਕਰੋ"</string>
<string name="storage_wizard_migrate_confirm_title" msgid="8564833529613286965">"ਡੇਟਾ ਨੂੰ ਹੁਣੇ ਮੂਵ ਕਰੋ"</string>
@@ -1180,8 +1181,8 @@
<string name="storage_wizard_migrate_progress_title" msgid="1665479429044202868">"ਡੇਟਾ ਮੂਵ ਕਰ ਰਿਹਾ ਹੈ..."</string>
<string name="storage_wizard_migrate_details" msgid="3709728824651136227">"ਮੂਵ ਦੇ ਦੌਰਾਨ \n• <xliff:g id="NAME">^1</xliff:g> ਨੂੰ ਨਾ ਹਟਾਓ. \n• ਕੁਝ ਐਪ ਸਹੀ ਤਰੀਕੇ ਦੇ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰਨSome apps won\'t work correctly. \n• Keep the device charged."</string>
<string name="storage_wizard_ready_title" msgid="5381632402953258267">"<xliff:g id="NAME">^1</xliff:g> ਤਿਆਰ ਹੈ"</string>
- <string name="storage_wizard_ready_external_body" msgid="2879508114260597474">"ਤੁਹਾਡ <xliff:g id="NAME">^1</xliff:g> ਫੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਆ ਦੇ ਨਾਲ ਉਪਯੋਗ ਕਰਨ ਲਈ ਬਿਲਕੁਲ ਤਿਆਰ ਹੈ."</string>
- <string name="storage_wizard_ready_internal_body" msgid="122532674037860197">"ਤੁਹਾਡਾ ਨਵਾਂ <xliff:g id="NAME">^1</xliff:g> ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ. \n\nਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਫੋਟੋਆਂ, ਫ਼ਾਈਲਾਂ, ਅਤੇ ਐਪ ਡੇਟਾ ਨੂੰ ਮੂਵ ਕਰਨ ਲਈ, ਸੈੱਟਿੰਗਜ਼ ਅਤੇ ਸਟੋਰੇਜ \'ਤੇ ਜਾਓ."</string>
+ <string name="storage_wizard_ready_external_body" msgid="2879508114260597474">"ਤੁਹਾਡ <xliff:g id="NAME">^1</xliff:g> ਫ਼ੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਆ ਦੇ ਨਾਲ ਉਪਯੋਗ ਕਰਨ ਲਈ ਬਿਲਕੁਲ ਤਿਆਰ ਹੈ."</string>
+ <string name="storage_wizard_ready_internal_body" msgid="122532674037860197">"ਤੁਹਾਡਾ ਨਵਾਂ <xliff:g id="NAME">^1</xliff:g> ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ. \n\nਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਫ਼ੋਟੋਆਂ, ਫ਼ਾਈਲਾਂ, ਅਤੇ ਐਪ ਡੇਟਾ ਨੂੰ ਮੂਵ ਕਰਨ ਲਈ, ਸੈੱਟਿੰਗਜ਼ ਅਤੇ ਸਟੋਰੇਜ \'ਤੇ ਜਾਓ."</string>
<string name="storage_wizard_move_confirm_title" msgid="292782012677890250">"<xliff:g id="APP">^1</xliff:g> ਨੂੰ ਮੂਵ ਕਰੋ"</string>
<string name="storage_wizard_move_confirm_body" msgid="5176432115206478941">"<xliff:g id="APP">^1</xliff:g> ਅਤੇ ਇਸਦੇ ਡੇਟਾ ਨੂੰ <xliff:g id="NAME_0">^2</xliff:g> ਵਿੱਚ ਮੂਵ ਕਰਨਾ ਸਿਰਫ਼ ਕੁਝ ਸਮਾਂ ਲੈਂਦਾ ਹੈ. ਤੁਸੀਂ ਉਦੋਂ ਤੱਕ ਇਸ ਐਪ ਦਾ ਉਪਯੋਗ ਕਰਨ ਦੇ ਯੋਗ ਨਹੀਂ ਹੋਵੋਗੇ ਜਦੋਂ ਤੱਕ ਇਹ ਮੂਵ ਪੂਰਾ ਨਹੀਂ ਹੋ ਜਾਂਦਾ ਹੈ. \n\nਮੂਵ ਦੇ ਦੌਰਾਨ <xliff:g id="NAME_1">^2</xliff:g> ਨੂੰ ਨਾ ਹਟਾਓ."</string>
<string name="storage_wizard_move_progress_title" msgid="4443920302548035674">"<xliff:g id="APP">^1</xliff:g> ਨੂੰ ਮੂਵ ਕਰ ਰਿਹਾ ਹੈ…"</string>
@@ -1250,8 +1251,8 @@
<string name="master_clear_desc_erase_external_storage" product="default" msgid="4801026652617377093">\n\n"ਸੰਗੀਤ, ਤਸਵੀਰਾਂ ਅਤੇ ਹੋਰ ਉਪਭੋਗਤਾ ਡੈਟਾ ਹਟਾਉਣ ਲਈ, "<b>"SD ਕਾਰਡ"</b>" ਨੂੰ ਮਿਟਾਉਣ ਦੀ ਲੋੜ ਹੈ।"</string>
<string name="erase_external_storage" product="nosdcard" msgid="969364037450286809">"USB ਸਟੋਰੇਜ ਮਿਟਾਓ"</string>
<string name="erase_external_storage" product="default" msgid="1397239046334307625">"SD ਕਾਰਡ ਮਿਟਾਓ"</string>
- <string name="erase_external_storage_description" product="nosdcard" msgid="4728558173931599429">"ਅੰਦਰੂਨੀ USB ਸਟੋਰੇਜ ਤੇ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਓ, ਜਿਵੇਂ ਸੰਗੀਤ ਜਾਂ ਫੋਟੋਆਂ"</string>
- <string name="erase_external_storage_description" product="default" msgid="1737638779582964966">"SD ਕਾਰਡ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਓ, ਜਿਵੇਂ ਸੰਗੀਤ ਜਾਂ ਫੋਟੋਆਂ"</string>
+ <string name="erase_external_storage_description" product="nosdcard" msgid="4728558173931599429">"ਅੰਦਰੂਨੀ USB ਸਟੋਰੇਜ ਤੇ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਓ, ਜਿਵੇਂ ਸੰਗੀਤ ਜਾਂ ਫ਼ੋਟੋਆਂ"</string>
+ <string name="erase_external_storage_description" product="default" msgid="1737638779582964966">"SD ਕਾਰਡ ਦਾ ਸਾਰਾ ਡੈਟਾ ਮਿਟਾਓ, ਜਿਵੇਂ ਸੰਗੀਤ ਜਾਂ ਫ਼ੋਟੋਆਂ"</string>
<string name="master_clear_button_text" product="tablet" msgid="3130786116528304116">"ਟੈਬਲੇਟ ਰੀਸੈੱਟ ਕਰੋ"</string>
<string name="master_clear_button_text" product="default" msgid="7550632653343157971">"ਫੋਨ ਰੀਸੈੱਟ ਕਰੋ"</string>
<string name="master_clear_final_desc" msgid="7318683914280403086">"ਕੀ ਆਪਣੀ ਸਾਰੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਅਤੇ ਡਾਊਨਲੋਡ ਕੀਤੇ ਐਪਸ ਮਿਟਾਉਣੇ ਹਨ? ਤੁਸੀਂ ਇਹ ਕਿਰਿਆ ਅਨਡੂ ਨਹੀਂ ਕਰ ਸਕਦੇ!"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ਕੀ ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ਦੀ ਬਜਾਇ <xliff:g id="NEW_APP">%1$s</xliff:g> ਨੂੰ ਵਰਤਣਾ ਹੈ?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ਕੀ ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ <xliff:g id="NEW_APP">%s</xliff:g> ਵਰਤਣਾ ਹੈ?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"ਅਗਿਆਤ SIM ਓਪਰੇਟਰ"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s ਦੀ ਕੋਈ ਗਿਆਤ ਪ੍ਰੋਵਿਜ਼ਿਨਿੰਗ ਵੈੱਬਸਾਈਟ ਨਹੀਂ ਹੈ"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> ਦੀ ਕੋਈ ਗਿਆਤ ਵਿਵਸਥਾਕਰਨ ਵੈੱਬਸਾਈਟ ਨਹੀਂ ਹੈ"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"ਕਿਰਪਾ ਕਰਕੇ SIM ਕਾਰਡ ਪਾਓ ਅਤੇ ਰੀਸਟਾਰਟ ਕਰੋ"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"ਕਿਰਪਾ ਕਰਕੇ ਇੰਟਰਨੈਟ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
<string name="location_title" msgid="1029961368397484576">"ਮੇਰਾ ਟਿਕਾਣਾ"</string>
@@ -1343,7 +1344,7 @@
<string name="about_settings" product="tablet" msgid="593457295516533765">"ਟੈਬਲੇਟ ਬਾਰੇ"</string>
<string name="about_settings" product="default" msgid="1743378368185371685">"ਫ਼ੋਨ ਬਾਰੇ"</string>
<string name="about_settings" product="emulator" msgid="221313099578564438">"ਇਮੂਲੇਟ ਕੀਤੀ ਡੀਵਾਈਸ ਬਾਰੇ"</string>
- <string name="about_settings_summary" msgid="3371517697156165959">"ਕਨੂੰਨੀ ਜਾਣਕਾਰੀ, ਸਥਿਤੀ, ਸੌਫਟਵੇਅਰ ਵਰਜਨ ਦੇਖੋ"</string>
+ <string name="about_settings_summary" msgid="3371517697156165959">"ਕਨੂੰਨੀ ਜਾਣਕਾਰੀ, ਸਥਿਤੀ, ਸੌਫਟਵੇਅਰ ਰੂਪ ਦੇਖੋ"</string>
<string name="legal_information" msgid="5769301644270604095">"ਕਨੂੰਨੀ ਜਾਣਕਾਰੀ"</string>
<string name="contributors_title" msgid="5917703088825286504">"ਸਹਿਯੋਗੀ"</string>
<string name="manual" msgid="3025943393642974445">"ਮੈਨੁਅਲ"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"ਸੈਟੇਲਾਈਟ ਇਮੇਜਰੀ ਪ੍ਰਦਾਤਾ:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"ਮੈਨੁਅਲ"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"ਮੈਨੁਅਲ ਲੋਡ ਕਰਨ ਵਿੱਚ ਇੱਕ ਸਮੱਸਿਆ ਹੋਈ ਸੀ।"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"ਤੀਜੀ-ਧਿਰ ਦੇ ਲਾਇਸੰਸ"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"ਲਾਇਸੰਸ ਲੋਡ ਕਰਨ ਵਿੱਚ ਇੱਕ ਸਮੱਸਿਆ ਹੋਈ ਸੀ।"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"ਸੁਰੱਖਿਆ ਜਾਣਕਾਰੀ"</string>
@@ -1528,7 +1528,7 @@
<string name="computing_size" msgid="1599186977475211186">"ਹਿਸਾਬ ਲਗਾ ਰਿਹਾ ਹੈ…"</string>
<string name="invalid_size_value" msgid="1582744272718752951">"ਪੈਕੇਜ ਅਕਾਰ ਨੂੰ ਕੰਪਿਊਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string>
<string name="empty_list_msg" msgid="3552095537348807772">"ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਤੀਜੀ-ਪਾਰਟੀ ਦੇ ਇੰਸਟੌਲ ਕੀਤੇ ਐਪਸ ਨਹੀਂ ਹਨ।"</string>
- <string name="version_text" msgid="9189073826278676425">"ਵਰਜਨ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
+ <string name="version_text" msgid="9189073826278676425">"ਰੂਪ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
<string name="move_app" msgid="5042838441401731346">"ਮੂਵ ਕਰੋ"</string>
<string name="move_app_to_internal" product="tablet" msgid="2299714147283854957">"ਟੈਬਲੇਟ ਵਿੱਚ ਮੂਵ ਕਰੋ"</string>
<string name="move_app_to_internal" product="default" msgid="3895430471913858185">"ਫੋਨ ਵਿੱਚ ਮੂਵ ਕਰੋ"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"ਬੈਟਰੀ ਸੇਵਰ"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ਆਟੋਮੈਟਿਕਲੀ ਚਾਲੂ ਕਰੋ"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ਕਦੇ ਵੀ ਨਹੀਂ"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s ਬੈਟਰੀ ਤੇ"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> \'ਤੇ ਬੈਟਰੀ"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"ਪ੍ਰਕਿਰਿਆ ਸਟੈਟਸ"</string>
<string name="process_stats_summary" msgid="109387941605607762">"ਚੱਲ ਰਹੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਬਾਰੇ Geeky ਸਟੈਟਸ"</string>
<string name="app_memory_use" msgid="7849258480392171939">"ਮੈਮਰੀ ਵਰਤੋਂ"</string>
@@ -2052,7 +2052,7 @@
<string name="backup_erase_dialog_title" msgid="1027640829482174106"></string>
<string name="backup_erase_dialog_message" msgid="5221011285568343155">"ਆਪਣੇ Wi‑Fi ਪਾਸਵਰਡਾਂ, ਬੁੱਕਮਾਰਕਾਂ, ਹੋਰ ਸੈਟਿੰਗਾਂ ਅਤੇ ਐਪ ਡੈਟਾ ਨੂੰ ਬੈਕ ਅਪ ਕਰਨਾ ਬੰਦ ਕਰਨਾ ਹੈ ਅਤੇ Google ਸਰਵਰਾਂ ਦੀਆਂ ਸਾਰੀਆਂ ਕਾਪੀਆਂ ਮਿਟਾਉਣੀਆਂ ਹਨ?"</string>
<string name="fullbackup_erase_dialog_message" msgid="694766389396659626">"ਕੀ ਡੀਵਾਈਸ ਡੇਟਾ (ਜਿਵੇਂ ਕਿ Wi-Fi ਪਾਸਵਰਡ ਅਤੇ ਕਲ ਇਤਿਹਾਸ) ਅਤੇ ਐਪ ਡੇਟਾ (ਜਿਵੇਂ ਕਿ ਐਪਸ ਦਾ ਸਟੋਰ ਕੀਤੀ ਸੈੱਟਿੰਗਜ਼ ਅਤੇ ਫ਼ਾਈਲਾਂ) ਦਾ ਬੈੱਕ ਅੱਪ ਤੋਂ ਰੋਕਣਾ ਹੈ, ਅਤੇ ਇਸਦੇ ਨਾਲ-ਨਾਲ ਰਿਮੋਟ ਸਰਵਰ \'ਤੇ ਸਾਰੀਆਂ ਪ੍ਰਤੀਲਿਪੀਆਂ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
- <string name="fullbackup_data_summary" msgid="960850365007767734">"ਡੀਵਾਈਸ ਡੇਟਾ ਰਿਮੋਟ ਦੇ ਰੂਪ ਵਿੱਚ (ਜਿਵੇਂ ਕਿ Wi-Fi ਪਾਸਵਰਡ ਅਤੇ ਕਲ ਇਤਿਹਾਸ) ਅਤੇ ਐਪ ਡੇਟਾ (ਜਿਵੇਂ ਕਿ ਐਪਸ ਦਾ ਸਟੋਰ ਕੀਤੀ ਸੈੱਟਿੰਗਜ਼ ਅਤੇ ਫ਼ਾਈਲਾਂ) ਦਾ ਸਵੈਚਲ ਬੈੱਕ ਅੱਪ ਲਿਓ।\n\nਜਦੋਂ ਤੁਸੀਂ ਸਵੈਚਲ ਬੈੱਕ ਅੱਪ ਨੂੰ ਚਾਲੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਡੀਵਾਈਸ ਅਤੇ ਐਪ ਡੇਟਾ ਨੂੰ ਰਿਮੋਟ ਦੇ ਰੂਪ ਵਿੱਚ ਅਵਧੀ ਅਨੁਸਾਰ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਐਪ ਡੇਟਾ ਕੋਈ ਵੀ ਡੇਟਾ ਹੋ ਸਕਦਾ ਹੈ ਜੋ ਸੰਪਰਕ, ਸੁਨੇਹੇ, ਅਤੇ ਫੋਟੋਆਂ ਵਰਗੇ ਸੰਭਾਵੀ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਸਮੇਤ, ਕਿਸੇ ਐਪ ਨੇ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੁੰਦਾ ਹੈ (ਨਿਰਮਾਤਾ ਸੈੱਟਿੰਗਜ਼ ਦੇ ਅਧਾਰ \'ਤੇ)।"</string>
+ <string name="fullbackup_data_summary" msgid="960850365007767734">"ਡੀਵਾਈਸ ਡੇਟਾ ਰਿਮੋਟ ਦੇ ਰੂਪ ਵਿੱਚ (ਜਿਵੇਂ ਕਿ Wi-Fi ਪਾਸਵਰਡ ਅਤੇ ਕਲ ਇਤਿਹਾਸ) ਅਤੇ ਐਪ ਡੇਟਾ (ਜਿਵੇਂ ਕਿ ਐਪਸ ਦਾ ਸਟੋਰ ਕੀਤੀ ਸੈੱਟਿੰਗਜ਼ ਅਤੇ ਫ਼ਾਈਲਾਂ) ਦਾ ਸਵੈਚਲ ਬੈੱਕ ਅੱਪ ਲਿਓ।\n\nਜਦੋਂ ਤੁਸੀਂ ਸਵੈਚਲ ਬੈੱਕ ਅੱਪ ਨੂੰ ਚਾਲੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਡੀਵਾਈਸ ਅਤੇ ਐਪ ਡੇਟਾ ਨੂੰ ਰਿਮੋਟ ਦੇ ਰੂਪ ਵਿੱਚ ਅਵਧੀ ਅਨੁਸਾਰ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਐਪ ਡੇਟਾ ਕੋਈ ਵੀ ਡੇਟਾ ਹੋ ਸਕਦਾ ਹੈ ਜੋ ਸੰਪਰਕ, ਸੁਨੇਹੇ, ਅਤੇ ਫ਼ੋਟੋਆਂ ਵਰਗੇ ਸੰਭਾਵੀ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਸਮੇਤ, ਕਿਸੇ ਐਪ ਨੇ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੁੰਦਾ ਹੈ (ਨਿਰਮਾਤਾ ਸੈੱਟਿੰਗਜ਼ ਦੇ ਅਧਾਰ \'ਤੇ)।"</string>
<string name="device_admin_settings_title" msgid="1335557832906433309">"ਡੀਵਾਈਸ ਪ੍ਰਬੰਧ ਸੈਟਿੰਗਾਂ"</string>
<string name="active_device_admin_msg" msgid="6930903262612422111">"ਡੀਵਾਈਸ ਪ੍ਰਬੰਧਕ"</string>
<string name="remove_device_admin" msgid="7736174723276745230">"ਇਸ ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਅਕਿਰਿਆਸ਼ੀਲ ਕਰੋ"</string>
@@ -2449,7 +2449,7 @@
<string name="app_notifications_switch_label" msgid="9124072219553687583">"ਸੂਚਨਾਵਾਂ ਦਿਖਾਓ"</string>
<string name="help_label" msgid="6886837949306318591">"ਮਦਦ ਅਤੇ ਪ੍ਰਤੀਕਰਮ"</string>
<string name="user_account_title" msgid="1127193807312271167">"ਸਮੱਗਰੀ ਲਈ ਖਾਤਾ"</string>
- <string name="user_picture_title" msgid="7297782792000291692">"ਫੋਟੋ ID"</string>
+ <string name="user_picture_title" msgid="7297782792000291692">"ਫ਼ੋਟੋ ID"</string>
<string name="extreme_threats_title" msgid="6549541803542968699">"ਐਕਸਟ੍ਰੀਮ ਖਤਰੇ"</string>
<string name="extreme_threats_summary" msgid="8777860706500920667">"ਜੀਵਨ ਅਤੇ ਜਾਇਦਾਦ ਲਈ ਐਕਸਟ੍ਰੀਮ ਖਤਰਿਆਂ ਦੀਆਂ ਚਿਤਾਵਨੀਆਂ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
<string name="severe_threats_title" msgid="8362676353803170963">"ਗੰਭੀਰ ਖਤਰੇ"</string>
@@ -2489,9 +2489,9 @@
<string name="wizard_back" msgid="5567007959434765743">"ਪਿੱਛੇ"</string>
<string name="wizard_next" msgid="3606212602795100640">"ਅੱਗੇ"</string>
<string name="wizard_finish" msgid="3286109692700083252">"ਸਮਾਪਤ ਕਰੋ"</string>
- <string name="user_image_take_photo" msgid="1280274310152803669">"ਫੋਟੋ ਲਓ"</string>
- <string name="user_image_choose_photo" msgid="7940990613897477057">"ਗੈਲਰੀ ਵਿੱਚੋਂ ਫੋਟੋ ਚੁਣੋ"</string>
- <string name="user_image_photo_selector" msgid="5492565707299454873">"ਫੋਟੋ ਚੁਣੋ"</string>
+ <string name="user_image_take_photo" msgid="1280274310152803669">"ਫ਼ੋਟੋ ਖਿੱਚ੍ਹੋ"</string>
+ <string name="user_image_choose_photo" msgid="7940990613897477057">"ਗੈਲਰੀ ਵਿੱਚੋਂ ਫ਼ੋਟੋ ਚੁਣੋ"</string>
+ <string name="user_image_photo_selector" msgid="5492565707299454873">"ਫ਼ੋਟੋ ਚੁਣੋ"</string>
<string name="regulatory_info_text" msgid="5623087902354026557"></string>
<string name="sim_setup_wizard_title" msgid="1732682852692274928">"SIM ਕਾਰਡ"</string>
<string name="sim_settings_title" msgid="6822745211458959756">"SIM ਕਾਰਡ"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"ਰਿੰਗ ਵੌਲਿਊਮ"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"ਸੂਚਨਾ ਵੌਲਿਊਮ"</string>
<string name="ringtone_title" msgid="5379026328015343686">"ਫੋਨ ਰਿੰਗਟੋਨ"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਸੂਚਨਾ ਧੁਨੀ"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਅਲਾਰਮ ਧੁਨੀ"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ਕਾਲਾਂ ਲਈ ਥਰਥਰਾਹਟ ਵੀ ਕਰੋ"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"ਹੋਰ ਅਵਾਜ਼ਾਂ"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ਡਾਇਲ ਪੈਡ ਟੋਨਾਂ"</string>
@@ -2957,8 +2955,8 @@
<string name="usb_use_power_only_desc" msgid="4912352581010190141">"ਹੋਰ ਕਨੈਕਟ ਕੀਤੀਆਂ ਡੀਵਾਈਸਾਂ ਨੂੰ ਪਾਵਰ ਸਪਲਾਈ ਕਰੋ"</string>
<string name="usb_use_file_transfers" msgid="7409600791007250137">"ਫ਼ਾਈਲਾਂ ਦਾ ਤਬਾਦਲਾ ਕਰੋ"</string>
<string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"ਫ਼ਾਈਲਾਂ ਦਾ ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸ \'ਤੇ ਤਬਾਦਲਾ ਕਰੋ"</string>
- <string name="usb_use_photo_transfers" msgid="7794775645350330454">"ਫੋਟੋਆਂ ਦਾ ਤਬਾਦਲਾ ਕਰੋ (PTP)"</string>
- <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"ਫੋਟੋਆਂ ਜਾਂ ਫ਼ਾਈਲਾਂ ਦਾ ਤਬਾਦਲਾ ਕਰੋ ਜੇਕਰ MTP ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ (PTP)"</string>
+ <string name="usb_use_photo_transfers" msgid="7794775645350330454">"ਫ਼ੋਟੋਆਂ ਦਾ ਤਬਾਦਲਾ ਕਰੋ (PTP)"</string>
+ <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"ਫ਼ੋਟੋਆਂ ਜਾਂ ਫ਼ਾਈਲਾਂ ਦਾ ਤਬਾਦਲਾ ਕਰੋ ਜੇਕਰ MTP ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ (PTP)"</string>
<string name="usb_use_MIDI" msgid="870922185938298263">"ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ MIDI ਵਜੋਂ ਕਰੋ"</string>
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ਇਸ ਡੀਵਾਈਸ ਦੀ MIDI ਵਜੋਂ ਵਰਤੋਂ ਕਰੋ"</string>
<string name="usb_use" msgid="3256040963685055320">"ਇਹਨਾਂ ਲਈ USB ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"ਕੀ ਸਾਈਨ ਇਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"ਸਿਸਟਮ ਜਾਣਕਾਰੀ ਭੇਜੋ"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ਦੁਬਾਰਾ ਨਾ ਵਿਖਾਓ"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"ਇਸ ਵਜੋਂ ਬੇਨਤੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"ਖਾਤਾ ਸ਼ਾਮਲ ਕਰੋ"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਸੈਟਿੰਗਾਂ"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"ਸੰਪਰਕ ਖੋਜ"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"ਕਾਲ ਕਰਨ ਵਾਲਿਆਂ ਅਤੇ ਸੰਪਰਕਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਤੁਹਾਡੀ ਸੰਸਥਾ ਵਿੱੱਚ ਸੰਪਰਕ ਖੋਜਾਂ ਕਰਨ ਦਿਓ"</string>
@@ -3247,8 +3247,8 @@
<string name="bluetooth_talkback_input_peripheral" msgid="5165842622743212268">"ਇਨਪੁੱਟ ਪੈਰਿਫੈਰਲ"</string>
<string name="bluetooth_talkback_bluetooth" msgid="5615463912185280812">"ਬਲੂਟੁੱਥ"</string>
<string name="automatic_storage_manager_settings" msgid="7819434542155181607">"ਸਟੋਰੇਜ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
- <string name="automatic_storage_manager_text" msgid="4562950476680600604">"ਸਟੋਰੇਜ ਥਾਂ ਖ਼ਾਲੀ ਕਰਨ ਵਿੱਚ ਮਦਦ ਲਈ, ਸਟੋਰੇਜ ਪ੍ਰਬੰਧਕ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਤੋਂ ਬੈਕਅੱਪ ਲਈਆਂ ਗਈਆਂ ਫੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ।"</string>
- <string name="automatic_storage_manager_days_title" msgid="2017913896160914647">"ਫੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ ਹਟਾਓ"</string>
+ <string name="automatic_storage_manager_text" msgid="4562950476680600604">"ਸਟੋਰੇਜ ਥਾਂ ਖ਼ਾਲੀ ਕਰਨ ਵਿੱਚ ਮਦਦ ਲਈ, ਸਟੋਰੇਜ ਪ੍ਰਬੰਧਕ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਤੋਂ ਬੈਕਅੱਪ ਲਈਆਂ ਗਈਆਂ ਫ਼ੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ।"</string>
+ <string name="automatic_storage_manager_days_title" msgid="2017913896160914647">"ਫ਼ੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ ਹਟਾਓ"</string>
<string name="automatic_storage_manager_preference_title" msgid="5753702798151073383">"ਸਟੋਰੇਜ ਪ੍ਰਬੰਧਕ"</string>
<string name="deletion_helper_automatic_title" msgid="6605660435498272520">"ਸਵੈਚਾਲਿਤ"</string>
<string name="deletion_helper_manual_title" msgid="7947432164411214029">"ਦਸਤੀ"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"ਖਾਤਾ ਡੈਟਾ ਸਵੈ-ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"ਵਿਅਕਤੀਗਤ ਖਾਤਾ ਡੈਟਾ ਸਵੈ-ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"ਕਾਰਜ ਖਾਤਾ ਡੈਟਾ ਸਵੈ-ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"ਖਾਤਾ ਸਮਕਾਲੀਕਰਨ"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"ਪਰਦੇਦਾਰੀ"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ਪਰਦੇਦਾਰੀ"</string>
- <string name="enterprise_privacy_header" msgid="5605095630252702716">"ਤੁਹਾਡੇ ਕੰਮ ਦੇ ਡੈਟੇ ਤੱਕ ਪਹੁੰਚ ਮੁਹੱਈਆ ਕਰਾਉਣ ਲਈ, ਤੁਹਾਡਾ ਸੰਗਠਨ ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਸੈਟਿੰਗਾਂ ਨੂੰ ਤਬਦੀਲ ਅਤੇ ਸਾਫਟਵੇਅਰ ਸਥਾਪਤ ਕਰ ਸਕਦਾ ਹੈ, ਜਿਹੜਾ ਕਿ ਤੁਹਾਡੀ ਕੁਝ ਨਿੱਜੀ ਸਮੱਗਰੀ ਨੂੰ ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਲਈ ਉਪਲਬਧ ਹੋਣ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ। ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ ਆਪਣੇ ਸੰਗਠਨ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_header" msgid="5605095630252702716">"ਤੁਹਾਡੇ ਕਾਰਜ ਡੈਟੇ ਤੱਕ ਪਹੁੰਚ ਮੁਹੱਈਆ ਕਰਾਉਣ ਲਈ, ਤੁਹਾਡਾ ਸੰਗਠਨ ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਸੈਟਿੰਗਾਂ ਨੂੰ ਤਬਦੀਲ ਅਤੇ ਸਾਫਟਵੇਅਰ ਸਥਾਪਤ ਕਰ ਸਕਦਾ ਹੈ, ਜੋ ਤੁਹਾਡੀ ਕੁਝ ਨਿੱਜੀ ਸਮੱਗਰੀ ਨੂੰ ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਲਈ ਦਿਖਣਯੋਗ ਬਣਨ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ। ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ ਆਪਣੇ ਸੰਗਠਨ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string>
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"ਤੁਹਾਡੀ ਸੰਸਥਾ ਜਾਣਕਾਰੀ ਦੀਆਂ ਕਿਹੜੀਆਂ ਕਿਸਮਾਂ ਵੇਖ ਸਕਦੀ ਹੈ?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"ਤੁਹਾਡੀ ਸੰਸਥਾ ਜੋ ਕੁਝ ਵੇਖ ਸਕਦੀ ਹੈ ਉਸਨੂੰ ਕਿਹੜੀਆਂ ਤਬਦੀਲੀਆਂ ਪ੍ਰਭਾਵਿਤ ਕਰਦੀਆਂ ਹਨ?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ਕਿਹੜੀਆਂ ਕਾਰਵਾਈਆਂ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਤੁਹਾਡੀ ਪਹੁੰਚ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰ ਸਕਦੀਆਂ ਹਨ?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ਤੁਹਾਡੇ ਕਾਰਜ ਖਾਤੇ ਨਾਲ ਸਬੰਧਿਤ ਡੈਟਾ, ਜਿਵੇਂ ਕਿ ਈਮੇਲ ਅਤੇ ਕੈਲੰਡਰ"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਸਭ ਐਪਾਂ ਦੀ ਸੂਚੀ"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਸਭ <xliff:g id="COUNT_1">%d</xliff:g> ਐਪਾਂ ਦੀ ਸੂਚੀ</item>
+ <item quantity="other">ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਸਭ <xliff:g id="COUNT_1">%d</xliff:g> ਐਪਾਂ ਦੀ ਸੂਚੀ</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਹਰੇਕ ਐਪ ਦੀ ਵਰਤੋਂ (ਲਗਾਇਆ ਸਮਾਂ ਅਤੇ ਵਰਤੇ ਗਏ ਡੈਟੇ ਦੀ ਮਾਤਰਾ)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਆਵਾਜਾਈ ਲੌਗ"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"ਤੁਹਾਡੀ ਸਭ ਤੋਂ ਹਾਲੀਆ ਬੱਗ ਰਿਪੋਰਟ"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"ਤੁਹਾਡਾ ਸਭ ਤੋਂ ਹਾਲੀਆ ਸੁਰੱਖਿਆ ਲੌਗ"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"ਕਦੇ ਵੀ ਨਹੀਂ"</string>
</resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index dc25517..9ce771d 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"włączanie ekranu"</item>
<item msgid="3253368931113490863">"pobieranie listy kont"</item>
<item msgid="780392378084812901">"uruchamianie w tle"</item>
+ <item msgid="2629748510881309577">"głośność przy ułatwieniach dostępu"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Lokalizacja"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Włączanie ekranu"</item>
<item msgid="5258373962467495905">"Pobieranie listy kont"</item>
<item msgid="334625385979270703">"Działanie w tle"</item>
+ <item msgid="9039213578110332702">"Głośność przy ułatwieniach dostępu"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Krótki"</item>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index f0944e5..3052fa1 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -152,7 +152,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Dotknij, by połączyć z: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Czy chcesz nawiązać połączenie z urządzeniem „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Żądanie dostępu do książki telefonicznej"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s chce uzyskać dostęp do Twoich kontaktów i historii połączeń. Zezwolić %2$s na dostęp?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> chce uzyskać dostęp do Twoich kontaktów i historii połączeń. Przyznać dostęp urządzeniu <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Nie pytaj ponownie"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Nie pytaj ponownie"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Żądanie dostępu do wiadomości"</string>
@@ -274,6 +274,7 @@
<string name="settings_label" msgid="1626402585530130914">"Ustawienia"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Ustawienia"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Skrót do ustawień"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nie znaleziono pasujących działań."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Tryb samolotowy"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Więcej"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Sieci zwykłe i bezprzewodowe"</string>
@@ -1321,7 +1322,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Używać <xliff:g id="NEW_APP">%1$s</xliff:g> zamiast <xliff:g id="CURRENT_APP">%2$s</xliff:g> do zarządzania połączeniami sieciowymi?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Używać <xliff:g id="NEW_APP">%s</xliff:g> do zarządzania połączeniami sieciowymi?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nieznany operator karty SIM"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nie ma znanej witryny obsługi"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nie ma znanej witryny obsługi administracyjnej"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Włóż kartę SIM i zrestartuj urządzenie"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Połącz się z internetem"</string>
<string name="location_title" msgid="1029961368397484576">"Moja lokalizacja"</string>
@@ -1377,8 +1378,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Dostawcy zdjęć satelitarnych:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Instrukcja"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Podczas wczytywania instrukcji wystąpił problem."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licencje innych firm"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Wystąpił problem podczas ładowania licencji."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Ładowanie..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informacje o bezpieczeństwie"</string>
@@ -1966,7 +1966,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Oszczędzanie baterii"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Włącz automatycznie"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nigdy"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"przy %1$s baterii"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"przy <xliff:g id="PERCENT">%1$s</xliff:g> baterii"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statystyki procesów"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Rozbudowane statystyki uruchomionych procesów"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Użycie pamięci"</string>
@@ -2650,10 +2650,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Głośność dzwonka"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Głośność powiadomień"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Dzwonek telefonu"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Domyślny dźwięk powiadomienia"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Domyślny dźwięk alarmu"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Wibracja przy połączeniach"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Inne dźwięki"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Dźwięki wybierania numeru"</string>
@@ -3287,6 +3285,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Nie możesz się zalogować?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Wyślij informacje o systemie"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Nie pokazuj ponownie"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Wysyłasz jako"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Dodaj konto"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Ustawienia profilu do pracy"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Wyszukiwanie kontaktów"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Zezwalaj na wyszukiwanie kontaktów do identyfikacji rozmówców i kontaktów przez Twoją organizację"</string>
@@ -3365,20 +3365,24 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Autosynchronizacja: dane konta"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autosynchronizacja: osobiste"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autosynchronizacja: służbowe"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Synchronizacja konta"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Prywatność"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Prywatność"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Aby zapewnić dostęp do danych służbowych, Twoja organizacja może zmienić ustawienia i zainstalować oprogramowanie na Twoim urządzeniu. Niektóre z Twoich prywatnych treści mogą być widoczne dla administratora. Skontaktuj się z nim, by uzyskać więcej informacji."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Jakie informacje są widoczne dla organizacji?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Jakie zmiany wpływają na to, co jest widoczne dla Twojej organizacji?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Jakie działania mogą wpłynąć na Twój dostęp do tego urządzenia?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dane powiązane z kontem służbowym, takie jak poczta e-mail i kalendarz"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista wszystkich aplikacji na Twoim urządzeniu"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="few">Lista wszystkich <xliff:g id="COUNT_1">%d</xliff:g> aplikacji na Twoim urządzeniu</item>
+ <item quantity="many">Lista wszystkich <xliff:g id="COUNT_1">%d</xliff:g> aplikacji na Twoim urządzeniu</item>
+ <item quantity="other">Lista z <xliff:g id="COUNT_1">%d</xliff:g> aplikacji na Twoim urządzeniu</item>
+ <item quantity="one">Lista z <xliff:g id="COUNT_0">%d</xliff:g> aplikacją na Twoim urządzeniu</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Użycie (spędzony czas i ilość użytych danych) poszczególnych aplikacji na Twoim urządzeniu"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Dzienniki ruchu na Twoim urządzeniu"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Najnowszy raport o błędzie"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Twój najnowszy dziennik zabezpieczeń"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nigdy"</string>
</resources>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index eeede29..040cc96 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ativar tela"</item>
<item msgid="3253368931113490863">"adquirir contas"</item>
<item msgid="780392378084812901">"executar em segundo plano"</item>
+ <item msgid="2629748510881309577">"volume da acessibilidade"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Local"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Ativar tela"</item>
<item msgid="5258373962467495905">"Adquirir contas"</item>
<item msgid="334625385979270703">"Executar em segundo plano"</item>
+ <item msgid="9039213578110332702">"Volume da acessibilidade"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Curto"</item>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 9250374..20ceab1 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toque para conectar-se a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Deseja conectar-se ao \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitação de acesso à agenda telefônica"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s deseja acessar seus contatos e o histórico de chamadas. Conceder acesso a %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"O <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> deseja acessar seus contatos e seu histórico de chamadas. Deseja conceder acesso ao <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Não perguntar novamente"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Não perguntar novamente"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitação de acesso a mensagens"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Configurações"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Configurar"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Atalho para as configurações"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nenhuma atividade correspondente foi encontrada."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Modo avião"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Mais"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Redes sem fio e outras"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Usar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para gerenciar suas conexões de rede?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Usar <xliff:g id="NEW_APP">%s</xliff:g> para gerenciar suas conexões de rede?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operadora do SIM desconhecida"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s sem website de aprovisionamento conhecido"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> não tem um website de aprovisionamento conhecido"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insira o cartão SIM e reinicie"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Conecte-se à Internet"</string>
<string name="location_title" msgid="1029961368397484576">"Meu Local"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Provedores de imagens de satélite:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ocorreu um problema ao carregar o manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenças de terceiros"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Há um problema ao carregar as licenças."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Carregando..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informações de segurança"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Economia de bateria"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Ativar automaticamente"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"com %1$s de bateria"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"com <xliff:g id="PERCENT">%1$s</xliff:g> de bateria"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Estatísticas de processo"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Estatísticas detalhadas sobre os processos em execução"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Uso da memória"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volume das notificações"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Toque do telefone"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Som de notificação padrão"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Som de alarme padrão"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Também vibrar para chamadas"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Outros sons"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tons do teclado"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Não consegue fazer login?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar informações do sistema"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Não mostrar novamente"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitando como"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Adicionar conta"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Configurações do perfil de trabalho"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pesquisa de contatos"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir que sua organização pesquise contatos para identificar autores de chamadas e contatos"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sinc. autom. de dados da conta"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinc. autom. dados pessoais da conta"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinc. autom. dados de trab. da conta"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sincronização de contas"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidade"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidade"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Para fornecer acesso aos seus dados de trabalho, sua organização pode alterar configurações e instalar softwares no seu dispositivo, o que poderia tornar alguns conteúdos pessoais visíveis para seu administrador. Entre em contato com o administrador da sua organização para saber mais detalhes."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Que tipos de informação sua organização pode ver?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quais alterações afetam o que sua organização pode ver?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quais ações podem afetar seu acesso a esse dispositivo?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dados associados à sua conta de trabalho, como e-mail e agenda"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista de todos os apps no seu dispositivo"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Lista do <xliff:g id="COUNT_1">%d</xliff:g> app no seu dispositivo</item>
+ <item quantity="other">Lista de todos os <xliff:g id="COUNT_1">%d</xliff:g> apps no seu dispositivo</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uso (tempo gasto e quantidade de dados usados) de cada app no seu dispositivo"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registros de trânsito no seu dispositivo"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Seu relatório do bug mais recente"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Seu registro de segurança mais recente"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
</resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index ce3d14d..74d92e1 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ativar ecrã"</item>
<item msgid="3253368931113490863">"obter contas"</item>
<item msgid="780392378084812901">"executar em segundo plano"</item>
+ <item msgid="2629748510881309577">"volume da acessibilidade"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Localização"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Ativar ecrã"</item>
<item msgid="5258373962467495905">"Obter contas"</item>
<item msgid="334625385979270703">"Executar em segundo plano"</item>
+ <item msgid="9039213578110332702">"Volume da acessibilidade"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Curta"</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 0ee9c62..4366577 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toque para ligar a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Pretende ligar-se a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Pedido de acesso à lista telefónica"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s pretende aceder aos seus contactos e histórico de chamadas. Conceder acesso a %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> pretende aceder aos seus contactos e ao histórico de chamadas. Pretende conceder acesso a <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Não perguntar novamente"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Não perguntar novamente"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Pedido de acesso a mensagens"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Definições"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Definições"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Atalho das definições"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Não foi encontrada qualquer atividade correspondente."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Modo de voo"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Mais"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Redes sem fios e outras"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Utilizar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para gerir as ligações de rede?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Utilizar <xliff:g id="NEW_APP">%s</xliff:g> para gerir as ligações de rede?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operador SIM desconhecido"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"A %1$s não possui um Website de gestão conhecido"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"A <xliff:g id="OPERATOR">%1$s</xliff:g> não possui um Website de gestão conhecido"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insira o cartão SIM e reinicie"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Ligue-se à Internet"</string>
<string name="location_title" msgid="1029961368397484576">"A minha localização"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Fornecedores de imagens de satélite:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ocorreu um problema ao carregar o manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenças de terceiros"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Ocorreu um problema ao carregar as licenças."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"A carregar..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informações de segurança"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Poupança de bateria"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Ligar automaticamente"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"com %1$s de bateria"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ao alcançar <xliff:g id="PERCENT">%1$s</xliff:g> de bateria"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Estatísticas do Processo"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Estatísticas de peritos acerca dos processos em execução"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Utilização da memória"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volume de notificações"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Toque do telefone"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Som de notificação predefinido"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Som de alarme predefinido"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrar também para chamadas"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Outros sons"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Sons do teclado"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Não consegue iniciar sessão?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar informações do sistema"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Não mostrar novamente"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"A solicitar como"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Adicionar conta"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Definições do perfil de trabalho"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pesquisa de contactos"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir pesquisa de contactos por parte da sua entidade para identificar autores das chamadas e contactos"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sinc. autom. os dados da conta"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinc. aut. dados da conta pes."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinc. aut. dados da conta tr."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sincronização da conta"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidade"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidade"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Para fornecer acesso aos seus dados de trabalho, a sua entidade pode alterar as definições e instalar software no seu dispositivo, o que pode tornar algum do seu conteúdo pessoal visível para o seu administrador. Contacte o administrador da sua entidade para obter mais informações."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Que tipos de informação pode ver a sua entidade?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Que alterações afetam o que a sua entidade pode ver?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Que ações podem afetar o seu acesso a este dispositivo?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Os dados associados à sua conta de trabalho, como o email e o calendário"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista de todas as aplicações no seu dispositivo"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Lista de todas as <xliff:g id="COUNT_1">%d</xliff:g> aplicações no seu dispositivo</item>
+ <item quantity="one">Lista de <xliff:g id="COUNT_0">%d</xliff:g> aplicação no seu dispositivo</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Utilização (tempo gasto e a quantidade de dados utilizados) de cada aplicação no seu dispositivo"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registos de tráfego no seu dispositivo"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"O seu relatório de erro mais recente"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"O seu registo de segurança mais recente"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
</resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index eeede29..040cc96 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ativar tela"</item>
<item msgid="3253368931113490863">"adquirir contas"</item>
<item msgid="780392378084812901">"executar em segundo plano"</item>
+ <item msgid="2629748510881309577">"volume da acessibilidade"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Local"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Ativar tela"</item>
<item msgid="5258373962467495905">"Adquirir contas"</item>
<item msgid="334625385979270703">"Executar em segundo plano"</item>
+ <item msgid="9039213578110332702">"Volume da acessibilidade"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Curto"</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 9250374..20ceab1 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Toque para conectar-se a \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Deseja conectar-se ao \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitação de acesso à agenda telefônica"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s deseja acessar seus contatos e o histórico de chamadas. Conceder acesso a %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"O <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> deseja acessar seus contatos e seu histórico de chamadas. Deseja conceder acesso ao <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Não perguntar novamente"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Não perguntar novamente"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitação de acesso a mensagens"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Configurações"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Configurar"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Atalho para as configurações"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nenhuma atividade correspondente foi encontrada."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Modo avião"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Mais"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Redes sem fio e outras"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Usar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para gerenciar suas conexões de rede?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Usar <xliff:g id="NEW_APP">%s</xliff:g> para gerenciar suas conexões de rede?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operadora do SIM desconhecida"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s sem website de aprovisionamento conhecido"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> não tem um website de aprovisionamento conhecido"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Insira o cartão SIM e reinicie"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Conecte-se à Internet"</string>
<string name="location_title" msgid="1029961368397484576">"Meu Local"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Provedores de imagens de satélite:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ocorreu um problema ao carregar o manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenças de terceiros"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Há um problema ao carregar as licenças."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Carregando..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informações de segurança"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Economia de bateria"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Ativar automaticamente"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nunca"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"com %1$s de bateria"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"com <xliff:g id="PERCENT">%1$s</xliff:g> de bateria"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Estatísticas de processo"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Estatísticas detalhadas sobre os processos em execução"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Uso da memória"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volume das notificações"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Toque do telefone"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Som de notificação padrão"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Som de alarme padrão"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Também vibrar para chamadas"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Outros sons"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tons do teclado"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Não consegue fazer login?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Enviar informações do sistema"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Não mostrar novamente"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitando como"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Adicionar conta"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Configurações do perfil de trabalho"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Pesquisa de contatos"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permitir que sua organização pesquise contatos para identificar autores de chamadas e contatos"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sinc. autom. de dados da conta"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinc. autom. dados pessoais da conta"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinc. autom. dados de trab. da conta"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sincronização de contas"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacidade"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacidade"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Para fornecer acesso aos seus dados de trabalho, sua organização pode alterar configurações e instalar softwares no seu dispositivo, o que poderia tornar alguns conteúdos pessoais visíveis para seu administrador. Entre em contato com o administrador da sua organização para saber mais detalhes."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Que tipos de informação sua organização pode ver?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Quais alterações afetam o que sua organização pode ver?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Quais ações podem afetar seu acesso a esse dispositivo?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dados associados à sua conta de trabalho, como e-mail e agenda"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista de todos os apps no seu dispositivo"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Lista do <xliff:g id="COUNT_1">%d</xliff:g> app no seu dispositivo</item>
+ <item quantity="other">Lista de todos os <xliff:g id="COUNT_1">%d</xliff:g> apps no seu dispositivo</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uso (tempo gasto e quantidade de dados usados) de cada app no seu dispositivo"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Registros de trânsito no seu dispositivo"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Seu relatório do bug mais recente"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Seu registro de segurança mais recente"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nunca"</string>
</resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 4e5f5e5..6ba2cd7 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"activează ecranul"</item>
<item msgid="3253368931113490863">"preia conturile"</item>
<item msgid="780392378084812901">"rulează în fundal"</item>
+ <item msgid="2629748510881309577">"volum accesibilitate"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Locație"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Activează ecranul"</item>
<item msgid="5258373962467495905">"Preia conturile"</item>
<item msgid="334625385979270703">"Rulează în fundal"</item>
+ <item msgid="9039213578110332702">"Volum accesibilitate"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Scurtă"</item>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 2c98219..1e531fc 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -151,7 +151,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Atingeți pentru a vă conecta la „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Doriți să vă conectați la „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Solicitarea accesului la agendă"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s dorește să acceseze Agenda dvs. și istoricul apelurilor. Permiteți accesul pentru %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> dorește să acceseze persoanele de contact și istoricul apelurilor. Acordați accesul la <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Nu doresc să fiu întrebat(ă) din nou"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Nu doresc să fiu întrebat(ă) din nou"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Solicitarea accesului la mesaje"</string>
@@ -272,6 +272,7 @@
<string name="settings_label" msgid="1626402585530130914">"Setări"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Setări"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Comandă rapidă pentru setări"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nu s-a găsit nicio activitate potrivită."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Mod Avion"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Mai multe"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless și rețele"</string>
@@ -415,8 +416,8 @@
<string name="crypt_keeper_setup_title" msgid="1783951453124244969">"Criptare"</string>
<string name="crypt_keeper_setup_description" product="tablet" msgid="6689952371032099350">"Așteptați criptarea tabletei. Finalizat <xliff:g id="PERCENT">^1</xliff:g>%."</string>
<string name="crypt_keeper_setup_description" product="default" msgid="951918761585534875">"Așteptați criptarea telefonului. Finalizat <xliff:g id="PERCENT">^1</xliff:g>%."</string>
- <string name="crypt_keeper_setup_time_remaining" product="tablet" msgid="1655047311546745695">"Așteptați criptarea tabletei. Finalizat: <xliff:g id="DURATION">^1</xliff:g>"</string>
- <string name="crypt_keeper_setup_time_remaining" product="default" msgid="1862964662304683072">"Așteptați criptarea telefonului. Finalizat: <xliff:g id="DURATION">^1</xliff:g>"</string>
+ <string name="crypt_keeper_setup_time_remaining" product="tablet" msgid="1655047311546745695">"Așteptați criptarea tabletei. Finalizat în <xliff:g id="DURATION">^1</xliff:g>"</string>
+ <string name="crypt_keeper_setup_time_remaining" product="default" msgid="1862964662304683072">"Așteptați criptarea telefonului. Finalizat în <xliff:g id="DURATION">^1</xliff:g>"</string>
<string name="crypt_keeper_force_power_cycle" product="tablet" msgid="556504311511212648">"Pentru a debloca tableta, opriți-o și reporniți-o."</string>
<string name="crypt_keeper_force_power_cycle" product="default" msgid="1794353635603020327">"Pentru a debloca telefonul, opriți-l și reporniți-l."</string>
<string name="crypt_keeper_warn_wipe" msgid="2738374897337991667">"Avertisment: datele de pe dispozitiv vor fi șterse după încă <xliff:g id="COUNT">^1</xliff:g> încercări nereușite de deblocare!"</string>
@@ -950,7 +951,7 @@
<string name="brightness_title" msgid="5746272622112982836">"Luminozitate"</string>
<string name="brightness_summary" msgid="838917350127550703">"Ajustați luminozitatea ecranului"</string>
<string name="auto_brightness_title" msgid="6341042882350279391">"Luminozitate adaptivă"</string>
- <string name="auto_brightness_summary" msgid="1799041158760605375">"Optimizează nivelul de luminozitate pentru lumina disponibilă"</string>
+ <string name="auto_brightness_summary" msgid="1799041158760605375">"Optimizează nivelul de luminozitate în funcție de lumina disponibilă"</string>
<string name="night_display_title" msgid="2626451512200357686">"Lumină de noapte"</string>
<string name="night_display_text" msgid="1837277457033025056">"Lumina de noapte dă o nuanță de chihlimbar ecranului. Astfel, este mai ușor să priviți ecranul sau să citiți într-o lumină slabă și vă poate ajuta să adormiți mai rapid."</string>
<string name="night_display_category_schedule" msgid="2044072617637348966">"Program"</string>
@@ -1311,7 +1312,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Utilizați <xliff:g id="NEW_APP">%1$s</xliff:g> în loc de <xliff:g id="CURRENT_APP">%2$s</xliff:g> pentru a gestiona conexiunile la rețea?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Utilizați <xliff:g id="NEW_APP">%s</xliff:g> pentru a gestiona conexiunile la rețea?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operator SIM necunoscut"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Niciun site de provizionare cunoscut pentru %1$s"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nu are niciun site de provizionare cunoscut"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Introduceți cartela SIM și reporniți"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Conectați-vă la internet"</string>
<string name="location_title" msgid="1029961368397484576">"Locația mea"</string>
@@ -1367,8 +1368,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Furnizorii de imagini din satelit:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"A apărut o problemă la încărcarea manualului."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licențe terță parte"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"A apărut o problemă la încărcarea licențelor."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Se încarcă…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informații privind siguranța"</string>
@@ -1949,7 +1949,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Economisirea energiei"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activați automat"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Niciodată"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"când bateria ajunge la %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"la baterie <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistici de proces"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistici inteligente despre procesele care rulează"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Utilizarea memoriei"</string>
@@ -2628,10 +2628,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volum sonerie"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volumul notificărilor"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Ton de apel al telefonului"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Sunet de notificare prestabilit"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Sunet de alarmă prestabilit"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrații și pentru apeluri"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Alte sunete"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonuri pentru tastatura numerică"</string>
@@ -3255,6 +3253,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Nu vă puteți conecta?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Trimiteți informațiile despre sistem"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Nu mai afișa"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Solicitarea se trimite din contul"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Adăugați un cont"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Setările profilului de serviciu"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Căutarea persoanelor de contact"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Permiteți căutările persoanelor de contact efectuate de organizația dvs. pentru a identifica apelanții și persoanele de contact"</string>
@@ -3330,20 +3330,23 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sinc. aut. date cont"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinc. aut. date personale cont"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinc. aut. date profes. cont"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sincronizarea contului"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Confidențialitate"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Confidențialitate"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Pentru a oferi acces la datele dvs. de lucru, organizația dvs. poate să modifice setările și să instaleze un software pe dispozitiv. Prin urmare, o parte din conținutul dvs. personal poate deveni vizibil pentru administratorul dvs. Contactați administratorul organizației pentru mai multe detalii."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Ce tipuri de informații poate vedea organizația dvs.?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Ce schimbări afectează ce poate vedea organizația dvs.?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Ce acțiuni pot să afecteze accesul dvs. la acest dispozitiv?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Date asociate contului dvs. de serviciu, cum ar fi e-mailul și calendarul"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista tuturor aplicațiilor de pe dispozitivul dvs."</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="few">Listă cu cele <xliff:g id="COUNT_1">%d</xliff:g> aplicații de pe dispozitivul dvs.</item>
+ <item quantity="other">Listă cu cele <xliff:g id="COUNT_1">%d</xliff:g> de aplicații de pe dispozitivul dvs.</item>
+ <item quantity="one">Listă cu <xliff:g id="COUNT_0">%d</xliff:g> aplicație de pe dispozitivul dvs.</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Utilizarea (timpul petrecut și cantitatea de date utilizate) de fiecare aplicație de pe dispozitivul dvs."</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Jurnale de trafic de pe dispozitivul dvs."</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Cel mai recent raport de eroare"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Cel mai recent jurnal de securitate"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Niciodată"</string>
</resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 1d9273c..d70cb97 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"включение экрана"</item>
<item msgid="3253368931113490863">"получение данных об аккаунтах"</item>
<item msgid="780392378084812901">"запуск в фоновом режиме"</item>
+ <item msgid="2629748510881309577">"громкость подсказок"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Местоположение"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Включение экрана"</item>
<item msgid="5258373962467495905">"Получение данных об аккаунтах"</item>
<item msgid="334625385979270703">"Запуск в фоновом режиме"</item>
+ <item msgid="9039213578110332702">"Громкость подсказок"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Небольшая"</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index d017383..2ec6fee 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -152,7 +152,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Нажмите, чтобы подключиться к устройству \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Подключиться к устройству \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Запрос на доступ к списку контактов"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Устройство \"%1$s\" пытается получить доступ к вашим контактам и журналу звонков. Разрешить доступ для %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Устройство <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> запрашивает доступ к вашим контактам и журналу звонков. Разрешить доступ для <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Больше не спрашивать"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Больше не спрашивать"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Запрос на доступ к сообщениям"</string>
@@ -274,6 +274,7 @@
<string name="settings_label" msgid="1626402585530130914">"Настройки"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Настройки"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Ярлык настроек"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Подходящих действий не найдено."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Режим полета"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Ещё"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Беспроводные сети"</string>
@@ -1321,7 +1322,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Использовать приложение \"<xliff:g id="NEW_APP">%1$s</xliff:g>\" вместо приложения \"<xliff:g id="CURRENT_APP">%2$s</xliff:g>\" для управления сетевыми подключениями?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Использовать приложение \"<xliff:g id="NEW_APP">%s</xliff:g>\" для управления сетевыми подключениями?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Неизвестный оператор связи"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"У оператора \"%1$s\" нет веб-сайта для синхронизации"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"У оператора \"<xliff:g id="OPERATOR">%1$s</xliff:g>\" нет веб-сайта для синхронизации"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Вставьте SIM-карту и перезагрузите устройство"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Подключитесь к Интернету"</string>
<string name="location_title" msgid="1029961368397484576">"Мое местоположение"</string>
@@ -1377,8 +1378,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Фотографии со спутника:\n© CNES 2014/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Руководство пользователя"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Не удалось загрузить руководство пользователя."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Лицензии третьих лиц"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"При загрузке лицензий возникла неполадка."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Загрузка…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Сведения о безопасности"</string>
@@ -1966,7 +1966,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Режим энергосбережения"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Включать автоматически"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Никогда"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"При уровне заряда %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"при <xliff:g id="PERCENT">%1$s</xliff:g> заряда"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Статистика процессов"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Статистика запущенных процессов"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Использование памяти"</string>
@@ -2650,10 +2650,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Рингтон"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Громкость уведомлений"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Рингтон"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Звук уведомления по умолчанию"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Звук будильника по умолчанию"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Вибрация при звонке"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Другие звуки"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Звук при наборе номера"</string>
@@ -3287,6 +3285,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Не удается войти"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Отправьте информацию о системе"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Больше не показывать"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Запрос от:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Добавить аккаунт"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Настройки рабочего профиля"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Поиск контактов"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Разрешить поиск контактов в организации для определения вызывающих абонентов"</string>
@@ -3365,20 +3365,24 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Автосинхронизация аккаунта"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Автосинхр. личного аккаунта"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Автосинхр. рабочего аккаунта"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Синхронизировать аккаунты"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Конфиденциальность"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Конфиденциальность"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Администратор вашей организации может получить доступ к некоторым вашим личным данным, когда будет изменять настройки на вашем устройстве или устанавливать приложения, которые необходимы вам для работы. Обратитесь к нему за дополнительной информацией."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Какие данные могут быть доступны вашей организации?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Какие изменения влияют на доступность данных?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Какие действия могут повлиять на ваш доступ к устройству?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Данные, связанные с вашим рабочим аккаунтом, например почта и мероприятия в календаре"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Список всех приложений на вашем устройстве"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Список всех приложений (<xliff:g id="COUNT_1">%d</xliff:g>) на вашем устройстве</item>
+ <item quantity="few">Список всех приложений (<xliff:g id="COUNT_1">%d</xliff:g>) на вашем устройстве</item>
+ <item quantity="many">Список всех приложений (<xliff:g id="COUNT_1">%d</xliff:g>) на вашем устройстве</item>
+ <item quantity="other">Список всех приложений (<xliff:g id="COUNT_1">%d</xliff:g>) на вашем устройстве</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Сведения об использовании (время работы и объем обработанных данных) каждого приложения на устройстве"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Журналы трафика на вашем устройстве"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Последний отчет об ошибках"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Последний журнал безопасности"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Никогда"</string>
</resources>
diff --git a/res/values-si-rLK/arrays.xml b/res/values-si-rLK/arrays.xml
index 9f52444..8848f40 100644
--- a/res/values-si-rLK/arrays.xml
+++ b/res/values-si-rLK/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"තිරය ක්රියාත්මක කිරීම"</item>
<item msgid="3253368931113490863">"ගිණුම් ලබා ගැනීම"</item>
<item msgid="780392378084812901">"පසුබිමෙහි ධාවනය"</item>
+ <item msgid="2629748510881309577">"ප්රවේශ්යතා හඬ පරිමාව"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"ස්ථානය"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"තිරය ක්රියාත්මක කිරීම"</item>
<item msgid="5258373962467495905">"ගිණුම් ලබා ගැනීම"</item>
<item msgid="334625385979270703">"පසුබිමෙහි ධාවනය"</item>
+ <item msgid="9039213578110332702">"ප්රවේශ්යතා හඬ පරිමාව"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"කොට"</item>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 86e5091..e2aac51 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -30,7 +30,7 @@
</plurals>
<string name="show_dev_on" msgid="1110711554982716293">"ඔබ දැන් වර්ධකයෙකි"</string>
<string name="show_dev_already" msgid="2151632240145446227">"අවශ්ය නැත, ඔබ දැනටමත් වර්ධකයෙකි."</string>
- <string name="header_category_wireless_networks" msgid="5110914332313954940">"නොරැහැන් සහ ජාලා"</string>
+ <string name="header_category_wireless_networks" msgid="5110914332313954940">"නොරැහැන් සහ ජාල"</string>
<string name="header_category_connections" msgid="6471513040815680662">"සම්බන්ධතා"</string>
<string name="header_category_device" msgid="4544026001618307754">"උපාංගය"</string>
<string name="header_category_personal" msgid="3310195187905720823">"පෞද්ගලික"</string>
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" වෙත සම්බන්ධ වීමට තට්ටු කරන්න."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"ඔබට \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" වෙත සම්බන්ධ වීමට අවශ්යද?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"දුරකථන නාමාවලි ප්රවේශය ඉල්ලන්න"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ඔබගේ සම්බන්ධතා සහ ඇමතුම් ඉතිහාසය වෙත ප්රවේශ විමට අවශ්යව ඇත. %2$s හට ප්රවේශය දෙන්නද?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"ඔබගේ සම්බන්ධතා සහ ඇමතුම් ඉතිහාසය වෙත ප්රවේශ විමට <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> හට අවශ්යයි. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> වෙත ප්රවේශය දෙන්නද?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"නැවත අසන්න එපා"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"නැවත නොඅසන්න"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"පණිවිඩ ප්රවේශය ඉල්ලන්න"</string>
@@ -270,9 +270,10 @@
<string name="settings_label" msgid="1626402585530130914">"සැකසීම්"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"සැකසීම්"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"සැකසීම කෙටිමඟ"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"ගැළපෙන ක්රියාකාරකම් හමු නොවීය."</string>
<string name="airplane_mode" msgid="8837269988154128601">"අහස්යානා ආකාරය"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"තවත්"</string>
- <string name="wireless_networks_settings_title" msgid="3643009077742794212">"රැහැන් රහිත සහ ජාලා"</string>
+ <string name="wireless_networks_settings_title" msgid="3643009077742794212">"නොරැහැන් සහ ජාල"</string>
<string name="radio_controls_summary" msgid="2837395036275123133">"Wi-Fi, බ්ලූටූත්, අහස්යානා අකාරය, සෙලියුලර් ජාල, සහ VPN කළමණාකරණය කරන්න"</string>
<string name="cellular_data_title" msgid="2525947635539415202">"සෙලියුලර් දත්ත"</string>
<string name="calls_title" msgid="3544471959217176768">"ඇමතුම්"</string>
@@ -343,7 +344,7 @@
<item quantity="other">ඇඟිලි සලකුණු පිහිටුවීම් <xliff:g id="COUNT_1">%1$d</xliff:g></item>
</plurals>
<string name="security_settings_fingerprint_preference_summary_none" msgid="1507739327565151923"></string>
- <string name="security_settings_fingerprint_enroll_introduction_title" msgid="3201556857492526098">"ඇඟිලි සලකුණ සමගින් අගුලු හරින්න"</string>
+ <string name="security_settings_fingerprint_enroll_introduction_title" msgid="3201556857492526098">"ඇඟිලි සලකුණින් අගුළු හරින්න"</string>
<string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7066417934622827305">"ඔබේ ඇඟිලි සලකුණ භාවිත කරන්න"</string>
<string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"ඔබේ දුරකථනය අවදි කිරීමට සහ අගුලු හැරීමට, මිලදී ගැනීම් අනුමත කිරීමට, හෝ යෙදුම් වෙත පිරීමට ඇඟිලි සලකුණු සංවේදකය ස්පර්ශ කරන්න. ඔබ කාගේ ඇඟිලි සලකුණු එක් කරන්නේද යන්න ගැන සැලකිලිමත් වන්න. එක් කළ එක් සලකුණකට පවා මෙම දේවල්වලින් ඕනෑම එකක් කළ හැකිය.\n\nසටහන: ඔබේ ඇඟිලි සලකුණ ප්රබල රටාවකට හෝ PIN අංකයකට වඩා ආරක්ෂාකාරී බව අඩු විය හැකිය."</string>
<string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="4193477159493347679">"මිලදී ගැනීම් අනුමත කිරීමට, හෝ යෙදුම් වෙත පිරීමට ඇඟිලි සලකුණු සංවේදකය ස්පර්ශ කරන්න. ඔබ එක් කරන ඇඟිලි සලකුණු පිළිබඳ සැලකිලිමත් වන්න. එක් කළ එක් සලකුණකට පවා මේ දේවල්වලින් ඕනෑම එකක් කළ හැකිය.\n\nසටහන: මෙම උපාංගය අගුලු හැරීමට ඔබට ඔබේ ඇඟිලි සලකුණ භාවිත කළ නොහැකිය. තව තොරතුරු සඳහා, ඔබේ සංවිධානයෙහි පරිපාලක අමතන්න."</string>
@@ -635,7 +636,7 @@
<string name="wifi_display_status_connected" msgid="8364125226376985558">"සම්බන්ධිතයි"</string>
<string name="wifi_display_status_in_use" msgid="8556830875615434792">"භාවිතයේ ඇත"</string>
<string name="wifi_display_status_not_available" msgid="5714978725794210102">"ලබාගත නොහැක"</string>
- <string name="wifi_display_details" msgid="7791118209992162698">"දර්ශනය සැකසීම්"</string>
+ <string name="wifi_display_details" msgid="7791118209992162698">"සංදර්ශක සැකසීම්"</string>
<string name="wifi_display_options_title" msgid="5740656401635054838">"රැහැන් රහිත දර්ශන විකල්ප"</string>
<string name="wifi_display_options_forget" msgid="9119048225398894580">"අමතක කරන්න"</string>
<string name="wifi_display_options_done" msgid="5703116500357822557">"හරි"</string>
@@ -681,7 +682,7 @@
<string name="wifi_scan_notify_text" msgid="5593805423071186757">"ස්ථාන නිරවද්යතාව වැඩිදියුණු කිරීමට, පද්ධති යෙදුම් සහ සේවාවලට තවමත් Wi‑Fi ජාල සඳහා ස්කෑන් කිරීමට හැකිය. ඔබට මෙය <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>ස්කෑන් කිරීමේ සැකසීම්<xliff:g id="LINK_END_1">LINK_END</xliff:g> තුළ වෙනස් කළ හැකිය."</string>
<string name="wifi_scan_notify_remember_choice" msgid="7104867814641144485">"නැවත නොපෙන්වන්න"</string>
<string name="wifi_setting_sleep_policy_title" msgid="5149574280392680092">"නිද්රාව අතරතුර Wi-Fi සක්රියව තබන්න"</string>
- <string name="wifi_setting_on_during_sleep_title" msgid="8308975500029751565">"නිද්රාව අතරතුර Wi-Fi සක්රියයි"</string>
+ <string name="wifi_setting_on_during_sleep_title" msgid="8308975500029751565">"නිද්රාව අතරතුර Wi-Fi ක්රියාත්මකයි"</string>
<string name="wifi_setting_sleep_policy_error" msgid="8174902072673071961">"සැකසුම් වෙනස් කිරීමේදී ගැටලුවක් ඇතිවිය"</string>
<string name="wifi_suspend_efficiency_title" msgid="2338325886934703895">"කාර්යක්ෂමතාව දියුණු කරන්න"</string>
<string name="wifi_suspend_optimizations" msgid="1220174276403689487">"Wi-Fi ප්රශස්තකරණය"</string>
@@ -878,7 +879,7 @@
<string name="emergency_address_title" msgid="3571902448699714454">"හදිසි අවස්ථා ලිපිනය යාවත්කාලීන කරන්න"</string>
<string name="emergency_address_summary" msgid="306028701568728126">"ඔබ WiFi භාවිත කර 911 වෙත ඇමතුමක් කළ විට හදිසි අවස්ථා සේවා විසින් භාවිත කරන ලිපිනය"</string>
<string name="home_settings" msgid="212375129455718176">"මුල් පිටුව"</string>
- <string name="display_settings_title" msgid="1708697328627382561">"දර්ශනය"</string>
+ <string name="display_settings_title" msgid="1708697328627382561">"සංදර්ශකය"</string>
<string name="sound_settings" msgid="5534671337768745343">"ශබ්ද"</string>
<string name="ringtone_summary" msgid="1688079785311826667">" "</string>
<string name="all_volume_title" msgid="4296957391257836961">"ශබ්ද තීව්රතා"</string>
@@ -931,7 +932,7 @@
<string name="accessibility_personal_account_title" msgid="2169071663029067826">"පුද්ගලික ගිණුම - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
<string name="search_settings" msgid="1910951467596035063">"සෙවීම"</string>
<string name="search_settings_summary" msgid="9205656546570654169">"සෙවුම් සැකසීම් සහ ඉතිහාසය කළමනාකරණය කරන්න"</string>
- <string name="display_settings" msgid="7965901687241669598">"දර්ශනය"</string>
+ <string name="display_settings" msgid="7965901687241669598">"සංදර්ශකය"</string>
<string name="accelerometer_title" msgid="7854608399547349157">"ස්වයංක්රීයව-භ්රමණය වන තීරය"</string>
<string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"ටැබ්ලටය කරකැවීමේදී ස්වයංක්රියව දිශානතිය වෙනස් කරන්න"</string>
<string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"දුරකථනය කරකැවීමේදී ස්වයංක්රියව දිශානතිය වෙනස් කරන්න"</string>
@@ -1058,7 +1059,7 @@
<string name="status_bt_address" msgid="4195174192087439720">"බ්ලූටූත් ලිපිනය"</string>
<string name="status_serial_number" msgid="2257111183374628137">"අනුක්රමාංකය"</string>
<string name="status_unavailable" msgid="7862009036663793314">"ලබාගත නොහැක"</string>
- <string name="status_up_time" msgid="7294859476816760399">"ක්රියාකාරිව ඇති කාලය"</string>
+ <string name="status_up_time" msgid="7294859476816760399">"ක්රියාකාරීව ඇති කාලය"</string>
<string name="status_awake_time" msgid="2393949909051183652">"අවදි වේලාව"</string>
<string name="internal_memory" msgid="9129595691484260784">"අභ්යන්තර ආචයනය"</string>
<string name="sd_memory" product="nosdcard" msgid="2510246194083052841">"USB ආචයනය"</string>
@@ -1131,7 +1132,7 @@
<string name="storage_volume_summary" msgid="7023441974367853372">"<xliff:g id="TOTAL">%2$s</xliff:g> න් <xliff:g id="USED">%1$s</xliff:g> ක් භාවිත කළ"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
<string name="storage_volume_used" msgid="1303803057698959872">"<xliff:g id="TOTAL">%1$s</xliff:g> න් භාවිත කළ"</string>
- <string name="storage_volume_used_total" msgid="6113121714019000244">"<xliff:g id="TOTAL">%1$s</xliff:g> න් මුළු භාවිතය"</string>
+ <string name="storage_volume_used_total" msgid="6113121714019000244">"<xliff:g id="TOTAL">%1$s</xliff:g> වලින් මුළු භාවිතය"</string>
<string name="storage_mount_success" msgid="687641090137253647">"<xliff:g id="NAME">%1$s</xliff:g> සවි කරන ලදි"</string>
<string name="storage_mount_failure" msgid="1042621107954547316">"<xliff:g id="NAME">%1$s</xliff:g> සවි කිරීමට නොහැකි විය"</string>
<string name="storage_unmount_success" msgid="5737203344673441677">"<xliff:g id="NAME">%1$s</xliff:g> ආරක්ෂිතව ගලවන ලදි"</string>
@@ -1301,9 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ඔබගේ ජාල සම්බන්ධතා කළමනාකරණය කිරීමට <xliff:g id="CURRENT_APP">%2$s</xliff:g> වෙනුවට <xliff:g id="NEW_APP">%1$s</xliff:g> භාවිතා කරන්නද?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ඔබගේ ජාල සම්බන්ධතා කළමනාකරණය කිරීමට <xliff:g id="NEW_APP">%s</xliff:g> භාවිතා කරන්නද?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"නොදන්නා SIM වාහකයෙක්"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for mobile_no_provisioning_url (2399426808423775711) -->
- <skip />
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> සතුව දන්නා ප්රතිපාදන වෙබ් අඩවි නොමැත"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"කරුණාකර SIM කාඩ් පතක් ඇතුල් කරන්න සහ නැවත අරඹන්න"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"කරුණාකර අන්තර්ජාලය වෙත සම්බන්ධ වන්න"</string>
<string name="location_title" msgid="1029961368397484576">"මගේ ස්ථානය"</string>
@@ -1359,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"චන්ද්රිකා රූප සපයන්නන්:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"අත්පොත"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"අත්පොත පූරණය කිරීමේදී ගැටලුවක් ඇතිවිය."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"තෙවන පාර්ශව බලපත්ර"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"බලපත්ර පුර්ණය කිරීමේදී ගැටලුවක් ඇතිවිය."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"පූරණය වෙමින්..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"ආරක්ෂිත තොරතුරු"</string>
@@ -1662,7 +1660,7 @@
<string name="user_dict_settings_add_word_hint" msgid="5725254076556821247">"වචනයක් ටයිප් කරන්න"</string>
<string name="user_dict_settings_add_shortcut_hint" msgid="7333763456561873445">"විකල්ප කෙටිමඟ"</string>
<string name="user_dict_settings_edit_dialog_title" msgid="8967476444840548674">"වචනය සංස්කරණය කරන්න"</string>
- <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"සංස්කරණය කරන්න"</string>
+ <string name="user_dict_settings_context_menu_edit_title" msgid="2210564879320004837">"සංස්කරණය"</string>
<string name="user_dict_settings_context_menu_delete_title" msgid="9140703913776549054">"මකන්න"</string>
<string name="user_dict_settings_empty_text" msgid="1971969756133074922">"ඔබට පරිශීලක ශබ්ද කෝෂය තුළ වචන කිසිවක් නැත. වචනයක් එක් කිරීමට, එක් කිරීමේ (+) බොත්තම තට්ටු කරන්න."</string>
<string name="user_dict_settings_all_languages" msgid="6742000040975959247">"සියලු භාෂාවන් සඳහා"</string>
@@ -1713,13 +1711,13 @@
<string name="talkback_title" msgid="7912059827205988080">"Talkback"</string>
<string name="talkback_summary" msgid="8331244650729024963">"තිර කියවනය මූලික වශයෙන් අන්ධ සහ අඩු දෘශ්යතාව සහිත පුද්ගලයන් සඳහාය"</string>
<string name="accessibility_system_title" msgid="7187919089874130484">"පද්ධතිය"</string>
- <string name="accessibility_display_title" msgid="7610175687949675162">"දර්ශනය"</string>
+ <string name="accessibility_display_title" msgid="7610175687949675162">"සංදර්ශකය"</string>
<string name="accessibility_captioning_title" msgid="7589266662024836291">"සිරස්තල"</string>
<string name="accessibility_screen_magnification_title" msgid="9002237235486714636">"විශාලන අභිනය"</string>
<string name="accessibility_screen_magnification_short_summary" msgid="3411979839172752057">"විශාලනය කිරීමට 3 වරක් තට්ටු කරන්න"</string>
<string name="accessibility_screen_magnification_summary" msgid="7798920976388197258"><b>"විශාලනය කිරීමට"</b>", එක් ඇඟිල්ලකින් තිරය ඉක්මනින් 3 වරක් තට්ටු කරන්න.\n"<ul><li>"අනුචලනය කිරීමට ඇඟිලි 2ක් හෝ වැඩි ගණනක් අදින්න"</li>\n<li>"විශාලනය සීරුමාරු කිරීමට ඇඟිලි 2ක් හෝ වැඩි ගණනක් එක්ව හෝ වෙන්ව පින්ච් කරන්න"</li></ul>\n\n<b>"තාවකාලිකව විශාලනය කිරීමට"</b>", තිරය 3 වරක් ඉක්මනින් තට්ටු කර තුන්වන තට්ටු කිරීමේදී ඔබේ ඇඟිල්ල අල්ලාගෙන සිටින්න.\n"<ul><li>"තිරය වටා ගමන් කිරීමට ඔබේ ඇඟිල්ල අදින්න"</li>\n<li>"විශාලනය අඩු කිරීමට ඔබේ ඇඟිල්ල ඔසවන්න"</li></ul>\n\n"ඔබට යතුරු පුවරුව සහ සංචලන තීරුව මත විශාලනය වැඩි කළ නොහැකිය."</string>
<string name="accessibility_global_gesture_preference_title" msgid="6752037184140789970">"ළඟාවිය හැකි කෙටිමග"</string>
- <string name="accessibility_global_gesture_preference_summary_on" msgid="6180927399052022181">"සක්රියයි"</string>
+ <string name="accessibility_global_gesture_preference_summary_on" msgid="6180927399052022181">"ක්රියාත්මකයි"</string>
<string name="accessibility_global_gesture_preference_summary_off" msgid="8102103337813609849">"අක්රියයි"</string>
<string name="accessibility_global_gesture_preference_description" msgid="1605107799571936715">"මෙම විශේෂාංගය ක්රියාත්මක කළ විට, ඔබට පියවර දෙකකින් ඉක්මනින් ප්රවේශ්යතා විශේෂාංග සක්රිය කළ හැකිය:\n\nපියවර 1: ඔබට ශබ්දයක් ඇසෙන තෙක් හෝ කම්පනයක් දැනෙන තෙක් බල බොත්තම ඔබා අල්ලාගෙන සිටින්න.\n\nපියවර 2: ඔබට ශ්රව්යමය තහවුරු කිරීම ඇසෙන තෙක් ඇඟිලි දෙකක් ස්පර්ශ කර අල්ලාගෙන සිටින්න.\n\nඋපාංගයෙහි පරිශීලකයින් කිහිප දෙනෙකු සිටී නම්, අඟුලු තිරය මත මෙම කෙටි මග භාවිත කිරීම උපාංගය අගුලු හරින තෙක් ප්රවේශ්යතාව තාවකාලිකව සබල කරයි."</string>
<string name="accessibility_toggle_high_text_contrast_preference_title" msgid="2567402942683463779">"ඉහළම වෙනසක් ඇති පෙළ"</string>
@@ -1758,7 +1756,7 @@
<item quantity="other">ඉතා දිගු ප්රමාදය (මිලිතත්පර <xliff:g id="CLICK_DELAY_LABEL_1">%1$d</xliff:g>)</item>
</plurals>
<string name="accessibility_menu_item_settings" msgid="3344942964710773365">"සැකසීම්"</string>
- <string name="accessibility_feature_state_on" msgid="2864292320042673806">"සක්රියයි"</string>
+ <string name="accessibility_feature_state_on" msgid="2864292320042673806">"ක්රියාත්මකයි"</string>
<string name="accessibility_feature_state_off" msgid="4172584906487070211">"අක්රියයි"</string>
<string name="captioning_preview_title" msgid="1234015253497016890">"පෙරදසුන"</string>
<string name="captioning_standard_options_title" msgid="3284211791180335844">"සාමාන්ය විකල්ප"</string>
@@ -1815,7 +1813,7 @@
<string name="print_no_printers_found" msgid="989018646884973683">"මුද්රක සොයා නොගැනුණි"</string>
<string name="print_menu_item_settings" msgid="6591330373682227082">"සැකසීම්"</string>
<string name="print_menu_item_add_printers" msgid="2890738028215834012">"මුද්රණ යන්ත්ර එකතු කරන්න"</string>
- <string name="print_feature_state_on" msgid="8098901852502441048">"සක්රියයි"</string>
+ <string name="print_feature_state_on" msgid="8098901852502441048">"ක්රියාත්මකයි"</string>
<string name="print_feature_state_off" msgid="7294876968403966040">"අක්රියයි"</string>
<string name="print_menu_item_add_service" msgid="3811645167869797802">"සේවාව එක් කිරීම"</string>
<string name="print_menu_item_add_printer" msgid="8251218970577291032">"මුද්රණ යන්ත්ර එකතු කරන්න"</string>
@@ -1847,9 +1845,9 @@
<string name="battery_stats_duration" msgid="7464501326709469282">"පෙනුව විසන්ධි කිරීමේ සිට <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="battery_stats_charging_label" msgid="4223311142875178785">"ආරෝපණය වෙමින්"</string>
<string name="battery_stats_screen_on_label" msgid="7150221809877509708">"තිරය ඇර"</string>
- <string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS සක්රියයි"</string>
+ <string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS ක්රියාත්මකයි"</string>
<string name="battery_stats_camera_on_label" msgid="4935637383628414968">"කැමරාව ක්රියාත්මකයි"</string>
- <string name="battery_stats_flashlight_on_label" msgid="4319637669889411307">"සැණෙළි ආලෝකය සක්රියයි"</string>
+ <string name="battery_stats_flashlight_on_label" msgid="4319637669889411307">"සැණෙළි ආලෝකය ක්රියාත්මකයි"</string>
<string name="battery_stats_wifi_running_label" msgid="1845839195549226252">"Wi-Fi"</string>
<string name="battery_stats_wake_lock_label" msgid="1908942681902324095">"අවදියෙන්"</string>
<string name="battery_stats_phone_signal_label" msgid="3537569115723850618">"සෙලියුලර් ජාලයේ සංඥාව"</string>
@@ -1934,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"බැටරිය සුරකින්නා"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"ස්වයන්ක්රියව සක්රිය කරන්න"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"කවදාවත් නෑ"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"හි %1$s බැටරිය"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"බැටරිය <xliff:g id="PERCENT">%1$s</xliff:g> හි"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"ක්රියාවලි සංඛ්යා ලේඛන"</string>
<string name="process_stats_summary" msgid="109387941605607762">"ධාවන ක්රියාවලි පිළිබඳ ගීක සංඛ්යා ලේඛන"</string>
<string name="app_memory_use" msgid="7849258480392171939">"මතක භාවිතය"</string>
@@ -1992,7 +1990,7 @@
<string name="gadget_toggle_wifi" msgid="319262861956544493">"Wi-Fi සැකසීම් යාවත්කාලින වෙමින්"</string>
<string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"බ්ලූටූත් සැකසීම් යාවත්කාලීන කරමින්"</string>
<string name="gadget_state_template" msgid="5156935629902649932">"<xliff:g id="ID_1">%1$s</xliff:g> <xliff:g id="ID_2">%2$s</xliff:g>"</string>
- <string name="gadget_state_on" msgid="6909119593004937688">"සක්රියයි"</string>
+ <string name="gadget_state_on" msgid="6909119593004937688">"ක්රියාත්මකයි"</string>
<string name="gadget_state_off" msgid="5220212352953066317">"අක්රියයි"</string>
<string name="gadget_state_turning_on" msgid="3395992057029439039">"ආරම්භ කරමින්"</string>
<string name="gadget_state_turning_off" msgid="2395546048102176157">"අක්රිය කරමින්"</string>
@@ -2125,7 +2123,7 @@
<string name="background_data_dialog_title" msgid="6059217698124786537">"පසුබිම් දත්ත අබල කරන්නද?"</string>
<string name="background_data_dialog_message" msgid="6981661606680941633">"පසුබිම් දත්ත අබල කිරීමෙන් බැටරි ජීවය වැඩි කරන අතර සහ දත්ත භාවිතය අඩු කරයි. සමහර යෙදුම් තවමත් පසුබිම් දත්ත සම්බන්ධතාවයක් භාවිතා කරනු ඇත."</string>
<string name="sync_automatically" msgid="1682730255435062059">"ස්වයංක්රිය-සමමුහුර්ත යෙදුම් දත්ත"</string>
- <string name="sync_enabled" msgid="4551148952179416813">"සමමුහුර්තකරණය සක්රියයි"</string>
+ <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>
@@ -2408,7 +2406,7 @@
<string name="user_delete_user_description" msgid="3158592592118767056">"පරිශීලකයා මකන්න"</string>
<string name="user_delete_button" msgid="5131259553799403201">"මකන්න"</string>
<string name="user_guest" msgid="8475274842845401871">"අමුත්තා"</string>
- <string name="user_exit_guest_title" msgid="5613997155527410675">"අමුත්තාන් ඉවත් කරන්න"</string>
+ <string name="user_exit_guest_title" msgid="5613997155527410675">"අමුත්තා ඉවත් කරන්න"</string>
<string name="user_exit_guest_confirm_title" msgid="3405527634738147409">"අමුත්තාන් ඉවත් කරන්නද?"</string>
<string name="user_exit_guest_confirm_message" msgid="2194459201944413257">"මෙම සැසියේ සියළුම යෙදුම් සහ දත්ත මකාවී."</string>
<string name="user_exit_guest_dialog_remove" msgid="6351370829952745350">"ඉවත් කරන්න"</string>
@@ -2608,11 +2606,9 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"නාද ශබ්දය"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"දැනුම්දීමේ ශබ්ද ත්රීවතාව"</string>
<string name="ringtone_title" msgid="5379026328015343686">"දුරකථන රිගින්ටෝනය"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
- <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ඇමතුම් සඳහා කම්පනයද කරන්න"</string>
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"පෙරනිමි දැනුම්දීම් හඬ"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"පෙරනිමි එලාම හඬ"</string>
+ <string name="vibrate_when_ringing_title" msgid="3806079144545849032">"ඇමතුම් සඳහාත් කම්පනය කරන්න"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"වෙනත් ශබ්ද"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ඇමතුම් පැඩ නාද"</string>
<string name="screen_locking_sounds_title" msgid="1340569241625989837">"තිරය අඟුළු දැමීමේ ශබ්ද"</string>
@@ -2769,7 +2765,7 @@
<string name="zen_mode_when_weeknights" msgid="8354070633893273783">"සතියේ රාත්රි වල"</string>
<string name="zen_mode_start_time" msgid="8102602297273744441">"ආරම්භක වේලාව"</string>
<string name="zen_mode_end_time" msgid="8774327885892705505">"අවසන් වන වේලාව"</string>
- <string name="zen_mode_end_time_next_day_summary_format" msgid="4201521691238728701">"මීලඟ දිනයේ <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
+ <string name="zen_mode_end_time_next_day_summary_format" msgid="4201521691238728701">"මීළඟ දිනයේ <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
<string name="zen_mode_summary_alarms_only_indefinite" msgid="2061973221027570123">"දින නියමයක් නොමැතිව සීනු පමණක් වෙත මාරු වෙන්න"</string>
<plurals name="zen_mode_summary_alarms_only_by_minute" formatted="false" msgid="6122003583875424601">
<item quantity="one">මිනිත්තු <xliff:g id="DURATION">%1$d</xliff:g> ක් සඳහා සීනු පමණක් වෙත මාරු වෙන්න (<xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g> තෙක්)</item>
@@ -2793,7 +2789,7 @@
<string name="notification_app_settings_button" msgid="6685640230371477485">"දැනුම්දීම් සැකසීම්"</string>
<string name="device_feedback" msgid="3238056036766293294">"මෙම උපාංගය පිළිබඳ ප්රතිපෝෂණ යවන්න"</string>
<string name="restr_pin_enter_admin_pin" msgid="2451187374960131018">"පරිපාලකයාගේ PIN එක ඇතුළ් කරන්න"</string>
- <string name="switch_on_text" msgid="1124106706920572386">"සක්රියයි"</string>
+ <string name="switch_on_text" msgid="1124106706920572386">"ක්රියාත්මකයි"</string>
<string name="switch_off_text" msgid="1139356348100829659">"අක්රියයි"</string>
<string name="screen_pinning_title" msgid="2292573232264116542">"තිරය ඇමිණීම"</string>
<string name="screen_pinning_description" msgid="3360904523688769289">"මෙම සැකසීම ක්රියාත්මක විට, ඔබ ඇමිණීම ඉවත් කරන තෙක් වත්මන් තිරය දසුන තුළ තබා ගැනීමට ඔබට තිර ඇමිණීම භාවිත කළ හැකිය.\n\nතිර ඇමිණීම භාවිත කිරීමට:\n\n1. තිර ඇමිණීම ක්රියාත්මක බව සහතික කර ගන්න.\n\n2. ඔබට ඇමිණීමට අවශ්ය තිරය විවෘත කරන්න.\n\n3. සමස්ත දසුන තට්ටු කරන්න.\n\n4. උඩට ස්වයිප් කර අනතුරුව ඇමිණීම නිරූපකය තට්ටු කරන්න."</string>
@@ -3057,7 +3053,7 @@
<string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"අඟ ප.ව. 6:02"</string>
<string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"අඟ ප.ව. 6:03"</string>
<string name="disconnected" msgid="5787956818111197212">"විසන්ධි වුණි"</string>
- <string name="data_usage_summary_format" msgid="7507047900192160585">"දත්තවලින් <xliff:g id="AMOUNT">%1$s</xliff:g>ක් ස්ථාපනය කරන ලදී"</string>
+ <string name="data_usage_summary_format" msgid="7507047900192160585">"දත්තවලින් <xliff:g id="AMOUNT">%1$s</xliff:g> භාවිතයි"</string>
<plurals name="notification_summary" formatted="false" msgid="4019451362120557382">
<item quantity="one">යෙදුම් <xliff:g id="COUNT_1">%d</xliff:g>ක් යැවීම අවහිර කරන ලදී</item>
<item quantity="other">යෙදුම් <xliff:g id="COUNT_1">%d</xliff:g>ක් යැවීම අවහිර කරන ලදී</item>
@@ -3225,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"පිරිය නොහැකිද?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"පද්ධති තොරතුරු යවන්න"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"නැවත පෙන්වන්න එපා"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"ලෙස ඉල්ලයි"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"ගිණුම එක් කරන්න"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"කාර්යාල පැතිකඩ සැකසීම්"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"සම්බන්ධතා සෙවීම"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"අමතන්නන් හා සම්බන්ධතා හඳුනා ගැනීම සඳහා ඔබේ ආයතනයෙන් සම්බන්ධතා සෙවීම් ඉඩ දෙන්න"</string>
@@ -3297,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"ස්වයං සමමුහුර්ත ගිණුම් දත්ත"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"ස්වයං සමමුහු. පුද්. ගිණු. දත්ත"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"ස්වයං සමමුහු. කාර්. ගිණු. දත්ත"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"ගිණුම් සමමුහුර්තය"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"රහස්යතාව"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"රහස්යතාව"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"ඔබේ කාර්යාල දත්තවලට ප්රවේශය සැපයීමට, ඔබේ සංවිධානය සැකසීම් වෙනස් කිරීමට සහ ඔබේ උපාංගය මත මෘදුකාංග ස්ථාපනය කිරීමට හැකිය, එය ඔබේ සමහර පුද්ගලික දත්ත ඔබේ පරිපාලකට දෘශ්යමාන කළ හැකිය. වැඩි විස්තර සඳහා ඔබේ සංවිධානයේ පරිපාලක අමතන්න."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"ඔබේ සංවිධානයට බැලිය හැක්කේ කුමන ආකාරවල තොරතුරුද?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"ඔබේ සංවිධානයට බැලිය හැකි දේ ගැන බලපාන වෙනස් කිරීම් මොනවාද?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"මෙම උපාංගය වෙත ඔබේ ප්රවේශය කෙරෙහි බලපෑමට හැකි ක්රියා මොනවාද?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ඊ-තැපැල් සහ දින දර්ශනය වැනි, ඔබේ කාර්යාල ගිණුම හා සම්බන්ධ දත්ත"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"ඔබගේ උපාංගය මත සියලු යෙදුම් ලැයිස්තුව"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">ඔබේ උපාංගයෙහි සියලු යෙදුම් <xliff:g id="COUNT_1">%d</xliff:g>හි ලැයිස්තුව</item>
+ <item quantity="other">ඔබේ උපාංගයෙහි සියලු යෙදුම් <xliff:g id="COUNT_1">%d</xliff:g>හි ලැයිස්තුව</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"ඔබගේ උපාංගය මත එක් එක් යෙදුමෙහි භාවිතය (ගත කළ කාලය සහ භාවිත කළ දත්ත ප්රමාණය)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"ඔබගේ උපාංගය මත තදබදය ගැන ලොග"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"ඔබේ වඩාත්ම මෑත දෝෂ වාර්තාව"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"ඔබේ වඩාත්ම මෑත ආරක්ෂක ලොගය"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"කවදාවත් නෑ"</string>
</resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index 186b3a2..9f9b34f 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"zapnutie obrazovky"</item>
<item msgid="3253368931113490863">"získanie účtov"</item>
<item msgid="780392378084812901">"spustenie na pozadí"</item>
+ <item msgid="2629748510881309577">"objem aplikácií dostupnosti"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Poloha"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Zapnutie obrazovky"</item>
<item msgid="5258373962467495905">"Získanie účtov"</item>
<item msgid="334625385979270703">"Spustenie na pozadí"</item>
+ <item msgid="9039213578110332702">"Objem aplikácií dostupnosti"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Krátke"</item>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 0973a4f..9b6a990 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -152,7 +152,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"K zariadeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g> sa pripojíte klepnutím."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Chcete sa pripojiť k zariadeniu „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Žiadosť o prístup k telefónnemu zoznamu"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Zariadenie %1$s žiada o prístup k vašim kontaktom a histórii hovorov. Povoliť zariadeniu %2$s prístup?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> chce pristupovať k vašim kontaktom a histórii hovorov. Chcete zariadeniu <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> udeliť prístup?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Nabudúce sa nepýtať"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Nabudúce sa nepýtať"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Žiadosť o prístup ku správam"</string>
@@ -274,6 +274,7 @@
<string name="settings_label" msgid="1626402585530130914">"Nastavenia"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Nastavenia"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Odkaz na nastavenia"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nenašli sa žiadne zodpovedajúce aktivity."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Režim v lietadle"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Ďalšie"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Bezdrôtové pripojenia a siete"</string>
@@ -1321,7 +1322,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Chcete spravovať sieťové pripojenia pomocou aplikácie <xliff:g id="NEW_APP">%1$s</xliff:g> namiesto aplikácie <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Chcete spravovať sieťové pripojenia pomocou aplikácie <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Neznámy operátor SIM karty"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nemá žiadne provízne webové stránky"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nemá žiadne provízne webové stránky"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Vložte SIM kartu a reštartujte"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Pripojte sa k internetu"</string>
<string name="location_title" msgid="1029961368397484576">"Moja poloha"</string>
@@ -1377,8 +1378,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Poskytovatelia satelitných snímok:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Príručka"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Pri načítavaní príručky sa vyskytla chyba."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licencie tretích strán"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Pri načítavaní licencií sa vyskytla chyba."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Načítava sa…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Bezpečnostné informácie"</string>
@@ -1966,7 +1966,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Šetrič batérie"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Zapínať automaticky"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikdy"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Pri %1$s batérie"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"pri <xliff:g id="PERCENT">%1$s</xliff:g> batérie"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Štatistiky procesov"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Podrobné štatistiky spustených procesov"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Využitie pamäte"</string>
@@ -2650,10 +2650,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Hlasitosť zvonenia"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Hlasitosť upozornení"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Tón zvonenia telefónu"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Predvolené zvukové upozornenie"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Predvolený zvuk budíka"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Pri hovoroch aj vibrovať"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Iné zvuky"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Zvuky číselnej klávesnice"</string>
@@ -3287,6 +3285,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Nemôžete sa prihlásiť?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Odoslanie informácií o systéme"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Nabudúce nezobrazovať"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Žiadosť sa odošle z účtu"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Pridať účet"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Nastavenia pracovného profilu"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Vyhľadávanie kontaktov"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Povoliť vašej organizácii hľadať kontakty na identifikáciu volajúcich a kontaktov"</string>
@@ -3365,20 +3365,24 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Aut. synchronizovať dáta účtu"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Aut. synch. dáta osobného účtu"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Aut. synch. dáta prac. účtu"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Synchronizácia účtu"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Ochrana súkromia"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Ochrana súkromia"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Vaša organizácia môže zmeniť nastavenia a nainštalovať softvér na vašom zariadení, aby vám poskytla prístup k pracovným údajom. Môže to však spôsobiť, že správca bude vidieť váš osobný obsah. Ďalšie informácie získate od správcu vašej organizácie."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Aký typ informácií vidí vaša organizácia?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Aké zmeny ovplyvňujú, čo môže vidieť vaša organizácia?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Aké akcie môžu ovplyvniť váš prístup k tomuto zariadeniu?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dáta priradené k vášmu pracovnému účtu, ako napríklad pošta a kalendár"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Zoznam všetkých aplikácií na vašom zariadení"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="few">Zoznam všetkých aplikácií na zariadení (celkovo: <xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="many">Zoznam všetkých aplikácií na zariadení (celkovo: <xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="other">Zoznam všetkých aplikácií na zariadení (celkovo: <xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="one">Zoznam všetkých aplikácií na zariadení (celkovo: <xliff:g id="COUNT_0">%d</xliff:g>)</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Používanie (strávený čas a objem využitých dát) jednotlivých aplikácií na zariadení"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Denníky dátových prenosov na vašom zariadení"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Najaktuálnejšie hlásenie chyby"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Váš najaktuálnejší denník zabezpečenia"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikdy"</string>
</resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 80b5b87..21016d1 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"vklop zaslona"</item>
<item msgid="3253368931113490863">"pridobivanje računov"</item>
<item msgid="780392378084812901">"izvajanje v ozadju"</item>
+ <item msgid="2629748510881309577">"glasnost za funkcije za ljudi s posebnimi potrebami"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Lokacija"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Vklop zaslona"</item>
<item msgid="5258373962467495905">"Pridobivanje računov"</item>
<item msgid="334625385979270703">"Izvajanje v ozadju"</item>
+ <item msgid="9039213578110332702">"Glasnost za funkcije za ljudi s posebnimi potrebami"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kratko"</item>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index f956c2c..f690866 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -152,7 +152,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Dotaknite se, če želite vzpostaviti povezavo z napravo »<xliff:g id="DEVICE_NAME">%1$s</xliff:g>«."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Se želite povezati z napravo »<xliff:g id="DEVICE_NAME">%1$s</xliff:g>«?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Zahteva za dostop do telefonskega imenika"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s želi dostop do vaših stikov in zgodovine klicev. Želite dovoliti dostop osebi %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Naprava <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi dostop do stikov in zgodovine klicev. Ali želite omogočiti dostop napravi <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ne vprašaj me več"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ne vprašaj me več"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Zahteva za dostop do sporočil"</string>
@@ -274,6 +274,7 @@
<string name="settings_label" msgid="1626402585530130914">"Nastavitve"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Nastavitve"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Bližnjica do nastavitev"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Ni ustreznih dejavnosti."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Način za letalo"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Več"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Brezžično in omrežja"</string>
@@ -1321,7 +1322,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Želite za upravljanje omrežnih povezav namesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> uporabljati aplikacijo <xliff:g id="NEW_APP">%1$s</xliff:g>?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Želite za upravljanje omrežnih povezav uporabljati aplikacijo <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Neznan ponudnik kartice SIM"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nima znanega spletnega mesta za omogočanje uporabe"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nima znanega splet. mesta za omogočanje uporabe"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Vstavite SIM in znova zaženite"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Vzpostavite internetno povezavo"</string>
<string name="location_title" msgid="1029961368397484576">"Moja lokacija"</string>
@@ -1377,8 +1378,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Ponudniki satelitskih posnetkov: \n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Priročnik"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Težava pri nalaganju priročnika."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licence drugih ponudnikov"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Pri nalaganju licenc je prišlo do težave."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Nalaganje …"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informacije o varnosti"</string>
@@ -1966,7 +1966,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Varčevanje z energijo akumulatorja"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Samodejni vklop"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Nikoli"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"pri %1$s akumulatorja"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"pri <xliff:g id="PERCENT">%1$s</xliff:g> napolnjenosti akumulatorja"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistični podatki o procesih"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistični podatki o procesih, ki se izvajajo"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Poraba pomnilnika"</string>
@@ -2650,10 +2650,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Glasnost zvonjenja"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Glasnost obvestila"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Melodija zvonjenja telefona"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Privzeti zvok obvestila"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Privzeti zvok alarma"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibriranje tudi za klice"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Drugi zvoki"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Toni tipkovnice"</string>
@@ -3287,6 +3285,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Se ne morete prijaviti?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Pošiljanje podatkov o sistemu"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ne prikaži več"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Zahteva uporabnik"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Dodajanje računa"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Nastavitve delovnega profila"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Iskanje po stikih"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Organizaciji dovoli iskanje po stikih zaradi prepoznavanja klicateljev in stikov"</string>
@@ -3365,20 +3365,24 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Samod. sinhr. podatkov računa"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sam. sinhr. podat. oseb. rač."</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sam. sinhr. podat. delov. rač."</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sinhronizacija računa"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Zasebnost"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Zasebnost"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Vaša organizacija lahko spremeni nastavitve in v napravo namesti programsko opremo, da bi zagotovila dostop do delovnih podatkov, kar lahko povzroči, da bo nekaj vaše osebne vsebine vidne skrbniku. Za več informacij se obrnite na skrbnika svoje organizacije."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Katere vrste podatkov vidi vaša organizacija?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Katere spremembe vplivajo na to, kaj vidi vaša organizacija?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Katera dejanja lahko vplivajo na vaš dostop do te naprave?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Podatke, povezane z delovnim računom, npr. e-pošto in koledar"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Seznam vseh aplikacij v napravi"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Seznam vseh aplikacij v napravi: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="two">Seznam vseh aplikacij v napravi: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="few">Seznam vseh aplikacij v napravi: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="other">Seznam vseh aplikacij v napravi: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Uporabo (porabljen čas in količino prenesenih podatkov) za vsako aplikacijo v napravi"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Dnevnike prometa v napravi"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Najnovejše poročilo o napakah"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Najnovejši varnostni dnevnik"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Nikoli"</string>
</resources>
diff --git a/res/values-sq-rAL/arrays.xml b/res/values-sq-rAL/arrays.xml
index cc36bc2..0854350 100644
--- a/res/values-sq-rAL/arrays.xml
+++ b/res/values-sq-rAL/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ndiz ekranin"</item>
<item msgid="3253368931113490863">"merr llogaritë"</item>
<item msgid="780392378084812901">"ekzekuto në sfond"</item>
+ <item msgid="2629748510881309577">"volumi i qasshmërisë"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Vendndodhja"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Ndiz ekranin"</item>
<item msgid="5258373962467495905">"Merr llogaritë"</item>
<item msgid="334625385979270703">"Ekzekuto në sfond"</item>
+ <item msgid="9039213578110332702">"Volumi i qasshmërisë"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"E shkurtër"</item>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index db495bf..7bd6816 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Trokit për t\'u lidhur me \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Dëshiron që të lidhesh me \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Kërkesë për qasje në numërator"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s kërkon të ketë qasje te kontaktet dhe historiku i telefonatave. Të lejohet qasja për %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> kërkon të ketë qasje te kontaktet dhe historiku i telefonatave. Të lejohet qasja për <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Mos pyet përsëri"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Mos pyet më"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Kërkesë për qasje në mesazhe"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Cilësimet"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Cilësimet"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Shkurtorja e cilësimeve"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Nuk u gjet asnjë aktivitet që përputhet."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Modaliteti i aeroplanit"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Më shumë"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wi-Fi dhe rrjetet"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Të përdoret <xliff:g id="NEW_APP">%1$s</xliff:g> në vend të <xliff:g id="CURRENT_APP">%2$s</xliff:g> për të menaxhuar lidhjet e rrjetit?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Të përdoret <xliff:g id="NEW_APP">%s</xliff:g> për të menaxhuar lidhjet e rrjetit?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Operatori i kartës SIM është i panjohur"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s nuk ka faqe të sigurt e të njohur"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> nuk ka faqe të sigurt e të njohur"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Vendos kartën SIM dhe rinise"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Lidhu me internetin"</string>
<string name="location_title" msgid="1029961368397484576">"Vendndodhja ime"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Ofruesit e imazheve satelitore:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manuale"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ka një problem me ngarkimin e manualit."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licencat e palëve të treta"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Ka një problem me ngarkimin e licencave."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Po ngarkon..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Informacioni i sigurisë"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Kursyesi i baterisë"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Aktivizim automatikisht"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Asnjëherë"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"në nivelin e baterisë %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"me <xliff:g id="PERCENT">%1$s</xliff:g> bateri"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Statistikat e procesit"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Statistikat teknike për proceset në ekzekutim"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Përdorimi i memories"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volumi i ziles"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volumi i njoftimit"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Zilja e telefonit"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Zëri i parazgjedhur i njoftimit"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Tingulli i parazgjedhur i alarmit"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Edhe dridhje për telefonatat"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Tinguj të tjerë"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tonet e bllokut të tasteve"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Nuk mund të identifikohesh?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Dërgo informacionet e sistemit"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Mos e shfaq përsëri"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Po kërkon si"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Shto llogari"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Cilësimet e profilit të punës"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kërkimi i kontakteve"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Lejo kërkimet e kontakteve nga organizata jote për të identifikuar telefonuesit dhe kontaktet"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sinkronizo auto. të dhënat"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sinkr. auto. të dhëna personale"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sinkronizo auto. të dhëna pune"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Sinkronizimi i llogarisë"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privatësia"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privatësia"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Për të ofruar qasjen në të dhënat e tua të punës, organizata jote mund të ndryshojë cilësimet dhe të instalojë softuerë në pajisjen tënde, gjë që mund të bëjë që disa nga përmbajtjet e tua personale të jenë të dukshme për administratorin tënd. Kontakto me administratorin e organizatës për më shumë detaje."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Çfarë lloje informacioni mund të shikojë organizata jote?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Çfarë ndryshimesh ndikojnë në atë që shikon organizata jote?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Çfarë veprimesh mund të ndikojnë te qasja jote në këtë pajisje?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Të dhënat që shoqërojnë llogarinë tënde të punës, si mail-i dhe kalendari"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista e të gjitha aplikacioneve në pajisjen tënde"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Rendit të <xliff:g id="COUNT_1">%d</xliff:g> aplikacionet në pajisjen tënde</item>
+ <item quantity="one">Rendit <xliff:g id="COUNT_0">%d</xliff:g> aplikacion në pajisjen tënde</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Përdorimi (koha e shpenzuar dhe sasia e të dhënave të përdorura) i secilit aplikacion në pajisjen tënde"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Regjistrimet e trafikut në pajisjen tënde"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Raporti më i fundit i defekteve në kod"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Regjistri yt më i fundit i sigurisë"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Asnjëherë"</string>
</resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 5df8d0d..e57143a 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"укључивање екрана"</item>
<item msgid="3253368931113490863">"приступ налозима"</item>
<item msgid="780392378084812901">"рад у позадини"</item>
+ <item msgid="2629748510881309577">"јачина звука за приступачност"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Локација"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Укључивање екрана"</item>
<item msgid="5258373962467495905">"Приступ налозима"</item>
<item msgid="334625385979270703">"Рад у позадини"</item>
+ <item msgid="9039213578110332702">"Јачина звука за приступачност"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Кратко"</item>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 405b147..74614f7 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -151,7 +151,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Додирните да бисте се повезали са уређајем „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Да ли желите да се повежете са уређајем „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Захтев за приступ телефонском именику"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s жели да приступи вашим контактима и историји позива. Желите ли да одобрите приступ за %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> жели да приступи контактима и историји позива. Желите ли да дате приступ уређају <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Не питај поново"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Не питај поново"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Захтев за приступ порукама"</string>
@@ -272,6 +272,7 @@
<string name="settings_label" msgid="1626402585530130914">"Подешавања"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Подешавања"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Пречица подешавања"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Није пронађена ниједна активност која се подудара."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Режим рада у авиону"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Још"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Бежична веза и мреже"</string>
@@ -1311,7 +1312,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%1$s</xliff:g> уместо апликације <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управљање мрежним везама?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%s</xliff:g> за управљање мрежним везама?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Непознати SIM оператер"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s нема познатих веб-сајтова за доделу"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> нема познат веб-сајт за доделу"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Убаците SIM картицу и рестартујте"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Повежите се са интернетом"</string>
<string name="location_title" msgid="1029961368397484576">"Мојa локацијa"</string>
@@ -1367,8 +1368,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Добављачи сателитских слика:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Упутство"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Дошло је до проблема при учитавању упутства."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Лиценце треће стране"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Дошло је до проблема при учитавању лиценци."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Учитава се…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Безбедносне информације"</string>
@@ -1949,7 +1949,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Штедња батерије"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Аутоматски укључи"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Никада"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"батерија је на %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"на <xliff:g id="PERCENT">%1$s</xliff:g> батерије"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Статистика процеса"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Штреберска статистика о активним процесима"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Искоришћеност меморије"</string>
@@ -2628,10 +2628,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Јачина звука звона"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Јачина звука за обавештења"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Звук звона телефона"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Подразумевани звук обавештења"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Подразумевани звук аларма"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Вибрација и за позиве"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Други звукови"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Тонови нумеричке тастатуре"</string>
@@ -3255,6 +3253,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Не можете да се пријавите?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Пошаљите информације о систему"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Не приказуј поново"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Захтевате као"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Додај налог"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Подешавања пословног профила"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Претрага контаката"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Дозволите да претраживање контаката од стране ваше организације идентификује позиваоце и контакте."</string>
@@ -3330,20 +3330,23 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Аутом. синхр. податке са налога"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Аутом. синхр. личне податке са налога"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Аутом. синхр. пословне податке са налога"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Синхронизација налога"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Приватност"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Приватност"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Да би пружила приступ вашим пословним подацима, организација може да промени подешавања и инсталира софтвер на уређају, што би део личног садржаја учинило видљивим администратору. Контактирајте администратора организације за више детаља."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Које типове информација може да види организација?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Које промене утичу на то шта организација може да види?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Које радње могу да утичу на ваш приступ овом уређају?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Подаци повезани са пословним налогом, попут имејла и календара"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Листа свих апликација на уређају"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Листа свих апликација на уређају: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="few">Листа свих апликација на уређају: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="other">Листа свих апликација на уређају: <xliff:g id="COUNT_1">%d</xliff:g></item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Коришћење (потрошено време и количина искоришћених података) за сваку апликацију на уређају"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Евиденција саобраћаја на уређају"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Најновији извештај о грешци"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Најновија безбедносна евиденција"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Никада"</string>
</resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 4f75847..e75b080 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"aktivera skärmen"</item>
<item msgid="3253368931113490863">"hämta konton"</item>
<item msgid="780392378084812901">"köra i bakgrunden"</item>
+ <item msgid="2629748510881309577">"volym på tillgänglighetsfunktionerna"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Plats"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Aktivera skärmen"</item>
<item msgid="5258373962467495905">"Hämta konton"</item>
<item msgid="334625385979270703">"Kör i bakgrunden"</item>
+ <item msgid="9039213578110332702">"Volym på tillgänglighetsfunktionerna"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kort"</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index efa5c2b..8713580 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Tryck om du vill ansluta till <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Vill du ansluta till <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Begäran om åtkomst till telefonbok"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s vill ha åtkomst till dina kontakter och din samtalshistorik. Vill du ge %2$s åtkomst?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vill ha tillgång till kontakter och samtalshistorik. Vill du ge <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> tillgång?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Fråga inte igen"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Fråga inte igen"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Begäran om meddelandeåtkomst"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Inställningar"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Inställningar"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Genväg för inställningar"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Inga matchande aktiviteter hittades."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Flygplansläge"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Mer"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Trådlöst och nätverk"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Vill du hantera nätverksanslutningarna med <xliff:g id="NEW_APP">%1$s</xliff:g> i stället för med <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Vill du hantera nätverksanslutningarna med <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Okänd SIM-operatör"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s har ingen känd administrationswebbplats"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> har ingen känd administrationswebbplats"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"För in SIM-kortet och starta om"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Anslut till internet"</string>
<string name="location_title" msgid="1029961368397484576">"Min plats"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Satellitbildsleverantörer:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Handbok"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Ett problem inträffade när handboken lästes in."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Licenser från tredje part"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Ett problem inträffade när licenserna lästes in."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Läser in…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Säkerhetsinformation"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Batterisparläge"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Aktivera automatiskt"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Aldrig"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"När batteriet är på %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"vid <xliff:g id="PERCENT">%1$s</xliff:g> batteri"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Processtatistik"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Nördig statistik om processer som körs"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Minnesanvändning"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ringvolym"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Aviseringsvolym"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Telefonens ringsignal"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Standardljud för aviseringar"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standardljud för alarm"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Vibrera också vid samtal"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Andra ljud"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Knappsatsljud"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Går det inte att logga in?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Skicka systeminformation"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Visa inte igen"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Utför en begäran som"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Lägg till ett konto"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Inställningar för jobbprofilen"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktsökning"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Tillåt att organisationen söker bland kontakter för att identifiera ringande och kontakter"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Autosynka data i konto"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Autosynka data i privat konto"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Autosynka data i jobbkonto"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Kontosynkronisering"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Sekretess"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Sekretess"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Organisationen kan ändra inställningar och installera programvara på enheten för att ge dig tillgång till jobbrelaterad information. Detta kan leda till att en del av ditt privata innehåll blir synligt för administratören. Kontakta organisationens administratör om du vill veta mer."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Vilken typ av information visas för organisationen?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Vilka ändringar påverkar vad som visas för organisationen?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Vilka åtgärder kan påverka din tillgång till den här enheten?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Uppgifter som är kopplade till jobbkontot, t.ex. e-post och kalender"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Lista över alla appar på enheten"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Lista över alla <xliff:g id="COUNT_1">%d</xliff:g> appar på enheten</item>
+ <item quantity="one">Lista över <xliff:g id="COUNT_0">%d</xliff:g> app på enheten</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Användning (tid och datamängd som har använts) av varje app på enheten"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Trafikloggar på enheten"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Din senaste felrapport"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Din senaste säkerhetslogg"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Aldrig"</string>
</resources>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index 6496c89..34d2c26 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"washa skrini"</item>
<item msgid="3253368931113490863">"pata akaunti"</item>
<item msgid="780392378084812901">"tekeleza chini chini"</item>
+ <item msgid="2629748510881309577">"sauti za zana za walio na matatizo ya kuona na kusikia"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Eneo"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Washa skrini"</item>
<item msgid="5258373962467495905">"Pata akaunti"</item>
<item msgid="334625385979270703">"Tekeleza chini chini"</item>
+ <item msgid="9039213578110332702">"Sauti ya zana za walio na matatizo ya kuona na kusikia"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Muda mfupi"</item>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 1066aa1..02a6553 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -150,9 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Gonga ili uunganishe kwenye \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Unataka kuunganishwa kwa\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Ombi la kufikia anwani kwenye simu"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for bluetooth_pb_acceptance_dialog_text (6555508756987053866) -->
- <skip />
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> inataka kufikia anwani zako na rekodi ya simu zilizopigwa. Ungependa kuipa <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> idhini ya kufikia?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Usiniulize tena"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Usiniulize tena"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Ombi la kufikia ujumbe"</string>
@@ -272,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Mipangilio"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Mipangilio"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Mipangilio ya njia ya mkato"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Hakuna shughuli zinazolingana zilizopatikana."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Hali ya ndege"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Mengineyo"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Mitandao isiyotumia waya"</string>
@@ -1305,9 +1304,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Ungependa kutumia <xliff:g id="NEW_APP">%1$s</xliff:g> badala ya <xliff:g id="CURRENT_APP">%2$s</xliff:g> kusimamia miunganisho yako ya mtandao?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Ungependa kutumia <xliff:g id="NEW_APP">%s</xliff:g> kusimamia miunganisho yako ya mtandao?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Mtoa huduma wa SIM asiyejulikana"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for mobile_no_provisioning_url (2399426808423775711) -->
- <skip />
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> hana tovuti ya utoaji inayojulikana"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Tafadhali weka SIM kadi kisha uzime na uwashe"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Tafadhali unganisha kwenye Intaneti"</string>
<string name="location_title" msgid="1029961368397484576">"Mahali pangu"</string>
@@ -1363,8 +1360,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Watoa huduma wa picha za setilaiti: \n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Mwongozo"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Kumekuwa na hitilafu katika kupakia mwongozo."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Leseni za watu wengine"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Kuna hitilafu wakati wa kupakia leseni"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Inapakia…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Maelezo ya usalama"</string>
@@ -1938,7 +1934,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Kiokoa betri"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Kijiwashe kiotomatiki"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Isiwahi kuwashwa"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"betri %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"chaji ya betri ikiwa <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Takwimu za Mchakato"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Takwimu za kitaalamu kuhusu michakato inayoendeshwa"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Kumbukumbu iliyotumika"</string>
@@ -2612,10 +2608,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Sauti ya mlio"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Sauti ya arifa"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Mlio wa simu"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Sauti chaguo-msingi ya arifa"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Sauti chaguo-msingi ya kengele"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Pia tetema simu zinapoingia"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Sauti nyingine"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Sauti za vitufe vya kupiga simu"</string>
@@ -3229,6 +3223,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Imeshindwa kuingia katika akaunti?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Tuma maelezo ya mfumo"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Usionyeshe tena"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Inaomba kama"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Ongeza akaunti"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Mipangilio ya wasifu wa kazini"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Utafutaji wa anwani"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Ruhusu utafutaji wa anwani unaofanywa na shirika lako kutambua anwani na anayepiga simu"</string>
@@ -3301,20 +3297,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Sawazisha kiotomatiki data ya akaunti"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Sawazisha kiotomatiki data ya akaunti binafsi"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Sawazisha kiotomatiki data ya akaunti ya kazi"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Usawazishaji akaunti"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Faragha"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Faragha"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Ili kutoa idhini ya kufikia data yako ya kazini, shirika lako linaweza kubadilisha mipangilio na kusanikisha programu kwenye kifaa chako, hatua ambayo inaweza kusababisha baadhi ya maudhui yako ya binafsi kuonekana na msimamizi wako. Wasiliana na msimamizi wa shirika lako ili upate maelezo zaidi."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Je, shirika lako linaweza kuona aina gani ya maelezo?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Mabadiliko yapi yanaathiri maelezo ambayo shirika lako linaweza kuona?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Je, ni vitendo gani vinavyoweza kuathiri ufikiaji wa kifaa hiki?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data inayohusiana na akaunti yako ya kazini, kama vile barua pepe na kalenda"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Orodha ya programu zote kwenye kifaa chako"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Orodha ya programu zote <xliff:g id="COUNT_1">%d</xliff:g> kwenye kifaa chako</item>
+ <item quantity="one">Orodha ya programu zote <xliff:g id="COUNT_0">%d</xliff:g> kwenye kifaa chako</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Matumizi (muda uliotumiwa na kiwango cha data kilichotumika) ya kila programu kwenye kifaa chako"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Kumbukumbu za trafiki kwenye kifaa chako"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ripoti yako ya hivi majuzi ya hitilafu"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Kumbukumbu yako ya hivi majuzi ya usalama"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Hajawahi"</string>
</resources>
diff --git a/res/values-ta-rIN/arrays.xml b/res/values-ta-rIN/arrays.xml
index b5e644d..759c30d 100644
--- a/res/values-ta-rIN/arrays.xml
+++ b/res/values-ta-rIN/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"திரையை இயக்கு"</item>
<item msgid="3253368931113490863">"கணக்குகளைப் பெறு"</item>
<item msgid="780392378084812901">"பின்புலத்தில் இயங்கு"</item>
+ <item msgid="2629748510881309577">"அணுகல்தன்மைக்கான ஒலியளவு"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"இருப்பிடம்"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"திரையை இயக்கு"</item>
<item msgid="5258373962467495905">"கணக்குகளைப் பெறு"</item>
<item msgid="334625385979270703">"பின்புலத்தில் இயங்கு"</item>
+ <item msgid="9039213578110332702">"அணுகல்தன்மைக்கான ஒலியளவு"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"குறுகியது"</item>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 8ffe506..8cbc303 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" உடன் இணைக்க, தட்டவும்."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" உடன் இணைக்கவா?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"தொலைபேசி புத்தகத்திற்கான அணுகல் கோரிக்கை"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s உங்கள் தொடர்புகளையும், அழைப்பு வரலாற்றையும் அணுக விரும்புகிறது. %2$s க்கு அணுகலை வழங்கவா?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> உங்கள் தொடர்புகளையும் அழைப்பு வரலாற்றையும் அணுக விரும்புகிறது. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>க்கு அணுகல் வழங்கவா?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"மீண்டும் கேட்காதே"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"மீண்டும் கேட்காதே"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"செய்திக்கான அணுகல் கோரிக்கை"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"அமைப்பு"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"அமைப்பு"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"அமைப்பு"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"பொருந்தும் செயல்பாடுகள் இல்லை."</string>
<string name="airplane_mode" msgid="8837269988154128601">"விமானப் பயன்முறை"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"மேலும்"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"வயர்லெஸ் & நெட்வொர்க்குகள்"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"நெட்வொர்க் இணைப்புகளை நிர்வகிக்க, <xliff:g id="CURRENT_APP">%2$s</xliff:g>க்குப் பதிலாக <xliff:g id="NEW_APP">%1$s</xliff:g>ஐப் பயன்படுத்தவா?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"நெட்வொர்க் இணைப்புகளை நிர்வகிக்க <xliff:g id="NEW_APP">%s</xliff:g>ஐப் பயன்படுத்தவா?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"அறியப்படாத சிம் மொபைல் நிறுவனம்"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s இடம் அறிந்த வழங்குதல் இணையதளம் இல்லை"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> இடம், தெரிந்த புரொவிஷனிங் இணைதளம் இல்லை"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"சிம் கார்டைச் செருகி மீண்டும் தொடங்கவும்"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"இணையத்துடன் இணைக்கவும்"</string>
<string name="location_title" msgid="1029961368397484576">"எனது இருப்பிடம்"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"செயற்கை கோள் படங்களை வழங்குபவர்கள்:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"கைமுறை"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"கைமுறைச் செயலாக்கத்தை ஏற்றுவதில் சிக்கல்."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"மூன்றாம் தரப்பு உரிமங்கள்"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"உரிமங்களை ஏற்றுவதில் சிக்கல் உள்ளது."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"ஏற்றுகிறது..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"பாதுகாப்பு தகவல்"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"பேட்டரி சேமிப்பான்"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"தானாகவே இயக்கு"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"எப்போதும் வேண்டாம்"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s பேட்டரியில்"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> பேட்டரி இருக்கும் போது"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"செயல்முறைப் புள்ளிவிவரங்கள்"</string>
<string name="process_stats_summary" msgid="109387941605607762">"இயங்கும் செயல்முறைகள் குறித்த ஜிகி புள்ளிவிவரங்கள்"</string>
<string name="app_memory_use" msgid="7849258480392171939">"நினைவகப் பயன்பாடு"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"அழைப்பு - ஒலியளவு"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"அறிவிப்பின் ஒலியளவு"</string>
<string name="ringtone_title" msgid="5379026328015343686">"மொபைலின் ரிங்டோன்"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"இயல்பு அறிவிப்பு ஒலி"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"இயல்பு அலார ஒலி"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"அழைப்பு வருகையில் அதிர்வுறு"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"பிற ஒலிகள்"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"டயல்பேடு டோன்கள்"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"உள்நுழைய முடியவில்லையா?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"முறைமை தகவலை அனுப்பு"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"மீண்டும் காட்டாதே"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"இவராகக் கோருகிறது:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"கணக்கைச் சேர்"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"பணிச் சுயவிவர அமைப்புகள்"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"தொடர்புகளில் தேடு"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"எனது நிறுவனத்தின்படி அழைப்பாளர்களையும் தொடர்புகளையும் கண்டறிய, ”தொடர்புகளில் தேடு” அம்சத்தை அனுமதி"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"கணக்குத் தரவைத் தானாக ஒத்திசை"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"சொந்த கணக்கு தரவை தானாக ஒத்திசை"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"பணி கணக்கு தரவை தானாக ஒத்திசை"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"கணக்கு ஒத்திசைவு"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"தனியுரிமை"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"தனியுரிமை"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"உங்கள் பணித் தரவிற்கு அணுகல் வழங்க, நிறுவனமானது உங்கள் சாதனத்தில் அமைப்புகளை மாற்றி, மென்பொருளை நிறுவக்கூடும். இதனால், உங்கள் தனிப்பட்ட உள்ளடக்கத்தை உங்கள் நிர்வாகி பார்க்கலாம். கூடுதல் விவரங்களை அறிய, உங்கள் நிறுவனத்தின் நிர்வாகியைத் தொடர்புகொள்ளவும்."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"உங்கள் நிறுவனத்தால் எத்தகைய தகவலைப் பார்க்க முடியும்?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"நிறுவனம் எதைப் பார்க்கலாம் என்பதை பாதிக்கும் மாற்றங்கள் எவை?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"உங்களின் சாதன அணுகலைப் பாதிக்கும் செயல்கள் எவை?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"உங்கள் பணிக் கணக்குடன் தொடர்புடைய மின்னஞ்சல் மற்றும் கேலெண்டர் போன்ற தரவு"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"உங்கள் சாதனத்தில் உள்ள எல்லாப் பயன்பாடுகளின் பட்டியல்"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">உங்கள் சாதனத்தில் மொத்தம் உள்ள <xliff:g id="COUNT_1">%d</xliff:g> பயன்பாடுகளின் பட்டியல்</item>
+ <item quantity="one">உங்கள் சாதனத்தில் மொத்தம் உள்ள <xliff:g id="COUNT_0">%d</xliff:g> பயன்பாட்டின் பட்டியல்</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"உங்கள் சாதனத்தில் உள்ள ஒவ்வொரு பயன்பாட்டின் உபயோகம் (செலவழித்த நேரமும் பயன்படுத்திய தரவின் அளவும்)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"உங்கள் சாதனத்தில் உள்ள ட்ராஃபிக் பதிவுகள்"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"உங்களின் மிகச் சமீபத்திய பிழை அறிக்கை"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"உங்களின் மிகச் சமீபத்திய பாதுகாப்புப் பதிவு"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"ஒருபோதும் வேண்டாம்"</string>
</resources>
diff --git a/res/values-te-rIN/arrays.xml b/res/values-te-rIN/arrays.xml
index 1673a09..d85bbf9 100644
--- a/res/values-te-rIN/arrays.xml
+++ b/res/values-te-rIN/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"స్క్రీన్ను ఆన్ చేయడం"</item>
<item msgid="3253368931113490863">"ఖాతాలను పొందడం"</item>
<item msgid="780392378084812901">"నేపథ్యంలో అమలు చేయడం"</item>
+ <item msgid="2629748510881309577">"ప్రాప్యత వాల్యూమ్"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"స్థానం"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"స్క్రీన్ను ఆన్ చేయడం"</item>
<item msgid="5258373962467495905">"ఖాతాలను పొందడం"</item>
<item msgid="334625385979270703">"నేపథ్యంలో అమలు చేయడం"</item>
+ <item msgid="9039213578110332702">"ప్రాప్యత వాల్యూమ్"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"తక్కువ సేపు"</item>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 9ea2fcb..d5f4779 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"కి కనెక్ట్ చేయడానికి నొక్కండి."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"మీరు \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"కు కనెక్ట్ చేయాలనుకుంటున్నారా?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"ఫోన్ పుస్తకం ప్రాప్యత అభ్యర్థన"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s మీ పరిచయాలను మరియు కాల్ చరిత్రను ప్రాప్యత చేయాలనుకుంటుంది. %2$sకి ప్రాప్యతను అందించాలా?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> మీ పరిచయాలు మరియు కాల్ చరిత్రకు ప్రాప్యత కోరుతోంది. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>కి ప్రాప్యత ఇవ్వాలా?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"మళ్లీ అడగవద్దు"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"మళ్లీ అడగవద్దు"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"సందేశ ప్రాప్యత అభ్యర్థన"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"సెట్టింగ్లు"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"సెట్టింగ్లు"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"సెట్టింగ్ల సత్వరమార్గం"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"సరిపోలే కార్యాచరణలు కనుగొనబడలేదు."</string>
<string name="airplane_mode" msgid="8837269988154128601">"ఎయిర్ప్లైన్ మోడ్"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"మరిన్ని"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"వైర్లెస్ & నెట్వర్క్లు"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"మీ నెట్వర్క్ కనెక్షన్లను నిర్వహించడానికి <xliff:g id="CURRENT_APP">%2$s</xliff:g>కి బదులుగా <xliff:g id="NEW_APP">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"మీ నెట్వర్క్ కనెక్షన్లను నిర్వహించడానికి <xliff:g id="NEW_APP">%s</xliff:g>ని ఉపయోగించాలా?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"సిమ్ ఆపరేటర్ తెలియదు"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s తెలిసిన కేటాయింపు వెబ్సైట్ను కలిగి లేదు"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>కి తెలిసిన కేటాయింపు వెబ్సైట్ ఏదీ లేదు"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"దయచేసి సిమ్ కార్డును చొప్పించి, పునఃప్రారంభించండి"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"దయచేసి ఇంటర్నెట్కు కనెక్ట్ చేయండి"</string>
<string name="location_title" msgid="1029961368397484576">"నా స్థానం"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"ఉపగ్రహ చిత్రాల ప్రదాతలు:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"మాన్యువల్"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"మాన్యువల్ను లోడ్ చేయడంలో సమస్య ఏర్పడింది."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"మూడవ పక్షం లైసెన్స్లు"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"లైసెన్స్లను లోడ్ చేయడంలో సమస్య ఉంది."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"లోడ్ చేస్తోంది…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"భద్రతా సమాచారం"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"బ్యాటరీ సేవర్"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"స్వయంచాలకంగా ఆన్ చేయి"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ఎప్పటికీ వద్దు"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s బ్యాటరీ వద్ద"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> బ్యాటరీ ఉన్నప్పుడు"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"ప్రాసెస్ గణాంకాలు"</string>
<string name="process_stats_summary" msgid="109387941605607762">"అమలవుతున్న ప్రాసెస్ల గురించి అసాధారణమైన గణాంకాలు"</string>
<string name="app_memory_use" msgid="7849258480392171939">"మెమరీ వినియోగం"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"రింగ్ వాల్యూమ్"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"నోటిఫికేషన్ వాల్యూమ్"</string>
<string name="ringtone_title" msgid="5379026328015343686">"ఫోన్ రింగ్టోన్"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"డిఫాల్ట్ నోటిఫికేషన్ ధ్వని"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"డిఫాల్ట్ అలారం ధ్వని"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"కాల్ల కోసం వైబ్రేట్ కూడా చేయి"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"ఇతర ధ్వనులు"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"డయల్ ప్యాడ్ టోన్లు"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"సైన్ ఇన్ చేయలేకపోతున్నారా?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"సిస్టమ్ సమాచారాన్ని పంపండి"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"మళ్లీ చూపవద్దు"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"దీనితో అభ్యర్థిస్తున్నారు"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"ఖాతాను జోడించండి"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"కార్యాలయ ప్రొఫైల్ సెట్టింగ్లు"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"పరిచయ శోధన"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"కాలర్లు మరియు పరిచయాలను గుర్తించడానికి మీ సంస్థ ద్వారా పరిచయ శోధనలను చేయడానికి అనుమతిస్తుంది"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"ఖాతా డేటా స్వీయ సమకాలీకరణ"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"వ్యక్తిగత ఖాతా డేటా స్వీయ సమకాలీకరణ"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"కార్యాలయ ఖాతా డేటా స్వీయ సమకాలీకరణ"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"ఖాతా సమకాలీకరణ"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"గోప్యత"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"గోప్యత"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"మీ కార్యాలయ డేటాకు ప్రాప్యతను అందించడానికి, మీ సంస్థ సెట్టింగ్లను మార్చవచ్చు మరియు మీ పరికరంలో సాప్ట్వేర్ని ఇన్స్టాల్ చేయవచ్చు, దీని వలన మీ వ్యక్తిగత కంటెంట్లో ఏదైనా కొంత భాగం మీ నిర్వాహకులకు కనిపించవచ్చు. మరిన్ని వివరాల కోసం మీ సంస్థ నిర్వాహకులను సంప్రదించండి."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"మీ సంస్థ ఏ రకమైన సమాచారాన్ని చూడవచ్చు?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"మీ సంస్థ చూడగలిగే వాటిని ఏయే మార్పులు ప్రభావితం చేస్తాయి?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"ఈ పరికరానికి మీ ప్రాప్యతను ఏయే చర్యలు ప్రభావితం చేయవచ్చు?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"మీ కార్యాలయ ఖాతాతో అనుబంధించబడిన డేటా, ఇమెయిల్ మరియు క్యాలెండర్ వంటివి"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"మీ పరికరంలోని అన్ని అనువర్తనాల జాబితా"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">మీ పరికరంలోని మొత్తం <xliff:g id="COUNT_1">%d</xliff:g> అనువర్తనాల జాబితా</item>
+ <item quantity="one">మీ పరికరంలోని మొత్తం <xliff:g id="COUNT_0">%d</xliff:g> అనువర్తన జాబితా</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"మీ పరికరంలో ప్రతి అనువర్తనం యొక్క వినియోగం (గడిపిన సమయం మరియు వినియోగించబడిన డేటా పరిమాణం)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"మీ పరికరంలో ట్రాఫిక్ లాగ్లు"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"మీ అత్యంత ఇటీవలి బగ్ నివేదిక"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"మీ అత్యంత ఇటీవలి భద్రతా లాగ్"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"ఎన్నడూ చేయలేదు"</string>
</resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index 05083a2..6e0aa41 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"เปิดหน้าจอ"</item>
<item msgid="3253368931113490863">"สร้างบัญชี"</item>
<item msgid="780392378084812901">"ทำงานในพื้นหลัง"</item>
+ <item msgid="2629748510881309577">"ระดับเสียงการเข้าถึง"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"ตำแหน่ง"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"เปิดหน้าจอ"</item>
<item msgid="5258373962467495905">"สร้างบัญชี"</item>
<item msgid="334625385979270703">"ทำงานในพื้นหลัง"</item>
+ <item msgid="9039213578110332702">"ระดับเสียงการเข้าถึง"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"สั้น"</item>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 336ddc0..d6f2f68 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"แตะเพื่อเชื่อมต่อ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"คุณต้องการเชื่อมต่อไปยัง \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" หรือไม่"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"คำขอการเข้าถึงสมุดโทรศัพท์"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s ต้องการเข้าถึงสมุดติดต่อและประวัติการโทรของคุณ อนุญาตให้ %2$s เข้าถึงหรือไม่"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ต้องการเข้าถึงรายชื่อติดต่อและประวัติการโทรของคุณ ให้สิทธิ์เข้าถึงแก่ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> ไหม"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"ไม่ต้องถามอีก"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"ไม่ต้องถามอีก"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"คำขอการเข้าถึงข้อความ"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"การตั้งค่า"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"การตั้งค่า"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"ทางลัดการตั้งค่า"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"ไม่พบกิจกรรมที่ตรงกัน"</string>
<string name="airplane_mode" msgid="8837269988154128601">"โหมดใช้งานบนเครื่องบิน"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"เพิ่มเติม"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"ระบบไร้สายและเครือข่าย"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"ต้องการใช้ <xliff:g id="NEW_APP">%1$s</xliff:g> แทน <xliff:g id="CURRENT_APP">%2$s</xliff:g> ในการจัดการการเชื่อมต่อเครือข่ายใช่ไหม"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"ใช้ <xliff:g id="NEW_APP">%s</xliff:g> ในการจัดการการเชื่อมต่อเครือข่ายใช่ไหม"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"ไม่รู้จักผู้ให้บริการซิม"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s ไม่มีเว็บไซต์การจัดสรรที่รู้จัก"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> ไม่มีเว็บไซต์การจัดสรรที่รู้จัก"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"โปรดใส่ซิมการ์ดและรีสตาร์ท"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"โปรดเชื่อมต่ออินเทอร์เน็ต"</string>
<string name="location_title" msgid="1029961368397484576">"ตำแหน่งของฉัน"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"ผู้ให้บริการภาพถ่ายดาวเทียม:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"คู่มือ"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"พบปัญหาในการโหลดคู่มือ"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"ใบอนุญาตของบุคคลที่สาม"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"พบปัญหาในการโหลดสัญญาอนุญาต"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"กำลังโหลด…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"ข้อมูลความปลอดภัย"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"โหมดประหยัดแบตเตอรี่"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"เปิดอัตโนมัติ"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"ไม่ใช้เลย"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ที่แบตเตอรี่ %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ที่แบตเตอรี่ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"สถิติเกี่ยวกับกระบวนงาน"</string>
<string name="process_stats_summary" msgid="109387941605607762">"สถิติเชิงลึกเกี่ยวกับกระบวนงานที่ทำงานอยู่"</string>
<string name="app_memory_use" msgid="7849258480392171939">"การใช้หน่วยความจำ"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"ระดับเสียงเรียกเข้า"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"ระดับเสียงของการแจ้งเตือน"</string>
<string name="ringtone_title" msgid="5379026328015343686">"เสียงเรียกเข้า"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"เสียงแจ้งเตือนเริ่มต้น"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"เสียงปลุกเริ่มต้น"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"สั่นเมื่อมีสายเรียกเข้าด้วย"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"เสียงอื่นๆ"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"เสียงแป้นหมายเลข"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"หากไม่สามารถลงชื่อเข้าใช้"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"ส่งข้อมูลของระบบ"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"ไม่ต้องแสดงอีก"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"กำลังส่งคำขอโดยใช้"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"เพิ่มบัญชี"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"การตั้งค่าโปรไฟล์งาน"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"ค้นหารายชื่อติดต่อ"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"อนุญาตให้องค์กรของคุณค้นหารายชื่อติดต่อเพื่อระบุผู้โทรและรายชื่อติดต่อ"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"ซิงค์ข้อมูลบัญชีอัตโนมัติ"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"ซิงค์ข้อมูลบัญชีส่วนตัวอัตโนมัติ"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"ซิงค์ข้อมูลบัญชีงานอัตโนมัติ"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"การซิงค์บัญชี"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"ความเป็นส่วนตัว"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"ความเป็นส่วนตัว"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"ในการให้สิทธิ์เข้าถึงข้อมูลงาน องค์กรของคุณอาจเปลี่ยนการตั้งค่าและติดตั้งซอฟต์แวร์บนอุปกรณ์ของคุณ ซึ่งอาจทำให้ผ้ดูแลระบบสามารถมองเห็นเนื้อหาส่วนตัวบางรายการ โปรดติดต่อผู้ดูแลระบบขององค์กรเพื่อขอรายละเอียดเพิ่มเติม"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"องค์กรของคุณสามารถดูข้อมูลประเภทใดบ้าง"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"การเปลี่ยนแปลงอะไรบ้างที่ส่งผลต่อสิ่งที่องค์กรดูได้"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"การทำงานอะไรบ้างที่อาจส่งผลต่อสิทธิ์เข้าถึงอุปกรณ์นี้ของคุณ"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"ข้อมูลที่เชื่อมโยงกับบัญชีงานของคุณ เช่น อีเมลและปฏิทิน"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"รายการแอปทั้งหมดในอุปกรณ์"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">รายการแอปทั้ง <xliff:g id="COUNT_1">%d</xliff:g> แอปในอุปกรณ์</item>
+ <item quantity="one">รายการแอปทั้ง <xliff:g id="COUNT_0">%d</xliff:g> แอปในอุปกรณ์</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"การใช้งาน (เวลาและปริมาณข้อมูลที่ใช้) ของแต่ละแอปในอุปกรณ์"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"บันทึกการเข้าชมในอุปกรณ์"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"รายงานข้อบกพร่องล่าสุดของคุณ"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"บันทึกความปลอดภัยล่าสุด"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"ไม่เลย"</string>
</resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index a0d46c0..5444da5 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"i-on ang screen"</item>
<item msgid="3253368931113490863">"kunin ang mga account"</item>
<item msgid="780392378084812901">"patakbuhin sa background"</item>
+ <item msgid="2629748510881309577">"dami ng pagiging naa-access"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Lokasyon"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"I-on ang screen"</item>
<item msgid="5258373962467495905">"Kunin ang mga account"</item>
<item msgid="334625385979270703">"Patakbuhin sa background"</item>
+ <item msgid="9039213578110332702">"Dami ng pagiging naa-access"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Maikli"</item>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 2d6f3f1..16ba80b 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"I-tap upang kumonekta sa \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>.\""</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Nais mo bang kumonekta sa \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Kahilingan sa pag-access ng phone book"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"Nais na i-access ni %1$s ang iyong mga contact at kasaysayan ng tawag. Bigyan ng access si %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Gusto ng <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> na i-access ang iyong mga contact at history ng tawag. Magbigay ng access sa <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Huwag nang tatanungin muli"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Huwag nang tatanungin muli"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Kahilingan sa pag-access ng mensahe"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Mga Setting"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Mga Setting"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Shortcut ng Mga Setting"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Walang nahanap na tumutugmang aktibidad."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Airplane mode"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Higit pa"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Wireless at mga network"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Gamitin ang <xliff:g id="NEW_APP">%1$s</xliff:g> sa halip na ang <xliff:g id="CURRENT_APP">%2$s</xliff:g> upang pamahalaan ang iyong mga koneksyon sa network?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Gamitin ang <xliff:g id="NEW_APP">%s</xliff:g> upang pamahalaan ang iyong mga koneksyon sa network?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Hindi kilalang SIM operator"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"Walang kilalang nagpoprobisyong website ang %1$s"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Walang kilalang provisioning website ang <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Mangyaring magpasok ng SIM card at mag-restart"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Mangyaring kumonekta sa Internet"</string>
<string name="location_title" msgid="1029961368397484576">"Aking Lokasyon"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Mga provider ng koleksyon ng imahe na galing sa satellite:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manual"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Nagkakaproblema sa paglo-load sa manual."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Mga lisensya ng third-party"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"May problema sa pag-load ng mga lisensya."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Naglo-load…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Impormasyon sa kaligtasan"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Pangtipid ng baterya"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Awtomatikong i-on"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Hindi Kailanman"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s na lang ang natitirang baterya"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"sa <xliff:g id="PERCENT">%1$s</xliff:g> baterya"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Stats ng Proseso"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Mahahalagang istatistika tungkol sa mga tumatakbong proseso"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Memory na ginamit"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume ng pag-ring"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Volume ng notification"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Ringtone ng telepono"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Default, tunog ng notification"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Default na tunog ng alarm"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Mag-vibrate din para sa tawag"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Iba pang mga tunog"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Mga tono ng dial pad"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Hindi ka ba makapag-sign in?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Magpadala ng impormasyon ng system"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Huwag nang ipakitang muli"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Humihiling bilang"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Magdagdag ng account"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Mga setting ng profile sa trabaho"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Paghahanap ng contact"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Payagan ang iyong organisasyon na maghanap ng contact upang makilala ang mga tumatawag at contact"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"I-auto sync ang account data"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"I-auto sync ang personal account data"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"I-auto sync work account data"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Pag-sync ng account"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Privacy"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Privacy"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Upang makapagbigay ng access sa iyong data sa trabaho, maaaring baguhin ng organisasyon mo ang mga setting at mag-install ng software sa iyong device, na maaaring magsanhi upang makita ng admin mo ang ilan sa iyong personal na content. Makipag-ugnayan sa admin ng iyong organisasyon para sa higit pang detalye."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Anong uri ng impormasyon ang makikita ng organisasyon mo?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Anong pagbabago ang may epekto sa makikita ng organisasyon mo?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Anong pagkilos ang may epekto sa access mo sa device na ito?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Data na nauugnay sa iyong account sa trabaho, gaya ng email at kalendaryo"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Listahan ng lahat ng app sa iyong device"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Listahan ng lahat ng <xliff:g id="COUNT_1">%d</xliff:g> app sa iyong device</item>
+ <item quantity="other">Listahan ng lahat ng <xliff:g id="COUNT_1">%d</xliff:g> na app sa iyong device</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Paggamit (oras na ginugol at dami ng data na nagamit) ng bawat app sa iyong device"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Mga log ng trapiko sa iyong device"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Ang iyong pinakakamakailang ulat ng bug"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ang iyong pinakakamakailang log ng seguridad"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Hindi kailanman"</string>
</resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 361b33a..cbf9f49 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ekranı aç"</item>
<item msgid="3253368931113490863">"hesapları al"</item>
<item msgid="780392378084812901">"arka planda çalıştır"</item>
+ <item msgid="2629748510881309577">"erişilebilirlik ses düzeyi"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Konum"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Ekranı aç"</item>
<item msgid="5258373962467495905">"Hesapları al"</item>
<item msgid="334625385979270703">"Arka planda çalıştır"</item>
+ <item msgid="9039213578110332702">"Erişilebilirlik ses düzeyi"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kısa"</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 9f4d340..3a2a3bf 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" adlı cihaza bağlanmak için hafifçe dokunun."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" adlı cihaza bağlanmak istiyor musunuz?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Telefon defterine erişim isteği"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s, kişilerinize ve çağrı geçmişinize erişmek istiyor. %2$s uygulamasına erişim izni verilsin mi?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> kişilerinize ve çağrı geçmişinize erişmek istiyor. <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> cihazına erişim verilsin mi?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Tekrar sorma"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Tekrar sorma"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Mesaj erişim isteği"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Ayarlar"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Ayarlar"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Ayarlar kısayolu"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Eşleşen hiçbir etkinlik bulunamadı."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Uçak modu"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Diğer"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Kablosuz özelliği ve ağlar"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Ağ bağlantılarınızı yönetmek için <xliff:g id="CURRENT_APP">%2$s</xliff:g> yerine <xliff:g id="NEW_APP">%1$s</xliff:g> uygulaması kullanılsın mı?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Ağ bağlantılarınızı yönetmek için <xliff:g id="NEW_APP">%s</xliff:g> kullanılsın mı?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Bilinmeyen SIM operatörü"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s için bilinen bir provizyon web sitesi yok"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>, bilinen temel hazırlık web sitesine sahip değil"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Lütfen SIM kartı takın ve yeniden başlatın"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Lütfen İnternet\'e bağlanın"</string>
<string name="location_title" msgid="1029961368397484576">"Konumum"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Uydu görüntüleri sağlayıcıları:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Manuel"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Kılavuzun yüklenmesiyle ilgili bir sorun var."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Üçüncü taraf lisansları"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Lisanslar yüklenirken bir sorun oluştu."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Yükleniyor…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Güvenlik bilgileri"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Pil tasarrufu"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Otomatik olarak aç"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Hiçbir zaman"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"Pil %1$s düzeyine düştüğünde"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> pil gücü"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"İşlem İstatistikleri"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Meraklısı için, çalışan işlemlerle ilgili istatistikler"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Bellek kullanımı"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Zil sesi düzeyi"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Bildirim sesi düzeyi"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Telefon zil sesi"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Varsayılan bildirim sesi"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Varsayılan alarm sesi"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Çağrılarda ayrıca titret"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Diğer sesler"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Tuş takımı sesleri"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Oturum açamıyor musunuz?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Sistem bilgilerini gönder"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Bir daha gösterme"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"İstekte bulunan hesap:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Hesap ekle"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"İş profili ayarları"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kişi arama"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Arayanların ve kişilerin kimliğini belirlemek için kuruluşunuz tarafından yapılan kişi aramalarına izin verin"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Hesap verilerini oto. senk. et"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Kişisel hesap verilerini oto. senk. et"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"İş hesabı verilerini oto. senk. et"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Hesap senkronizasyonu"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Gizlilik"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Gizlilik"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"İş verilerinize erişim sağlamak için kuruluşunuz ayarları değiştirebilir ve cihazınıza yazılım yükleyebilir. Bu durum, bazı kişisel içeriklerinizin yöneticiniz tarafından görülmesine neden olabilir. Daha fazla bilgi edinmek için kuruluşunuzun yöneticisiyle iletişim kurun."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Kuruluşunuz ne tür bilgileri görebilir?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Hangi değişiklikler kuruluşunuzun görebileceklerini etkiler?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Bu cihaza erişiminizi hangi işlemler etkileyebilir?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"E-posta ve takvim gibi iş hesabınızla ilişkilendirilen veriler"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Cihazınızdaki tüm uygulamaların listesi"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Cihazınızdaki <xliff:g id="COUNT_1">%d</xliff:g> uygulamanın tümünün listesi</item>
+ <item quantity="one">Cihazınızdaki <xliff:g id="COUNT_0">%d</xliff:g> uygulamanın tümünün listesi</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Cihazınızdaki her uygulamanın kullanımı (harcanan zaman ve kullanılan veri miktarı)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Cihazınızdaki trafik girişleri"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Son hata raporunuz"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Son güvenlik girişiniz"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Hiçbir zaman"</string>
</resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index c248629..057a272 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"вмикати екран"</item>
<item msgid="3253368931113490863">"отримувати дані облікових записів"</item>
<item msgid="780392378084812901">"працювати у фоновому режимі"</item>
+ <item msgid="2629748510881309577">"спеціальні можливості: гучність"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Місцезнаходження"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Вмикати екран"</item>
<item msgid="5258373962467495905">"Отримувати дані облікових записів"</item>
<item msgid="334625385979270703">"Працювати у фоновому режимі"</item>
+ <item msgid="9039213578110332702">"Спеціальні можливості: гучність"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Коротка"</item>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 056703e..5a41f7a 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -152,7 +152,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Торкніться, щоб під’єднатися до пристрою <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Підключитися до пристрою \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Запит на доступ до телефонної книги"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s хоче отримати доступ до ваших контактів й історії викликів. Надати %2$s доступ?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"Пристрою <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> потрібен доступ до ваших контактів та історії викликів. Надати доступ пристрою <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Не запитувати знову"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Не запитувати знову"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Запит на доступ до повідомлень"</string>
@@ -274,6 +274,7 @@
<string name="settings_label" msgid="1626402585530130914">"Налаштування"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Налаштування"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Ярлик налаштувань"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Немає такої активності."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Режим польоту"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Більше"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Бездротовий зв\'язок і мережі"</string>
@@ -1321,7 +1322,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Використовувати <xliff:g id="NEW_APP">%1$s</xliff:g> замість додатка <xliff:g id="CURRENT_APP">%2$s</xliff:g> для керування з’єднаннями?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Використовувати <xliff:g id="NEW_APP">%s</xliff:g> для керування з’єднаннями?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Невідомий оператор SIM-карти"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s не має веб-сайту для мобільних"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Оператор <xliff:g id="OPERATOR">%1$s</xliff:g> не має веб-сайту про надання послуг"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Вставте SIM-карту та перезапустіть"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Під’єднайтеся до Інтернету"</string>
<string name="location_title" msgid="1029961368397484576">"Моє місцезнах."</string>
@@ -1377,8 +1378,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Постачальники супутникових зображень:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Посібник"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Не вдалося завантажити посібник."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Ліцензії третьої сторони"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Під час завантаж. ліцензій виникла пробл."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Завант-ня…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Інф-я про безпеку"</string>
@@ -1966,7 +1966,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Режим енергозбереження"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Вмикати автоматично"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Ніколи"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"заряд акумулятора – %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"коли рівень заряду акумулятора – <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Статистика про процеси"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Статистика про запущені процеси"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Використання пам’яті"</string>
@@ -2650,10 +2650,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Гучність дзвінка"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Гучність сповіщень"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Мелодія телефона"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Стандартний сигнал сповіщень"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Стандартний сигнал будильника"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Також вібросигнал для дзвінків"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Інші звуки"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Звуки цифрової клавіатури"</string>
@@ -3287,6 +3285,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Не можете ввійти?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Надіслати інформацію про систему"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Більше не показувати"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Запит з облікового запису"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Додати обліковий запис"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Налаштування робочого профілю"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Пошук контактів"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Дозволити вашій організації шукати контакти, щоб визначати абонентів і контактних осіб"</string>
@@ -3365,20 +3365,24 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Автосинхронізувати дані"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Автосинхронізувати особисті дані"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Автосинхронізувати робочі дані"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Синхронізація облікового запису"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Конфіденційність"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Конфіденційність"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Щоб надати доступ до робочих даних, адміністратор організації може змінити налаштування вашого пристрою та встановити на ньому програмне забезпечення. Через це він зможе бачити деякий ваш особистий вміст. Щоб дізнатися більше, зв’яжіться з адміністратором своєї організації."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Яку інформацію може бачити ваша організація?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Які зміни впливають на те, що може бачити ваша організація?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Які дії можуть вплинути на доступ до пристрою?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Дані, пов’язані з вашим робочим обліковим записом, як-от електронну адресу та календар"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Список усіх додатків на вашому пристрої"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Список усіх додатків на пристрої (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="few">Список усіх додатків на пристрої (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="many">Список усіх додатків на пристрої (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="other">Список усіх додатків на пристрої (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Використання (час роботи й обсяг трафіку) кожного додатка на вашому пристрої"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Журнали трафіку на вашому пристрої"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Останнє повідомлення про помилку"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ваш останній журнал безпеки"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Ніколи"</string>
</resources>
diff --git a/res/values-ur-rPK/arrays.xml b/res/values-ur-rPK/arrays.xml
index 125d728..47f3e7f 100644
--- a/res/values-ur-rPK/arrays.xml
+++ b/res/values-ur-rPK/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"اسکرین آن کریں"</item>
<item msgid="3253368931113490863">"اکاؤنٹس حاصل کریں"</item>
<item msgid="780392378084812901">"پس منظر میں چلائیں"</item>
+ <item msgid="2629748510881309577">"ایکسیسبیلٹی والیوم"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"مقام"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"اسکرین آن کریں"</item>
<item msgid="5258373962467495905">"اکاؤنٹس حاصل کریں"</item>
<item msgid="334625385979270703">"پس منظر میں چلائیں"</item>
+ <item msgid="9039213578110332702">"ایکسیسبیلٹی والیوم"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"مختصر"</item>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 05cae1b..b0a9f5d 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" سے مربوط ہونے کیلئے تھپتھپائیں۔"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"کیا آپ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" سے مربوط ہونا چاہتے ہیں؟"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"فون بک تک رسائی کی درخواست"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s آپ کے رابطوں اور کال کی سرگزشت تک رسائی حاصل کرنا چاہتا ہے۔ %2$s کو رسائی دیں؟"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> آپ کے رابطوں اور کال کی سرگزشت تک رسائی کرنا چاہتا ہے۔ <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> کو رسائی دیں؟"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"دوبارہ نہ پوچھیں"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"دوبارہ مت پوچھیں"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"پیغام تک رسائی کی درخواست"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"ترتیبات"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"ترتیبات"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"ترتیبات کا شارٹ کٹ"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"کوئی مماثل سرگرمیاں نہیں ملیں۔"</string>
<string name="airplane_mode" msgid="8837269988154128601">"ہوائی جہاز وضع"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"مزید"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"وائرلیس اور نیٹ ورکس"</string>
@@ -1289,7 +1290,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"اپنے نیٹ ورک کنکشنز کا نظم کرنے کیلئے <xliff:g id="CURRENT_APP">%2$s</xliff:g> کے بجائے <xliff:g id="NEW_APP">%1$s</xliff:g> کا استعمال کریں؟"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"اپنے نیٹ ورک کنکشنز کا نظم کرنے کیلئے <xliff:g id="NEW_APP">%s</xliff:g> کا استعمال کریں؟"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"نامعلوم SIM آپریٹر"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s کے پاس کوئی معروف التزامی ویب سائٹ نہیں ہے"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> کے پاس کوئی معلوم پرووژننگ ویب سائٹ نہیں ہے"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"براہ کرم SIM کارڈ داخل کرکے دوبارہ شروع کریں"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"براہ کرم انٹرنیٹ سے مربوط کریں"</string>
<string name="location_title" msgid="1029961368397484576">"میرا مقام"</string>
@@ -1345,8 +1346,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"سیٹلائٹ تصاویر کے فراہم کنندگان:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"مینوئل"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"مینوئل لوڈ کرنے میں ایک مسئلہ ہے۔"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"فریق ثالث کے لائسنسز"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"لائسنسز لوڈ کرنے میں ایک مسئلہ ہے۔"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"لوڈ ہو رہا ہے…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"حفاظت سے متعلق معلومات"</string>
@@ -1691,10 +1691,10 @@
<string name="app_name_label" msgid="5440362857006046193">"ایپ"</string>
<string name="last_time_used_label" msgid="8459441968795479307">"آخری بار استعمال کردہ"</string>
<string name="usage_time_label" msgid="295954901452833058">"استعمال کا وقت"</string>
- <string name="accessibility_settings" msgid="3975902491934816215">"Accessibility"</string>
- <string name="accessibility_settings_title" msgid="2130492524656204459">"Accessibility ترتیبات"</string>
+ <string name="accessibility_settings" msgid="3975902491934816215">"ایکسیسبیلٹی"</string>
+ <string name="accessibility_settings_title" msgid="2130492524656204459">"ایکسیسبیلٹی ترتیبات"</string>
<string name="vision_settings_title" msgid="4204111425716868288">"بصارتی ترتیبات"</string>
- <string name="vision_settings_description" msgid="5679491180156408260">"آپ اس آلہ کو اپنی ضروریات کے مطابق حسب ضرورت بنا سکتے ہیں۔ یہ accessibility خصوصیات بعد میں ترتیبات میں تبدیل ہو سکتی ہیں۔"</string>
+ <string name="vision_settings_description" msgid="5679491180156408260">"آپ اس آلہ کو اپنی ضروریات کے مطابق حسب ضرورت بنا سکتے ہیں۔ یہ ایکسیسبیلٹی خصوصیات بعد میں ترتیبات میں تبدیل ہو سکتی ہیں۔"</string>
<string name="accessibility_services_title" msgid="2592221829284342237">"سروسز"</string>
<string name="talkback_title" msgid="7912059827205988080">"Talkback"</string>
<string name="talkback_summary" msgid="8331244650729024963">"سکرین قاری بنیادی طور پر اندھے پن اور کم بصارت والے لوگوں کیلئے ہے"</string>
@@ -1704,10 +1704,10 @@
<string name="accessibility_screen_magnification_title" msgid="9002237235486714636">"میگنیفکیشن اشارے"</string>
<string name="accessibility_screen_magnification_short_summary" msgid="3411979839172752057">"زوم کرنے کیلئے 3 بار تھپتھپائیں"</string>
<string name="accessibility_screen_magnification_summary" msgid="7798920976388197258"><b>"زوم کرنے کیلئے"</b>"، ایک انگلی کے ساتھ اسکرین کو 3 دفعہ تیزی سے تھپتھپائیں۔\n"<ul><li>"سکرول کرنے کیلئے 2 یا زیادہ انگلیاں گھسیٹیں"</li>\n<li>"زوم ایڈجسٹ کرنے کیلئے 2 یا زیادہ انگلیوں سے چٹکی بھریں یا کھولیں"</li></ul>\n\n<b>"عارضی طور پر زوم کرنے کیلئے"</b>"، اسکرین کو 3 بار تیزی سے تھپتھپائیں اور تیسری تھپتھپاہٹ پر اپنی انگلی نیچے کو دبائے رکھیں۔\n"<ul><li>"اسکرین کے اوپر اِدھر اُدھر حرکت دینے کیلئے اپنی انگلی گھسیٹیں"</li>\n<li>"زوم آؤٹ کرنے کیلئے اپنی انگلی اٹھائیں"</li></ul>\n\n"آپ کی بورڈ اور نیویگیشن بار پر زوم ان نہیں کر سکتے۔"</string>
- <string name="accessibility_global_gesture_preference_title" msgid="6752037184140789970">"Accessibility کا شارٹ کٹ"</string>
+ <string name="accessibility_global_gesture_preference_title" msgid="6752037184140789970">"ایکسیسبیلٹی کا شارٹ کٹ"</string>
<string name="accessibility_global_gesture_preference_summary_on" msgid="6180927399052022181">"آن"</string>
<string name="accessibility_global_gesture_preference_summary_off" msgid="8102103337813609849">"آف"</string>
- <string name="accessibility_global_gesture_preference_description" msgid="1605107799571936715">"جب یہ خصوصیت آن ہوتی ہے تو آپ تیزی سے دو مراحل میں accessibility خصوصیات فعال کر سکتے ہیں:\n\nمرحلہ 1: پاور بٹن کو اس وقت تک دبائے رکھیں جب تک آپ کوئی آواز نہیں سن لیتے یا وائبریشن محسوس نہیں کر لیتے ہیں۔\n\nمرحلہ 2: دو انگلیوں سے اس وقت تک دبائے رکھیں جب تک آپ آڈیو تصدیق نہیں سن لیتے ہیں۔\n\nاگر آلہ کے متعدد صارفین ہیں تو مقفل اسکرین پر اس شارٹ کٹ کا استعمال accessibility کو عارضی طور پر اس وقت تک کیلئے فعال کر دیتا ہے جب تک آلہ غیر مقفل نہیں ہو جاتا۔"</string>
+ <string name="accessibility_global_gesture_preference_description" msgid="1605107799571936715">"جب یہ خصوصیت آن ہوتی ہے تو آپ تیزی سے دو مراحل میں ایکسیسبیلٹی خصوصیات فعال کر سکتے ہیں:\n\nمرحلہ 1: پاور بٹن کو اس وقت تک دبائے رکھیں جب تک آپ کوئی آواز نہیں سن لیتے یا وائبریشن محسوس نہیں کر لیتے ہیں۔\n\nمرحلہ 2: دو انگلیوں سے اس وقت تک دبائے رکھیں جب تک آپ آڈیو تصدیق نہیں سن لیتے ہیں۔\n\nاگر آلہ کے متعدد صارفین ہیں تو مقفل اسکرین پر اس شارٹ کٹ کا استعمال ایکسیسبیلٹی کو عارضی طور پر اس وقت تک کیلئے فعال کر دیتا ہے جب تک آلہ غیر مقفل نہیں ہو جاتا۔"</string>
<string name="accessibility_toggle_high_text_contrast_preference_title" msgid="2567402942683463779">"اعلی تناسب امتزاج والا متن"</string>
<string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="7218498768415430963">"سکرین میگنیفکیشن از خود اپ ڈیٹ کریں"</string>
<string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="4392059334816220155">"ایپ تبدیلیوں پر سکرین میگنیفکیشن کو اپ ڈیٹ کریں"</string>
@@ -1780,7 +1780,7 @@
<string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> کو ضرورت ہے:"</string>
<string name="touch_filtered_warning" msgid="8644034725268915030">"چونکہ ایک ایپ اجازت کی درخواست کو مبہم کر رہی ہے، لہذا ترتیبات آپ کے جواب کی توثیق نہیں کر سکتی ہے۔"</string>
<string name="enable_service_encryption_warning" msgid="3064686622453974606">"اگر آپ <xliff:g id="SERVICE">%1$s</xliff:g> کو آن کرتے ہیں تو آپ کا آلہ ڈیٹا کی مرموزکاری کو بڑھانے کیلئے آپ کی اسکرین کا قفل استعمال نہیں کرے گا۔"</string>
- <string name="secure_lock_encryption_warning" msgid="460911459695077779">"چونکہ آپ نے حالت رسائی کی ایک سروس کو آن کیا ہے لہذا آپ کا آلہ ڈیٹا کی مرموزکاری کو بڑھانے کیلئے آپ کی اسکرین کا قفل استعمال نہیں کرے گا۔"</string>
+ <string name="secure_lock_encryption_warning" msgid="460911459695077779">"چونکہ آپ نے ایکسیسبیلٹی کی ایک سروس کو آن کیا ہے لہذا آپ کا آلہ ڈیٹا کی مرموزکاری کو بڑھانے کیلئے آپ کی اسکرین کا قفل استعمال نہیں کرے گا۔"</string>
<string name="enable_service_pattern_reason" msgid="777577618063306751">"کیونکہ <xliff:g id="SERVICE">%1$s</xliff:g> کو آن کرنے سے ڈیٹا کی مرموز کاری پر اثر پڑتا ہے، آپ کو اپنے پیٹرن کی توثیق کرنے کی ضرورت ہے۔"</string>
<string name="enable_service_pin_reason" msgid="7882035264853248228">"کیونکہ <xliff:g id="SERVICE">%1$s</xliff:g> کو آن کرنے سے ڈیٹا کی مرموز کاری پر اثر پڑتا ہے، آپ کو اپنے PIN کی توثیق کرنے کی ضرورت ہے۔"</string>
<string name="enable_service_password_reason" msgid="1224075277603097951">"کیونکہ <xliff:g id="SERVICE">%1$s</xliff:g> کو آن کرنے سے ڈیٹا کی مرموز کاری پر اثر پڑتا ہے، آپ کو اپنے پاس ورڈ کی توثیق کرنے کی ضرورت ہے۔"</string>
@@ -1920,7 +1920,7 @@
<string name="battery_saver" msgid="1426682272004907982">"بیٹری سیور"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"خود کار طور پر آن کریں"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"کبھی نہیں"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"%1$s بیٹری پر"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> بیٹری پر"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"پروسیس اعداد و شمار"</string>
<string name="process_stats_summary" msgid="109387941605607762">"جاری پروسیسز کے بارے میں مفید اعداد و شمار"</string>
<string name="app_memory_use" msgid="7849258480392171939">"میموری کا استعمال"</string>
@@ -2549,7 +2549,7 @@
<string name="keywords_battery" msgid="1173830745699768388">"پاور کا استعمال، چارج کریں"</string>
<string name="keywords_spell_checker" msgid="1399641226370605729">"ہجے، لغت، املا جانچ کرنا، خود کار درستی"</string>
<string name="keywords_voice_input" msgid="769778245192531102">"شناخت کار، ان پٹ، اسپیچ، بولیں، زبان، ہینڈز فری، ہینڈ فری، شناخت، ناگوار، لفظ، آڈیو، سرگزشت، بلوٹوتھ ہیڈ سیٹ"</string>
- <string name="keywords_text_to_speech_output" msgid="5150660047085754699">"درجہ دیں، زبان، ڈیفالٹ، بولیں، بولنا، tts، accessibility، اسکرین ریڈر، نابینا"</string>
+ <string name="keywords_text_to_speech_output" msgid="5150660047085754699">"درجہ دیں، زبان، ڈیفالٹ، بولیں، بولنا، tts، ایکسیسبیلٹی، اسکرین ریڈر، نابینا"</string>
<string name="keywords_date_and_time" msgid="758325881602648204">"گھڑی، فوج"</string>
<string name="keywords_network_reset" msgid="6024276007080940820">"ری سیٹ کریں، بحال کریں، فیکٹری"</string>
<string name="keywords_factory_data_reset" msgid="5894970373671252165">"صاف کریں، حذف کریں، بحال کریں، ختم کریں، ہٹائیں"</string>
@@ -2592,10 +2592,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"رنگ والیوم"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"اطلاع کا والیوم"</string>
<string name="ringtone_title" msgid="5379026328015343686">"فون رنگ ٹون"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"اطلاع کی ڈیفالٹ آواز"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"الارم کی ڈیفالٹ آواز"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"کالز کیلئے وائبریٹ بھی کرے"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"دیگر آوازیں"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"ڈائل پیڈ ٹونز"</string>
@@ -2810,9 +2808,9 @@
<string name="encrypt_talkback_dialog_require_pin" msgid="8299960550048989807">"PIN درکار ہے؟"</string>
<string name="encrypt_talkback_dialog_require_pattern" msgid="1499790256154146639">"پیٹرن درکار ہے؟"</string>
<string name="encrypt_talkback_dialog_require_password" msgid="8841994614218049215">"پاس ورڈ درکار ہے؟"</string>
- <string name="encrypt_talkback_dialog_message_pin" msgid="7582096542997635316">"جب آپ یہ آلہ شروع کرنے کیلئے اپنا PIN داخل کریں گے تو <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>
+ <string name="encrypt_talkback_dialog_message_pin" msgid="7582096542997635316">"جب آپ یہ آلہ شروع کرنے کیلئے اپنا PIN داخل کریں گے تو <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>
<string name="direct_boot_unaware_dialog_message" msgid="7870273558547549125">"نوٹ: ریبوٹ کرنے کے بعد یہ ایپ تب تک شروع نہیں ہو سکتی جب تک آپ اپنا فون غیر مقفل نہ کر لیں"</string>
<string name="imei_information_title" msgid="8499085421609752290">"IMEI کی معلومات"</string>
<string name="imei_information_summary" msgid="2074095606556565233">"IMEI سے متعلق معلومات"</string>
@@ -3209,6 +3207,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"سائن ان نہیں کر سکتے؟"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"سسٹم کی معلومات بھیجیں"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"دوبارہ مت دکھائیں"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"درخواست کی جا رہی ہے بطور"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"اکاؤنٹ شامل کریں"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"دفتری پروفائل کی ترتیبات"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"رابطہ تلاش"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"کالرز اور رابطوں کی شناخت کیلئے اپنی تنظیم کی جانب سے رابطہ تلاشیوں کی اجازت دیں"</string>
@@ -3281,20 +3281,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"اکاؤنٹ ڈیٹا کو خودکار مطابقت پذیر بنائیں"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"ذاتی اکاؤنٹ ڈیٹا کو خودکار مطابقت پذیر بنائیں"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"دفتری اکاؤنٹ ڈیٹا کو خودکار مطابقت پذیر بنائیں"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"اکاؤنٹ کی مطابقت پذیری"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"رازداری"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"رازداری"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"آپ کے دفتری ڈیٹا تک رسائی مہیا کرنے کیلئے، آپ کی تنظیم ہو سکتا ہے ترتیبات تبدیل کرے اور آپ کے آلہ پر سافٹ وئیر انسٹال کرے، جس سے آپ کے ذاتی مواد میں سے کچھ آپ کے منتظم کیلئے مرئی ہو سکتا ہے۔ مزید تفصیلات کیلئے اپنی تنظیم کے منتظم سے رابطہ کریں۔"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"آپ کی تنظیم کن اقسام کی معلومات دیکھ سکتی ہے؟"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"آپ کی تنظیم کیا دیکھ سکتی ہے اس پر کون سی تبدیلیاں اثر انداز ہو سکتی ہیں؟"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"اس آلہ تک آپ کی رسائی پر کون سی کاروائیاں اثر انداز ہو سکتی ہیں؟"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"آپ کے دفتری اکاؤنٹ سے وابستہ ڈیٹا، جیسے ای میل اور کیلنڈر"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"آپ کے آلہ پر موجود تمام ایپس کی فہرست"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">آپ کے آلہ پر موجود تمام <xliff:g id="COUNT_1">%d</xliff:g> ایپس کی فہرست</item>
+ <item quantity="one">آپ کے آلہ پر موجود تمام <xliff:g id="COUNT_0">%d</xliff:g> ایپ کی فہرست</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"آپ کے آلہ پر موجود ہر ایپ کا استعمال (صرف شدہ وقت اور استعمال کردہ ڈیٹا کی مقدار)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"آپ کے آلہ پر ٹریفک لاگز"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"آپ کی سب سے حالیہ بگ رپورٹ"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"آپ کا حالیہ ترین سیکیورٹی لاگ"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"کبھی نہیں"</string>
</resources>
diff --git a/res/values-uz-rUZ/arrays.xml b/res/values-uz-rUZ/arrays.xml
index 3ee0f62..02f3eec 100644
--- a/res/values-uz-rUZ/arrays.xml
+++ b/res/values-uz-rUZ/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"ekranni yoqish"</item>
<item msgid="3253368931113490863">"hisoblarni olish"</item>
<item msgid="780392378084812901">"fonda ishga tushirish"</item>
+ <item msgid="2629748510881309577">"maxsus imkoniyatlar ovozi balandligi"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Joylashuv"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Ekranni yoqish"</item>
<item msgid="5258373962467495905">"Hisoblarni olish"</item>
<item msgid="334625385979270703">"Fonda ishga tushirish"</item>
+ <item msgid="9039213578110332702">"Maxsus imkoniyatlar ovozi balandligi"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Qisqa"</item>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index ba5b9da..0027a48 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>” qurilmasiga ulanish uchun bosing."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" qurilmasiga ulanmoqchimisiz?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Telefon daftarchasiga kirish so‘rovi"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s aloqalaringiz ro‘yxati va qo‘ng‘iroqlaringiz jurnaliga kirmoqchi. %2$s‘ga kirish ruxsati berilsinmi?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> kontaktlar va chaqiruvlar tarixidan foydalanmoqchi <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> qurilmasiga ruxsat berilsinmi?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Boshqa so‘rama"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Boshqa so‘ralmasin"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Xabarga kirish so‘rovi"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Sozlamalar"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Sozlamalar"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Sozlamalar yorlig‘i"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Hech qanday mos faoliyat topilmadi."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Parvoz rejimi"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Yana"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Simsiz tarmoqlar"</string>
@@ -760,7 +761,7 @@
<string name="wifi_wps_available_first_item" msgid="4422547079984583502">"WPS mavjud"</string>
<string name="wifi_wps_available_second_item" msgid="8427520131718215301">" (WPS mavjud)"</string>
<string name="wifi_wps_nfc_enter_password" msgid="2288214226916117159">"Tarmoqqa ulanish uchun parolni kiriting"</string>
- <string name="wifi_scan_always_turnon_message" msgid="203123538572122989">"Joylashuv aniqligini yana ham yaxshilash va boshqa maqsadlar uchun, Wi-Fi o‘chirilgan bo‘lsada <xliff:g id="APP_NAME">%1$s</xliff:g> tarmoqlarni skanlash vazifasini yoqmoqchi.\n\nBu ruxsat tarmoqlarni skanlashni istagan barcha ilovalarga berilsinmi?"</string>
+ <string name="wifi_scan_always_turnon_message" msgid="203123538572122989">"Joylashuv aniqligini yana ham yaxshilash va boshqa maqsadlar uchun, Wi-Fi o‘chirilgan bo‘lsada <xliff:g id="APP_NAME">%1$s</xliff:g> tarmoqlarni qidirish vazifasini yoqmoqchi.\n\nBu ruxsat tarmoqlarni qidirishni istagan barcha ilovalarga berilsinmi?"</string>
<string name="wifi_scan_always_turnoff_message" msgid="5538901671131941043">"Uni o‘chirish uchun menyudan “Qo‘shimcha” bandiga o‘ting."</string>
<string name="wifi_scan_always_confirm_allow" msgid="5355973075896817232">"Ruxsat berish"</string>
<string name="wifi_scan_always_confirm_deny" msgid="4463982053823520710">"Rad etish"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Tarmoq ulanishlarini boshqarish uchun “<xliff:g id="CURRENT_APP">%2$s</xliff:g>” o‘rniga “<xliff:g id="NEW_APP">%1$s</xliff:g>” ilovasidan foydalanilsinmi?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Tarmoq ulanishlarini boshqarish uchun “<xliff:g id="NEW_APP">%s</xliff:g>” ilovasidan foydalanilsinmi?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Noma’lum uyali aloqa operatori"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s hech qanday ma‘lum veb-saytga ega emas"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> operatorida sinxronlash uchun sayti yo‘q"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Iltimos, SIM kartani joylashtirib, qurilmani ochirib-yoqing"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Iltimos, Internetga ulaning"</string>
<string name="location_title" msgid="1029961368397484576">"Mening joylashuvim"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Sun’iy yo‘ldoshdan olingan rasmlar:\n© CNES 2014/Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Qo‘llanma"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Qo‘llanmani yuklashda muammo yuz berdi."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Uchinchi tomon litsenziyalari"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Litsenziyalarni yuklashda muammo yuz berdi."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Yuklanmoqda…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Xavfsizlik qoidalari"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Quvvat tejash rejimi"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Avtomatik yoqish"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Hech qachon"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"batareya quvvati %1$s qolganda"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"batareya quvvati: <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Jarayonlar statistikasi"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Ish jarayonlari haqidagi g‘alati statistikalar"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Band xotira"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Rington"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Bildirishnomalar ovozi"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Telefon ringtoni"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Standart bildirishnoma signali"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Standart signal"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Chaqiruv vaqtida tebranish"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Boshqa ovozlar"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Raqam terilgandagi ovoz"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Hisobingizga kirib bo‘lmadimi?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Tizim haqida ma’lumotlarni yuborish"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Boshqa ko‘rsatilmasin"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"So‘rov yuborish…"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Hisob qo‘shish"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Ishchi profil sozlamalari"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Kontaktlarni qidirish"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Tashkilot nomi bo‘yicha qidiruvda qo‘ng‘iroq qiluvchi abonent va uning kontaktini aniqlashga ruxsat berish"</string>
@@ -3258,7 +3258,7 @@
<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_summary" msgid="242037150983277829">"Kamerani tez ochish uchun quvvat tugmasini ikki marta bosing. Har qanday ekranda ishlaydi."</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_twist_for_camera_mode_title" msgid="4877834147983530479">"Kamerani almashtirish"</string>
<string name="double_twist_for_camera_mode_summary" msgid="122977081337563340"></string>
<string name="ambient_display_title" product="default" msgid="5144814600610448504">"Telefonni tekshirish uchun ekranni ikki marta bosing"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Avto-sinxronizatsiya (hisob)"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Avto-sinxronizatsiya (shaxsiy)"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Avto-sinxronizatsiya (ishchi)"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Hisobni sinxronlash"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Maxfiylik"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Maxfiylik"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Tashkilotingiz administratori qurilmangizda ish uchun zarur sozlamalarni o‘zgartirganda yoki ilovalar o‘rnatganda ba’zi shaxsiy ma’lumotlaringiz unga ko‘rishini mumkin. Qo‘shimcha ma’lumot olish uchun administratorga murojaat qiling."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Tashkilotingiz qaysi turdagi ma’lumotlarni ko‘ra oladi?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Tashkilotingizga ko‘rinadiganlarga qanday o‘zgarishlar ta’sir qiladi?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Bu qurilmadan foydalanishga qaysi amallar ta’sir qilishi mumkin?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"E-pochta va taqvim kabi ishchi hisob bilan bog‘liq ma’lumotlar"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Qurilmangizdagi barcha ilovalar ro‘yxati"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Qurilmadagi barcha <xliff:g id="COUNT_1">%d</xliff:g> ta ilova ro‘yxati</item>
+ <item quantity="one">Qurilmadagi barcha <xliff:g id="COUNT_0">%d</xliff:g> ta ilova ro‘yxati</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Qurilmadagi har bir ilovadan foydalanish statistikasi (sarflangan vaqt va trafik)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Qurilmangizdagi trafik jurnallari"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Eng oxirgi xatoliklar hisoboti"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Eng oxirgi xavfsizlik jurnali"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Hech qachon"</string>
</resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 1ae911b..dfc85c2 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"bật màn hình"</item>
<item msgid="3253368931113490863">"nhận tài khoản"</item>
<item msgid="780392378084812901">"chạy trong nền"</item>
+ <item msgid="2629748510881309577">"âm lượng của trợ năng"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Vị trí"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Bật màn hình"</item>
<item msgid="5258373962467495905">"Nhận tài khoản"</item>
<item msgid="334625385979270703">"Chạy trong nền"</item>
+ <item msgid="9039213578110332702">"Âm lượng của trợ năng"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Ngắn"</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index fcaf3f1..076f2df 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Nhấn để kết nối với \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Bạn có muốn kết nối với \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" không?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Yêu cầu truy cập danh bạ"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s muốn truy cập danh bạ và lịch sử cuộc gọi của bạn. Cấp quyền truy cập cho %2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> muốn truy cập vào danh bạ và nhật ký cuộc gọi của bạn. Cấp quyền truy cập vào <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Không hỏi lại"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Không hỏi lại"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Yêu cầu truy cập tin nhắn"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Cài đặt"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Cài đặt"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Lối tắt cài đặt"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Không tìm thấy hoạt động nào phù hợp."</string>
<string name="airplane_mode" msgid="8837269988154128601">"Chế độ trên máy bay"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Thêm"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Không dây & mạng"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Sử dụng <xliff:g id="NEW_APP">%1$s</xliff:g> thay cho <xliff:g id="CURRENT_APP">%2$s</xliff:g> để quản lý các kết nối mạng của bạn?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Sử dụng <xliff:g id="NEW_APP">%s</xliff:g> để quản lý các kết nối mạng của bạn?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"Nhà cung cấp dịch vụ SIM không xác định"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s không có trang web cấp phép xác định"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> không có trang web cấp phép xác định nào"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Vui lòng lắp thẻ SIM và khởi động lại"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Vui lòng kết nối internet"</string>
<string name="location_title" msgid="1029961368397484576">"Vị trí của tôi"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Nhà cung cấp ảnh vệ tinh:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Hướng dẫn sử dụng"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Đã xảy ra sự cố khi tải hướng dẫn sử dụng."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Giấy phép của bên thứ ba"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Đã xảy ra sự cố khi tải giấy phép."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Đang tải…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Thông tin an toàn"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Trình tiết kiệm pin"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Tự động bật"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Không bao giờ"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"ở mức pin %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"ở mức <xliff:g id="PERCENT">%1$s</xliff:g> pin"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Số liệu thống kê về quy trình"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Số liệu thống kê chi tiết về các quy trình đang chạy"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Mức sử dụng bộ nhớ"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Âm lượng chuông"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Âm lượng thông báo"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Nhạc chuông điện thoại"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Âm thanh thông báo mặc định"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Âm thanh báo thức mặc định"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Đồng thời rung khi có cuộc gọi"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Âm thanh khác"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Âm bàn phím số"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Không thể đăng nhập?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Gửi thông tin hệ thống"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Không hiển thị lại"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Đang yêu cầu bằng"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Thêm tài khoản"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Cài đặt hồ sơ công việc"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Tìm kiếm liên hệ"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Cho phép tìm kiếm liên hệ theo tổ chức để xác định người gọi và liên hệ"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Tự động đồng bộ hóa dữ liệu TK"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Tự động đ.bộ d.liệu TK c.nhân"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Tự động đ.bộ dữ liệu TK c.việc"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Đồng bộ hóa tài khoản"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Bảo mật"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Bảo mật"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Để cung cấp quyền truy cập vào dữ liệu công việc, tổ chức của bạn có thể thay đổi cài đặt và cài đặt phần mềm trên thiết bị để khiến một số nội dung cá nhân của bạn hiển thị với quản trị viên. Hãy liên hệ với quản trị viên của tổ chức bạn để biết thêm chi tiết."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Tổ chức của bạn có thể thấy những loại thông tin nào?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Thay đổi nào ảnh hưởng đến nội dung tổ chức bạn có thể thấy?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Tác vụ nào có thể ảnh hưởng đến quyền truy cập thiết bị này?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dữ liệu được liên kết với tài khoản công việc của bạn, chẳng hạn như email và lịch"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Danh sách tất cả các ứng dụng trên thiết bị của bạn"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">Danh sách tất cả <xliff:g id="COUNT_1">%d</xliff:g> ứng dụng trên thiết bị của bạn</item>
+ <item quantity="one">Danh sách tất cả <xliff:g id="COUNT_0">%d</xliff:g> ứng dụng trên thiết bị của bạn</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Mức sử dụng (thời gian và lượng dữ liệu đã sử dụng) của từng ứng dụng trên thiết bị của bạn"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Nhật ký lưu lượng truy cập trên thiết bị của bạn"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Báo cáo lỗi gần đây nhất của bạn"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Nhật ký bảo mật gần đây nhất của bạn"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Không bao giờ"</string>
</resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index bcc93d6..5f3daa3 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"开启屏幕"</item>
<item msgid="3253368931113490863">"获取帐号"</item>
<item msgid="780392378084812901">"在后台运行"</item>
+ <item msgid="2629748510881309577">"无障碍功能音量"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"位置"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"开启屏幕"</item>
<item msgid="5258373962467495905">"获取帐号"</item>
<item msgid="334625385979270703">"在后台运行"</item>
+ <item msgid="9039213578110332702">"无障碍功能音量"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"短"</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index b6865ff..93864ba 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"点按即可连接到“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”。"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"要连接到“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”吗?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"电话簿权限申请"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s想要使用您的通讯录和通话记录。要向%2$s授予权限吗?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> 想访问您的通讯录和通话记录。要向 <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> 授予访问权限吗?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"不要再询问"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"下次不再询问"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"消息权限申请"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"设置"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"设置"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"设置快捷方式"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"未找到匹配的活动。"</string>
<string name="airplane_mode" msgid="8837269988154128601">"飞行模式"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"更多"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"无线和网络"</string>
@@ -711,7 +712,7 @@
<string name="wifi_more" msgid="3195296805089107950">"更多"</string>
<string name="wifi_setup_wps" msgid="8128702488486283957">"自动设置 (WPS)"</string>
<string name="wifi_show_advanced" msgid="3409422789616520979">"高级选项"</string>
- <string name="wifi_advanced_toggle_description_expanded" msgid="2380600578544493084">"高级选项下拉列表。点按两次即可折叠。"</string>
+ <string name="wifi_advanced_toggle_description_expanded" msgid="2380600578544493084">"高级选项下拉列表。点按两次即可收起。"</string>
<string name="wifi_advanced_toggle_description_collapsed" msgid="1463812308429197263">"高级选项下拉列表。点按两次即可展开。"</string>
<string name="wifi_wps_setup_title" msgid="8207552222481570175">"WLAN保护设置"</string>
<string name="wifi_wps_setup_msg" msgid="315174329121275092">"正在启动 WPS..."</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"不再使用<xliff:g id="CURRENT_APP">%2$s</xliff:g>,而改用<xliff:g id="NEW_APP">%1$s</xliff:g>来管理您的网络连接吗?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"要使用<xliff:g id="NEW_APP">%s</xliff:g>管理您的网络连接吗?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"未知的SIM卡运营商"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s没有已知的配置网站"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g>没有任何已知的配置网站"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"请插入SIM卡,然后重新启动"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"请连接到互联网"</string>
<string name="location_title" msgid="1029961368397484576">"我的位置"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"卫星图像提供商:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"手册"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"加载手册时出现问题。"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"第三方许可"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"加载许可时出现问题。"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"正在加载..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"安全信息"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"省电模式"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"自动开启"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"一律不"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"电量剩余%1$s时"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"电量剩 <xliff:g id="PERCENT">%1$s</xliff:g> 时"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"进程统计信息"</string>
<string name="process_stats_summary" msgid="109387941605607762">"运行中进程的相关技术统计信息"</string>
<string name="app_memory_use" msgid="7849258480392171939">"内存用量"</string>
@@ -2606,10 +2606,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"铃声音量"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"通知音量"</string>
<string name="ringtone_title" msgid="5379026328015343686">"手机铃声"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"默认通知提示音"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"默认闹钟提示音"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"有来电时响铃并振动"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"其他提示音"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"拨号键盘提示音"</string>
@@ -3223,6 +3221,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"无法登录?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"发送系统信息"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"不再显示"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"通过以下帐号提出请求:"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"添加帐号"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"工作资料设置"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"联系人搜索"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"允许您的单位搜索联系人,以便识别来电者和联系人的身份"</string>
@@ -3295,20 +3295,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"自动同步帐号数据"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"自动同步个人帐号数据"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"自动同步工作帐号数据"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"帐号同步"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"隐私权"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"隐私权"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"为了访问您的工作数据,贵单位可能会更改相应的设置并在您的设备上安装软件,这可能会导致您的管理员能够查看您的部分个人内容。要了解详情,请与贵单位的管理员联系。"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"您的单位可查看哪些类型的信息?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"哪些变更会影响您的单位可查看的内容?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"哪些操作可能会影响您对此设备的访问权限?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"与您的工作帐号关联的数据(例如电子邮件和日历)"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"您设备上所有应用的列表"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">您设备上全部 <xliff:g id="COUNT_1">%d</xliff:g> 个应用的列表</item>
+ <item quantity="one">您设备上全部 <xliff:g id="COUNT_0">%d</xliff:g> 个应用的列表</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"您设备上每个应用的使用情形(使用时间和数据用量)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"您设备上的流量日志"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"您最新的错误报告"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"您最新的安全日志"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"一律不"</string>
</resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 79b8f58..6746afa 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"開啟螢幕"</item>
<item msgid="3253368931113490863">"取得帳戶"</item>
<item msgid="780392378084812901">"在背景中執行"</item>
+ <item msgid="2629748510881309577">"無障礙功能音量"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"位置"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"開啟螢幕"</item>
<item msgid="5258373962467495905">"取得帳戶"</item>
<item msgid="334625385979270703">"在背景中執行"</item>
+ <item msgid="9039213578110332702">"無障礙功能音量"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"短"</item>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 361b90f..0028c00 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"輕按即可連接至「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」。"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"您要連線至「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」嗎?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"電話簿存取權要求"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s 想存取您的通訊錄和通話記錄。要授予 %2$s 存取權嗎?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> 要求存取您的聯絡人和通話記錄。允許 <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> 存取這些資料嗎?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"不要再詢問"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"不要再詢問"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"訊息存取權要求"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"設定"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"設定"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"設定捷徑"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"找不到相符的活動。"</string>
<string name="airplane_mode" msgid="8837269988154128601">"飛行模式"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"更多"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"無線與網絡"</string>
@@ -1302,7 +1303,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"使用「<xliff:g id="NEW_APP">%1$s</xliff:g>」(取代「<xliff:g id="CURRENT_APP">%2$s</xliff:g>」) 管理您的網絡連線?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"使用「<xliff:g id="NEW_APP">%s</xliff:g>」管理您的網絡連線?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"未知的 SIM 流動網絡供應商"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s 沒有提供任何已知的網站"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"<xliff:g id="OPERATOR">%1$s</xliff:g> 沒有已知的佈建網站"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"請插入 SIM 卡,並重新啟動裝置"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"請連接互聯網"</string>
<string name="location_title" msgid="1029961368397484576">"我的位置"</string>
@@ -1358,8 +1359,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"衛星影像供應商:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"手動"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"載入指南時發生問題。"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"第三方許可"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"載入授權時發生問題。"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"正在載入..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"安全資訊"</string>
@@ -1933,7 +1933,7 @@
<string name="battery_saver" msgid="1426682272004907982">"省電模式"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"自動開啟"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"永不"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"電量為 %1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"<xliff:g id="PERCENT">%1$s</xliff:g> 電量"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"程序統計資料"</string>
<string name="process_stats_summary" msgid="109387941605607762">"執行中程序的技術統計資料"</string>
<string name="app_memory_use" msgid="7849258480392171939">"記憶體用量"</string>
@@ -2609,10 +2609,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"鈴聲音量"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"通知音量"</string>
<string name="ringtone_title" msgid="5379026328015343686">"電話鈴聲"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"預設通知音效"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"預設鬧鐘音效"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"來電時同時震動"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"其他音效"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"撥號鍵盤音效"</string>
@@ -2689,11 +2687,11 @@
<string name="notification_listener_disable_warning_summary" msgid="6738915379642948000">"如果您關閉「<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>」的通知存取權,「請勿騷擾」的存取權亦可能會關閉。"</string>
<string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"關閉"</string>
<string name="notification_listener_disable_warning_cancel" msgid="8586417377104211584">"取消"</string>
- <string name="vr_listeners_title" msgid="1318901577754715777">"虛擬現實協助服務"</string>
- <string name="no_vr_listeners" msgid="2689382881717507390">"沒有已安裝的應用程式要求使用虛擬現實協助服務。"</string>
- <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"允許虛擬現實服務存取 <xliff:g id="SERVICE">%1$s</xliff:g> 嗎?"</string>
+ <string name="vr_listeners_title" msgid="1318901577754715777">"VR 助手服務"</string>
+ <string name="no_vr_listeners" msgid="2689382881717507390">"沒有已安裝的應用程式要求提供 VR 助手服務。"</string>
+ <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"允許 VR 服務存取 <xliff:g id="SERVICE">%1$s</xliff:g> 嗎?"</string>
<string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"在虛擬現實模式下使用應用程式時,方可使用「<xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g>」。"</string>
- <string name="display_vr_pref_title" msgid="8104485269504335481">"裝置處於虛擬現實模式時"</string>
+ <string name="display_vr_pref_title" msgid="8104485269504335481">"裝置在 VR 模式時"</string>
<string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"減少模糊 (建議)"</string>
<string name="display_vr_pref_off" msgid="2190091757123260989">"減少閃爍"</string>
<string name="manage_zen_access_title" msgid="2611116122628520522">"[請勿騷擾] 存取"</string>
@@ -3226,6 +3224,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"無法登入嗎?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"傳送系統資料"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"不要再顯示"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"透過以下帳戶提出要求"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"新增帳戶"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"工作設定檔設定"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"聯絡人搜尋"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"允許您的機構搜尋聯絡人,以識別來電者和聯絡人"</string>
@@ -3298,20 +3298,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"自動同步帳戶資料"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"自動同步個人帳戶資料"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"自動同步工作帳戶資料"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"帳戶同步"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"私隱設定"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"私隱設定"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"如要提供工作資料存取權,您的機構可能需要變更您的裝置設定,並在您的裝置上安裝軟件。您的管理員可能會因而看到您的部分個人內容。請聯絡您機構的管理員以瞭解詳情。"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"您機構可查看什麼類型的資料?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"什麼變更可影響您機構能夠查看的資料?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"什麼操作可影響您存取此裝置?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"與您工作帳戶相關聯的資料,例如電郵和日曆"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"您裝置上所有應用程式的清單"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">您裝置上全部 <xliff:g id="COUNT_1">%d</xliff:g> 個應用程式的清單</item>
+ <item quantity="one">您裝置上全部 <xliff:g id="COUNT_0">%d</xliff:g> 個應用程式的清單</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"您裝置上每個應用程式的使用資料 (使用時間和數據用量)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"您裝置的網絡流量記錄"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"您最近的錯誤報告"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"您最近的安全記錄"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"永不"</string>
</resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index a86804e..4fc1346 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"開啟螢幕"</item>
<item msgid="3253368931113490863">"取得帳戶"</item>
<item msgid="780392378084812901">"在背景執行"</item>
+ <item msgid="2629748510881309577">"協助工具音量"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"位置"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"開啟螢幕"</item>
<item msgid="5258373962467495905">"取得帳戶"</item>
<item msgid="334625385979270703">"在背景執行"</item>
+ <item msgid="9039213578110332702">"協助工具音量"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"短"</item>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 767fd1a..80e08d0 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"輕觸即可與「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」連線。"</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"您要連線至「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」嗎?"</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"電話簿存取權要求"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"%1$s 想存取您的通訊錄和通話紀錄。要將存取權授予 %2$s 嗎?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"「<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>」要求存取你的聯絡人和通話紀錄。要將存取權授予「<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>」嗎?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"不要再詢問"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"不要再詢問"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"訊息存取權要求"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"設定"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"設定"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"設定捷徑"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"找不到相符的活動。"</string>
<string name="airplane_mode" msgid="8837269988154128601">"飛航模式"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"更多"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"無線與網路"</string>
@@ -1301,7 +1302,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"改以「<xliff:g id="NEW_APP">%1$s</xliff:g>」取代「<xliff:g id="CURRENT_APP">%2$s</xliff:g>」管理您的網路連線?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"使用「<xliff:g id="NEW_APP">%s</xliff:g>」管理您的網路連線?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"未知的 SIM 卡行動通訊業者"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s 沒有任何已知的佈建網站"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"「<xliff:g id="OPERATOR">%1$s</xliff:g>」沒有任何已知的佈建網站"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"請插入 SIM 卡,並重新啟動裝置"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"請連線至網際網路"</string>
<string name="location_title" msgid="1029961368397484576">"我的位置"</string>
@@ -1357,8 +1358,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"衛星影像提供者:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"說明書"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"載入說明書時發生問題。"</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"第三方授權"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"載入授權時發生問題"</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"載入中…"</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"安全資訊"</string>
@@ -1932,7 +1932,7 @@
<string name="battery_saver" msgid="1426682272004907982">"省電模式"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"自動開啟"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"永遠不要"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"電量為 %1$s 時"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"電量為 <xliff:g id="PERCENT">%1$s</xliff:g> 時"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"處理程序統計資料"</string>
<string name="process_stats_summary" msgid="109387941605607762">"執行中處理程序的相關完善統計資料"</string>
<string name="app_memory_use" msgid="7849258480392171939">"記憶體用量"</string>
@@ -2610,10 +2610,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"鈴聲音量"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"通知音量"</string>
<string name="ringtone_title" msgid="5379026328015343686">"電話鈴聲"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"預設通知音效"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"預設鬧鐘音效"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"來電時同時震動"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"其他音效"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"撥號鍵盤音效"</string>
@@ -3227,6 +3225,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"無法登入嗎?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"傳送系統資訊"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"不要再顯示"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"透過以下帳戶提出要求"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"新增帳戶"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Work 設定檔設定"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"聯絡人搜尋"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"允許您的機構搜尋聯絡人,以便識別來電者和聯絡人的身分"</string>
@@ -3299,20 +3299,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"自動同步處理帳戶資料"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"自動同步處理個人帳戶資料"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"自動同步處理工作帳戶資料"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"帳戶同步處理"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"隱私權"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"隱私權"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"為了提供你的工作資料存取權,貴機構可能會在你的裝置上變更設定及安裝軟體,進而導致你的部分個人內容向管理員顯示。請與貴機構的管理員聯絡以瞭解詳情。"</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"貴機構可查看哪些類型的資訊?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"哪些變更會影響貴機構可查看的內容?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"哪些操作可能會影響你對這個裝置的存取權?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"與工作帳戶相關聯的資料 (例如電子郵件和日曆)"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"裝置上所有應用程式的清單"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="other">裝置上所有應用程式的清單 (共 <xliff:g id="COUNT_1">%d</xliff:g> 個)</item>
+ <item quantity="one">裝置上所有應用程式的清單 (共 <xliff:g id="COUNT_0">%d</xliff:g> 個)</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"裝置上每個應用程式的使用情形 (使用時間和數據用量)"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"裝置的流量紀錄"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"最新錯誤報告"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"最新安全性紀錄"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"永遠不要"</string>
</resources>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index 9093907..46bba3a 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -302,6 +302,7 @@
<item msgid="6628873315024166197">"vula isikrini"</item>
<item msgid="3253368931113490863">"thola ama-akhawunti"</item>
<item msgid="780392378084812901">"sebenzisa emuva"</item>
+ <item msgid="2629748510881309577">"ivolumu yokufinyeleleka"</item>
</string-array>
<string-array name="app_ops_labels">
<item msgid="6602854600289714121">"Indawo"</item>
@@ -368,6 +369,7 @@
<item msgid="5832543806893763620">"Vula isikrini"</item>
<item msgid="5258373962467495905">"Thola ama-akhawunti"</item>
<item msgid="334625385979270703">"Sebenzisa emuva"</item>
+ <item msgid="9039213578110332702">"Ivolumu yokufinyeleleka"</item>
</string-array>
<string-array name="long_press_timeout_selector_titles">
<item msgid="3511504869290423954">"Kufushane"</item>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index e7fb907..92c61c8 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -150,7 +150,7 @@
<string name="bluetooth_connection_notif_message" msgid="3603316575471431846">"Thepha kuze uxhume ku-\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
<string name="bluetooth_connection_dialog_text" msgid="8455427559949998023">"Uyafuna ukuxhuma ku \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
<string name="bluetooth_phonebook_request" msgid="3951420080540915279">"Isicelo sokufinyelela ibhuku lefoni"</string>
- <string name="bluetooth_pb_acceptance_dialog_text" msgid="6555508756987053866">"I-%1$s ifuna ukufinyelela kothintana nabo nomlando wekholi. Nikeza ukufinyelela ku-%2$s?"</string>
+ <string name="bluetooth_pb_acceptance_dialog_text" msgid="8930347091018455505">"I-<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ifuna ukufinyelela koxhumana nabo nakumlando wekholi. Nikeza ukufinyelela ku-<xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>?"</string>
<string name="bluetooth_remember_choice" msgid="6919682671787049800">"Ungabuzi futhi"</string>
<string name="bluetooth_pb_remember_choice" msgid="3622898084442402071">"Ungabuzi futhi"</string>
<string name="bluetooth_map_request" msgid="4595727689513143902">"Isicelo sokufinyelela umlayezo"</string>
@@ -270,6 +270,7 @@
<string name="settings_label" msgid="1626402585530130914">"Izilungiselelo"</string>
<string name="settings_label_launcher" msgid="8344735489639482340">"Izilungiselelo"</string>
<string name="settings_shortcut" msgid="3936651951364030415">"Isinqamuleli sezilungiselelo"</string>
+ <string name="activity_list_empty" msgid="6428823323471264836">"Ayikho imisebenzi efanayo etholakele"</string>
<string name="airplane_mode" msgid="8837269988154128601">"Imodi yendiza"</string>
<string name="radio_controls_title" msgid="3447085191369779032">"Okuningi"</string>
<string name="wireless_networks_settings_title" msgid="3643009077742794212">"Amanethiwekhi; nokungenantambo"</string>
@@ -1302,7 +1303,7 @@
<string name="network_scorer_change_active_dialog_text" msgid="8035173880322990715">"Sebenzisa i-<xliff:g id="NEW_APP">%1$s</xliff:g> esikhundleni se-<xliff:g id="CURRENT_APP">%2$s</xliff:g> ukuze uphathe uxhumo lakho lenethiwekhi?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="7444620909047611601">"Sebenzisa i-<xliff:g id="NEW_APP">%s</xliff:g> ukuze uphathe uxhumo lwakho lenethiwekhi?"</string>
<string name="mobile_unknown_sim_operator" msgid="2156912373230276157">"I-opharetha ye-SIM engaziwa"</string>
- <string name="mobile_no_provisioning_url" msgid="2399426808423775711">"%1$s ayinayo iwebhusayithi eyilungiselelo eyaziwayo"</string>
+ <string name="mobile_no_provisioning_url" msgid="9053814051811634125">"I-<xliff:g id="OPERATOR">%1$s</xliff:g> ayinayo iwebhusayithi eyaziwayo enikezayo"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Sicela ufake ikhadi le-SIM bese uqala kabusha"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Sicela uxhume ku-inthanethi"</string>
<string name="location_title" msgid="1029961368397484576">"Indawo Yami"</string>
@@ -1358,8 +1359,7 @@
<string name="wallpaper_attributions_values" msgid="2996183537914690469">"Abanikezeli bezithombe zesathelayithi:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="8133150693616006051">"Ngokulawulwa"</string>
<string name="settings_manual_activity_unavailable" msgid="4752403782883814898">"Kunenkinga yokulayisha imanuwali."</string>
- <!-- no translation found for settings_license_activity_title (8525014571806471216) -->
- <skip />
+ <string name="settings_license_activity_title" msgid="8525014571806471216">"Amalayisense enkampani yangaphandle"</string>
<string name="settings_license_activity_unavailable" msgid="4210539215951487627">"Kunenkinga yokulayisha amalayisensi."</string>
<string name="settings_license_activity_loading" msgid="3337535809093591740">"Iyalayisha..."</string>
<string name="settings_safetylegal_title" msgid="1289483965535937431">"Ulwazi lokuvikeleka"</string>
@@ -1933,7 +1933,7 @@
<string name="battery_saver" msgid="1426682272004907982">"Isilondolozi sebhethri"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Vula ngokuzenzakalela"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6610846456314373">"Akusoze"</string>
- <string name="battery_saver_turn_on_automatically_pct" msgid="7536784431655058267">"kubhethri le-%1$s"</string>
+ <string name="battery_saver_turn_on_automatically_pct" msgid="8665950426992057191">"kokungu-<xliff:g id="PERCENT">%1$s</xliff:g> kubhethri"</string>
<string name="process_stats_summary_title" msgid="1144688045609771677">"Izibalo zenqubo"</string>
<string name="process_stats_summary" msgid="109387941605607762">"Izibalo ze-Geeky mayelana nezinqubo zokuqalisa"</string>
<string name="app_memory_use" msgid="7849258480392171939">"Ukusetshenziswa kwememori"</string>
@@ -2607,10 +2607,8 @@
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ivolumu yokukhala"</string>
<string name="notification_volume_option_title" msgid="6064656124416882130">"Ivolumu yesaziso"</string>
<string name="ringtone_title" msgid="5379026328015343686">"Iringithoni yefoni"</string>
- <!-- no translation found for notification_ringtone_title (4468722874617061231) -->
- <skip />
- <!-- no translation found for alarm_ringtone_title (6344025478514311386) -->
- <skip />
+ <string name="notification_ringtone_title" msgid="4468722874617061231">"Umsindo wesaziso ozenzakalelayo"</string>
+ <string name="alarm_ringtone_title" msgid="6344025478514311386">"Umsindo we-alamu ozenzakalelayo"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"Iyadlidliza uma kungena amakholi"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"Eminye imisindo"</string>
<string name="dial_pad_tones_title" msgid="1999293510400911558">"Amathoni wephedi yokudayela"</string>
@@ -3224,6 +3222,8 @@
<string name="support_sign_in_required_help" msgid="5200654782405538114">"Awukwazi ukungena ngemvume?"</string>
<string name="support_disclaimer_title" msgid="4825302018208770031">"Thumela ulwazi lwesistimu"</string>
<string name="support_disclaimer_do_not_show" msgid="3378367075323727539">"Ungabonisi futhi"</string>
+ <string name="support_account_request_prefix" msgid="6387847874661861650">"Icela njengo"</string>
+ <string name="support_account_picker_add_account" msgid="5076277544846506214">"Engeza i-akhawunti"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"Izilungiselelo zephrofayela yomsebenzi"</string>
<string name="managed_profile_contact_search_title" msgid="6034734926815544221">"Usesho loxhumana naye"</string>
<string name="managed_profile_contact_search_summary" msgid="5431253552272970512">"Vumela usesho loxhumana naye ngenhlangano yakho ukuze ukhombe abashayayo noxhumana nabo"</string>
@@ -3296,20 +3296,22 @@
<string name="auto_sync_account_title" msgid="7647106425106072285">"Idatha ye-akhawunti yokuvumelanisa ngokuzenzakalela"</string>
<string name="auto_sync_personal_account_title" msgid="999536545686286287">"Idatha ye-akhawunti yomuntu siqu yokuvumelanisa ngokuzenzakalela"</string>
<string name="auto_sync_work_account_title" msgid="3073278154593727844">"Idatha ye-akhawunti yomsebenzi yokuvumelanisa ngokuzenzakalela"</string>
+ <string name="account_sync_title" msgid="7214747784136106491">"Ukuvumelanisa kwe-akhawunti"</string>
<string name="enterprise_privacy_settings" msgid="6419290515657989967">"Ubumfihlo"</string>
<string name="enterprise_privacy_settings_title" msgid="3816716633813721131">"Ubumfihlo"</string>
<string name="enterprise_privacy_header" msgid="5605095630252702716">"Ukuze unikezele ngokufinyelela kwidatha yakho yomsebenzi, inhlangano yakho ingashntsha izilungiselelo futhi ifake isofthiwe kudivayisi yakho, okungabangela ukuthi okunye okuqukethwe kwakho okuyimfihlo kubonakale kumlawuli wakho. Xhumana nomlawuli wenhlangano yakho ngemininingwane ebanzi."</string>
- <!-- no translation found for exposure_category (2810157871578456078) -->
- <skip />
- <!-- no translation found for exposure_changes_category (7152065122917822315) -->
- <skip />
- <!-- no translation found for device_access_category (2561130537681794647) -->
- <skip />
- <!-- no translation found for enterprise_data (5354458531314976417) -->
- <skip />
- <!-- no translation found for number_installed_packages_default (7185923293655904313) -->
- <skip />
- <!-- no translation found for number_installed_packages (1918926807170936355) -->
- <!-- no translation found for usage_stats (5623497078526133035) -->
- <skip />
+ <string name="enterprise_privacy_exposure_category" msgid="7436466628559650202">"Uluphi uhlobo lolwazi olungabonwa inhlangano yakho?"</string>
+ <string name="enterprise_privacy_exposure_changes_category" msgid="8756743868307785139">"Iluphi ushintsho oluthinta okungabonwa inhlangano yakho?"</string>
+ <string name="enterprise_privacy_device_access_category" msgid="8690195503463047205">"Iziphi izenzo ezingathinta ukufinyelela kwakho kule divayisi?"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Idatha esondelene ne-akhawunti yakho yomsebenzi, efana ne-imeyili nekhalenda"</string>
+ <string name="enterprise_privacy_number_installed_packages_default" msgid="2737776397514027098">"Uhlu lwazo zonke izinhlelo zokusebenza kudivayisi yakho"</string>
+ <plurals name="enterprise_privacy_number_installed_packages" formatted="false" msgid="4190341451643144601">
+ <item quantity="one">Uhlu lwazo zonke izinhlelo zokusebenza ezingu-<xliff:g id="COUNT_1">%d</xliff:g> kudivayisi yakho</item>
+ <item quantity="other">Uhlu lwazo zonke izinhlelo zokusebenza ezingu-<xliff:g id="COUNT_1">%d</xliff:g> kudivayisi yakho</item>
+ </plurals>
+ <string name="enterprise_privacy_usage_stats" msgid="1368019140634184050">"Ukusetshenziswa (isikhathi esichithile nenani ledatha esetshenzisiwe) yohlelo lokusebenza ngalunye kudivayisi yakho"</string>
+ <string name="enterprise_privacy_network_logs" msgid="3432813134253944075">"Amalogu ethrafikhi kudivayisi yakho"</string>
+ <string name="enterprise_privacy_bug_reports" msgid="4762460041705169944">"Umbiko wakho wakamuva kakhulu wesiphazamisi"</string>
+ <string name="enterprise_privacy_security_logs" msgid="3648730027522011684">"Ilogu lakho lokuvikela lakamuva kakhulu"</string>
+ <string name="enterprise_privacy_never" msgid="1304035596746436921">"Akusoze"</string>
</resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 4a4d742..601fb40 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -617,6 +617,7 @@
<item>turn on screen</item>
<item>get accounts</item>
<item>run in background</item>
+ <item>accessibility volume</item>
</string-array>
<!-- User display names for app ops codes -->
@@ -685,6 +686,7 @@
<item>Turn on screen</item>
<item>Get accounts</item>
<item>Run in background</item>
+ <item>Accessibility volume</item>
</string-array>
<!-- Titles for the list of long press timeout options. -->
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 40f3f71..2931a98 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -51,7 +51,6 @@
<dimen name="divider_height">3dip</dimen>
<dimen name="divider_margin_top">6dip</dimen>
<dimen name="divider_margin_bottom">7dip</dimen>
- <dimen name="vert_divider_width">1dip</dimen>
<!-- Size of icons in the top-level of settings -->
<dimen name="header_icon_width">28dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3c9a4cc..4d872b1 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -344,7 +344,9 @@
<string name="bluetooth_phonebook_request">"Phone book access request"</string>
<!-- Bluetooth phone book permission Alert Activity text [CHAR LIMIT=none] -->
- <string name="bluetooth_pb_acceptance_dialog_text">%1$s wants to access your contacts and call history. Give access to %2$s?</string>
+ <string name="bluetooth_pb_acceptance_dialog_text">
+ <xliff:g id="device_name">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="device_name">%2$s</xliff:g>?
+ </string>
<!-- Bluetooth phone book permission Alert Activity checkbox text [CHAR LIMIT=none] -->
<string name="bluetooth_remember_choice">Don\u2019t ask again</string>
@@ -610,6 +612,8 @@
<string name="settings_label_launcher">Settings</string>
<!-- Label for option to select a settings panel as a shortcut -->
<string name="settings_shortcut">Settings shortcut</string>
+ <!-- Shown in create shortcut activity when there is no shortcut that can be created. [CHAR_LIMIT=None] -->
+ <string name="activity_list_empty">No matching activities found.</string>
<!-- Wireless controls settings screen, setting check box label -->
<string name="airplane_mode">Airplane mode</string>
<!-- Main Settings screen settings title for things like airplane mode, tethering, NFC, VPN. This will take you to another screen with those settings. [CHAR LIMIT=30] -->
@@ -3032,7 +3036,7 @@
<string name="mobile_unknown_sim_operator" translatable="true">Unknown SIM operator</string>
<!-- There is no mobile provisiong website for the operator which is the firat parameter [CHAR_ LIMIT=50]-->
- <string name="mobile_no_provisioning_url" translatable="true">%1$s has no known provisioning website</string>
+ <string name="mobile_no_provisioning_url"><xliff:g id="operator">%1$s</xliff:g> has no known provisioning website</string>
<!-- Ask user to insert a SIM card [CHAR_ LIMIT=50]-->
<string name="mobile_insert_sim_card" translatable="true">Please insert SIM card and restart</string>
@@ -4515,7 +4519,7 @@
<string name="battery_saver_turn_on_automatically_never">Never</string>
<!-- [CHAR_LIMIT=40] Battery saver: Value for automatic entry option: pct% battery -->
- <string name="battery_saver_turn_on_automatically_pct">at %1$s battery</string>
+ <string name="battery_saver_turn_on_automatically_pct">at <xliff:g id="percent">%1$s</xliff:g> battery</string>
<!-- Process Stats strings -->
<skip />
@@ -7795,6 +7799,12 @@
<!-- Checkbox text, when checked dialog will not show again [CHAR LIMIT=80] -->
<string name="support_disclaimer_do_not_show">Do not show again</string>
+ <!-- Prefix text for the account picker, e.g. "Requesting as user@gmail.com" [CHAR LIMIT=60] -->
+ <string name="support_account_request_prefix">Requesting as</string>
+
+ <!-- Spinner dropdown text, when selected will try to add account [CHAR LIMIT=60] -->
+ <string name="support_account_picker_add_account">Add account</string>
+
<!-- [CHAR LIMIT=60] Title of work profile setting page -->
<string name="managed_profile_settings_title">Work profile settings</string>
<!-- [CHAR LIMIT=60] The preference title for enabling cross-profile remote contact search -->
@@ -7973,6 +7983,8 @@
<string name="auto_sync_personal_account_title">Auto sync personal account data</string>
<!-- Switch label to enable auto sync work account [CHAR LIMIT=60] -->
<string name="auto_sync_work_account_title">Auto sync work account data</string>
+ <!-- Preference label to sync account [CHAR LIMIT=60] -->
+ <string name="account_sync_title">Account sync</string>
<!-- Enterprise Privacy --> <skip />
@@ -7983,20 +7995,28 @@
<!-- Enterprise Privacy settings activity header, summarizing the powers that the admin has. [CHAR LIMIT=NONE] -->
<string name="enterprise_privacy_header">To provide access to your work data, your organization may change settings and install software on your device, which could cause some of your personal content to be visible to your admin. Contact your organization\'s admin for more details.</string>
<!-- Title for the 'What types of information can your organization see?' preference category. [CHAR LIMIT=60] -->
- <string name="exposure_category">What types of information can your organization see?</string>
+ <string name="enterprise_privacy_exposure_category">What types of information can your organization see?</string>
<!-- Title for the 'What changes affect what your organization can see?' preference category. [CHAR LIMIT=60] -->
- <string name="exposure_changes_category">What changes affect what your organization can see?</string>
+ <string name="enterprise_privacy_exposure_changes_category">What changes affect what your organization can see?</string>
<!-- Title for the 'What actions may impact your access to this device?' preference category. [CHAR LIMIT=60] -->
- <string name="device_access_category">What actions may impact your access to this device?</string>
+ <string name="enterprise_privacy_device_access_category">What actions may impact your access to this device?</string>
<!-- Label explaining that the admin can see data associated with his/her work account. [CHAR LIMIT=NONE] -->
- <string name="enterprise_data">Data associated with your work account, such as email and calendar</string>
+ <string name="enterprise_privacy_enterprise_data">Data associated with your work account, such as email and calendar</string>
<!-- Label explaining that the admin can see all apps installed on the device. [CHAR LIMIT=NONE] -->
- <string name="number_installed_packages_default">List of all apps on your device</string>
+ <string name="enterprise_privacy_number_installed_packages_default">List of all apps on your device</string>
<!-- Label explaining that the admin can see all apps installed on the device. [CHAR LIMIT=NONE] -->
- <plurals name="number_installed_packages">
+ <plurals name="enterprise_privacy_number_installed_packages">
<item quantity="one">List of all <xliff:g id="count">%d</xliff:g> app on your device</item>
<item quantity="other">List of all <xliff:g id="count">%d</xliff:g> apps on your device</item>
</plurals>
<!-- Label explaining that the admin can see app usage statistics. [CHAR LIMIT=NONE] -->
- <string name="usage_stats">Usage (time spent and amount of data used) of each app on your device</string>
+ <string name="enterprise_privacy_usage_stats">Usage (time spent and amount of data used) of each app on your device</string>
+ <!-- Label explaining that the admin can retrieve network logs on the device. [CHAR LIMIT=NONE] -->
+ <string name="enterprise_privacy_network_logs">Traffic logs on your device</string>
+ <!-- Label explaining that the admin can request bug reports on the device. [CHAR LIMIT=NONE] -->
+ <string name="enterprise_privacy_bug_reports">Your most recent bug report</string>
+ <!-- Label explaining that the admin can retrieve security on from the device. [CHAR LIMIT=NONE] -->
+ <string name="enterprise_privacy_security_logs">Your most recent security log</string>
+ <!-- Label indicating that the date at which the admin last took a particular action was "never" (i.e. the admin never took the action so far). -->
+ <string name="enterprise_privacy_never">Never</string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index a18fde3..f4b39d4 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -93,22 +93,6 @@
<item name="android:windowContentOverlay">@null</item>
</style>
- <style name="Preference">
- <item name="android:layout">@layout/preference_material_settings</item>
- </style>
-
- <style name="SyncSwitchPreference" parent="Preference">
- <item name="android:widgetLayout">@layout/preference_widget_sync_toggle</item>
- </style>
-
- <style name="EditTextPreference" parent="@*android:style/Preference.Material.DialogPreference.EditTextPreference">
- <item name="android:dialogLayout">@layout/preference_dialog_edittext</item>
- </style>
-
- <style name="PreferenceTheme" parent="@*android:style/PreferenceTheme">
- <item name="android:scrollbars">vertical</item>
- </style>
-
<style name="PreferenceHeaderPanelSinglePane">
<item name="android:layout_marginStart">0dp</item>
<item name="android:layout_marginEnd">0dp</item>
@@ -156,18 +140,6 @@
<item name="android:scrollbarStyle">outsideOverlay</item>
</style>
- <style name="PreferenceFragmentStyle" parent="@*android:style/PreferenceFragment.Material">
- <item name="android:layout">@layout/preference_list_fragment</item>
- </style>
-
- <style name="VertDivider">
- <item name="android:layout_width">@dimen/vert_divider_width</item>
- <item name="android:layout_height">fill_parent</item>
- <item name="android:background">@color/divider_color</item>
- <item name="android:focusable">false</item>
- <item name="android:clickable">false</item>
- </style>
-
<style name="TextAppearance.SetupWizardDescription" parent="@android:style/TextAppearance.Material.Subhead">
</style>
@@ -324,10 +296,6 @@
<!-- Scrollbar style OUTSIDE_OVERLAY -->
<integer name="preference_scrollbar_style">33554432</integer>
- <style name="ApnPreference">
- <item name="android:layout">@layout/apn_preference_layout</item>
- </style>
-
<style name="AppListSwitchPreference" parent="@*android:style/Preference.Material.DialogPreference">
<item name="android:widgetLayout">@*android:layout/preference_widget_switch</item>
</style>
diff --git a/res/values/styles_preference.xml b/res/values/styles_preference.xml
new file mode 100644
index 0000000..a504166
--- /dev/null
+++ b/res/values/styles_preference.xml
@@ -0,0 +1,58 @@
+<?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.
+ -->
+
+<!-- This file only contains custom attribute and style definition for preferences -->
+<!-- Things unrelated to preference framework UI customization should go to other styles files -->
+<resources>
+ <style name="ApnPreference">
+ <item name="android:layout">@layout/apn_preference_layout</item>
+ </style>
+
+ <style name="EditTextPreference"
+ parent="@style/Preference.DialogPreference.EditTextPreference.Material">
+ <item name="android:layout">@layout/preference_material_settings</item>
+ <item name="android:dialogLayout">@layout/preference_dialog_edittext</item>
+ </style>
+
+ <style name="PreferenceFragmentStyle" parent="@*android:style/PreferenceFragment.Material">
+ <item name="android:layout">@layout/preference_list_fragment</item>
+ </style>
+
+ <style name="SettingsPreference">
+ <item name="android:layout">@layout/preference_material_settings</item>
+ </style>
+
+ <style name="SettingsDropdownPreference">
+ <item name="android:layout">@layout/preference_dropdown_material_settings</item>
+ </style>
+
+ <style name="SettingsDialogPreference" parent="SettingsPreference"/>
+
+ <style name="SettingsPreferenceCategory" parent="@style/Preference.Category.Material">
+ <item name="android:layout">@layout/preference_category_material_settings</item>
+ </style>
+
+ <style name="SettingsSwitchPreference" parent="SettingsPreference">
+ <item name="widgetLayout">@*android:layout/preference_widget_switch</item>
+ <item name="switchTextOn">@*android:string/capital_on</item>
+ <item name="switchTextOff">@*android:string/capital_off</item>
+ </style>
+
+ <style name="SyncSwitchPreference" parent="SettingsPreference">
+ <item name="android:widgetLayout">@layout/preference_widget_sync_toggle</item>
+ </style>
+</resources>
\ No newline at end of file
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 6b765f7..edc1dbf 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -88,11 +88,16 @@
</style>
<style name="PreferenceTheme" parent="@style/PreferenceThemeOverlay.v14.Material">
- <item name="android:preferenceStyle">@style/Preference</item>
- <item name="android:editTextPreferenceStyle">@style/EditTextPreference</item>
- <item name="dropdownPreferenceStyle">@style/Preference.DropDown.Material</item>
- <item name="android:preferenceFragmentStyle">@style/PreferenceFragmentStyle</item>
+ <!-- Parent path frameworks/support/v14/preference/res/values/themes.xml -->
+ <item name="android:scrollbars">vertical</item>
<item name="apnPreferenceStyle">@style/ApnPreference</item>
+ <item name="dialogPreferenceStyle">@style/SettingsDialogPreference</item>
+ <item name="dropdownPreferenceStyle">@style/SettingsDropdownPreference</item>
+ <item name="editTextPreferenceStyle">@style/EditTextPreference</item>
+ <item name="preferenceCategoryStyle">@style/SettingsPreferenceCategory</item>
+ <item name="preferenceFragmentStyle">@style/PreferenceFragmentStyle</item>
+ <item name="preferenceStyle">@style/SettingsPreference</item>
+ <item name="switchPreferenceStyle">@style/SettingsSwitchPreference</item>
</style>
<style name="PreferenceTheme.SetupWizard" parent="PreferenceTheme">
@@ -124,6 +129,7 @@
<style name="Theme.Settings" parent="Theme.SettingsBase">
<item name="preferenceTheme">@style/PreferenceTheme</item>
+ <item name="android:listPreferredItemHeight">72dip</item>
<item name="*android:preferenceHeaderPanelStyle">@style/PreferenceHeaderPanelSinglePane</item>
<item name="*android:preferencePanelStyle">@style/PreferencePanelSinglePane</item>
<item name="*android:preferenceListStyle">@style/PreferenceHeaderListSinglePane</item>
diff --git a/res/xml/about_legal.xml b/res/xml/about_legal.xml
index 48e81f4..596effe 100644
--- a/res/xml/about_legal.xml
+++ b/res/xml/about_legal.xml
@@ -15,7 +15,7 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- android:title="@string/legal_information">
+ android:title="@string/legal_information">
<!-- Note: The titles given here probably won't be used. Instead, we programmatically
fill the title with the label of the activity with the corresponding action.
@@ -23,38 +23,37 @@
list. -->
<!-- Copyright information -->
- <PreferenceScreen
+ <Preference
android:key="copyright"
android:title="@string/copyright_title">
- <intent android:action="android.settings.COPYRIGHT" />
- </PreferenceScreen>
+ <intent android:action="android.settings.COPYRIGHT"/>
+ </Preference>
<!-- License information -->
- <PreferenceScreen
+ <Preference
android:key="license"
android:title="@string/license_title">
- <intent android:action="android.settings.LICENSE" />
- </PreferenceScreen>
+ <intent android:action="android.settings.LICENSE"/>
+ </Preference>
<!-- Terms and conditions -->
- <PreferenceScreen
+ <Preference
android:key="terms"
android:title="@string/terms_title">
- <intent android:action="android.settings.TERMS" />
- </PreferenceScreen>
+ <intent android:action="android.settings.TERMS"/>
+ </Preference>
<!-- System WebView License information -->
- <PreferenceScreen
+ <Preference
android:key="webview_license"
android:title="@string/webview_license_title">
- <intent android:action="android.settings.WEBVIEW_LICENSE" />
- </PreferenceScreen>
+ <intent android:action="android.settings.WEBVIEW_LICENSE"/>
+ </Preference>
<Preference
android:key="wallpaper_attributions"
android:title="@string/wallpaper_attributions"
- android:summary="@string/wallpaper_attributions_values"
- />
+ android:summary="@string/wallpaper_attributions_values"/>
</PreferenceScreen>
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index 11cde5e..8bb54c6 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -15,7 +15,6 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
android:title="@string/accessibility_settings"
android:persistent="true">
@@ -28,17 +27,17 @@
android:key="system_category"
android:title="@string/accessibility_system_title">
- <PreferenceScreen
+ <Preference
android:fragment="com.android.settings.accessibility.CaptionPropertiesFragment"
android:key="captioning_preference_screen"
android:title="@string/accessibility_captioning_title" />
- <PreferenceScreen
+ <Preference
android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
android:key="screen_magnification_preference_screen"
android:title="@string/accessibility_screen_magnification_title"/>
- <PreferenceScreen
+ <Preference
android:fragment="com.android.settings.accessibility.ToggleFontSizePreferenceFragment"
android:key="font_size_preference_screen"
android:title="@string/title_font_size"/>
@@ -47,7 +46,7 @@
android:key="screen_zoom"
android:title="@string/screen_zoom_title"/>
- <PreferenceScreen
+ <Preference
android:fragment="com.android.settings.accessibility.ToggleAutoclickPreferenceFragment"
android:key="autoclick_preference_screen"
android:title="@string/accessibility_autoclick_preference_title"/>
@@ -82,12 +81,13 @@
android:summary="@string/accessibility_toggle_master_mono_summary"
android:persistent="false"/>
- <PreferenceScreen
+ <Preference
android:fragment="com.android.settings.accessibility.ToggleGlobalGesturePreferenceFragment"
android:key="enable_global_gesture_preference_screen"
android:title="@string/accessibility_global_gesture_preference_title"/>
- <PreferenceScreen android:key="tts_settings_preference"
+ <Preference
+ android:key="tts_settings_preference"
android:fragment="com.android.settings.tts.TextToSpeechSettings"
android:title="@string/tts_settings_title"/>
@@ -107,7 +107,7 @@
android:title="@string/accessibility_display_inversion_preference_title"
android:summary="@string/accessibility_display_inversion_preference_subtitle"
android:persistent="false" />
- <PreferenceScreen
+ <Preference
android:fragment="com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment"
android:key="daltonizer_preference_screen"
android:title="@string/accessibility_display_daltonizer_preference_title" />
diff --git a/res/xml/account_type_settings.xml b/res/xml/account_type_settings.xml
new file mode 100644
index 0000000..f9e5aa8
--- /dev/null
+++ b/res/xml/account_type_settings.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+ android:title="@string/account_settings_title"
+ settings:keywords="@string/keywords_accounts">
+
+ <Preference
+ android:key="account_sync"
+ android:title="@string/account_sync_title"
+ android:order="1"/>
+
+ <PreferenceCategory
+ android:key="dashboard_tile_placeholder"
+ android:order="10"/>
+
+</PreferenceScreen>
diff --git a/res/xml/advanced_apps.xml b/res/xml/advanced_apps.xml
index 7e2e9cd..c17da05 100644
--- a/res/xml/advanced_apps.xml
+++ b/res/xml/advanced_apps.xml
@@ -29,11 +29,10 @@
<PreferenceCategory
android:title="@string/default_apps_title">
- <PreferenceScreen
+ <Preference
android:key="domain_urls"
android:title="@string/domain_urls_title"
- android:fragment="com.android.settings.applications.ManageDomainUrls">
- </PreferenceScreen>
+ android:fragment="com.android.settings.applications.ManageDomainUrls" />
<Preference
android:key="assist_and_voice_input"
diff --git a/res/xml/app_and_notification.xml b/res/xml/app_and_notification.xml
index 10d81df..b172e2a 100644
--- a/res/xml/app_and_notification.xml
+++ b/res/xml/app_and_notification.xml
@@ -17,7 +17,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
+ xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+ android:title="@string/app_and_notification_dashboard_title">
<Preference
android:key="manage_perms"
diff --git a/res/xml/app_default_settings.xml b/res/xml/app_default_settings.xml
index 932fa60..5da5326 100644
--- a/res/xml/app_default_settings.xml
+++ b/res/xml/app_default_settings.xml
@@ -64,8 +64,7 @@
<Preference
android:key="domain_urls"
android:title="@string/domain_urls_title"
- android:fragment="com.android.settings.applications.ManageDomainUrls">
- </Preference>
+ android:fragment="com.android.settings.applications.ManageDomainUrls"/>
<com.android.settings.WorkOnlyCategory
android:key="work_defaults"
diff --git a/res/xml/connected_devices.xml b/res/xml/connected_devices.xml
index bf40f9d..188fd86 100644
--- a/res/xml/connected_devices.xml
+++ b/res/xml/connected_devices.xml
@@ -14,7 +14,9 @@
limitations under the License.
-->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:title="@string/connected_devices_dashboard_title">
<SwitchPreference
android:key="toggle_nfc"
diff --git a/res/xml/date_time_prefs.xml b/res/xml/date_time_prefs.xml
index e573bbd..34d48f1 100644
--- a/res/xml/date_time_prefs.xml
+++ b/res/xml/date_time_prefs.xml
@@ -43,7 +43,7 @@
android:summary="12:00am"
/>
- <PreferenceScreen
+ <Preference
android:fragment="com.android.settings.ZonePicker"
android:key="timezone"
android:title="@string/date_time_set_timezone"
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index d84b008..804ede9 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -22,7 +22,7 @@
android:title="@*android:string/bugreport_title"
android:dialogTitle="@*android:string/bugreport_title" />
- <PreferenceScreen
+ <Preference
android:key="local_backup_password"
android:title="@string/local_backup_password_title"
android:summary="@string/local_backup_password_summary_none"
@@ -31,7 +31,7 @@
android:action="android.settings.privacy.SET_FULL_BACKUP_PASSWORD"
android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.SetFullBackupPassword" />
- </PreferenceScreen>
+ </Preference>
<com.android.settingslib.RestrictedSwitchPreference
android:key="keep_screen_on"
@@ -57,13 +57,13 @@
android:summary="@string/oem_unlock_enable_summary"
settings:useAdditionalSummary="true"/>
- <PreferenceScreen
+ <Preference
android:key="running_apps"
android:title="@string/runningservices_settings_title"
android:summary="@string/runningservices_settings_summary"
android:fragment="com.android.settings.applications.RunningServices" />
- <PreferenceScreen
+ <Preference
android:key="convert_to_file_encryption"
android:title="@string/convert_to_file_encryption"
android:summary="@string/convert_to_file_encryption_enabled"
@@ -94,11 +94,11 @@
android:key="ota_disable_automatic_update"
android:title="@string/ota_disable_automatic_update" />
- <PreferenceScreen
+ <Preference
android:key="demo_mode"
android:title="@string/demo_mode">
<intent android:action="com.android.settings.action.DEMO_MODE" />
- </PreferenceScreen>
+ </Preference>
<PreferenceCategory android:key="debug_debugging_category"
android:title="@string/debug_debugging_category">
@@ -121,14 +121,14 @@
android:title="@string/bugreport_in_power"
android:summary="@string/bugreport_in_power_summary"/>
- <PreferenceScreen android:key="mock_location_app"
+ <Preference android:key="mock_location_app"
android:title="@string/mock_location_app" />
<SwitchPreference
android:key="debug_view_attributes"
android:title="@string/debug_view_attributes" />
- <PreferenceScreen android:key="debug_app"
+ <Preference android:key="debug_app"
android:title="@string/debug_app" />
<SwitchPreference
diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml
index 66cf8f4..cee2e70 100644
--- a/res/xml/device_info_settings.xml
+++ b/res/xml/device_info_settings.xml
@@ -19,56 +19,54 @@
android:title="@string/about_settings">
<!-- System update settings - launches activity -->
- <PreferenceScreen android:key="system_update_settings"
+ <Preference android:key="system_update_settings"
android:title="@string/system_update_settings_list_item_title"
android:summary="@string/system_update_settings_list_item_summary">
<intent android:action="android.settings.SYSTEM_UPDATE_SETTINGS" />
- </PreferenceScreen>
+ </Preference>
- <PreferenceScreen android:key="additional_system_update_settings"
+ <Preference android:key="additional_system_update_settings"
android:title="@string/additional_system_update_settings_list_item_title">
<intent android:action="android.intent.action.MAIN"
android:targetPackage="@string/additional_system_update"
android:targetClass="@string/additional_system_update_menu" />
- </PreferenceScreen>
+ </Preference>
<!-- Device status - launches activity -->
- <PreferenceScreen android:key="status_info"
+ <Preference android:key="status_info"
android:title="@string/device_status"
android:summary="@string/device_status_summary"
- android:fragment="com.android.settings.deviceinfo.Status">
- </PreferenceScreen>
+ android:fragment="com.android.settings.deviceinfo.Status"/>
<!-- Manual -->
- <PreferenceScreen
+ <Preference
android:key="manual"
android:title="@string/manual">
<intent android:action="android.settings.SHOW_MANUAL" />
- </PreferenceScreen>
+ </Preference>
<!-- Legal Information -->
- <PreferenceScreen
+ <Preference
android:key="container"
android:title="@string/legal_information"
android:fragment="com.android.settings.LegalSettings" />
- <PreferenceScreen
+ <Preference
android:key="regulatory_info"
android:title="@string/regulatory_labels">
<intent android:action="android.settings.SHOW_REGULATORY_INFO" />
- </PreferenceScreen>
+ </Preference>
- <PreferenceScreen
+ <Preference
android:key="safety_info"
android:title="@string/safety_and_regulatory_info">
<intent android:action="android.settings.SHOW_SAFETY_AND_REGULATORY_INFO" />
- </PreferenceScreen>
+ </Preference>
<!-- Feedback on the device -->
- <PreferenceScreen android:key="device_feedback"
- android:title="@string/device_feedback">
- </PreferenceScreen>
+ <Preference android:key="device_feedback"
+ android:title="@string/device_feedback" />
<!-- Device hardware model -->
<com.android.settings.DividerPreference
@@ -89,12 +87,12 @@
android:summary="@string/device_info_default"/>
<!-- Security patch level -->
- <PreferenceScreen android:key="security_patch"
+ <Preference android:key="security_patch"
android:title="@string/security_patch"
android:summary="@string/device_info_default">
<intent android:action="android.intent.action.VIEW"
android:data="https://source.android.com/security/bulletin/" />
- </PreferenceScreen>
+ </Preference>
<!-- Device FCC equipment id -->
<com.android.settings.DividerPreference
diff --git a/res/xml/enterprise_privacy_settings.xml b/res/xml/enterprise_privacy_settings.xml
index 1dbb66c..e1761e2 100644
--- a/res/xml/enterprise_privacy_settings.xml
+++ b/res/xml/enterprise_privacy_settings.xml
@@ -24,28 +24,43 @@
android:summary="@string/enterprise_privacy_header"
android:selectable="false"/>
- <PreferenceCategory android:title="@string/exposure_category">
+ <PreferenceCategory android:title="@string/enterprise_privacy_exposure_category">
<com.android.settings.DividerPreference
android:key="enterprise_data"
android:layout_height="wrap_content"
- android:title="@string/enterprise_data"
+ android:title="@string/enterprise_privacy_enterprise_data"
settings:allowDividerBelow="true"
settings:multiLine="true"/>
<com.android.settings.DividerPreference
android:key="number_installed_packages"
- android:title="@string/number_installed_packages_default"
+ android:title="@string/enterprise_privacy_number_installed_packages_default"
settings:allowDividerBelow="true"
settings:multiLine="true"/>
<com.android.settings.DividerPreference
android:key="usage_stats"
- android:title="@string/usage_stats"
+ android:title="@string/enterprise_privacy_usage_stats"
+ settings:allowDividerBelow="true"
+ settings:multiLine="true"/>
+ <com.android.settings.DividerPreference
+ android:key="network_logs"
+ android:title="@string/enterprise_privacy_network_logs"
+ settings:allowDividerBelow="true"
+ settings:multiLine="true"/>
+ <com.android.settings.DividerPreference
+ android:key="bug_reports"
+ android:title="@string/enterprise_privacy_bug_reports"
+ settings:allowDividerBelow="true"
+ settings:multiLine="true"/>
+ <com.android.settings.DividerPreference
+ android:key="security_logs"
+ android:title="@string/enterprise_privacy_security_logs"
settings:allowDividerBelow="true"
settings:multiLine="true"/>
</PreferenceCategory>
- <PreferenceCategory android:title="@string/exposure_changes_category">
+ <PreferenceCategory android:title="@string/enterprise_privacy_exposure_changes_category">
</PreferenceCategory>
- <PreferenceCategory android:title="@string/device_access_category">
+ <PreferenceCategory android:title="@string/enterprise_privacy_device_access_category">
</PreferenceCategory>
</PreferenceScreen>
diff --git a/res/xml/ia_display_settings.xml b/res/xml/ia_display_settings.xml
index 31b524a..756d551 100644
--- a/res/xml/ia_display_settings.xml
+++ b/res/xml/ia_display_settings.xml
@@ -61,7 +61,7 @@
settings:keywords="@string/keywords_display_auto_brightness"
android:summary="@string/auto_brightness_summary" />
- <PreferenceScreen
+ <Preference
android:key="font_size"
android:title="@string/title_font_size"
android:fragment="com.android.settings.accessibility.ToggleFontSizePreferenceFragment"
@@ -72,7 +72,7 @@
android:title="@string/screen_zoom_title"
settings:keywords="@string/screen_zoom_keywords" />
- <PreferenceScreen
+ <Preference
android:key="screensaver"
android:title="@string/screensaver_settings_title"
android:fragment="com.android.settings.DreamSettings" />
@@ -105,7 +105,7 @@
android:title="@string/tap_to_wake"
android:summary="@string/tap_to_wake_summary" />
- <PreferenceScreen
+ <Preference
android:key="wifi_display"
android:title="@string/wifi_display_settings_title"
settings:keywords="@string/keywords_display_cast_screen"
diff --git a/res/xml/network_and_internet.xml b/res/xml/network_and_internet.xml
index bce5dd9..2dfb1cc 100644
--- a/res/xml/network_and_internet.xml
+++ b/res/xml/network_and_internet.xml
@@ -16,7 +16,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
+ xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+ android:title="@string/network_dashboard_title">
<SwitchPreference
android:key="toggle_airplane"
diff --git a/res/xml/pick_up_gesture_settings.xml b/res/xml/pick_up_gesture_settings.xml
index 4ef81a2..6b67e64 100644
--- a/res/xml/pick_up_gesture_settings.xml
+++ b/res/xml/pick_up_gesture_settings.xml
@@ -15,8 +15,9 @@
limitations under the License.
-->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto">
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
<com.android.settings.widget.VideoPreference
android:key="gesture_pick_up_video"
diff --git a/res/xml/security_settings_misc.xml b/res/xml/security_settings_misc.xml
index 68a867e..d724b74 100644
--- a/res/xml/security_settings_misc.xml
+++ b/res/xml/security_settings_misc.xml
@@ -114,7 +114,7 @@
android:persistent="false"
android:fragment="com.android.settings.TrustAgentSettings"/>
- <PreferenceScreen
+ <Preference
android:key="screen_pinning_settings"
android:title="@string/screen_pinning_title"
android:summary="@string/switch_off_text"
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 227a650..c74d1f1 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -16,9 +16,9 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
- android:title="@string/sound_settings"
- android:key="sound_settings"
- settings:keywords="@string/keywords_sounds">
+ android:title="@string/sound_settings"
+ android:key="sound_settings"
+ settings:keywords="@string/keywords_sounds">
<!-- Media volume -->
<com.android.settings.notification.VolumeSeekBarPreference
@@ -87,7 +87,7 @@
android:key="cell_broadcast_settings"
android:title="@string/cell_broadcast_settings"
settings:useAdminDisabledSummary="true">
- <intent
+ <intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.cellbroadcastreceiver"
android:targetClass="com.android.cellbroadcastreceiver.CellBroadcastSettings" />
@@ -101,7 +101,7 @@
android:fragment="com.android.settings.notification.OtherSoundSettings" />
<!-- Cast -->
- <PreferenceScreen
+ <Preference
android:key="wifi_display"
android:title="@string/wifi_display_settings_title"
android:fragment="com.android.settings.wfd.WifiDisplaySettings" />
diff --git a/res/xml/user_and_accounts_settings.xml b/res/xml/user_and_accounts_settings.xml
index 1c487ae..9bb39f6 100644
--- a/res/xml/user_and_accounts_settings.xml
+++ b/res/xml/user_and_accounts_settings.xml
@@ -14,10 +14,11 @@
limitations under the License.
-->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
- android:title="@string/account_settings_title"
- settings:keywords="@string/keywords_accounts">
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+ android:title="@string/account_dashboard_title"
+ settings:keywords="@string/keywords_accounts">
<Preference
android:key="emergency_info"
@@ -33,7 +34,7 @@
<SwitchPreference
android:key="auto_sync_account_data"
android:title="@string/auto_sync_account_title"
- android:order="102" />
+ android:order="102"/>
<SwitchPreference
android:key="auto_sync_work_account_data"
@@ -52,4 +53,8 @@
settings:useAdditionalSummary="true"
android:order="105"/>
+ <PreferenceCategory
+ android:key="dashboard_tile_placeholder"
+ android:order="200"/>
+
</PreferenceScreen>
diff --git a/src/com/android/settings/AccountPreference.java b/src/com/android/settings/AccountPreference.java
deleted file mode 100644
index fe39244..0000000
--- a/src/com/android/settings/AccountPreference.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * 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;
-
-import android.accounts.Account;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceViewHolder;
-import android.util.Log;
-import android.widget.ImageView;
-
-import java.util.ArrayList;
-
-/**
- * AccountPreference is used to display a username, status and provider icon for an account on
- * the device.
- */
-public class AccountPreference extends Preference {
- private static final String TAG = "AccountPreference";
- public static final int SYNC_ENABLED = 0; // all know sync adapters are enabled and OK
- public static final int SYNC_DISABLED = 1; // no sync adapters are enabled
- public static final int SYNC_ERROR = 2; // one or more sync adapters have a problem
- public static final int SYNC_IN_PROGRESS = 3; // currently syncing
- private int mStatus;
- private Account mAccount;
- private ArrayList<String> mAuthorities;
- private ImageView mSyncStatusIcon;
- private boolean mShowTypeIcon;
-
- public AccountPreference(Context context, Account account, Drawable icon,
- ArrayList<String> authorities, boolean showTypeIcon) {
- super(context);
- mAccount = account;
- mAuthorities = authorities;
- mShowTypeIcon = showTypeIcon;
- if (showTypeIcon) {
- setIcon(icon);
- } else {
- setIcon(getSyncStatusIcon(SYNC_DISABLED));
- }
- setTitle(mAccount.name);
- setSummary("");
- setPersistent(false);
- setSyncStatus(SYNC_DISABLED, false);
- }
-
- public Account getAccount() {
- return mAccount;
- }
-
- public ArrayList<String> getAuthorities() {
- return mAuthorities;
- }
-
- @Override
- public void onBindViewHolder(PreferenceViewHolder view) {
- super.onBindViewHolder(view);
- if (!mShowTypeIcon) {
- mSyncStatusIcon = (ImageView) view.findViewById(android.R.id.icon);
- mSyncStatusIcon.setImageResource(getSyncStatusIcon(mStatus));
- mSyncStatusIcon.setContentDescription(getSyncContentDescription(mStatus));
- }
- }
-
- public void setSyncStatus(int status, boolean updateSummary) {
- mStatus = status;
- if (!mShowTypeIcon && mSyncStatusIcon != null) {
- mSyncStatusIcon.setImageResource(getSyncStatusIcon(status));
- mSyncStatusIcon.setContentDescription(getSyncContentDescription(mStatus));
- }
- if (updateSummary) {
- setSummary(getSyncStatusMessage(status));
- }
- }
-
- private int getSyncStatusMessage(int status) {
- int res;
- switch (status) {
- case SYNC_ENABLED:
- res = R.string.sync_enabled;
- break;
- case SYNC_DISABLED:
- res = R.string.sync_disabled;
- break;
- case SYNC_ERROR:
- res = R.string.sync_error;
- break;
- case SYNC_IN_PROGRESS:
- res = R.string.sync_in_progress;
- break;
- default:
- res = R.string.sync_error;
- Log.e(TAG, "Unknown sync status: " + status);
- }
- return res;
- }
-
- private int getSyncStatusIcon(int status) {
- int res;
- switch (status) {
- case SYNC_ENABLED:
- case SYNC_IN_PROGRESS:
- res = R.drawable.ic_settings_sync;
- break;
- case SYNC_DISABLED:
- res = R.drawable.ic_sync_grey_holo;
- break;
- case SYNC_ERROR:
- res = R.drawable.ic_sync_red_holo;
- break;
- default:
- res = R.drawable.ic_sync_red_holo;
- Log.e(TAG, "Unknown sync status: " + status);
- }
- return res;
- }
-
- private String getSyncContentDescription(int status) {
- switch (status) {
- case SYNC_ENABLED:
- return getContext().getString(R.string.accessibility_sync_enabled);
- case SYNC_DISABLED:
- return getContext().getString(R.string.accessibility_sync_disabled);
- case SYNC_ERROR:
- return getContext().getString(R.string.accessibility_sync_error);
- case SYNC_IN_PROGRESS:
- return getContext().getString(R.string.accessibility_sync_in_progress);
- default:
- Log.e(TAG, "Unknown sync status: " + status);
- return getContext().getString(R.string.accessibility_sync_error);
- }
- }
-}
diff --git a/src/com/android/settings/ActiveNetworkScorerDialog.java b/src/com/android/settings/ActiveNetworkScorerDialog.java
index d440c96..ae04b58 100644
--- a/src/com/android/settings/ActiveNetworkScorerDialog.java
+++ b/src/com/android/settings/ActiveNetworkScorerDialog.java
@@ -75,13 +75,14 @@
Log.i(TAG, "Can only set scorer for owner/system user.");
return false;
}
- NetworkScorerAppData newScorer = NetworkScorerAppManager.getScorer(this, mNewPackageName);
+ NetworkScorerAppManager networkScorerAppManager = new NetworkScorerAppManager(this);
+ NetworkScorerAppData newScorer = networkScorerAppManager.getScorer(mNewPackageName);
if (newScorer == null) {
Log.e(TAG, "New package " + mNewPackageName + " is not a valid scorer.");
return false;
}
- NetworkScorerAppData oldScorer = NetworkScorerAppManager.getActiveScorer(this);
+ NetworkScorerAppData oldScorer = networkScorerAppManager.getActiveScorer();
if (oldScorer != null && TextUtils.equals(oldScorer.mPackageName, mNewPackageName)) {
Log.i(TAG, "New package " + mNewPackageName + " is already the active scorer.");
// Set RESULT_OK to indicate to the caller that the "switch" was successful.
diff --git a/src/com/android/settings/ApnEditor.java b/src/com/android/settings/ApnEditor.java
index 061c18a..f97811c 100644
--- a/src/com/android/settings/ApnEditor.java
+++ b/src/com/android/settings/ApnEditor.java
@@ -759,6 +759,8 @@
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.setOnKeyListener(this);
+ view.setFocusableInTouchMode(true);
+ view.requestFocus();
}
public boolean onKey(View v, int keyCode, KeyEvent event) {
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index a01ecf7..845f8cb 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -185,22 +185,15 @@
ENCRYPT_REQUESTED_DISABLED);
}
- int targetUser = Utils.getSecureTargetUser(
+ // a) If this is started from other user, use that user id.
+ // b) If this is started from the same user, read the extra if this is launched
+ // from Settings app itself.
+ // c) Otherwise, use UserHandle.myUserId().
+ mUserId = Utils.getSecureTargetUser(
getActivity().getActivityToken(),
UserManager.get(getActivity()),
- null,
+ getArguments(),
getActivity().getIntent().getExtras()).getIdentifier();
- if (ACTION_SET_NEW_PARENT_PROFILE_PASSWORD.equals(chooseLockAction)
- || !mLockPatternUtils.isSeparateProfileChallengeAllowed(targetUser)) {
- // Always use parent if explicitely requested or if profile challenge is not
- // supported
- Bundle arguments = getArguments();
- mUserId = Utils.getUserIdFromBundle(getContext(), arguments != null ? arguments
- : getActivity().getIntent().getExtras());
- } else {
- mUserId = targetUser;
- }
-
if (ACTION_SET_NEW_PASSWORD.equals(chooseLockAction)
&& UserManager.get(getActivity()).isManagedProfile(mUserId)
&& mLockPatternUtils.isSeparateProfileChallengeEnabled(mUserId)) {
@@ -255,6 +248,8 @@
} else if (KEY_SKIP_FINGERPRINT.equals(key)) {
Intent chooseLockGenericIntent = new Intent(getActivity(), ChooseLockGeneric.class);
chooseLockGenericIntent.setAction(getIntent().getAction());
+ // Forward the target user id to ChooseLockGeneric.
+ chooseLockGenericIntent.putExtra(Intent.EXTRA_USER_ID, mUserId);
chooseLockGenericIntent.putExtra(PASSWORD_CONFIRMED, mPasswordConfirmed);
startActivityForResult(chooseLockGenericIntent, SKIP_FINGERPRINT_REQUEST);
return true;
@@ -342,6 +337,8 @@
if (data != null) {
intent.putExtras(data.getExtras());
}
+ // Forward the target user id to fingerprint setup page.
+ intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
startActivity(intent);
finish();
} else if (requestCode == SKIP_FINGERPRINT_REQUEST) {
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index 3c66b7e..351c2a2 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -51,7 +51,7 @@
import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.LockPatternUtils.RequestThrottledException;
import com.android.internal.widget.TextViewInputDisabler;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.notification.RedactionInterstitial;
import com.android.settings.password.PasswordRequirementAdapter;
import com.android.setupwizardlib.GlifLayout;
@@ -157,7 +157,7 @@
layout.setFitsSystemWindows(false);
}
- public static class ChooseLockPasswordFragment extends InstrumentedFragment
+ public static class ChooseLockPasswordFragment extends InstrumentedPreferenceFragment
implements OnClickListener, OnEditorActionListener, TextWatcher,
SaveAndFinishWorker.Listener {
private static final String KEY_FIRST_PIN = "first_pin";
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index d92e6aa..4afeae0 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -37,7 +37,7 @@
import com.android.internal.widget.LockPatternView;
import com.android.internal.widget.LockPatternView.Cell;
import com.android.internal.widget.LockPatternView.DisplayMode;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.notification.RedactionInterstitial;
import com.android.setupwizardlib.GlifLayout;
import com.google.android.collect.Lists;
@@ -127,7 +127,7 @@
return super.onKeyDown(keyCode, event);
}
- public static class ChooseLockPatternFragment extends InstrumentedFragment
+ public static class ChooseLockPatternFragment extends InstrumentedPreferenceFragment
implements View.OnClickListener, SaveAndFinishWorker.Listener {
public static final int CONFIRM_EXISTING_REQUEST = 55;
diff --git a/src/com/android/settings/CreateShortcut.java b/src/com/android/settings/CreateShortcut.java
index 7317738..7cd6748 100644
--- a/src/com/android/settings/CreateShortcut.java
+++ b/src/com/android/settings/CreateShortcut.java
@@ -85,6 +85,11 @@
return false;
}
+ @Override
+ protected void onSetContentView() {
+ setContentView(R.layout.activity_list);
+ }
+
/**
* Perform query on package manager for list items. The default
* implementation queries for activities.
diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java
index e12ebe0..d61fd98 100644
--- a/src/com/android/settings/CryptKeeperConfirm.java
+++ b/src/com/android/settings/CryptKeeperConfirm.java
@@ -35,11 +35,11 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import java.util.Locale;
-public class CryptKeeperConfirm extends InstrumentedFragment {
+public class CryptKeeperConfirm extends InstrumentedPreferenceFragment {
private static final String TAG = "CryptKeeperConfirm";
diff --git a/src/com/android/settings/CryptKeeperSettings.java b/src/com/android/settings/CryptKeeperSettings.java
index cdeb55f..d9b98f0 100644
--- a/src/com/android/settings/CryptKeeperSettings.java
+++ b/src/com/android/settings/CryptKeeperSettings.java
@@ -36,9 +36,9 @@
import android.widget.Button;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
-public class CryptKeeperSettings extends InstrumentedFragment {
+public class CryptKeeperSettings extends InstrumentedPreferenceFragment {
private static final String TAG = "CryptKeeper";
private static final String TYPE = "type";
private static final String PASSWORD = "password";
diff --git a/src/com/android/settings/DateTimeSettings.java b/src/com/android/settings/DateTimeSettings.java
index 749a4ed..fc47fef 100644
--- a/src/com/android/settings/DateTimeSettings.java
+++ b/src/com/android/settings/DateTimeSettings.java
@@ -17,208 +17,106 @@
package com.android.settings;
import android.app.Activity;
-import android.app.AlarmManager;
-import android.app.DatePickerDialog;
-import android.app.DatePickerDialog.OnDateSetListener;
import android.app.Dialog;
-import android.app.TimePickerDialog;
-import android.app.TimePickerDialog.OnTimeSetListener;
-import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Bundle;
import android.os.UserManager;
import android.provider.SearchIndexableResource;
-import android.provider.Settings;
-import android.provider.Settings.SettingNotFoundException;
-import android.support.v14.preference.SwitchPreference;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.Preference.OnPreferenceChangeListener;
-import android.text.format.DateFormat;
-import android.widget.DatePicker;
-import android.widget.TimePicker;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.datetime.AutoTimePreferenceController;
+import com.android.settings.datetime.AutoTimeZonePreferenceController;
+import com.android.settings.datetime.DatePreferenceController;
+import com.android.settings.datetime.TimeChangeListenerMixin;
import com.android.settings.datetime.TimeFormatPreferenceController;
-import com.android.settings.datetime.UpdateTimeAndDateCallback;
+import com.android.settings.datetime.TimePreferenceController;
+import com.android.settings.datetime.TimeZonePreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.datetime.ZoneGetter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+public class DateTimeSettings extends DashboardFragment implements
+ TimePreferenceController.TimePreferenceHost, DatePreferenceController.DatePreferenceHost {
-public class DateTimeSettings extends SettingsPreferenceFragment
- implements UpdateTimeAndDateCallback, OnTimeSetListener, OnDateSetListener,
- OnPreferenceChangeListener, Indexable {
-
- private static final String KEY_AUTO_TIME = "auto_time";
- private static final String KEY_AUTO_TIME_ZONE = "auto_zone";
-
- private static final int DIALOG_DATEPICKER = 0;
- private static final int DIALOG_TIMEPICKER = 1;
+ private static final String TAG = "DateTimeSettings";
// have we been launched from the setup wizard?
protected static final String EXTRA_IS_FROM_SUW = "firstRun";
- // Minimum time is Nov 5, 2007, 0:00.
- private static final long MIN_DATE = 1194220800000L;
-
- private TimeFormatPreferenceController mTimeFormatPreferenceController;
- private RestrictedSwitchPreference mAutoTimePref;
- private Preference mTimePref;
- private SwitchPreference mAutoTimeZonePref;
- private Preference mTimeZone;
- private Preference mDatePref;
-
@Override
public int getMetricsCategory() {
return MetricsEvent.DATE_TIME;
}
@Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- addPreferencesFromResource(R.xml.date_time_prefs);
-
- initUI();
+ protected String getCategoryKey() {
+ return null;
}
- private void initUI() {
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.date_time_prefs;
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ getLifecycle().addObserver(new TimeChangeListenerMixin(context, this));
+ }
+
+ @Override
+ protected List<PreferenceController> getPreferenceControllers(Context context) {
+ final List<PreferenceController> controllers = new ArrayList<>();
final Activity activity = getActivity();
final Intent intent = activity.getIntent();
final boolean isFromSUW = intent.getBooleanExtra(EXTRA_IS_FROM_SUW, false);
- boolean autoTimeEnabled = getAutoState(Settings.Global.AUTO_TIME);
- boolean autoTimeZoneEnabled = getAutoState(Settings.Global.AUTO_TIME_ZONE);
- mTimeFormatPreferenceController = new TimeFormatPreferenceController(
- activity, this /* UpdateTimeAndDateCallback */, isFromSUW);
- mTimeFormatPreferenceController.displayPreference(getPreferenceScreen());
+ final AutoTimeZonePreferenceController autoTimeZonePreferenceController =
+ new AutoTimeZonePreferenceController(
+ activity, this /* UpdateTimeAndDateCallback */, isFromSUW);
+ final AutoTimePreferenceController autoTimePreferenceController =
+ new AutoTimePreferenceController(
+ activity, this /* UpdateTimeAndDateCallback */);
+ controllers.add(autoTimeZonePreferenceController);
+ controllers.add(autoTimePreferenceController);
- mAutoTimePref = (RestrictedSwitchPreference) findPreference(KEY_AUTO_TIME);
- mAutoTimePref.setOnPreferenceChangeListener(this);
- EnforcedAdmin admin = RestrictedLockUtils.checkIfAutoTimeRequired(activity);
- mAutoTimePref.setDisabledByAdmin(admin);
-
- // If device admin requires auto time device policy manager will set
- // Settings.Global.AUTO_TIME to true. Note that this app listens to that change.
- mAutoTimePref.setChecked(autoTimeEnabled);
- mAutoTimeZonePref = (SwitchPreference) findPreference(KEY_AUTO_TIME_ZONE);
- mAutoTimeZonePref.setOnPreferenceChangeListener(this);
- // Override auto-timezone if it's a wifi-only device or if we're still in setup wizard.
- // TODO: Remove the wifiOnly test when auto-timezone is implemented based on wifi-location.
- if (Utils.isWifiOnly(activity) || isFromSUW) {
- getPreferenceScreen().removePreference(mAutoTimeZonePref);
- autoTimeZoneEnabled = false;
- }
- mAutoTimeZonePref.setChecked(autoTimeZoneEnabled);
-
- mTimePref = findPreference("time");
- mTimeZone = findPreference("timezone");
- mDatePref = findPreference("date");
-
- mTimePref.setEnabled(!autoTimeEnabled);
- mDatePref.setEnabled(!autoTimeEnabled);
- mTimeZone.setEnabled(!autoTimeZoneEnabled);
- }
-
- @Override
- public void onResume() {
- super.onResume();
- // Register for time ticks and other reasons for time change
- IntentFilter filter = new IntentFilter();
- filter.addAction(Intent.ACTION_TIME_TICK);
- filter.addAction(Intent.ACTION_TIME_CHANGED);
- filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
- getActivity().registerReceiver(mIntentReceiver, filter, null, null);
-
- updateTimeAndDateDisplay(getActivity());
- }
-
- @Override
- public void onPause() {
- super.onPause();
- getActivity().unregisterReceiver(mIntentReceiver);
+ controllers.add(new TimeFormatPreferenceController(
+ activity, this /* UpdateTimeAndDateCallback */, isFromSUW));
+ controllers.add(new TimeZonePreferenceController(
+ activity, autoTimeZonePreferenceController));
+ controllers.add(new TimePreferenceController(
+ activity, this /* UpdateTimeAndDateCallback */, autoTimePreferenceController));
+ controllers.add(new DatePreferenceController(
+ activity, this /* UpdateTimeAndDateCallback */, autoTimePreferenceController));
+ return controllers;
}
@Override
public void updateTimeAndDateDisplay(Context context) {
- final Calendar now = Calendar.getInstance();
- mDatePref.setSummary(DateFormat.getLongDateFormat(context).format(now.getTime()));
- mTimePref.setSummary(DateFormat.getTimeFormat(getActivity()).format(now.getTime()));
- mTimeZone.setSummary(ZoneGetter.getTimeZoneOffsetAndName(context,
- now.getTimeZone(), now.getTime()));
- mTimeFormatPreferenceController.updateState(findPreference(
- mTimeFormatPreferenceController.getPreferenceKey()));
- }
-
- @Override
- public void onDateSet(DatePicker view, int year, int month, int day) {
- final Activity activity = getActivity();
- if (activity != null) {
- setDate(activity, year, month, day);
- updateTimeAndDateDisplay(activity);
- }
- }
-
- @Override
- public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
- final Activity activity = getActivity();
- if (activity != null) {
- setTime(activity, hourOfDay, minute);
- updateTimeAndDateDisplay(activity);
- }
-
- // We don't need to call timeUpdated() here because the TIME_CHANGED
- // broadcast is sent by the AlarmManager as a side effect of setting the
- // SystemClock time.
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- if (preference.getKey().equals(KEY_AUTO_TIME)) {
- boolean autoEnabled = (Boolean) newValue;
- Settings.Global.putInt(getContentResolver(), Settings.Global.AUTO_TIME,
- autoEnabled ? 1 : 0);
- mTimePref.setEnabled(!autoEnabled);
- mDatePref.setEnabled(!autoEnabled);
- } else if (preference.getKey().equals(KEY_AUTO_TIME_ZONE)) {
- boolean autoZoneEnabled = (Boolean) newValue;
- Settings.Global.putInt(
- getContentResolver(), Settings.Global.AUTO_TIME_ZONE, autoZoneEnabled ? 1 : 0);
- mTimeZone.setEnabled(!autoZoneEnabled);
- }
- return true;
+ updatePreferenceStates();
}
@Override
public Dialog onCreateDialog(int id) {
- final Calendar calendar = Calendar.getInstance();
switch (id) {
- case DIALOG_DATEPICKER:
- DatePickerDialog d = new DatePickerDialog(
- getActivity(),
- this,
- calendar.get(Calendar.YEAR),
- calendar.get(Calendar.MONTH),
- calendar.get(Calendar.DAY_OF_MONTH));
- configureDatePicker(d.getDatePicker());
- return d;
- case DIALOG_TIMEPICKER:
- return new TimePickerDialog(
- getActivity(),
- this,
- calendar.get(Calendar.HOUR_OF_DAY),
- calendar.get(Calendar.MINUTE),
- DateFormat.is24HourFormat(getActivity()));
+ case DatePreferenceController.DIALOG_DATEPICKER:
+ return getPreferenceController(DatePreferenceController.class)
+ .buildDatePicker(getActivity());
+ case TimePreferenceController.DIALOG_TIMEPICKER:
+ return getPreferenceController(TimePreferenceController.class)
+ .buildTimePicker(getActivity());
default:
throw new IllegalArgumentException();
}
@@ -227,120 +125,26 @@
@Override
public int getDialogMetricsCategory(int dialogId) {
switch (dialogId) {
- case DIALOG_DATEPICKER:
+ case DatePreferenceController.DIALOG_DATEPICKER:
return MetricsEvent.DIALOG_DATE_PICKER;
- case DIALOG_TIMEPICKER:
+ case TimePreferenceController.DIALOG_TIMEPICKER:
return MetricsEvent.DIALOG_TIME_PICKER;
default:
return 0;
}
}
- static void configureDatePicker(DatePicker datePicker) {
- // The system clock can't represent dates outside this range.
- Calendar t = Calendar.getInstance();
- t.clear();
- t.set(1970, Calendar.JANUARY, 1);
- datePicker.setMinDate(t.getTimeInMillis());
- t.clear();
- t.set(2037, Calendar.DECEMBER, 31);
- datePicker.setMaxDate(t.getTimeInMillis());
- }
-
- /*
@Override
- public void onPrepareDialog(int id, Dialog d) {
- switch (id) {
- case DIALOG_DATEPICKER: {
- DatePickerDialog datePicker = (DatePickerDialog)d;
- final Calendar calendar = Calendar.getInstance();
- datePicker.updateDate(
- calendar.get(Calendar.YEAR),
- calendar.get(Calendar.MONTH),
- calendar.get(Calendar.DAY_OF_MONTH));
- break;
- }
- case DIALOG_TIMEPICKER: {
- TimePickerDialog timePicker = (TimePickerDialog)d;
- final Calendar calendar = Calendar.getInstance();
- timePicker.updateTime(
- calendar.get(Calendar.HOUR_OF_DAY),
- calendar.get(Calendar.MINUTE));
- break;
- }
- default:
- break;
- }
- }
- */
- @Override
- public boolean onPreferenceTreeClick(Preference preference) {
- if (mTimeFormatPreferenceController.handlePreferenceTreeClick(preference)) {
- return super.onPreferenceTreeClick(preference);
- }
- if (preference == mDatePref) {
- showDialog(DIALOG_DATEPICKER);
- } else if (preference == mTimePref) {
- // The 24-hour mode may have changed, so recreate the dialog
- removeDialog(DIALOG_TIMEPICKER);
- showDialog(DIALOG_TIMEPICKER);
- }
- return super.onPreferenceTreeClick(preference);
+ public void showTimePicker() {
+ removeDialog(TimePreferenceController.DIALOG_TIMEPICKER);
+ showDialog(TimePreferenceController.DIALOG_TIMEPICKER);
}
@Override
- public void onActivityResult(int requestCode, int resultCode,
- Intent data) {
- updateTimeAndDateDisplay(getActivity());
+ public void showDatePicker() {
+ showDialog(DatePreferenceController.DIALOG_DATEPICKER);
}
- private boolean getAutoState(String name) {
- try {
- return Settings.Global.getInt(getContentResolver(), name) > 0;
- } catch (SettingNotFoundException snfe) {
- return false;
- }
- }
-
- /* package */
- static void setDate(Context context, int year, int month, int day) {
- Calendar c = Calendar.getInstance();
-
- c.set(Calendar.YEAR, year);
- c.set(Calendar.MONTH, month);
- c.set(Calendar.DAY_OF_MONTH, day);
- long when = Math.max(c.getTimeInMillis(), MIN_DATE);
-
- if (when / 1000 < Integer.MAX_VALUE) {
- ((AlarmManager) context.getSystemService(Context.ALARM_SERVICE)).setTime(when);
- }
- }
-
- /* package */
- static void setTime(Context context, int hourOfDay, int minute) {
- Calendar c = Calendar.getInstance();
-
- c.set(Calendar.HOUR_OF_DAY, hourOfDay);
- c.set(Calendar.MINUTE, minute);
- c.set(Calendar.SECOND, 0);
- c.set(Calendar.MILLISECOND, 0);
- long when = Math.max(c.getTimeInMillis(), MIN_DATE);
-
- if (when / 1000 < Integer.MAX_VALUE) {
- ((AlarmManager) context.getSystemService(Context.ALARM_SERVICE)).setTime(when);
- }
- }
-
- private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- final Activity activity = getActivity();
- if (activity != null) {
- updateTimeAndDateDisplay(activity);
- }
- }
- };
-
private static class SummaryProvider implements SummaryLoader.SummaryProvider {
private final Context mContext;
@@ -370,6 +174,7 @@
}
};
+
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new DateTimeSearchIndexProvider();
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 867fbfd..1ae3380 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -83,6 +83,8 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.applications.BackgroundCheckSummary;
import com.android.settings.dashboard.DashboardFeatureProvider;
+import com.android.settings.development.BugReportPreferenceController;
+import com.android.settings.development.BugReportInPowerPreferenceController;
import com.android.settings.fuelgauge.InactiveApps;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -129,8 +131,6 @@
private static final String LOCAL_BACKUP_PASSWORD = "local_backup_password";
private static final String HARDWARE_UI_PROPERTY = "persist.sys.ui.hw";
private static final String MSAA_PROPERTY = "debug.egl.force_msaa";
- private static final String BUGREPORT = "bugreport";
- private static final String BUGREPORT_IN_POWER_KEY = "bugreport_in_power";
private static final String OPENGL_TRACES_PROPERTY = "debug.egl.trace";
private static final String TUNER_UI_KEY = "tuner_ui";
private static final String COLOR_TEMPERATURE_PROPERTY = "persist.sys.debug.color_temp";
@@ -248,15 +248,13 @@
private SwitchPreference mEnableAdb;
private Preference mClearAdbKeys;
private SwitchPreference mEnableTerminal;
- private Preference mBugreport;
- private SwitchPreference mBugreportInPower;
private RestrictedSwitchPreference mKeepScreenOn;
private SwitchPreference mBtHciSnoopLog;
private RestrictedSwitchPreference mEnableOemUnlock;
private SwitchPreference mDebugViewAttributes;
private SwitchPreference mForceAllowOnExternal;
- private PreferenceScreen mPassword;
+ private Preference mPassword;
private String mDebugApp;
private Preference mDebugAppPref;
@@ -330,6 +328,8 @@
private boolean mLogpersistCleared;
private Dialog mLogpersistClearDialog;
private DashboardFeatureProvider mDashboardFeatureProvider;
+ private BugReportPreferenceController mBugReportController;
+ private BugReportInPowerPreferenceController mBugReportInPowerController;
public DevelopmentSettings() {
super(UserManager.DISALLOW_DEBUGGING_FEATURES);
@@ -365,6 +365,9 @@
mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
+ mBugReportController = new BugReportPreferenceController(getActivity());
+ mBugReportInPowerController = new BugReportInPowerPreferenceController(getActivity());
+
setIfOnlyAvailableForAdmins(true);
if (isUiRestricted() || !Utils.isDeviceProvisioned(getActivity())) {
// Block access to developer options if the user is not the owner, if user policy
@@ -392,8 +395,9 @@
mEnableTerminal = null;
}
- mBugreport = findPreference(BUGREPORT);
- mBugreportInPower = findAndInitSwitchPref(BUGREPORT_IN_POWER_KEY);
+ mBugReportController.displayPreference(getPreferenceScreen());
+ mBugReportInPowerController.displayPreference(getPreferenceScreen());
+
mKeepScreenOn = (RestrictedSwitchPreference) findAndInitSwitchPref(KEEP_SCREEN_ON);
mBtHciSnoopLog = findAndInitSwitchPref(BT_HCI_SNOOP_LOG);
mEnableOemUnlock = (RestrictedSwitchPreference) findAndInitSwitchPref(ENABLE_OEM_UNLOCK);
@@ -404,7 +408,7 @@
mDebugViewAttributes = findAndInitSwitchPref(DEBUG_VIEW_ATTRIBUTES);
mForceAllowOnExternal = findAndInitSwitchPref(FORCE_ALLOW_ON_EXTERNAL_KEY);
- mPassword = (PreferenceScreen) findPreference(LOCAL_BACKUP_PASSWORD);
+ mPassword = findPreference(LOCAL_BACKUP_PASSWORD);
mAllPrefs.add(mPassword);
if (!mUm.isAdminUser()) {
@@ -492,8 +496,7 @@
removePreferenceForProduction(hdcpChecking);
}
- PreferenceScreen convertFbePreference =
- (PreferenceScreen) findPreference(KEY_CONVERT_FBE);
+ Preference convertFbePreference = findPreference(KEY_CONVERT_FBE);
try {
IBinder service = ServiceManager.getService("mount");
@@ -601,6 +604,7 @@
Preference pref = mAllPrefs.get(i);
pref.setEnabled(enabled && !mDisabledPrefs.contains(pref));
}
+ mBugReportInPowerController.enablePreference(enabled);
updateAllOptions();
}
@@ -702,8 +706,7 @@
context.getPackageManager().getApplicationEnabledSetting(TERMINAL_APP_PACKAGE)
== PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
}
- updateSwitchPreference(mBugreportInPower, Settings.Secure.getInt(cr,
- Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0);
+ mHaveDebugSettings |= mBugReportInPowerController.updatePreference();
updateSwitchPreference(mKeepScreenOn, Settings.Global.getInt(cr,
Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 0) != 0);
updateSwitchPreference(mBtHciSnoopLog, Settings.Secure.getInt(cr,
@@ -765,6 +768,7 @@
onPreferenceTreeClick(cb);
}
}
+ mBugReportInPowerController.resetPreference();
resetDebuggerOptions();
writeLogpersistOption(null, true);
writeLogdSizeOption(null);
@@ -1076,19 +1080,8 @@
}
private void updateBugreportOptions() {
- mBugreport.setEnabled(true);
- mBugreportInPower.setEnabled(true);
- setBugreportStorageProviderStatus();
- }
-
- private void setBugreportStorageProviderStatus() {
- final ComponentName componentName = new ComponentName("com.android.shell",
- "com.android.shell.BugreportStorageProvider");
- final boolean enabled = mBugreportInPower.isChecked();
- getPackageManager().setComponentEnabledSetting(componentName,
- enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
- : PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
- 0);
+ mBugReportController.enablePreference(true);
+ mBugReportInPowerController.updateBugreportOptions();
}
// Returns the current state of the system property that controls
@@ -1951,6 +1944,10 @@
return false;
}
+ if (mBugReportInPowerController.handlePreferenceTreeClick(preference)) {
+ return true;
+ }
+
if (preference == mEnableAdb) {
if (mEnableAdb.isChecked()) {
mDialogClicked = false;
@@ -1981,11 +1978,6 @@
pm.setApplicationEnabledSetting(TERMINAL_APP_PACKAGE,
mEnableTerminal.isChecked() ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
: PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
- } else if (preference == mBugreportInPower) {
- Settings.Secure.putInt(getActivity().getContentResolver(),
- Settings.Global.BUGREPORT_IN_POWER_MENU,
- mBugreportInPower.isChecked() ? 1 : 0);
- setBugreportStorageProviderStatus();
} else if (preference == mKeepScreenOn) {
Settings.Global.putInt(getActivity().getContentResolver(),
Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
diff --git a/src/com/android/settings/OptionsMenuFragment.java b/src/com/android/settings/OptionsMenuFragment.java
index d1e3db2..c8dcc8e 100644
--- a/src/com/android/settings/OptionsMenuFragment.java
+++ b/src/com/android/settings/OptionsMenuFragment.java
@@ -17,7 +17,7 @@
import android.os.Bundle;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
/**
* Base class for a fragment that has the options menu.
@@ -25,7 +25,7 @@
* preferences, and we need to call setHasOptionsMenu(true) for the back button on action bar.
* For preference fragments, use SettingsPreferenceFragment.
*/
-public abstract class OptionsMenuFragment extends InstrumentedFragment {
+public abstract class OptionsMenuFragment extends InstrumentedPreferenceFragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
diff --git a/src/com/android/settings/ProxySelector.java b/src/com/android/settings/ProxySelector.java
index b272637..a72525c 100644
--- a/src/com/android/settings/ProxySelector.java
+++ b/src/com/android/settings/ProxySelector.java
@@ -41,9 +41,9 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.SettingsPreferenceFragment.SettingsDialogFragment;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
-public class ProxySelector extends InstrumentedFragment implements DialogCreatable {
+public class ProxySelector extends InstrumentedPreferenceFragment implements DialogCreatable {
private static final String TAG = "ProxySelector";
EditText mHostnameField;
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 9d703c1..aa76517 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -36,6 +36,7 @@
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
+import android.support.annotation.VisibleForTesting;
import android.support.v14.preference.PreferenceFragment;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceManager;
@@ -53,104 +54,18 @@
import com.android.internal.util.ArrayUtils;
import com.android.settings.Settings.WifiSettingsActivity;
-import com.android.settings.accessibility.AccessibilitySettings;
-import com.android.settings.accessibility.AccessibilitySettingsForSetupWizard;
-import com.android.settings.accessibility.CaptionPropertiesFragment;
-import com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment;
-import com.android.settings.accounts.AccountSettings;
-import com.android.settings.accounts.AccountSyncSettings;
-import com.android.settings.accounts.ChooseAccountActivity;
-import com.android.settings.accounts.ManagedProfileSettings;
-import com.android.settings.accounts.UserAndAccountDashboardFragment;
-import com.android.settings.applications.AdvancedAppSettings;
-import com.android.settings.applications.AppAndNotificationDashboardFragment;
-import com.android.settings.applications.DrawOverlayDetails;
-import com.android.settings.applications.InstalledAppDetails;
-import com.android.settings.applications.ManageApplications;
-import com.android.settings.applications.ManageAssist;
-import com.android.settings.applications.ManageDomainUrls;
-import com.android.settings.applications.NotificationApps;
-import com.android.settings.applications.ProcessStatsSummary;
-import com.android.settings.applications.ProcessStatsUi;
-import com.android.settings.applications.UsageAccessDetails;
-import com.android.settings.applications.VrListenerSettings;
-import com.android.settings.applications.WriteSettingsDetails;
-import com.android.settings.bluetooth.BluetoothSettings;
-import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
+import com.android.settings.core.gateway.SettingsGateway;
import com.android.settings.core.instrumentation.SharedPreferencesLogger;
import com.android.settings.dashboard.DashboardContainerFragment;
import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.dashboard.DashboardSummary;
import com.android.settings.dashboard.SearchResultsSummary;
-import com.android.settings.dashboard.SupportFragment;
-import com.android.settings.datausage.DataUsageSummary;
-import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
-import com.android.settings.deviceinfo.ImeiInformation;
-import com.android.settings.deviceinfo.PrivateVolumeForget;
-import com.android.settings.deviceinfo.PrivateVolumeSettings;
-import com.android.settings.deviceinfo.PublicVolumeSettings;
-import com.android.settings.deviceinfo.SimStatus;
-import com.android.settings.deviceinfo.Status;
-import com.android.settings.deviceinfo.StorageDashboardFragment;
-import com.android.settings.deviceinfo.StorageSettings;
-import com.android.settings.display.NightDisplaySettings;
-import com.android.settings.enterprise.EnterprisePrivacySettings;
-import com.android.settings.fuelgauge.BatterySaverSettings;
-import com.android.settings.fuelgauge.PowerUsageDetail;
-import com.android.settings.fuelgauge.PowerUsageSummary;
-import com.android.settings.gestures.DoubleTapPowerSettings;
-import com.android.settings.gestures.DoubleTapScreenSettings;
-import com.android.settings.gestures.DoubleTwistGestureSettings;
-import com.android.settings.gestures.GestureSettings;
-import com.android.settings.gestures.PickupGestureSettings;
-import com.android.settings.gestures.SwipeToNotificationSettings;
-import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
-import com.android.settings.inputmethod.InputAndGestureSettings;
-import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
-import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
-import com.android.settings.inputmethod.PhysicalKeyboardFragment;
-import com.android.settings.inputmethod.SpellCheckersSettings;
-import com.android.settings.inputmethod.UserDictionaryList;
-import com.android.settings.language.LanguageAndRegionSettings;
-import com.android.settings.localepicker.LocaleListEditor;
-import com.android.settings.location.LocationSettings;
-import com.android.settings.network.NetworkDashboardFragment;
-import com.android.settings.nfc.AndroidBeam;
-import com.android.settings.nfc.PaymentSettings;
-import com.android.settings.notification.AppNotificationSettings;
-import com.android.settings.notification.ConfigureNotificationSettings;
-import com.android.settings.notification.NotificationAccessSettings;
-import com.android.settings.notification.NotificationStation;
-import com.android.settings.notification.OtherSoundSettings;
-import com.android.settings.notification.SoundSettings;
-import com.android.settings.notification.ZenAccessSettings;
-import com.android.settings.notification.ZenModeAutomationSettings;
-import com.android.settings.notification.ZenModeEventRuleSettings;
-import com.android.settings.notification.ZenModePrioritySettings;
-import com.android.settings.notification.ZenModeScheduleRuleSettings;
-import com.android.settings.notification.ZenModeSettings;
-import com.android.settings.notification.ZenModeVisualInterruptionSettings;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.print.PrintJobSettingsFragment;
-import com.android.settings.print.PrintSettingsFragment;
import com.android.settings.qstile.DevelopmentTiles;
import com.android.settings.search.DynamicIndexableContentMonitor;
import com.android.settings.search.Index;
import com.android.settings.search2.SearchFeatureProvider;
-import com.android.settings.search2.SearchFragment;
-import com.android.settings.sim.SimSettings;
-import com.android.settings.system.SystemDashboardFragment;
-import com.android.settings.tts.TextToSpeechSettings;
-import com.android.settings.users.UserSettings;
-import com.android.settings.vpn2.VpnSettings;
-import com.android.settings.wfd.WifiDisplaySettings;
import com.android.settings.widget.SwitchBar;
-import com.android.settings.wifi.AdvancedWifiSettings;
-import com.android.settings.wifi.SavedAccessPointsWifiSettings;
-import com.android.settings.wifi.WifiAPITest;
-import com.android.settings.wifi.WifiInfo;
-import com.android.settings.wifi.WifiSettings;
-import com.android.settings.wifi.p2p.WifiP2pSettings;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.SettingsDrawerActivity;
import com.android.settingslib.drawer.Tile;
@@ -309,120 +224,6 @@
"com.android.settings.Settings.AboutDeviceDashboardAlias",
};
- private static final String[] ENTRY_FRAGMENTS = {
- WirelessSettings.class.getName(),
- WifiSettings.class.getName(),
- AdvancedWifiSettings.class.getName(),
- SavedAccessPointsWifiSettings.class.getName(),
- BluetoothSettings.class.getName(),
- SimSettings.class.getName(),
- TetherSettings.class.getName(),
- WifiP2pSettings.class.getName(),
- VpnSettings.class.getName(),
- DateTimeSettings.class.getName(),
- LocaleListEditor.class.getName(),
- InputMethodAndLanguageSettings.class.getName(),
- AvailableVirtualKeyboardFragment.class.getName(),
- InputAndGestureSettings.class.getName(),
- LanguageAndRegionSettings.class.getName(),
- SpellCheckersSettings.class.getName(),
- UserDictionaryList.class.getName(),
- UserDictionarySettings.class.getName(),
- HomeSettings.class.getName(),
- DisplaySettings.class.getName(),
- DeviceInfoSettings.class.getName(),
- ManageApplications.class.getName(),
- NotificationApps.class.getName(),
- ManageAssist.class.getName(),
- ProcessStatsUi.class.getName(),
- NotificationStation.class.getName(),
- LocationSettings.class.getName(),
- SecuritySettings.class.getName(),
- UsageAccessDetails.class.getName(),
- PrivacySettings.class.getName(),
- DeviceAdminSettings.class.getName(),
- AccessibilitySettings.class.getName(),
- AccessibilitySettingsForSetupWizard.class.getName(),
- CaptionPropertiesFragment.class.getName(),
- ToggleDaltonizerPreferenceFragment.class.getName(),
- TextToSpeechSettings.class.getName(),
- StorageSettings.class.getName(),
- PrivateVolumeForget.class.getName(),
- PrivateVolumeSettings.class.getName(),
- PublicVolumeSettings.class.getName(),
- DevelopmentSettings.class.getName(),
- AndroidBeam.class.getName(),
- WifiDisplaySettings.class.getName(),
- PowerUsageSummary.class.getName(),
- AccountSyncSettings.class.getName(),
- AccountSettings.class.getName(),
- GestureSettings.class.getName(),
- SwipeToNotificationSettings.class.getName(),
- DoubleTapPowerSettings.class.getName(),
- DoubleTapScreenSettings.class.getName(),
- PickupGestureSettings.class.getName(),
- DoubleTwistGestureSettings.class.getName(),
- CryptKeeperSettings.class.getName(),
- DataUsageSummary.class.getName(),
- DreamSettings.class.getName(),
- UserSettings.class.getName(),
- NotificationAccessSettings.class.getName(),
- ZenAccessSettings.class.getName(),
- PrintSettingsFragment.class.getName(),
- PrintJobSettingsFragment.class.getName(),
- TrustedCredentialsSettings.class.getName(),
- PaymentSettings.class.getName(),
- KeyboardLayoutPickerFragment.class.getName(),
- PhysicalKeyboardFragment.class.getName(),
- ZenModeSettings.class.getName(),
- SoundSettings.class.getName(),
- ConfigureNotificationSettings.class.getName(),
- ChooseLockPassword.ChooseLockPasswordFragment.class.getName(),
- ChooseLockPattern.ChooseLockPatternFragment.class.getName(),
- InstalledAppDetails.class.getName(),
- BatterySaverSettings.class.getName(),
- AppNotificationSettings.class.getName(),
- OtherSoundSettings.class.getName(),
- ApnSettings.class.getName(),
- ApnEditor.class.getName(),
- WifiCallingSettings.class.getName(),
- ZenModePrioritySettings.class.getName(),
- ZenModeAutomationSettings.class.getName(),
- ZenModeScheduleRuleSettings.class.getName(),
- ZenModeEventRuleSettings.class.getName(),
- ZenModeVisualInterruptionSettings.class.getName(),
- ProcessStatsUi.class.getName(),
- PowerUsageDetail.class.getName(),
- ProcessStatsSummary.class.getName(),
- DrawOverlayDetails.class.getName(),
- WriteSettingsDetails.class.getName(),
- AdvancedAppSettings.class.getName(),
- WallpaperTypeSettings.class.getName(),
- VrListenerSettings.class.getName(),
- ManagedProfileSettings.class.getName(),
- ChooseAccountActivity.class.getName(),
- IccLockSettings.class.getName(),
- ImeiInformation.class.getName(),
- SimStatus.class.getName(),
- Status.class.getName(),
- TestingSettings.class.getName(),
- WifiAPITest.class.getName(),
- WifiInfo.class.getName(),
- MasterClear.class.getName(),
- NightDisplaySettings.class.getName(),
- ManageDomainUrls.class.getName(),
- AutomaticStorageManagerSettings.class.getName(),
- SupportFragment.class.getName(),
- StorageDashboardFragment.class.getName(),
- SystemDashboardFragment.class.getName(),
- NetworkDashboardFragment.class.getName(),
- ConnectedDeviceDashboardFragment.class.getName(),
- AppAndNotificationDashboardFragment.class.getName(),
- UserAndAccountDashboardFragment.class.getName(),
- EnterprisePrivacySettings.class.getName(),
- };
-
-
private static final String[] LIKE_SHORTCUT_INTENT_ACTION_ARRAY = {
"android.settings.APPLICATION_DETAILS_SETTINGS"
};
@@ -452,13 +253,12 @@
String action = intent.getAction();
if (action.equals(Intent.ACTION_USER_ADDED)
|| action.equals(Intent.ACTION_USER_REMOVED)) {
- Index.getInstance(getApplicationContext()).update();
+ mSearchFeatureProvider.updateIndex(getApplicationContext());
}
}
};
- private final DynamicIndexableContentMonitor mDynamicIndexableContentMonitor =
- new DynamicIndexableContentMonitor();
+ private DynamicIndexableContentMonitor mDynamicIndexableContentMonitor;
private ActionBar mActionBar;
private SwitchBar mSwitchBar;
@@ -477,14 +277,10 @@
private MenuItem mSearchMenuItem;
private boolean mSearchMenuItemExpanded = false;
private SearchResultsSummary mSearchResultsFragment;
- private String mSearchQuery;
-
private SearchFeatureProvider mSearchFeatureProvider;
// Categories
- private ArrayList<DashboardCategory> mCategories = new ArrayList<DashboardCategory>();
-
- private static final String MSG_DATA_FORCE_REFRESH = "msg_data_force_refresh";
+ private ArrayList<DashboardCategory> mCategories = new ArrayList<>();
private boolean mNeedToRevertToInitialFragment = false;
@@ -492,6 +288,9 @@
private Intent mResultIntentData;
private ComponentName mCurrentSuggestion;
+ @VisibleForTesting
+ String mSearchQuery;
+
public SwitchBar getSwitchBar() {
return mSwitchBar;
}
@@ -511,7 +310,7 @@
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
- Index.getInstance(this).update();
+ mSearchFeatureProvider.updateIndex(getApplicationContext());
}
@Override
@@ -907,7 +706,9 @@
registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
registerReceiver(mUserAddRemoveReceiver, new IntentFilter(Intent.ACTION_USER_ADDED));
registerReceiver(mUserAddRemoveReceiver, new IntentFilter(Intent.ACTION_USER_REMOVED));
-
+ if (mDynamicIndexableContentMonitor == null) {
+ mDynamicIndexableContentMonitor = new DynamicIndexableContentMonitor();
+ }
mDynamicIndexableContentMonitor.register(this, LOADER_ID_INDEXABLE_CONTENT_MONITOR);
if(mDisplaySearch && !TextUtils.isEmpty(mSearchQuery)) {
@@ -921,7 +722,9 @@
super.onPause();
unregisterReceiver(mBatteryInfoReceiver);
unregisterReceiver(mUserAddRemoveReceiver);
- mDynamicIndexableContentMonitor.unregister();
+ if (mDynamicIndexableContentMonitor != null) {
+ mDynamicIndexableContentMonitor.unregister();
+ }
}
@Override
@@ -936,8 +739,8 @@
protected boolean isValidFragment(String fragmentName) {
// Almost all fragments are wrapped in this,
// except for a few that have their own activities.
- for (int i = 0; i < ENTRY_FRAGMENTS.length; i++) {
- if (ENTRY_FRAGMENTS[i].equals(fragmentName)) return true;
+ for (int i = 0; i < SettingsGateway.ENTRY_FRAGMENTS.length; i++) {
+ if (SettingsGateway.ENTRY_FRAGMENTS[i].equals(fragmentName)) return true;
}
return false;
}
@@ -1305,10 +1108,10 @@
@Deprecated
@Override
public boolean onQueryTextChange(String newText) {
+ mSearchQuery = newText;
if (mSearchFeatureProvider.isEnabled() || mSearchResultsFragment == null) {
return false;
}
- mSearchQuery = newText;
return mSearchResultsFragment.onQueryTextChange(newText);
}
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 8118dab..5f42579 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -45,7 +45,7 @@
import android.widget.Button;
import com.android.settings.applications.LayoutPreference;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.instrumentation.Instrumentable;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.HelpUtils;
@@ -55,7 +55,7 @@
/**
* Base class for Settings fragments, with some helper functions and dialog management.
*/
-public abstract class SettingsPreferenceFragment extends InstrumentedFragment
+public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceFragment
implements DialogCreatable {
/**
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 835757c..1dbd471 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -104,6 +104,7 @@
import java.util.Locale;
import static android.content.Intent.EXTRA_USER;
+import static android.content.Intent.EXTRA_USER_ID;
import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
@@ -636,16 +637,21 @@
/**
* Returns the target user for a Settings activity.
- *
- * The target user can be either the current user, the user that launched this activity or
- * the user contained as an extra in the arguments or intent extras.
- *
+ * <p>
+ * User would be retrieved in this order:
+ * <ul>
+ * <li> If this activity is launched from other user, return that user id.
+ * <li> If this is launched from the Settings app in same user, return the user contained as an
+ * extra in the arguments or intent extras.
+ * <li> Otherwise, return UserHandle.myUserId().
+ * </ul>
+ * <p>
* Note: This is secure in the sense that it only returns a target user different to the current
* one if the app launching this activity is the Settings app itself, running in the same user
* or in one that is in the same profile group, or if the user id is provided by the system.
*/
public static UserHandle getSecureTargetUser(IBinder activityToken,
- UserManager um, @Nullable Bundle arguments, @Nullable Bundle intentExtras) {
+ UserManager um, @Nullable Bundle arguments, @Nullable Bundle intentExtras) {
UserHandle currentUser = new UserHandle(UserHandle.myUserId());
IActivityManager am = ActivityManager.getService();
try {
@@ -660,16 +666,14 @@
return launchedFromUser;
}
}
- UserHandle extrasUser = intentExtras != null
- ? (UserHandle) intentExtras.getParcelable(EXTRA_USER) : null;
+ UserHandle extrasUser = getUserHandleFromBundle(intentExtras);
if (extrasUser != null && !extrasUser.equals(currentUser)) {
// Check it's secure
if (launchedFromSettingsApp && isProfileOf(um, extrasUser)) {
return extrasUser;
}
}
- UserHandle argumentsUser = arguments != null
- ? (UserHandle) arguments.getParcelable(EXTRA_USER) : null;
+ UserHandle argumentsUser = getUserHandleFromBundle(arguments);
if (argumentsUser != null && !argumentsUser.equals(currentUser)) {
// Check it's secure
if (launchedFromSettingsApp && isProfileOf(um, argumentsUser)) {
@@ -681,7 +685,26 @@
Log.v(TAG, "Could not talk to activity manager.", e);
}
return currentUser;
- }
+ }
+
+ /**
+ * Lookup both {@link Intent#EXTRA_USER} and {@link Intent#EXTRA_USER_ID} in the bundle
+ * and return the {@link UserHandle} object. Return {@code null} if nothing is found.
+ */
+ private static @Nullable UserHandle getUserHandleFromBundle(Bundle bundle) {
+ if (bundle == null) {
+ return null;
+ }
+ final UserHandle user = bundle.getParcelable(EXTRA_USER);
+ if (user != null) {
+ return user;
+ }
+ final int userId = bundle.getInt(EXTRA_USER_ID, -1);
+ if (userId != -1) {
+ return UserHandle.of(userId);
+ }
+ return null;
+ }
/**
* Returns the target user for a Settings activity.
@@ -1143,7 +1166,7 @@
final ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(
packageName,
PackageManager.MATCH_DISABLED_COMPONENTS
- | PackageManager.MATCH_UNINSTALLED_PACKAGES);
+ | PackageManager.MATCH_ANY_USER);
return appInfo.loadLabel(context.getPackageManager());
} catch (PackageManager.NameNotFoundException e) {
Log.w(TAG, "Unable to find info for package: " + packageName);
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index f0c77fc..af5b5cd 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -33,7 +33,6 @@
import android.support.v7.preference.ListPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory;
-import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
@@ -185,12 +184,12 @@
private SwitchPreference mToggleMasterMonoPreference;
private ListPreference mSelectLongPressTimeoutPreference;
private Preference mNoServicesMessagePreference;
- private PreferenceScreen mCaptioningPreferenceScreen;
- private PreferenceScreen mDisplayMagnificationPreferenceScreen;
- private PreferenceScreen mFontSizePreferenceScreen;
- private PreferenceScreen mAutoclickPreferenceScreen;
- private PreferenceScreen mGlobalGesturePreferenceScreen;
- private PreferenceScreen mDisplayDaltonizerPreferenceScreen;
+ private Preference mCaptioningPreferenceScreen;
+ private Preference mDisplayMagnificationPreferenceScreen;
+ private Preference mFontSizePreferenceScreen;
+ private Preference mAutoclickPreferenceScreen;
+ private Preference mGlobalGesturePreferenceScreen;
+ private Preference mDisplayDaltonizerPreferenceScreen;
private SwitchPreference mToggleInversionPreference;
private int mLongPressTimeoutDefault;
@@ -408,28 +407,24 @@
}
// Captioning.
- mCaptioningPreferenceScreen = (PreferenceScreen) findPreference(
- CAPTIONING_PREFERENCE_SCREEN);
+ mCaptioningPreferenceScreen = findPreference(CAPTIONING_PREFERENCE_SCREEN);
// Display magnification.
- mDisplayMagnificationPreferenceScreen = (PreferenceScreen) findPreference(
+ mDisplayMagnificationPreferenceScreen = findPreference(
DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN);
// Font size.
- mFontSizePreferenceScreen = (PreferenceScreen) findPreference(
- FONT_SIZE_PREFERENCE_SCREEN);
+ mFontSizePreferenceScreen = findPreference(FONT_SIZE_PREFERENCE_SCREEN);
// Autoclick after pointer stops.
- mAutoclickPreferenceScreen = (PreferenceScreen) findPreference(
- AUTOCLICK_PREFERENCE_SCREEN);
+ mAutoclickPreferenceScreen = findPreference(AUTOCLICK_PREFERENCE_SCREEN);
// Display color adjustments.
- mDisplayDaltonizerPreferenceScreen = (PreferenceScreen) findPreference(
- DISPLAY_DALTONIZER_PREFERENCE_SCREEN);
+ mDisplayDaltonizerPreferenceScreen = findPreference(DISPLAY_DALTONIZER_PREFERENCE_SCREEN);
// Global gesture.
- mGlobalGesturePreferenceScreen =
- (PreferenceScreen) findPreference(ENABLE_ACCESSIBILITY_GESTURE_PREFERENCE_SCREEN);
+ mGlobalGesturePreferenceScreen = findPreference(
+ ENABLE_ACCESSIBILITY_GESTURE_PREFERENCE_SCREEN);
final int longPressOnPowerBehavior = getActivity().getResources().getInteger(
com.android.internal.R.integer.config_longPressOnPowerBehavior);
final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1;
@@ -468,7 +463,8 @@
for (int i = 0, count = installedServices.size(); i < count; ++i) {
AccessibilityServiceInfo info = installedServices.get(i);
- RestrictedPreference preference = new RestrictedPreference(getActivity());
+ RestrictedPreference preference =
+ new RestrictedPreference(mServicesCategory.getContext());
String title = info.getResolveInfo().loadLabel(getPackageManager()).toString();
ServiceInfo serviceInfo = info.getResolveInfo().serviceInfo;
@@ -702,7 +698,7 @@
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
- List<SearchIndexableResource> indexables = new ArrayList<SearchIndexableResource>();
+ List<SearchIndexableResource> indexables = new ArrayList<>();
SearchIndexableResource indexable = new SearchIndexableResource(context);
indexable.xmlResId = R.xml.accessibility_settings;
indexables.add(indexable);
diff --git a/src/com/android/settings/accounts/AccountDetailDashboardFragment.java b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java
new file mode 100644
index 0000000..cf0a0a8
--- /dev/null
+++ b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.accounts;
+
+import android.accounts.Account;
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.support.annotation.VisibleForTesting;
+
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.drawer.CategoryKey;
+import com.android.settingslib.drawer.Tile;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AccountDetailDashboardFragment extends DashboardFragment {
+
+ private static final String TAG = "AccountDetailDashboard";
+ private static final String METADATA_IA_ACCOUNT = "com.android.settings.ia.account";
+
+ public static final String KEY_ACCOUNT = "account";
+ public static final String KEY_ACCOUNT_TYPE = "account_type";
+ public static final String KEY_ACCOUNT_LABEL = "account_label";
+ public static final String KEY_ACCOUNT_TITLE_RES = "account_title_res";
+
+ private String mAccountLabel;
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ String mAccountType;
+ private AccountSyncPreferenceController mAccountSynController;
+
+ @Override
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ Bundle args = getArguments();
+ final Activity activity = getActivity();
+ UserHandle userHandle = Utils.getSecureTargetUser(activity.getActivityToken(),
+ (UserManager) getSystemService(Context.USER_SERVICE), args,
+ activity.getIntent().getExtras());
+ Account account = null;
+ if (args != null) {
+ if (args.containsKey(KEY_ACCOUNT)) {
+ account = args.getParcelable(KEY_ACCOUNT);
+ }
+ if (args.containsKey(KEY_ACCOUNT_LABEL)) {
+ mAccountLabel = args.getString(KEY_ACCOUNT_LABEL);
+ }
+ if (args.containsKey(KEY_ACCOUNT_TYPE)) {
+ mAccountType = args.getString(KEY_ACCOUNT_TYPE);
+ }
+ }
+ mAccountSynController.init(account, userHandle);
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ if (mAccountLabel != null) {
+ getActivity().setTitle(mAccountLabel);
+ }
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsEvent.ACCOUNT;
+ }
+
+ @Override
+ protected String getCategoryKey() {
+ return CategoryKey.CATEGORY_ACCOUNT;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.account_type_settings;
+ }
+
+ @Override
+ protected List<PreferenceController> getPreferenceControllers(Context context) {
+ final List<PreferenceController> controllers = new ArrayList<>();
+ mAccountSynController = new AccountSyncPreferenceController(context);
+ controllers.add(mAccountSynController);
+ return controllers;
+ }
+
+ @Override
+ protected boolean displayTile(Tile tile) {
+ if (mAccountType == null) {
+ return false;
+ }
+ final Bundle metadata = tile.metaData;
+ if (metadata == null) {
+ return false;
+ }
+ return mAccountType.equals(metadata.getString(METADATA_IA_ACCOUNT));
+ }
+
+}
\ No newline at end of file
diff --git a/src/com/android/settings/accounts/AccountPreference.java b/src/com/android/settings/accounts/AccountPreference.java
index 38cb437..7d613b0 100644
--- a/src/com/android/settings/accounts/AccountPreference.java
+++ b/src/com/android/settings/accounts/AccountPreference.java
@@ -16,89 +16,139 @@
package com.android.settings.accounts;
+import android.accounts.Account;
import android.content.Context;
import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.os.UserHandle;
-import android.os.UserManager;
import android.support.v7.preference.Preference;
-import android.support.v7.preference.Preference.OnPreferenceClickListener;
+import android.support.v7.preference.PreferenceViewHolder;
+import android.util.Log;
+import android.widget.ImageView;
import com.android.settings.R;
-import com.android.settings.Utils;
-import static android.content.Intent.EXTRA_USER;
+import java.util.ArrayList;
-public class AccountPreference extends Preference implements OnPreferenceClickListener {
- /**
- * Title of the tile that is shown to the user.
- * @attr ref android.R.styleable#PreferenceHeader_title
- */
- private final CharSequence mTitle;
+/**
+ * AccountPreference is used to display a username, status and provider icon for an account on
+ * the device.
+ */
+public class AccountPreference extends Preference {
+ private static final String TAG = "AccountPreference";
+ public static final int SYNC_ENABLED = 0; // all know sync adapters are enabled and OK
+ public static final int SYNC_DISABLED = 1; // no sync adapters are enabled
+ public static final int SYNC_ERROR = 2; // one or more sync adapters have a problem
+ public static final int SYNC_IN_PROGRESS = 3; // currently syncing
+ private int mStatus;
+ private Account mAccount;
+ private ArrayList<String> mAuthorities;
+ private ImageView mSyncStatusIcon;
+ private boolean mShowTypeIcon;
- /**
- * Packange name used to resolve the resources of the title shown to the user in the new
- * fragment.
- */
- private final String mTitleResPackageName;
-
- /**
- * Resource id of the title shown to the user in the new fragment.
- */
- private final int mTitleResId;
-
- /**
- * Full class name of the fragment to display when this tile is
- * selected.
- * @attr ref android.R.styleable#PreferenceHeader_fragment
- */
- private final String mFragment;
-
- /**
- * Optional arguments to supply to the fragment when it is
- * instantiated.
- */
- private final Bundle mFragmentArguments;
-
- public AccountPreference(Context context, CharSequence title, String titleResPackageName,
- int titleResId, String fragment, Bundle fragmentArguments, Drawable icon) {
+ public AccountPreference(Context context, Account account, Drawable icon,
+ ArrayList<String> authorities, boolean showTypeIcon) {
super(context);
- mTitle = title;
- mTitleResPackageName = titleResPackageName;
- mTitleResId = titleResId;
- mFragment = fragment;
- mFragmentArguments = fragmentArguments;
- setWidgetLayoutResource(R.layout.account_type_preference);
+ mAccount = account;
+ mAuthorities = authorities;
+ mShowTypeIcon = showTypeIcon;
+ if (showTypeIcon) {
+ setIcon(icon);
+ } else {
+ setIcon(getSyncStatusIcon(SYNC_DISABLED));
+ }
+ setTitle(mAccount.name);
+ setSummary("");
+ setPersistent(false);
+ setSyncStatus(SYNC_DISABLED, false);
+ }
- setTitle(title);
- setIcon(icon);
+ public Account getAccount() {
+ return mAccount;
+ }
- setOnPreferenceClickListener(this);
+ public ArrayList<String> getAuthorities() {
+ return mAuthorities;
}
@Override
- public boolean onPreferenceClick(Preference preference) {
- if (mFragment != null) {
- UserManager userManager =
- (UserManager) getContext().getSystemService(Context.USER_SERVICE);
- UserHandle user = mFragmentArguments.getParcelable(EXTRA_USER);
- if (user != null && Utils.startQuietModeDialogIfNecessary(getContext(), userManager,
- user.getIdentifier())) {
- return true;
- } else if (user != null && Utils.unlockWorkProfileIfNecessary(getContext(),
- user.getIdentifier())) {
- return true;
- }
- Utils.startWithFragment(getContext(), mFragment, mFragmentArguments,
- null /* resultTo */, 0 /* resultRequestCode */, mTitleResPackageName,
- mTitleResId, null /* title */);
- return true;
+ public void onBindViewHolder(PreferenceViewHolder view) {
+ super.onBindViewHolder(view);
+ if (!mShowTypeIcon) {
+ mSyncStatusIcon = (ImageView) view.findViewById(android.R.id.icon);
+ mSyncStatusIcon.setImageResource(getSyncStatusIcon(mStatus));
+ mSyncStatusIcon.setContentDescription(getSyncContentDescription(mStatus));
}
- return false;
}
- public CharSequence getitle() {
- return mTitle;
+ public void setSyncStatus(int status, boolean updateSummary) {
+ if (mStatus == status) {
+ Log.d(TAG, "Status is the same, not changing anything");
+ return;
+ }
+ mStatus = status;
+ if (!mShowTypeIcon && mSyncStatusIcon != null) {
+ mSyncStatusIcon.setImageResource(getSyncStatusIcon(status));
+ mSyncStatusIcon.setContentDescription(getSyncContentDescription(mStatus));
+ }
+ if (updateSummary) {
+ setSummary(getSyncStatusMessage(status));
+ }
}
+ private int getSyncStatusMessage(int status) {
+ int res;
+ switch (status) {
+ case SYNC_ENABLED:
+ res = R.string.sync_enabled;
+ break;
+ case SYNC_DISABLED:
+ res = R.string.sync_disabled;
+ break;
+ case SYNC_ERROR:
+ res = R.string.sync_error;
+ break;
+ case SYNC_IN_PROGRESS:
+ res = R.string.sync_in_progress;
+ break;
+ default:
+ res = R.string.sync_error;
+ Log.e(TAG, "Unknown sync status: " + status);
+ }
+ return res;
+ }
+
+ private int getSyncStatusIcon(int status) {
+ int res;
+ switch (status) {
+ case SYNC_ENABLED:
+ case SYNC_IN_PROGRESS:
+ res = R.drawable.ic_settings_sync;
+ break;
+ case SYNC_DISABLED:
+ res = R.drawable.ic_sync_grey_holo;
+ break;
+ case SYNC_ERROR:
+ res = R.drawable.ic_sync_red_holo;
+ break;
+ default:
+ res = R.drawable.ic_sync_red_holo;
+ Log.e(TAG, "Unknown sync status: " + status);
+ }
+ return res;
+ }
+
+ private String getSyncContentDescription(int status) {
+ switch (status) {
+ case SYNC_ENABLED:
+ return getContext().getString(R.string.accessibility_sync_enabled);
+ case SYNC_DISABLED:
+ return getContext().getString(R.string.accessibility_sync_disabled);
+ case SYNC_ERROR:
+ return getContext().getString(R.string.accessibility_sync_error);
+ case SYNC_IN_PROGRESS:
+ return getContext().getString(R.string.accessibility_sync_in_progress);
+ default:
+ Log.e(TAG, "Unknown sync status: " + status);
+ return getContext().getString(R.string.accessibility_sync_error);
+ }
+ }
}
diff --git a/src/com/android/settings/accounts/AccountPreferenceBase.java b/src/com/android/settings/accounts/AccountPreferenceBase.java
index c6581ac..aa5c518 100644
--- a/src/com/android/settings/accounts/AccountPreferenceBase.java
+++ b/src/com/android/settings/accounts/AccountPreferenceBase.java
@@ -32,6 +32,7 @@
import android.os.UserManager;
import android.support.v7.preference.PreferenceScreen;
import android.text.format.DateFormat;
+import android.text.format.DateUtils;
import android.util.Log;
import com.android.settings.SettingsPreferenceFragment;
@@ -46,6 +47,7 @@
implements AuthenticatorHelper.OnAccountsUpdateListener {
protected static final String TAG = "AccountSettings";
+ protected static final boolean VERBOSE = Log.isLoggable(TAG, Log.VERBOSE);
public static final String AUTHORITIES_FILTER_KEY = "authorities";
public static final String ACCOUNT_TYPES_FILTER_KEY = "account_types";
diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java
index a8b95d7..219dd3a 100644
--- a/src/com/android/settings/accounts/AccountPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountPreferenceController.java
@@ -26,6 +26,7 @@
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
@@ -47,6 +48,7 @@
import com.android.settings.core.lifecycle.LifecycleObserver;
import com.android.settings.core.lifecycle.events.OnPause;
import com.android.settings.core.lifecycle.events.OnResume;
+import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.Index;
import com.android.settings.search.SearchIndexableRaw;
@@ -87,6 +89,7 @@
private boolean mIAEnabled;
private int mAccountProfileOrder = ORDER_ACCOUNT_PROFILES;
private AccountRestrictionHelper mHelper;
+ private DashboardFeatureProvider mDashboardFeatureProvider;
/**
* Holds data related to the accounts belonging to one profile.
@@ -133,8 +136,9 @@
if (mAuthorities != null) {
mAuthoritiesCount = mAuthorities.length;
}
- mIAEnabled = FeatureFactory.getFactory(mContext).getDashboardFeatureProvider(mContext)
- .isEnabled();
+ mDashboardFeatureProvider =
+ FeatureFactory.getFactory(mContext).getDashboardFeatureProvider(mContext);
+ mIAEnabled = mDashboardFeatureProvider.isEnabled();
mHelper = helper;
}
@@ -144,11 +148,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public String getPreferenceKey() {
return null;
}
@@ -251,11 +250,6 @@
}
private void updateUi() {
- if (!mIAEnabled) {
- // Load the preferences from an XML resource
- mParent.addPreferencesFromResource(R.xml.account_settings);
- }
-
if (!isAvailable()) {
// This should not happen
Log.e(TAG, "We should not be showing settings for a managed profile");
@@ -265,6 +259,11 @@
return;
}
+ if (!mIAEnabled) {
+ // Load the preferences from an XML resource
+ mParent.addPreferencesFromResource(R.xml.account_settings);
+ }
+
if (mUm.isLinkedUser()) {
// Restricted user or similar
UserInfo userInfo = mUm.getUserInfo(UserHandle.myUserId());
@@ -401,7 +400,7 @@
private void updateAccountTypes(ProfileData profileData) {
profileData.preferenceGroup.removeAll();
if (profileData.userInfo.isEnabled()) {
- final ArrayList<AccountPreference> preferences = getAccountTypePreferences(
+ final ArrayList<AccountTypePreference> preferences = getAccountTypePreferences(
profileData.authenticatorHelper, profileData.userInfo.getUserHandle());
final int count = preferences.size();
for (int i = 0; i < count; i++) {
@@ -431,11 +430,11 @@
}
}
- private ArrayList<AccountPreference> getAccountTypePreferences(AuthenticatorHelper helper,
+ private ArrayList<AccountTypePreference> getAccountTypePreferences(AuthenticatorHelper helper,
UserHandle userHandle) {
final String[] accountTypes = helper.getEnabledAccountTypes();
- final ArrayList<AccountPreference> accountTypePreferences =
- new ArrayList<AccountPreference>(accountTypes.length);
+ final ArrayList<AccountTypePreference> accountTypePreferences =
+ new ArrayList<AccountTypePreference>(accountTypes.length);
for (int i = 0; i < accountTypes.length; i++) {
final String accountType = accountTypes[i];
@@ -454,17 +453,40 @@
.getAccountsByTypeAsUser(accountType, userHandle);
final boolean skipToAccount = accounts.length == 1
&& !helper.hasAccountPreferences(accountType);
+ final Drawable icon = helper.getDrawableForType(mContext, accountType);
+ final Context prefContext = mParent.getPreferenceManager().getContext();
- if (skipToAccount) {
+ if (mIAEnabled) {
+ // Add a preference row for each individual account
+ for (Account account : accounts) {
+ final ArrayList<String> auths =
+ helper.getAuthoritiesForAccountType(account.type);
+ if (!AccountRestrictionHelper.showAccount(mAuthorities, auths)) {
+ continue;
+ }
+ final Bundle fragmentArguments = new Bundle();
+ fragmentArguments.putParcelable(AccountDetailDashboardFragment.KEY_ACCOUNT,
+ account);
+ fragmentArguments.putString(AccountDetailDashboardFragment.KEY_ACCOUNT_TYPE,
+ accountType);
+ fragmentArguments.putString(AccountDetailDashboardFragment.KEY_ACCOUNT_LABEL,
+ label.toString());
+ fragmentArguments.putInt(AccountDetailDashboardFragment.KEY_ACCOUNT_TITLE_RES,
+ titleResId);
+ fragmentArguments.putParcelable(EXTRA_USER, userHandle);
+ accountTypePreferences.add(new AccountTypePreference(
+ prefContext, account.name, titleResPackageName, titleResId, label,
+ AccountDetailDashboardFragment.class.getName(), fragmentArguments, icon));
+ }
+ } else if (skipToAccount) {
final Bundle fragmentArguments = new Bundle();
fragmentArguments.putParcelable(AccountSyncSettings.ACCOUNT_KEY,
accounts[0]);
fragmentArguments.putParcelable(EXTRA_USER, userHandle);
- accountTypePreferences.add(new AccountPreference(
- mParent.getPreferenceManager().getContext(), label, titleResPackageName,
- titleResId, AccountSyncSettings.class.getName(), fragmentArguments,
- helper.getDrawableForType(mContext, accountType)));
+ accountTypePreferences.add(new AccountTypePreference(
+ prefContext, label, titleResPackageName,
+ titleResId, AccountSyncSettings.class.getName(), fragmentArguments, icon));
} else {
final Bundle fragmentArguments = new Bundle();
fragmentArguments.putString(ManageAccountsSettings.KEY_ACCOUNT_TYPE, accountType);
@@ -472,18 +494,23 @@
label.toString());
fragmentArguments.putParcelable(EXTRA_USER, userHandle);
- accountTypePreferences.add(new AccountPreference(
- mParent.getPreferenceManager().getContext(), label, titleResPackageName,
- titleResId, ManageAccountsSettings.class.getName(), fragmentArguments,
- helper.getDrawableForType(mContext, accountType)));
+ accountTypePreferences.add(new AccountTypePreference(
+
+ prefContext, label, titleResPackageName,
+ titleResId, ManageAccountsSettings.class.getName(), fragmentArguments, icon));
}
helper.preloadDrawableForType(mContext, accountType);
}
// Sort by label
- Collections.sort(accountTypePreferences, new Comparator<AccountPreference>() {
+ Collections.sort(accountTypePreferences, new Comparator<AccountTypePreference>() {
@Override
- public int compare(AccountPreference t1, AccountPreference t2) {
- return t1.getitle().toString().compareTo(t2.getitle().toString());
+ public int compare(AccountTypePreference t1, AccountTypePreference t2) {
+ int result = 0;
+ if (mIAEnabled) {
+ result = t1.getSummary().toString().compareTo(t2.getSummary().toString());
+ }
+ return result != 0
+ ? result : t1.getTitle().toString().compareTo(t2.getTitle().toString());
}
});
return accountTypePreferences;
diff --git a/src/com/android/settings/accounts/AccountRestrictionHelper.java b/src/com/android/settings/accounts/AccountRestrictionHelper.java
index 868fa1c..43c56ba 100644
--- a/src/com/android/settings/accounts/AccountRestrictionHelper.java
+++ b/src/com/android/settings/accounts/AccountRestrictionHelper.java
@@ -20,6 +20,7 @@
import com.android.settings.AccessiblePreferenceCategory;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedPreference;
+import java.util.ArrayList;
public class AccountRestrictionHelper {
@@ -55,4 +56,22 @@
return new AccessiblePreferenceCategory(context);
}
+ /**
+ * Checks if the account should be shown based on the required authorities for the account type
+ * @param authorities given authority that is passed as activity extra
+ * @param auths list of authorities for particular account type
+ * @return true if the activity has the required authority to show the account
+ */
+ public static boolean showAccount(String[] authorities, ArrayList<String> auths) {
+ boolean showAccount = true;
+ if (authorities != null && auths != null) {
+ showAccount = false;
+ for (String requestedAuthority : authorities) {
+ if (auths.contains(requestedAuthority)) {
+ return true;
+ }
+ }
+ }
+ return showAccount;
+ }
}
diff --git a/src/com/android/settings/accounts/AccountSyncPreferenceController.java b/src/com/android/settings/accounts/AccountSyncPreferenceController.java
new file mode 100644
index 0000000..76750b3
--- /dev/null
+++ b/src/com/android/settings/accounts/AccountSyncPreferenceController.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accounts;
+
+import static android.content.Intent.EXTRA_USER;
+
+import android.accounts.Account;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
+
+public class AccountSyncPreferenceController extends PreferenceController {
+
+ private static final String TAG = "AccountSyncController";
+ private static final String KEY_ACCOUNT_SYNC = "account_sync";
+
+ private Account mAccount;
+ private UserHandle mUserHandle;
+
+ public AccountSyncPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (!KEY_ACCOUNT_SYNC.equals(preference.getKey())) {
+ return false;
+ }
+ final Bundle args = new Bundle();
+ args.putParcelable(AccountSyncSettings.ACCOUNT_KEY, mAccount);
+ args.putParcelable(EXTRA_USER, mUserHandle);
+ Utils.startWithFragment(mContext, AccountSyncSettings.class.getName(), args, null, 0, -1,
+ mAccount.name);
+ return true;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_ACCOUNT_SYNC;
+ }
+
+ public void init(Account account, UserHandle userHandle) {
+ mAccount = account;
+ mUserHandle = userHandle;
+ }
+}
diff --git a/src/com/android/settings/accounts/AccountTypePreference.java b/src/com/android/settings/accounts/AccountTypePreference.java
new file mode 100644
index 0000000..bf3b9f5
--- /dev/null
+++ b/src/com/android/settings/accounts/AccountTypePreference.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accounts;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.Preference.OnPreferenceClickListener;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+
+import static android.content.Intent.EXTRA_USER;
+
+public class AccountTypePreference extends Preference implements OnPreferenceClickListener {
+ /**
+ * Title of the tile that is shown to the user.
+ * @attr ref android.R.styleable#PreferenceHeader_title
+ */
+ private final CharSequence mTitle;
+
+ /**
+ * Packange name used to resolve the resources of the title shown to the user in the new
+ * fragment.
+ */
+ private final String mTitleResPackageName;
+
+ /**
+ * Resource id of the title shown to the user in the new fragment.
+ */
+ private final int mTitleResId;
+
+ /**
+ * Summary of the tile that is shown to the user.
+ */
+ private final CharSequence mSummary;
+
+ /**
+ * Full class name of the fragment to display when this tile is
+ * selected.
+ * @attr ref android.R.styleable#PreferenceHeader_fragment
+ */
+ private final String mFragment;
+
+ /**
+ * Optional arguments to supply to the fragment when it is
+ * instantiated.
+ */
+ private final Bundle mFragmentArguments;
+
+ public AccountTypePreference(Context context, CharSequence title, String titleResPackageName,
+ int titleResId, String fragment, Bundle fragmentArguments, Drawable icon) {
+ this(context, title, titleResPackageName, titleResId, null, fragment, fragmentArguments,
+ icon);
+ }
+
+ public AccountTypePreference(Context context, CharSequence title, String titleResPackageName,
+ int titleResId, CharSequence summary, String fragment, Bundle fragmentArguments,
+ Drawable icon) {
+ super(context);
+ mTitle = title;
+ mTitleResPackageName = titleResPackageName;
+ mTitleResId = titleResId;
+ mSummary = summary;
+ mFragment = fragment;
+ mFragmentArguments = fragmentArguments;
+ setWidgetLayoutResource(R.layout.account_type_preference);
+
+ setTitle(title);
+ setSummary(summary);
+ setIcon(icon);
+
+ setOnPreferenceClickListener(this);
+ }
+
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ if (mFragment != null) {
+ UserManager userManager =
+ (UserManager) getContext().getSystemService(Context.USER_SERVICE);
+ UserHandle user = mFragmentArguments.getParcelable(EXTRA_USER);
+ if (user != null && Utils.startQuietModeDialogIfNecessary(getContext(), userManager,
+ user.getIdentifier())) {
+ return true;
+ } else if (user != null && Utils.unlockWorkProfileIfNecessary(getContext(),
+ user.getIdentifier())) {
+ return true;
+ }
+ Utils.startWithFragment(getContext(), mFragment, mFragmentArguments,
+ null /* resultTo */, 0 /* resultRequestCode */, mTitleResPackageName,
+ mTitleResId, null /* title */);
+ return true;
+ }
+ return false;
+ }
+
+ public CharSequence getTitle() {
+ return mTitle;
+ }
+
+ public CharSequence getSummary() {
+ return mSummary;
+ }
+
+}
diff --git a/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java b/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java
index 898d4a2..10e3610 100644
--- a/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java
+++ b/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java
@@ -71,11 +71,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean isAvailable() {
return mUserCaps.isAdmin() &&
(!mUserCaps.disallowAddUser() || mUserCaps.disallowAddUserSetByAdmin());
diff --git a/src/com/android/settings/accounts/ManageAccountsSettings.java b/src/com/android/settings/accounts/ManageAccountsSettings.java
index b124824..ce717e2 100644
--- a/src/com/android/settings/accounts/ManageAccountsSettings.java
+++ b/src/com/android/settings/accounts/ManageAccountsSettings.java
@@ -34,9 +34,11 @@
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.UserHandle;
+import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.PreferenceScreen;
+import android.util.ArraySet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -47,7 +49,6 @@
import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.AccountPreference;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
@@ -56,8 +57,8 @@
import java.util.ArrayList;
import java.util.Date;
-import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import static android.content.Intent.EXTRA_USER;
@@ -74,7 +75,7 @@
"com.android.settings.accounts.LAUNCHING_LOCATION_SETTINGS";
private static final int MENU_SYNC_NOW_ID = Menu.FIRST;
- private static final int MENU_SYNC_CANCEL_ID = Menu.FIRST + 1;
+ private static final int MENU_SYNC_CANCEL_ID = Menu.FIRST + 1;
private static final int REQUEST_SHOW_SYNC_SETTINGS = 1;
@@ -87,6 +88,8 @@
// mFirstAccount is used for the injected preferences
private Account mFirstAccount;
+ protected Set<String> mUserFacingSyncAuthorities;
+
@Override
public int getMetricsCategory() {
return MetricsEvent.ACCOUNTS_MANAGE_ACCOUNTS;
@@ -131,7 +134,7 @@
final Activity activity = getActivity();
final View view = getView();
- mErrorInfoView = (TextView)view.findViewById(R.id.sync_settings_error_info);
+ mErrorInfoView = (TextView) view.findViewById(R.id.sync_settings_error_info);
mErrorInfoView.setVisibility(View.GONE);
mAuthorities = activity.getIntent().getStringArrayExtra(AUTHORITIES_FILTER_KEY);
@@ -188,8 +191,7 @@
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
- boolean syncActive = !ContentResolver.getCurrentSyncsAsUser(
- mUserHandle.getIdentifier()).isEmpty();
+ boolean syncActive = !getCurrentSyncs(mUserHandle.getIdentifier()).isEmpty();
menu.findItem(MENU_SYNC_NOW_ID).setVisible(!syncActive);
menu.findItem(MENU_SYNC_CANCEL_ID).setVisible(syncActive);
}
@@ -197,12 +199,12 @@
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
- case MENU_SYNC_NOW_ID:
- requestOrCancelSyncForAccounts(true);
- return true;
- case MENU_SYNC_CANCEL_ID:
- requestOrCancelSyncForAccounts(false);
- return true;
+ case MENU_SYNC_NOW_ID:
+ requestOrCancelSyncForAccounts(true);
+ return true;
+ case MENU_SYNC_CANCEL_ID:
+ requestOrCancelSyncForAccounts(false);
+ return true;
}
return super.onOptionsItemSelected(item);
}
@@ -223,7 +225,7 @@
SyncAdapterType sa = syncAdapters[j];
if (syncAdapters[j].accountType.equals(mAccountType)
&& ContentResolver.getSyncAutomaticallyAsUser(account, sa.authority,
- userId)) {
+ userId)) {
if (sync) {
ContentResolver.requestSyncAsUser(account, sa.authority, userId,
extras);
@@ -238,47 +240,58 @@
@Override
protected void onSyncStateUpdated() {
- showSyncState();
- // Catch any delayed delivery of update messages
final Activity activity = getActivity();
- if (activity != null) {
- activity.invalidateOptionsMenu();
+ // Catch any delayed delivery of update messages
+ if (activity == null || activity.isFinishing()) {
+ return;
+ }
+ showSyncState();
+ activity.invalidateOptionsMenu();
+ }
+
+ private void tryInitUserFacingSyncAuthorities(int userId) {
+ if (mUserFacingSyncAuthorities != null) {
+ return;
+ }
+ mUserFacingSyncAuthorities = new ArraySet<>();
+
+ // only track userfacing sync adapters when deciding if account is synced or not
+ final SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypesAsUser(userId);
+ for (int k = 0, n = syncAdapters.length; k < n; k++) {
+ final SyncAdapterType sa = syncAdapters[k];
+ if (sa.isUserVisible()) {
+ mUserFacingSyncAuthorities.add(sa.authority);
+ }
}
}
/**
* Shows the sync state of the accounts. Note: it must be called after the accounts have been
- * loaded, @see #showAccountsIfNeeded().
+ * loaded.
+ *
+ * @see {@link #showAccountsIfNeeded()}.
*/
- private void showSyncState() {
- // Catch any delayed delivery of update messages
- if (getActivity() == null || getActivity().isFinishing()) return;
-
+ @VisibleForTesting
+ void showSyncState() {
final int userId = mUserHandle.getIdentifier();
+ tryInitUserFacingSyncAuthorities(userId);
// iterate over all the preferences, setting the state properly for each
- List<SyncInfo> currentSyncs = ContentResolver.getCurrentSyncsAsUser(userId);
+ final List<SyncInfo> currentSyncs = getCurrentSyncs(userId);
boolean anySyncFailed = false; // true if sync on any account failed
Date date = new Date();
- // only track userfacing sync adapters when deciding if account is synced or not
- final SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypesAsUser(userId);
- HashSet<String> userFacing = new HashSet<String>();
- for (int k = 0, n = syncAdapters.length; k < n; k++) {
- final SyncAdapterType sa = syncAdapters[k];
- if (sa.isUserVisible()) {
- userFacing.add(sa.authority);
- }
- }
- for (int i = 0, count = getPreferenceScreen().getPreferenceCount(); i < count; i++) {
- Preference pref = getPreferenceScreen().getPreference(i);
- if (! (pref instanceof AccountPreference)) {
+ final PreferenceScreen screen = getPreferenceScreen();
+ final int prefCount = screen.getPreferenceCount();
+ for (int i = 0; i < prefCount; i++) {
+ Preference pref = screen.getPreference(i);
+ if (!(pref instanceof AccountPreference)) {
continue;
}
- AccountPreference accountPref = (AccountPreference) pref;
- Account account = accountPref.getAccount();
+ final AccountPreference accountPref = (AccountPreference) pref;
+ final Account account = accountPref.getAccount();
int syncCount = 0;
long lastSuccessTime = 0;
boolean syncIsFailing = false;
@@ -286,28 +299,33 @@
boolean syncingNow = false;
if (authorities != null) {
for (String authority : authorities) {
- SyncStatusInfo status = ContentResolver.getSyncStatusAsUser(account, authority,
- userId);
+ SyncStatusInfo status = getSyncStatusInfo(account, authority, userId);
boolean syncEnabled = isSyncEnabled(userId, account, authority);
- boolean authorityIsPending = ContentResolver.isSyncPending(account, authority);
boolean activelySyncing = isSyncing(currentSyncs, account, authority);
boolean lastSyncFailed = status != null
&& syncEnabled
&& status.lastFailureTime != 0
&& status.getLastFailureMesgAsInt(0)
- != ContentResolver.SYNC_ERROR_SYNC_ALREADY_IN_PROGRESS;
- if (lastSyncFailed && !activelySyncing && !authorityIsPending) {
+ != ContentResolver.SYNC_ERROR_SYNC_ALREADY_IN_PROGRESS;
+ if (lastSyncFailed && !activelySyncing
+ && !ContentResolver.isSyncPending(account, authority)) {
syncIsFailing = true;
anySyncFailed = true;
+ break;
}
- syncingNow |= activelySyncing;
+
if (status != null && lastSuccessTime < status.lastSuccessTime) {
lastSuccessTime = status.lastSuccessTime;
}
- syncCount += syncEnabled && userFacing.contains(authority) ? 1 : 0;
+ syncCount += syncEnabled && mUserFacingSyncAuthorities.contains(authority)
+ ? 1 : 0;
+ syncingNow |= activelySyncing;
+ if (syncingNow) {
+ break;
+ }
}
} else {
- if (Log.isLoggable(TAG, Log.VERBOSE)) {
+ if (VERBOSE) {
Log.v(TAG, "no syncadapters found for " + account);
}
}
@@ -332,14 +350,14 @@
accountPref.setSyncStatus(AccountPreference.SYNC_DISABLED, true);
}
}
-
- mErrorInfoView.setVisibility(anySyncFailed ? View.VISIBLE : View.GONE);
+ if (mErrorInfoView != null) {
+ mErrorInfoView.setVisibility(anySyncFailed ? View.VISIBLE : View.GONE);
+ }
}
-
private boolean isSyncing(List<SyncInfo> currentSyncs, Account account, String authority) {
final int count = currentSyncs.size();
- for (int i = 0; i < count; i++) {
+ for (int i = 0; i < count; i++) {
SyncInfo syncInfo = currentSyncs.get(i);
if (syncInfo.account.equals(account) && syncInfo.authority.equals(authority)) {
return true;
@@ -348,7 +366,8 @@
return false;
}
- private boolean isSyncEnabled(int userId, Account account, String authority) {
+ @VisibleForTesting
+ protected boolean isSyncEnabled(int userId, Account account, String authority) {
return ContentResolver.getSyncAutomaticallyAsUser(account, authority, userId)
&& ContentResolver.getMasterSyncAutomaticallyAsUser(userId)
&& (ContentResolver.getIsSyncableAsUser(account, authority, userId) > 0);
@@ -373,18 +392,7 @@
if (mAccountType != null && !account.type.equals(mAccountType)) continue;
final ArrayList<String> auths = getAuthoritiesForAccountType(account.type);
- boolean showAccount = true;
- if (mAuthorities != null && auths != null) {
- showAccount = false;
- for (String requestedAuthority : mAuthorities) {
- if (auths.contains(requestedAuthority)) {
- showAccount = true;
- break;
- }
- }
- }
-
- if (showAccount) {
+ if (AccountRestrictionHelper.showAccount(mAuthorities, auths)) {
final Drawable icon = getDrawableForType(account.type);
final AccountPreference preference =
new AccountPreference(getPrefContext(), account, icon, auths, false);
@@ -447,7 +455,7 @@
*/
private void updatePreferenceIntents(PreferenceScreen prefs) {
final PackageManager pm = getActivity().getPackageManager();
- for (int i = 0; i < prefs.getPreferenceCount();) {
+ for (int i = 0; i < prefs.getPreferenceCount(); ) {
Preference pref = prefs.getPreference(i);
Intent intent = pref.getIntent();
if (intent != null) {
@@ -497,8 +505,8 @@
} else {
Log.e(TAG,
"Refusing to launch authenticator intent because"
- + "it exploits Settings permissions: "
- + prefIntent);
+ + "it exploits Settings permissions: "
+ + prefIntent);
}
return true;
}
@@ -547,4 +555,14 @@
}
}
}
+
+ @VisibleForTesting
+ protected List<SyncInfo> getCurrentSyncs(int userId) {
+ return ContentResolver.getCurrentSyncsAsUser(userId);
+ }
+
+ @VisibleForTesting
+ protected SyncStatusInfo getSyncStatusInfo(Account account, String authority, int userId) {
+ return ContentResolver.getSyncStatusAsUser(account, authority, userId);
+ }
}
diff --git a/src/com/android/settings/accounts/RemoveUserFragment.java b/src/com/android/settings/accounts/RemoveUserFragment.java
index a6772ad..0fcf64f 100644
--- a/src/com/android/settings/accounts/RemoveUserFragment.java
+++ b/src/com/android/settings/accounts/RemoveUserFragment.java
@@ -26,7 +26,7 @@
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.users.UserDialogs;
-class RemoveUserFragment extends InstrumentedDialogFragment {
+public class RemoveUserFragment extends InstrumentedDialogFragment {
private static final String ARG_USER_ID = "userId";
static RemoveUserFragment newInstance(int userId) {
diff --git a/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java b/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java
index aafec37..4113152 100644
--- a/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java
+++ b/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java
@@ -16,14 +16,20 @@
package com.android.settings.accounts;
import android.content.Context;
+import android.os.Bundle;
+import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.drawer.CategoryKey;
+import com.android.settingslib.drawer.Tile;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import static android.provider.Settings.EXTRA_AUTHORITIES;
@@ -31,6 +37,7 @@
public class UserAndAccountDashboardFragment extends DashboardFragment {
private static final String TAG = "UserAndAccountDashboard";
+ private static final String METADATA_IA_ACCOUNT = "com.android.settings.ia.account";
@Override
public int getMetricsCategory() {
@@ -65,10 +72,33 @@
controllers.add(new AutoSyncWorkDataPreferenceController(context, this));
String[] authorities = getIntent().getStringArrayExtra(EXTRA_AUTHORITIES);
final AccountPreferenceController accountPrefController =
- new AccountPreferenceController(context, this, authorities);
+ new AccountPreferenceController(context, this, authorities);
getLifecycle().addObserver(accountPrefController);
controllers.add(accountPrefController);
return controllers;
}
-}
+ @Override
+ protected boolean displayTile(Tile tile) {
+ final Bundle metadata = tile.metaData;
+ if (metadata != null) {
+ return metadata.getString(METADATA_IA_ACCOUNT) == null;
+ }
+ return true;
+ }
+
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.user_and_accounts_settings;
+ return Arrays.asList(sir);
+ }
+ };
+}
\ No newline at end of file
diff --git a/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java b/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
index 8630541..45b472a 100644
--- a/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
+++ b/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
@@ -17,12 +17,16 @@
package com.android.settings.applications;
import android.content.Context;
+import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.drawer.CategoryKey;
+import java.util.Arrays;
import java.util.List;
public class AppAndNotificationDashboardFragment extends DashboardFragment {
@@ -53,4 +57,19 @@
protected List<PreferenceController> getPreferenceControllers(Context context) {
return null;
}
+
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.app_and_notification;
+ return Arrays.asList(sir);
+ }
+ };
}
diff --git a/src/com/android/settings/applications/AppCounter.java b/src/com/android/settings/applications/AppCounter.java
index 64b1987..9464531 100644
--- a/src/com/android/settings/applications/AppCounter.java
+++ b/src/com/android/settings/applications/AppCounter.java
@@ -41,7 +41,7 @@
final List<ApplicationInfo> list =
mPm.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
- | (user.isAdmin() ? PackageManager.GET_UNINSTALLED_PACKAGES : 0),
+ | (user.isAdmin() ? PackageManager.MATCH_ANY_USER : 0),
user.id);
for (ApplicationInfo info : list) {
if (includeInCount(info)) {
diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
index 8ab730a..015347d 100644
--- a/src/com/android/settings/applications/AppInfoBase.java
+++ b/src/com/android/settings/applications/AppInfoBase.java
@@ -141,8 +141,8 @@
// Get application info again to refresh changed properties of application
try {
mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName,
- PackageManager.GET_DISABLED_COMPONENTS |
- PackageManager.GET_UNINSTALLED_PACKAGES |
+ PackageManager.MATCH_DISABLED_COMPONENTS |
+ PackageManager.MATCH_ANY_USER |
PackageManager.GET_SIGNATURES |
PackageManager.GET_PERMISSIONS);
} catch (NameNotFoundException e) {
diff --git a/src/com/android/settings/applications/AppOpsDetails.java b/src/com/android/settings/applications/AppOpsDetails.java
index 697ffd8..e6c040b 100644
--- a/src/com/android/settings/applications/AppOpsDetails.java
+++ b/src/com/android/settings/applications/AppOpsDetails.java
@@ -39,14 +39,14 @@
import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
import java.util.List;
-public class AppOpsDetails extends InstrumentedFragment {
+public class AppOpsDetails extends InstrumentedPreferenceFragment {
static final String TAG = "AppOpsDetails";
public static final String ARG_PACKAGE_NAME = "package";
@@ -80,8 +80,8 @@
}
try {
mPackageInfo = mPm.getPackageInfo(packageName,
- PackageManager.GET_DISABLED_COMPONENTS |
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_DISABLED_COMPONENTS |
+ PackageManager.MATCH_ANY_USER);
} catch (NameNotFoundException e) {
Log.e(TAG, "Exception when retrieving package:" + packageName, e);
mPackageInfo = null;
diff --git a/src/com/android/settings/applications/AppOpsState.java b/src/com/android/settings/applications/AppOpsState.java
index 237eac6..2a5c49a 100644
--- a/src/com/android/settings/applications/AppOpsState.java
+++ b/src/com/android/settings/applications/AppOpsState.java
@@ -167,6 +167,7 @@
AppOpsManager.OP_AUDIO_ALARM_VOLUME,
AppOpsManager.OP_AUDIO_NOTIFICATION_VOLUME,
AppOpsManager.OP_AUDIO_BLUETOOTH_VOLUME,
+ AppOpsManager.OP_AUDIO_ACCESSIBILITY_VOLUME,
AppOpsManager.OP_MUTE_MICROPHONE},
new boolean[] { false,
true,
@@ -508,8 +509,8 @@
if (appInfo == null) {
try {
appInfo = mPm.getApplicationInfo(packageName,
- PackageManager.GET_DISABLED_COMPONENTS
- | PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_DISABLED_COMPONENTS
+ | PackageManager.MATCH_ANY_USER);
} catch (PackageManager.NameNotFoundException e) {
Log.w(TAG, "Unable to find info for package " + packageName);
return null;
diff --git a/src/com/android/settings/applications/AppOpsSummary.java b/src/com/android/settings/applications/AppOpsSummary.java
index ac0a856..ba2a3c9 100644
--- a/src/com/android/settings/applications/AppOpsSummary.java
+++ b/src/com/android/settings/applications/AppOpsSummary.java
@@ -29,10 +29,10 @@
import android.view.ViewGroup;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.R;
-public class AppOpsSummary extends InstrumentedFragment {
+public class AppOpsSummary extends InstrumentedPreferenceFragment {
// layout inflater object used to inflate views
private LayoutInflater mInflater;
diff --git a/src/com/android/settings/applications/BackgroundCheckSummary.java b/src/com/android/settings/applications/BackgroundCheckSummary.java
index 1ff43c8..dd5c89c 100644
--- a/src/com/android/settings/applications/BackgroundCheckSummary.java
+++ b/src/com/android/settings/applications/BackgroundCheckSummary.java
@@ -24,10 +24,10 @@
import android.view.ViewGroup;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.R;
-public class BackgroundCheckSummary extends InstrumentedFragment {
+public class BackgroundCheckSummary extends InstrumentedPreferenceFragment {
// layout inflater object used to inflate views
private LayoutInflater mInflater;
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index add4301..2569eac 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -635,8 +635,9 @@
// to go away.
try {
ApplicationInfo ainfo = context.getPackageManager().getApplicationInfo(
- mAppEntry.info.packageName, PackageManager.GET_UNINSTALLED_PACKAGES
- | PackageManager.GET_DISABLED_COMPONENTS);
+ mAppEntry.info.packageName,
+ PackageManager.MATCH_DISABLED_COMPONENTS
+ | PackageManager.MATCH_ANY_USER);
if (!mShowUninstalled) {
// If we did not start out with the app uninstalled, then
// it transitioning to the uninstalled state for the current
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index 0ec9f1b..099d30e 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -67,7 +67,7 @@
import com.android.settings.Utils;
import com.android.settings.applications.AppStateAppOpsBridge.PermissionState;
import com.android.settings.applications.AppStateUsageBridge.UsageState;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.fuelgauge.HighPowerDetail;
import com.android.settings.fuelgauge.PowerWhitelistBackend;
@@ -95,7 +95,7 @@
* can be launched through Settings or via the ACTION_MANAGE_PACKAGE_STORAGE
* intent.
*/
-public class ManageApplications extends InstrumentedFragment
+public class ManageApplications extends InstrumentedPreferenceFragment
implements OnItemClickListener, OnItemSelectedListener {
static final String TAG = "ManageApplications";
@@ -767,6 +767,12 @@
private boolean mHasReceivedLoadEntries;
private boolean mHasReceivedBridgeCallback;
+ // These two variables are used to remember and restore the last scroll position when this
+ // fragment is paused. We need this special handling because app entries are added gradually
+ // when we rebuild the list after the user made some changes, like uninstalling an app.
+ private int mLastIndex = -1;
+ private int mLastTop;
+
private AlphabeticIndex.ImmutableIndex<Locale> mIndex;
private SectionInfo[] mSections = EMPTY_SECTIONS;
private int[] mPositionToSectionIndex;
@@ -851,6 +857,10 @@
mExtraInfoBridge.pause();
}
}
+ // Record the current scroll position before pausing.
+ mLastIndex = mManageApplications.mListView.getFirstVisiblePosition();
+ View v = mManageApplications.mListView.getChildAt(0);
+ mLastTop = (v == null) ? 0 : (v.getTop() - mManageApplications.mListView.getPaddingTop());
}
public void release() {
@@ -971,6 +981,12 @@
}
notifyDataSetChanged();
+ // Restore the last scroll position if the number of entries added so far is bigger than
+ // it.
+ if (mLastIndex != -1 && getCount() > mLastIndex) {
+ mManageApplications.mListView.setSelectionFromTop(mLastIndex, mLastTop);
+ mLastIndex = -1;
+ }
if (mSession.getAllApps().size() != 0
&& mManageApplications.mListContainer.getVisibility() != View.VISIBLE) {
diff --git a/src/com/android/settings/applications/PackageManagerWrapper.java b/src/com/android/settings/applications/PackageManagerWrapper.java
index d399115..6c783d8 100644
--- a/src/com/android/settings/applications/PackageManagerWrapper.java
+++ b/src/com/android/settings/applications/PackageManagerWrapper.java
@@ -18,6 +18,7 @@
import android.content.Intent;
import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import java.util.List;
@@ -29,24 +30,30 @@
* the API version supported by Robolectric.
*/
public interface PackageManagerWrapper {
+
+ /**
+ * Returns the real {@code PackageManager} object.
+ */
+ PackageManager getPackageManager();
+
/**
* Calls {@code PackageManager.getInstalledApplicationsAsUser()}.
*
- * @see android.content.pm.PackageManager.PackageManager#getInstalledApplicationsAsUser
+ * @see android.content.pm.PackageManager#getInstalledApplicationsAsUser
*/
List<ApplicationInfo> getInstalledApplicationsAsUser(int flags, int userId);
/**
* Calls {@code PackageManager.hasSystemFeature()}.
*
- * @see android.content.pm.PackageManager.PackageManager#hasSystemFeature
+ * @see android.content.pm.PackageManager#hasSystemFeature
*/
boolean hasSystemFeature(String name);
/**
* Calls {@code PackageManager.queryIntentActivitiesAsUser()}.
*
- * @see android.content.pm.PackageManager.PackageManager#queryIntentActivitiesAsUser
+ * @see android.content.pm.PackageManager#queryIntentActivitiesAsUser
*/
List<ResolveInfo> queryIntentActivitiesAsUser(Intent intent, int flags, int userId);
}
diff --git a/src/com/android/settings/applications/PackageManagerWrapperImpl.java b/src/com/android/settings/applications/PackageManagerWrapperImpl.java
index 8966869..db1d30a 100644
--- a/src/com/android/settings/applications/PackageManagerWrapperImpl.java
+++ b/src/com/android/settings/applications/PackageManagerWrapperImpl.java
@@ -24,6 +24,7 @@
import java.util.List;
public class PackageManagerWrapperImpl implements PackageManagerWrapper {
+
private final PackageManager mPm;
public PackageManagerWrapperImpl(PackageManager pm) {
@@ -31,6 +32,11 @@
}
@Override
+ public PackageManager getPackageManager() {
+ return mPm;
+ }
+
+ @Override
public List<ApplicationInfo> getInstalledApplicationsAsUser(int flags, int userId) {
return mPm.getInstalledApplicationsAsUser(flags, userId);
}
diff --git a/src/com/android/settings/applications/ProcStatsPackageEntry.java b/src/com/android/settings/applications/ProcStatsPackageEntry.java
index dcf87fc..39a0042 100644
--- a/src/com/android/settings/applications/ProcStatsPackageEntry.java
+++ b/src/com/android/settings/applications/ProcStatsPackageEntry.java
@@ -116,15 +116,15 @@
try {
if ("os".equals(mPackage)) {
mUiTargetApp = pm.getApplicationInfo("android",
- PackageManager.GET_DISABLED_COMPONENTS |
- PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS |
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_DISABLED_COMPONENTS |
+ PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS |
+ PackageManager.MATCH_ANY_USER);
mUiLabel = context.getString(R.string.process_stats_os_label);
} else {
mUiTargetApp = pm.getApplicationInfo(mPackage,
- PackageManager.GET_DISABLED_COMPONENTS |
- PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS |
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_DISABLED_COMPONENTS |
+ PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS |
+ PackageManager.MATCH_ANY_USER);
mUiLabel = mUiTargetApp.loadLabel(pm).toString();
}
} catch (PackageManager.NameNotFoundException e) {
diff --git a/src/com/android/settings/applications/ProcessStatsMemDetail.java b/src/com/android/settings/applications/ProcessStatsMemDetail.java
index 46a707b..b38aaf6 100644
--- a/src/com/android/settings/applications/ProcessStatsMemDetail.java
+++ b/src/com/android/settings/applications/ProcessStatsMemDetail.java
@@ -26,12 +26,12 @@
import com.android.internal.app.procstats.ProcessStats;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.R;
import static com.android.settings.Utils.prepareCustomPreferencesList;
-public class ProcessStatsMemDetail extends InstrumentedFragment {
+public class ProcessStatsMemDetail extends InstrumentedPreferenceFragment {
public static final String EXTRA_MEM_TIMES = "mem_times";
public static final String EXTRA_MEM_STATE_WEIGHTS = "mem_state_weights";
public static final String EXTRA_MEM_CACHED_WEIGHT = "mem_cached_weight";
diff --git a/src/com/android/settings/applications/RunningServiceDetails.java b/src/com/android/settings/applications/RunningServiceDetails.java
index 28a8029..9a173bc 100644
--- a/src/com/android/settings/applications/RunningServiceDetails.java
+++ b/src/com/android/settings/applications/RunningServiceDetails.java
@@ -33,7 +33,7 @@
import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -45,7 +45,7 @@
import java.util.ArrayList;
import java.util.Collections;
-public class RunningServiceDetails extends InstrumentedFragment
+public class RunningServiceDetails extends InstrumentedPreferenceFragment
implements RunningState.OnRefreshUiListener {
static final String TAG = "RunningServicesDetails";
diff --git a/src/com/android/settings/applications/RunningState.java b/src/com/android/settings/applications/RunningState.java
index f1c3342..dd44887 100644
--- a/src/com/android/settings/applications/RunningState.java
+++ b/src/com/android/settings/applications/RunningState.java
@@ -420,7 +420,7 @@
try {
ApplicationInfo ai = pm.getApplicationInfo(mProcessName,
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
if (ai.uid == mUid) {
mDisplayLabel = ai.loadLabel(pm);
mLabel = mDisplayLabel.toString();
@@ -438,7 +438,7 @@
if (pkgs.length == 1) {
try {
ApplicationInfo ai = pm.getApplicationInfo(pkgs[0],
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
mDisplayLabel = ai.loadLabel(pm);
mLabel = mDisplayLabel.toString();
mPackageInfo = ai;
@@ -480,7 +480,7 @@
// Finally... whatever, just pick the first package's name.
try {
ApplicationInfo ai = pm.getApplicationInfo(pkgs[0],
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
mDisplayLabel = ai.loadLabel(pm);
mLabel = mDisplayLabel.toString();
mPackageInfo = ai;
@@ -500,7 +500,7 @@
si.mRunningService = service;
try {
si.mServiceInfo = ActivityThread.getPackageManager().getServiceInfo(
- service.service, PackageManager.GET_UNINSTALLED_PACKAGES,
+ service.service, PackageManager.MATCH_UNINSTALLED_PACKAGES,
UserHandle.getUserId(service.uid));
if (si.mServiceInfo == null) {
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index 57133b1..db541d5 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -16,15 +16,20 @@
package com.android.settings.connecteddevice;
import android.content.Context;
+import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.deviceinfo.UsbBackend;
import com.android.settings.nfc.NfcPreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
import com.android.settingslib.drawer.CategoryKey;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
public class ConnectedDeviceDashboardFragment extends DashboardFragment {
@@ -65,4 +70,21 @@
return controllers;
}
+ /**
+ * For Search.
+ */
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.connected_devices;
+ return Arrays.asList(sir);
+ }
+ };
}
\ No newline at end of file
diff --git a/src/com/android/settings/connecteddevice/UsbModePreferenceController.java b/src/com/android/settings/connecteddevice/UsbModePreferenceController.java
index f782e9e..5f700bd 100644
--- a/src/com/android/settings/connecteddevice/UsbModePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/UsbModePreferenceController.java
@@ -58,11 +58,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean isAvailable() {
return true;
}
diff --git a/src/com/android/settings/core/InstrumentedFragment.java b/src/com/android/settings/core/InstrumentedFragment.java
index 45e855e..e55cc27 100644
--- a/src/com/android/settings/core/InstrumentedFragment.java
+++ b/src/com/android/settings/core/InstrumentedFragment.java
@@ -17,37 +17,17 @@
package com.android.settings.core;
import android.content.Context;
-import android.os.Bundle;
import com.android.settings.core.instrumentation.Instrumentable;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
-import com.android.settings.core.lifecycle.ObservablePreferenceFragment;
+import com.android.settings.core.lifecycle.ObservableFragment;
import com.android.settings.overlay.FeatureFactory;
-/**
- * Instrumented fragment that logs visibility state.
- */
-public abstract class InstrumentedFragment extends ObservablePreferenceFragment
- implements Instrumentable {
+public abstract class InstrumentedFragment extends ObservableFragment implements Instrumentable {
protected MetricsFeatureProvider mMetricsFeatureProvider;
- // metrics placeholder value. Only use this for development.
- protected final int PLACEHOLDER_METRIC = 10000;
- protected final int SYSTEM_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 1;
- protected final int STORAGE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 2;
- protected final int NETWORK_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 3;
- protected final int CONNECTED_DEVICE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 4;
- protected final int APP_AND_NOTIFICATION_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 5;
- protected final int INPUT_AND_GESTURE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 6;
- protected final int LANGUAGE_AND_REGION_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 7;
- protected final int GESTURE_SWIPE_TO_NOTIFICATION = PLACEHOLDER_METRIC + 8;
- protected final int GESTURE_DOUBLE_TAP_POWER = PLACEHOLDER_METRIC + 9;
- protected final int GESTURE_PICKUP = PLACEHOLDER_METRIC + 10;
- protected final int GESTURE_DOUBLE_TAP_SCREEN = PLACEHOLDER_METRIC + 11;
- protected final int GESTURE_DOUBLE_TWIST = PLACEHOLDER_METRIC + 12;
-
public InstrumentedFragment() {
// Mixin that logs visibility change for activity.
getLifecycle().addObserver(new VisibilityLoggerMixin(getMetricsCategory()));
@@ -58,8 +38,4 @@
super.onAttach(context);
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
-
- @Override
- public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
- }
-}
+}
\ No newline at end of file
diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
new file mode 100644
index 0000000..1724d0c
--- /dev/null
+++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core;
+
+import android.content.Context;
+import android.os.Bundle;
+
+import com.android.settings.core.instrumentation.Instrumentable;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
+import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
+import com.android.settings.core.lifecycle.ObservablePreferenceFragment;
+import com.android.settings.overlay.FeatureFactory;
+
+/**
+ * Instrumented fragment that logs visibility state.
+ */
+public abstract class InstrumentedPreferenceFragment extends ObservablePreferenceFragment
+ implements Instrumentable {
+
+ protected MetricsFeatureProvider mMetricsFeatureProvider;
+
+ // metrics placeholder value. Only use this for development.
+ protected final int PLACEHOLDER_METRIC = 10000;
+ protected final int SYSTEM_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 1;
+ protected final int STORAGE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 2;
+ protected final int NETWORK_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 3;
+ protected final int CONNECTED_DEVICE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 4;
+ protected final int APP_AND_NOTIFICATION_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 5;
+ protected final int INPUT_AND_GESTURE_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 6;
+ protected final int LANGUAGE_AND_REGION_CATEGORY_FRAGMENT = PLACEHOLDER_METRIC + 7;
+ protected final int GESTURE_SWIPE_TO_NOTIFICATION = PLACEHOLDER_METRIC + 8;
+ protected final int GESTURE_DOUBLE_TAP_POWER = PLACEHOLDER_METRIC + 9;
+ protected final int GESTURE_PICKUP = PLACEHOLDER_METRIC + 10;
+ protected final int GESTURE_DOUBLE_TAP_SCREEN = PLACEHOLDER_METRIC + 11;
+ protected final int GESTURE_DOUBLE_TWIST = PLACEHOLDER_METRIC + 12;
+
+ public InstrumentedPreferenceFragment() {
+ // Mixin that logs visibility change for activity.
+ getLifecycle().addObserver(new VisibilityLoggerMixin(getMetricsCategory()));
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ }
+}
diff --git a/src/com/android/settings/core/PreferenceController.java b/src/com/android/settings/core/PreferenceController.java
index 93ffe36..8f551de 100644
--- a/src/com/android/settings/core/PreferenceController.java
+++ b/src/com/android/settings/core/PreferenceController.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
+
import com.android.settings.search.SearchIndexableRaw;
import java.util.List;
@@ -27,7 +28,7 @@
*/
public abstract class PreferenceController {
- protected Context mContext;
+ protected final Context mContext;
public PreferenceController(Context context) {
mContext = context;
@@ -85,7 +86,9 @@
* @param preference the preference being clicked
* @return true if click is handled
*/
- public abstract boolean handlePreferenceTreeClick(Preference preference);
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ return false;
+ }
/**
* Returns the key for this preference.
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
new file mode 100644
index 0000000..db7eb5a
--- /dev/null
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -0,0 +1,247 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core.gateway;
+
+import com.android.settings.ApnEditor;
+import com.android.settings.ApnSettings;
+import com.android.settings.ChooseLockPassword;
+import com.android.settings.ChooseLockPattern;
+import com.android.settings.CryptKeeperSettings;
+import com.android.settings.DateTimeSettings;
+import com.android.settings.DevelopmentSettings;
+import com.android.settings.DeviceAdminSettings;
+import com.android.settings.DeviceInfoSettings;
+import com.android.settings.DisplaySettings;
+import com.android.settings.DreamSettings;
+import com.android.settings.HomeSettings;
+import com.android.settings.IccLockSettings;
+import com.android.settings.MasterClear;
+import com.android.settings.PrivacySettings;
+import com.android.settings.SecuritySettings;
+import com.android.settings.TestingSettings;
+import com.android.settings.TetherSettings;
+import com.android.settings.TrustedCredentialsSettings;
+import com.android.settings.UserDictionarySettings;
+import com.android.settings.WallpaperTypeSettings;
+import com.android.settings.WifiCallingSettings;
+import com.android.settings.WirelessSettings;
+import com.android.settings.accessibility.AccessibilitySettings;
+import com.android.settings.accessibility.AccessibilitySettingsForSetupWizard;
+import com.android.settings.accessibility.CaptionPropertiesFragment;
+import com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment;
+import com.android.settings.accounts.AccountSettings;
+import com.android.settings.accounts.AccountSyncSettings;
+import com.android.settings.accounts.ChooseAccountActivity;
+import com.android.settings.accounts.ManagedProfileSettings;
+import com.android.settings.accounts.UserAndAccountDashboardFragment;
+import com.android.settings.applications.AdvancedAppSettings;
+import com.android.settings.applications.AppAndNotificationDashboardFragment;
+import com.android.settings.applications.DrawOverlayDetails;
+import com.android.settings.applications.InstalledAppDetails;
+import com.android.settings.applications.ManageApplications;
+import com.android.settings.applications.ManageAssist;
+import com.android.settings.applications.ManageDomainUrls;
+import com.android.settings.applications.NotificationApps;
+import com.android.settings.applications.ProcessStatsSummary;
+import com.android.settings.applications.ProcessStatsUi;
+import com.android.settings.applications.UsageAccessDetails;
+import com.android.settings.applications.VrListenerSettings;
+import com.android.settings.applications.WriteSettingsDetails;
+import com.android.settings.bluetooth.BluetoothSettings;
+import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
+import com.android.settings.dashboard.SupportFragment;
+import com.android.settings.datausage.DataUsageSummary;
+import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
+import com.android.settings.deviceinfo.ImeiInformation;
+import com.android.settings.deviceinfo.PrivateVolumeForget;
+import com.android.settings.deviceinfo.PrivateVolumeSettings;
+import com.android.settings.deviceinfo.PublicVolumeSettings;
+import com.android.settings.deviceinfo.SimStatus;
+import com.android.settings.deviceinfo.Status;
+import com.android.settings.deviceinfo.StorageDashboardFragment;
+import com.android.settings.deviceinfo.StorageSettings;
+import com.android.settings.display.NightDisplaySettings;
+import com.android.settings.enterprise.EnterprisePrivacySettings;
+import com.android.settings.fuelgauge.BatterySaverSettings;
+import com.android.settings.fuelgauge.PowerUsageDetail;
+import com.android.settings.fuelgauge.PowerUsageSummary;
+import com.android.settings.gestures.DoubleTapPowerSettings;
+import com.android.settings.gestures.DoubleTapScreenSettings;
+import com.android.settings.gestures.DoubleTwistGestureSettings;
+import com.android.settings.gestures.GestureSettings;
+import com.android.settings.gestures.PickupGestureSettings;
+import com.android.settings.gestures.SwipeToNotificationSettings;
+import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
+import com.android.settings.inputmethod.InputAndGestureSettings;
+import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
+import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
+import com.android.settings.inputmethod.PhysicalKeyboardFragment;
+import com.android.settings.inputmethod.SpellCheckersSettings;
+import com.android.settings.inputmethod.UserDictionaryList;
+import com.android.settings.language.LanguageAndRegionSettings;
+import com.android.settings.localepicker.LocaleListEditor;
+import com.android.settings.location.LocationSettings;
+import com.android.settings.network.NetworkDashboardFragment;
+import com.android.settings.nfc.AndroidBeam;
+import com.android.settings.nfc.PaymentSettings;
+import com.android.settings.notification.AppNotificationSettings;
+import com.android.settings.notification.ConfigureNotificationSettings;
+import com.android.settings.notification.NotificationAccessSettings;
+import com.android.settings.notification.NotificationStation;
+import com.android.settings.notification.OtherSoundSettings;
+import com.android.settings.notification.SoundSettings;
+import com.android.settings.notification.ZenAccessSettings;
+import com.android.settings.notification.ZenModeAutomationSettings;
+import com.android.settings.notification.ZenModeEventRuleSettings;
+import com.android.settings.notification.ZenModePrioritySettings;
+import com.android.settings.notification.ZenModeScheduleRuleSettings;
+import com.android.settings.notification.ZenModeSettings;
+import com.android.settings.notification.ZenModeVisualInterruptionSettings;
+import com.android.settings.print.PrintJobSettingsFragment;
+import com.android.settings.print.PrintSettingsFragment;
+import com.android.settings.sim.SimSettings;
+import com.android.settings.system.SystemDashboardFragment;
+import com.android.settings.tts.TextToSpeechSettings;
+import com.android.settings.users.UserSettings;
+import com.android.settings.vpn2.VpnSettings;
+import com.android.settings.wfd.WifiDisplaySettings;
+import com.android.settings.wifi.AdvancedWifiSettings;
+import com.android.settings.wifi.SavedAccessPointsWifiSettings;
+import com.android.settings.wifi.WifiAPITest;
+import com.android.settings.wifi.WifiInfo;
+import com.android.settings.wifi.WifiSettings;
+import com.android.settings.wifi.p2p.WifiP2pSettings;
+
+public class SettingsGateway {
+
+ /**
+ * A list of fragment that can be hosted by SettingsActivity. SettingsActivity will throw a
+ * security exception if the fragment it needs to display is not in this list.
+ */
+ public static final String[] ENTRY_FRAGMENTS = {
+ WirelessSettings.class.getName(),
+ WifiSettings.class.getName(),
+ AdvancedWifiSettings.class.getName(),
+ SavedAccessPointsWifiSettings.class.getName(),
+ BluetoothSettings.class.getName(),
+ SimSettings.class.getName(),
+ TetherSettings.class.getName(),
+ WifiP2pSettings.class.getName(),
+ VpnSettings.class.getName(),
+ DateTimeSettings.class.getName(),
+ LocaleListEditor.class.getName(),
+ InputMethodAndLanguageSettings.class.getName(),
+ AvailableVirtualKeyboardFragment.class.getName(),
+ InputAndGestureSettings.class.getName(),
+ LanguageAndRegionSettings.class.getName(),
+ SpellCheckersSettings.class.getName(),
+ UserDictionaryList.class.getName(),
+ UserDictionarySettings.class.getName(),
+ HomeSettings.class.getName(),
+ DisplaySettings.class.getName(),
+ DeviceInfoSettings.class.getName(),
+ ManageApplications.class.getName(),
+ NotificationApps.class.getName(),
+ ManageAssist.class.getName(),
+ ProcessStatsUi.class.getName(),
+ NotificationStation.class.getName(),
+ LocationSettings.class.getName(),
+ SecuritySettings.class.getName(),
+ UsageAccessDetails.class.getName(),
+ PrivacySettings.class.getName(),
+ DeviceAdminSettings.class.getName(),
+ AccessibilitySettings.class.getName(),
+ AccessibilitySettingsForSetupWizard.class.getName(),
+ CaptionPropertiesFragment.class.getName(),
+ ToggleDaltonizerPreferenceFragment.class.getName(),
+ TextToSpeechSettings.class.getName(),
+ StorageSettings.class.getName(),
+ PrivateVolumeForget.class.getName(),
+ PrivateVolumeSettings.class.getName(),
+ PublicVolumeSettings.class.getName(),
+ DevelopmentSettings.class.getName(),
+ AndroidBeam.class.getName(),
+ WifiDisplaySettings.class.getName(),
+ PowerUsageSummary.class.getName(),
+ AccountSyncSettings.class.getName(),
+ AccountSettings.class.getName(),
+ GestureSettings.class.getName(),
+ SwipeToNotificationSettings.class.getName(),
+ DoubleTapPowerSettings.class.getName(),
+ DoubleTapScreenSettings.class.getName(),
+ PickupGestureSettings.class.getName(),
+ DoubleTwistGestureSettings.class.getName(),
+ CryptKeeperSettings.class.getName(),
+ DataUsageSummary.class.getName(),
+ DreamSettings.class.getName(),
+ UserSettings.class.getName(),
+ NotificationAccessSettings.class.getName(),
+ ZenAccessSettings.class.getName(),
+ PrintSettingsFragment.class.getName(),
+ PrintJobSettingsFragment.class.getName(),
+ TrustedCredentialsSettings.class.getName(),
+ PaymentSettings.class.getName(),
+ KeyboardLayoutPickerFragment.class.getName(),
+ PhysicalKeyboardFragment.class.getName(),
+ ZenModeSettings.class.getName(),
+ SoundSettings.class.getName(),
+ ConfigureNotificationSettings.class.getName(),
+ ChooseLockPassword.ChooseLockPasswordFragment.class.getName(),
+ ChooseLockPattern.ChooseLockPatternFragment.class.getName(),
+ InstalledAppDetails.class.getName(),
+ BatterySaverSettings.class.getName(),
+ AppNotificationSettings.class.getName(),
+ OtherSoundSettings.class.getName(),
+ ApnSettings.class.getName(),
+ ApnEditor.class.getName(),
+ WifiCallingSettings.class.getName(),
+ ZenModePrioritySettings.class.getName(),
+ ZenModeAutomationSettings.class.getName(),
+ ZenModeScheduleRuleSettings.class.getName(),
+ ZenModeEventRuleSettings.class.getName(),
+ ZenModeVisualInterruptionSettings.class.getName(),
+ ProcessStatsUi.class.getName(),
+ PowerUsageDetail.class.getName(),
+ ProcessStatsSummary.class.getName(),
+ DrawOverlayDetails.class.getName(),
+ WriteSettingsDetails.class.getName(),
+ AdvancedAppSettings.class.getName(),
+ WallpaperTypeSettings.class.getName(),
+ VrListenerSettings.class.getName(),
+ ManagedProfileSettings.class.getName(),
+ ChooseAccountActivity.class.getName(),
+ IccLockSettings.class.getName(),
+ ImeiInformation.class.getName(),
+ SimStatus.class.getName(),
+ Status.class.getName(),
+ TestingSettings.class.getName(),
+ WifiAPITest.class.getName(),
+ WifiInfo.class.getName(),
+ MasterClear.class.getName(),
+ NightDisplaySettings.class.getName(),
+ ManageDomainUrls.class.getName(),
+ AutomaticStorageManagerSettings.class.getName(),
+ SupportFragment.class.getName(),
+ StorageDashboardFragment.class.getName(),
+ SystemDashboardFragment.class.getName(),
+ NetworkDashboardFragment.class.getName(),
+ ConnectedDeviceDashboardFragment.class.getName(),
+ AppAndNotificationDashboardFragment.class.getName(),
+ UserAndAccountDashboardFragment.class.getName(),
+ EnterprisePrivacySettings.class.getName(),
+ };
+}
diff --git a/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java b/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java
index e4492be..b74c886 100644
--- a/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java
+++ b/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java
@@ -16,7 +16,6 @@
package com.android.settings.core.instrumentation;
import android.content.Context;
-import android.support.annotation.VisibleForTesting;
import java.util.ArrayList;
import java.util.List;
@@ -92,9 +91,4 @@
writer.histogram(context, name, bucket);
}
}
-
- @VisibleForTesting
- public void addLogWriter(LogWriter logWriter) {
- mLoggerWriters.add(logWriter);
- }
}
diff --git a/src/com/android/settings/core/lifecycle/ObservableFragment.java b/src/com/android/settings/core/lifecycle/ObservableFragment.java
new file mode 100644
index 0000000..b146325
--- /dev/null
+++ b/src/com/android/settings/core/lifecycle/ObservableFragment.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core.lifecycle;
+
+import android.annotation.CallSuper;
+import android.app.Fragment;
+import android.content.Context;
+import android.os.Bundle;
+
+public class ObservableFragment extends Fragment {
+
+ private final Lifecycle mLifecycle = new Lifecycle();
+
+ protected Lifecycle getLifecycle() {
+ return mLifecycle;
+ }
+
+ @CallSuper
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ mLifecycle.onAttach(context);
+ }
+
+ @CallSuper
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ mLifecycle.onCreate(savedInstanceState);
+ super.onCreate(savedInstanceState);
+ }
+
+ @CallSuper
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ mLifecycle.onSaveInstanceState(outState);
+ }
+
+ @CallSuper
+ @Override
+ public void onStart() {
+ mLifecycle.onStart();
+ super.onStart();
+ }
+
+ @CallSuper
+ @Override
+ public void onStop() {
+ mLifecycle.onStop();
+ super.onStop();
+ }
+
+ @CallSuper
+ @Override
+ public void onResume() {
+ mLifecycle.onResume();
+ super.onResume();
+ }
+
+ @CallSuper
+ @Override
+ public void onPause() {
+ mLifecycle.onPause();
+ super.onPause();
+ }
+
+ @CallSuper
+ @Override
+ public void onDestroy() {
+ mLifecycle.onDestroy();
+ super.onDestroy();
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
index 136bec0..8ff5607 100644
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ b/src/com/android/settings/dashboard/DashboardAdapter.java
@@ -25,6 +25,7 @@
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.ArrayMap;
+import android.util.Log;
import android.util.TypedValue;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
@@ -153,6 +154,7 @@
public void setConditions(List<Condition> conditions) {
final DashboardData prevData = mDashboardData;
+ Log.d(TAG, "adapter setConditions called");
mDashboardData = new DashboardData.Builder(prevData)
.setConditions(conditions)
.build();
@@ -165,7 +167,7 @@
if (position != DashboardData.POSITION_NOT_FOUND) {
// Since usually tile in parameter and tile in mCategories are same instance,
// which is hard to be detected by DiffUtil, so we notifyItemChanged directly.
- notifyItemChanged(position);
+ notifyItemChanged(position, mDashboardData.getItemTypeByPosition(position));
}
}
diff --git a/src/com/android/settings/dashboard/DashboardContainerFragment.java b/src/com/android/settings/dashboard/DashboardContainerFragment.java
index 45c423f..b3ee808 100644
--- a/src/com/android/settings/dashboard/DashboardContainerFragment.java
+++ b/src/com/android/settings/dashboard/DashboardContainerFragment.java
@@ -28,9 +28,9 @@
import android.view.ViewGroup;
import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
+import com.android.settings.core.InstrumentedFragment;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SupportFeatureProvider;
@@ -77,7 +77,7 @@
// check if support tab needs to be selected
final String selectedTab = getArguments().
- getString(EXTRA_SELECT_SETTINGS_TAB, ARG_SUMMARY_TAB);
+ getString(EXTRA_SELECT_SETTINGS_TAB, ARG_SUMMARY_TAB);
if (TextUtils.equals(selectedTab, ARG_SUPPORT_TAB)) {
mViewPager.setCurrentItem(INDEX_SUPPORT_FRAGMENT);
} else {
diff --git a/src/com/android/settings/dashboard/DashboardDividerDecoration.java b/src/com/android/settings/dashboard/DashboardDividerDecoration.java
deleted file mode 100644
index ed8a077..0000000
--- a/src/com/android/settings/dashboard/DashboardDividerDecoration.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.dashboard;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.drawable.Drawable;
-import android.support.v4.view.ViewCompat;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceGroupAdapter;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-
-import com.android.settings.overlay.FeatureFactory;
-
-public class DashboardDividerDecoration extends RecyclerView.ItemDecoration {
-
- private final DashboardFeatureProvider mDashboardFeatureProvider;
-
- private Drawable mDivider;
- private int mDividerHeight;
-
- public DashboardDividerDecoration(Context context) {
- mDashboardFeatureProvider = FeatureFactory.getFactory(context)
- .getDashboardFeatureProvider(context);
- }
-
- public void setDivider(Drawable divider) {
- if (divider != null) {
- mDividerHeight = divider.getIntrinsicHeight();
- } else {
- mDividerHeight = 0;
- }
- mDivider = divider;
- }
-
- public void setDividerHeight(int dividerHeight) {
- mDividerHeight = dividerHeight;
- }
-
- @Override
- public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
- if (mDivider == null) {
- return;
- }
- final int childCount = parent.getChildCount();
- final int width = parent.getWidth();
- for (int childViewIndex = 0; childViewIndex < childCount - 1; childViewIndex++) {
- final View view = parent.getChildAt(childViewIndex);
- if (shouldDrawDividerBelow(view, parent)) {
- int top = (int) ViewCompat.getY(view) + view.getHeight();
- mDivider.setBounds(0, top, width, top + mDividerHeight);
- mDivider.draw(c);
- }
- }
- }
-
- private boolean shouldDrawDividerBelow(View view, RecyclerView parent) {
- final RecyclerView.Adapter adapter = parent.getAdapter();
- if (adapter == null || !(adapter instanceof PreferenceGroupAdapter)) {
- return false;
- }
- final PreferenceGroupAdapter prefAdapter = (PreferenceGroupAdapter) adapter;
- final int adapterPosition = parent.getChildAdapterPosition(view);
- if (adapterPosition == RecyclerView.NO_POSITION) {
- return false;
- }
- final Preference pref = prefAdapter.getItem(adapterPosition);
- final Preference nextPref = prefAdapter.getItem(adapterPosition + 1);
- if (nextPref == null) {
- return false;
- }
-
- return mDashboardFeatureProvider.getPriorityGroup(pref)
- != mDashboardFeatureProvider.getPriorityGroup(nextPref);
- }
-
-}
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index a3bac9d..2245487 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -43,6 +43,8 @@
private static final String TAG = "DashboardFeatureImpl";
private static final String DASHBOARD_TILE_PREF_KEY_PREFIX = "dashboard_tile_pref_";
+ private static final String META_DATA_KEY_INTENT_ACTION = "com.android.settings.intent.action";
+
protected final Context mContext;
@@ -109,6 +111,9 @@
if (tile == null || tile.intent == null) {
return null;
}
+ if (!TextUtils.isEmpty(tile.key)) {
+ return tile.key;
+ }
final StringBuilder sb = new StringBuilder(DASHBOARD_TILE_PREF_KEY_PREFIX);
final ComponentName component = tile.intent.getComponent();
sb.append(component.getClassName());
@@ -130,13 +135,18 @@
}
final Bundle metadata = tile.metaData;
String clsName = null;
+ String action = null;
if (metadata != null) {
clsName = metadata.getString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS);
+ action = metadata.getString(META_DATA_KEY_INTENT_ACTION);
}
if (!TextUtils.isEmpty(clsName)) {
pref.setFragment(clsName);
} else if (tile.intent != null) {
final Intent intent = new Intent(tile.intent);
+ if (action != null) {
+ intent.setAction(action);
+ }
pref.setOnPreferenceClickListener(preference -> {
ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile);
if (tile.userHandle == null) {
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index b0f8734..e59b7ba 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -58,7 +58,6 @@
private final Map<Class, PreferenceController> mPreferenceControllers =
new ArrayMap<>();
private final Set<String> mDashboardTilePrefKeys = new ArraySet<>();
- private DashboardDividerDecoration mDividerDecoration;
protected ProgressiveDisclosureMixin mProgressiveDisclosureMixin;
protected DashboardFeatureProvider mDashboardFeatureProvider;
@@ -99,9 +98,6 @@
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = super.onCreateView(inflater, container, savedInstanceState);
- if (mDashboardFeatureProvider.isEnabled()) {
- getListView().addItemDecoration(mDividerDecoration);
- }
return view;
}
@@ -118,7 +114,6 @@
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
super.onCreatePreferences(savedInstanceState, rootKey);
- mDividerDecoration = new DashboardDividerDecoration(getContext());
refreshAllPreferences(getLogTag());
}
@@ -126,8 +121,6 @@
public void setDivider(Drawable divider) {
if (mDashboardFeatureProvider.isEnabled()) {
// Intercept divider and set it transparent so system divider decoration is disabled.
- // We will use our decoration to draw divider more intelligently.
- mDividerDecoration.setDivider(divider);
super.setDivider(new ColorDrawable(Color.TRANSPARENT));
} else {
super.setDivider(divider);
@@ -231,6 +224,13 @@
protected abstract List<PreferenceController> getPreferenceControllers(Context context);
/**
+ * Returns true if this tile should be displayed
+ */
+ protected boolean displayTile(Tile tile) {
+ return true;
+ }
+
+ /**
* Displays resource based tiles.
*/
private void displayResourceTiles() {
@@ -249,7 +249,7 @@
/**
* Update state of each preference managed by PreferenceController.
*/
- private void updatePreferenceStates() {
+ protected void updatePreferenceStates() {
Collection<PreferenceController> controllers = mPreferenceControllers.values();
final PreferenceScreen screen = getPreferenceScreen();
for (PreferenceController controller : controllers) {
@@ -319,6 +319,9 @@
Log.d(TAG, "tile does not contain a key, skipping " + tile);
continue;
}
+ if (!displayTile(tile)) {
+ continue;
+ }
if (mDashboardTilePrefKeys.contains(key)) {
// Have the key already, will rebind.
final Preference preference = mProgressiveDisclosureMixin.findPreference(
diff --git a/src/com/android/settings/dashboard/DashboardItemAnimator.java b/src/com/android/settings/dashboard/DashboardItemAnimator.java
new file mode 100644
index 0000000..fcaba22
--- /dev/null
+++ b/src/com/android/settings/dashboard/DashboardItemAnimator.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.dashboard;
+
+import android.support.v4.view.ViewCompat;
+import android.support.v7.widget.DefaultItemAnimator;
+import android.support.v7.widget.RecyclerView.ViewHolder;
+
+public class DashboardItemAnimator extends DefaultItemAnimator {
+
+ @Override
+ public boolean animateChange(ViewHolder oldHolder, ViewHolder newHolder, int fromX, int fromY,
+ int toX, int toY) {
+ if (oldHolder == newHolder) {
+ fromX += ViewCompat.getTranslationX(oldHolder.itemView);
+ fromY += ViewCompat.getTranslationY(oldHolder.itemView);
+ if (fromX == toX && fromY == toY) {
+ dispatchMoveFinished(oldHolder);
+ return false;
+ }
+ }
+ return super.animateChange(oldHolder, newHolder, fromX, fromY, toX, toY);
+ }
+}
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index 490808a..136ccaf 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -31,7 +31,7 @@
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.SettingsActivity;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.dashboard.conditional.Condition;
import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
import com.android.settings.dashboard.conditional.ConditionManager;
@@ -46,7 +46,7 @@
import java.util.ArrayList;
import java.util.List;
-public class DashboardSummary extends InstrumentedFragment
+public class DashboardSummary extends InstrumentedPreferenceFragment
implements SettingsDrawerActivity.CategoryListener, ConditionManager.ConditionListener,
FocusRecyclerView.FocusListener {
public static final boolean DEBUG = false;
@@ -176,9 +176,12 @@
public void onWindowFocusChanged(boolean hasWindowFocus) {
long startTime = System.currentTimeMillis();
if (hasWindowFocus) {
+ Log.d(TAG, "Listening for condition changes");
mConditionManager.addListener(this);
+ Log.d(TAG, "conditions refreshed");
mConditionManager.refreshAll();
} else {
+ Log.d(TAG, "Stopped listening for condition changes");
mConditionManager.remListener(this);
}
if (DEBUG_TIMING) {
@@ -219,9 +222,11 @@
mDashboard.setHasFixedSize(true);
mDashboard.addItemDecoration(new DashboardDecorator(getContext()));
mDashboard.setListener(this);
+ Log.d(TAG, "adapter created");
mAdapter = new DashboardAdapter(getContext(), mSuggestionParser, mMetricsFeatureProvider,
bundle, mConditionManager.getConditions());
mDashboard.setAdapter(mAdapter);
+ mDashboard.setItemAnimator(new DashboardItemAnimator());
mSummaryLoader.setSummaryConsumer(mAdapter);
ConditionAdapterUtils.addDismiss(mDashboard);
if (DEBUG_TIMING) {
diff --git a/src/com/android/settings/dashboard/DashboardTilePlaceholderPreferenceController.java b/src/com/android/settings/dashboard/DashboardTilePlaceholderPreferenceController.java
index 6b0018c..eb99fb3 100644
--- a/src/com/android/settings/dashboard/DashboardTilePlaceholderPreferenceController.java
+++ b/src/com/android/settings/dashboard/DashboardTilePlaceholderPreferenceController.java
@@ -53,11 +53,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public String getPreferenceKey() {
return KEY_PLACEHOLDER;
}
diff --git a/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java b/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
index 75251b3..8110f32 100644
--- a/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
+++ b/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
@@ -38,7 +38,7 @@
private static final String TAG = "ProgressiveDisclosure";
private static final String STATE_USER_EXPANDED = "state_user_expanded";
- private static final int DEFAULT_TILE_LIMIT = 3;
+ private static final int DEFAULT_TILE_LIMIT = 300;
private int mTileLimit = DEFAULT_TILE_LIMIT;
diff --git a/src/com/android/settings/dashboard/SearchResultsSummary.java b/src/com/android/settings/dashboard/SearchResultsSummary.java
index 7097485..ef84f8b 100644
--- a/src/com/android/settings/dashboard/SearchResultsSummary.java
+++ b/src/com/android/settings/dashboard/SearchResultsSummary.java
@@ -41,12 +41,12 @@
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.search.Index;
import java.util.HashMap;
-public class SearchResultsSummary extends InstrumentedFragment {
+public class SearchResultsSummary extends InstrumentedPreferenceFragment {
private static final String LOG_TAG = "SearchResultsSummary";
diff --git a/src/com/android/settings/dashboard/SupportFragment.java b/src/com/android/settings/dashboard/SupportFragment.java
index 63983ce..163bece 100644
--- a/src/com/android/settings/dashboard/SupportFragment.java
+++ b/src/com/android/settings/dashboard/SupportFragment.java
@@ -138,8 +138,8 @@
@Override
public void onAccountsUpdated(Account[] accounts) {
// Account changed, update support items.
- mSupportItemAdapter.setAccount(
- mSupportFeatureProvider.getSupportEligibleAccount(mActivity));
+ mSupportItemAdapter.setAccounts(
+ mSupportFeatureProvider.getSupportEligibleAccounts(mActivity));
}
@Override
diff --git a/src/com/android/settings/dashboard/SupportItemAdapter.java b/src/com/android/settings/dashboard/SupportItemAdapter.java
index 517d8d0..b125fff 100644
--- a/src/com/android/settings/dashboard/SupportItemAdapter.java
+++ b/src/com/android/settings/dashboard/SupportItemAdapter.java
@@ -26,6 +26,7 @@
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
+import android.support.annotation.VisibleForTesting;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
@@ -38,6 +39,7 @@
import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto;
+import com.android.internal.util.ArrayUtils;
import com.android.settings.R;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.SupportFeatureProvider;
@@ -46,8 +48,8 @@
import com.android.settings.support.SupportPhoneDialogFragment;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
-import java.util.Objects;
import static com.android.settings.overlay.SupportFeatureProvider.SupportType.CHAT;
import static com.android.settings.overlay.SupportFeatureProvider.SupportType.PHONE;
@@ -58,6 +60,7 @@
public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAdapter.ViewHolder> {
private static final String STATE_SELECTED_COUNTRY = "STATE_SELECTED_COUNTRY";
+ private static final String ACCOUNT_SELECTED_INDEX = "ACCOUNT_SELECTED_INDEX";
private static final int TYPE_ESCALATION_OPTIONS = R.layout.support_escalation_options;
private static final int TYPE_ESCALATION_OPTIONS_OFFLINE =
R.layout.support_offline_escalation_options;
@@ -67,7 +70,8 @@
private final Activity mActivity;
private final EscalationClickListener mEscalationClickListener;
- private final SpinnerItemSelectListener mSpinnerItemSelectListener;
+ private final OfflineSpinnerItemSelectListener mOfflineSpinnerItemSelectListener;
+ private final OnlineSpinnerItemSelectListener mOnlineSpinnerItemSelectListener;
private final SupportFeatureProvider mSupportFeatureProvider;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private final View.OnClickListener mItemClickListener;
@@ -75,7 +79,8 @@
private String mSelectedCountry;
private boolean mHasInternet;
- private Account mAccount;
+ private Account[] mAccounts;
+ private int mSelectedAccountIndex;
public SupportItemAdapter(Activity activity, Bundle savedInstanceState,
SupportFeatureProvider supportFeatureProvider,
@@ -86,16 +91,20 @@
mMetricsFeatureProvider = metricsFeatureProvider;
mItemClickListener = itemClickListener;
mEscalationClickListener = new EscalationClickListener();
- mSpinnerItemSelectListener = new SpinnerItemSelectListener();
+ mOfflineSpinnerItemSelectListener = new OfflineSpinnerItemSelectListener();
+ mOnlineSpinnerItemSelectListener = new OnlineSpinnerItemSelectListener();
mSupportData = new ArrayList<>();
// Optimistically assume we have Internet access. It will be updated later to correct value.
mHasInternet = true;
if (savedInstanceState != null) {
mSelectedCountry = savedInstanceState.getString(STATE_SELECTED_COUNTRY);
+ mSelectedAccountIndex = savedInstanceState.getInt(ACCOUNT_SELECTED_INDEX);
} else {
mSelectedCountry = mSupportFeatureProvider.getCurrentCountryCodeIfHasConfig(PHONE);
+ mSelectedAccountIndex = 0;
}
- mAccount = mSupportFeatureProvider.getSupportEligibleAccount(mActivity);
+
+ mAccounts = mSupportFeatureProvider.getSupportEligibleAccounts(mActivity);
refreshData();
}
@@ -159,9 +168,16 @@
}
}
- public void setAccount(Account account) {
- if (!Objects.equals(mAccount, account)) {
- mAccount = account;
+ public void setAccounts(Account accounts[]) {
+ if (!Arrays.equals(mAccounts, accounts)) {
+ if (mAccounts.length == 0) {
+ mSelectedAccountIndex = 0;
+ } else {
+ final int index = ArrayUtils.indexOf(accounts, mAccounts[mSelectedAccountIndex]);
+ mSelectedAccountIndex = index != -1 ? index : 0;
+ }
+
+ mAccounts = accounts;
mSupportFeatureProvider.refreshOperationRules();
refreshEscalationCards();
}
@@ -169,6 +185,7 @@
public void onSaveInstanceState(Bundle outState) {
outState.putString(STATE_SELECTED_COUNTRY, mSelectedCountry);
+ outState.putInt(ACCOUNT_SELECTED_INDEX, mSelectedAccountIndex);
}
/**
@@ -187,7 +204,7 @@
* different content.
*/
private void addEscalationCards() {
- if (mAccount == null) {
+ if (mAccounts.length == 0) {
addSignInPromo();
} else if (mHasInternet) {
addOnlineEscalationCards();
@@ -341,6 +358,21 @@
holder.summary2View.setVisibility(mHasInternet && !TextUtils.isEmpty(data.summary2)
? View.VISIBLE : View.GONE);
}
+
+ bindAccountPicker(holder);
+ }
+
+ @VisibleForTesting
+ public void bindAccountPicker(ViewHolder holder) {
+ final Spinner spinner = (Spinner) holder.itemView.findViewById(R.id.account_spinner);
+
+ final ArrayAdapter<String> adapter = new ArrayAdapter(
+ mActivity, R.layout.support_account_spinner_item,
+ extractAccountNames(mAccounts));
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ spinner.setAdapter(adapter);
+ spinner.setOnItemSelectedListener(mOnlineSpinnerItemSelectListener);
+ spinner.setSelection(mSelectedAccountIndex);
}
private void bindOfflineEscalationOptions(ViewHolder holder, OfflineEscalationData data) {
@@ -360,7 +392,7 @@
break;
}
}
- spinner.setOnItemSelectedListener(mSpinnerItemSelectListener);
+ spinner.setOnItemSelectedListener(mOfflineSpinnerItemSelectListener);
// Bind buttons
if (data.tollFreePhone != null) {
holder.text1View.setText(data.tollFreePhone.number);
@@ -415,11 +447,23 @@
*/
private void tryStartDisclaimerAndSupport(final @SupportFeatureProvider.SupportType int type) {
if (mSupportFeatureProvider.shouldShowDisclaimerDialog(mActivity)) {
- DialogFragment fragment = SupportDisclaimerDialogFragment.newInstance(mAccount, type);
+ DialogFragment fragment = SupportDisclaimerDialogFragment.newInstance(
+ mAccounts[mSelectedAccountIndex], type);
fragment.show(mActivity.getFragmentManager(), SupportDisclaimerDialogFragment.TAG);
return;
}
- mSupportFeatureProvider.startSupport(mActivity, mAccount, type);
+ mSupportFeatureProvider.startSupport(mActivity, mAccounts[mSelectedAccountIndex], type);
+ }
+
+ private String[] extractAccountNames(Account[] accounts) {
+ String[] accountNames = new String[accounts.length+1];
+ for (int i = 0; i < accounts.length; i++) {
+ accountNames[i] = accounts[i].name;
+ }
+ accountNames[accounts.length] = mActivity.getString(
+ R.string.support_account_picker_add_account);
+
+ return accountNames;
}
/**
@@ -428,7 +472,7 @@
private final class EscalationClickListener implements View.OnClickListener {
@Override
public void onClick(final View v) {
- if (mAccount == null) {
+ if (mAccounts.length == 0) {
switch (v.getId()) {
case android.R.id.text1:
mMetricsFeatureProvider.action(mActivity,
@@ -490,7 +534,8 @@
}
}
- private final class SpinnerItemSelectListener implements AdapterView.OnItemSelectedListener {
+ private final class OfflineSpinnerItemSelectListener
+ implements AdapterView.OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
@@ -508,6 +553,26 @@
}
}
+ private final class OnlineSpinnerItemSelectListener
+ implements AdapterView.OnItemSelectedListener {
+
+ @Override
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+ if (position == mAccounts.length) {
+ mActivity.startActivity(mSupportFeatureProvider.getAccountLoginIntent());
+ // Make sure "Add account" is not shown as selected item
+ parent.setSelection(mSelectedAccountIndex);
+ } else if (position != mSelectedAccountIndex) {
+ mSelectedAccountIndex = position;
+ }
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView<?> parent) {
+ // Do nothing.
+ }
+ }
+
/**
* {@link RecyclerView.ViewHolder} for support items.
*/
diff --git a/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java b/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
index b40baf5..37faeab 100644
--- a/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
+++ b/src/com/android/settings/dashboard/conditional/AirplaneModeCondition.java
@@ -20,12 +20,14 @@
import android.content.Intent;
import android.graphics.drawable.Icon;
import android.net.ConnectivityManager;
+import android.util.Log;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settingslib.WirelessUtils;
public class AirplaneModeCondition extends Condition {
+ public static String TAG = "APM_Condition";
public AirplaneModeCondition(ConditionManager conditionManager) {
super(conditionManager);
@@ -33,6 +35,7 @@
@Override
public void refreshState() {
+ Log.d(TAG, "APM condition refreshed");
setActive(WirelessUtils.isAirplaneModeOn(mManager.getContext()));
}
@@ -47,6 +50,12 @@
}
@Override
+ protected void setActive(boolean active) {
+ super.setActive(active);
+ Log.d(TAG, "setActive was called with " + active);
+ }
+
+ @Override
public CharSequence getTitle() {
return mManager.getContext().getString(R.string.condition_airplane_title);
}
diff --git a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
index c79cdf3..b58ac39 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
@@ -21,6 +21,7 @@
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
+import android.util.Log;
import android.view.View;
import android.view.View.OnLayoutChangeListener;
import android.view.ViewGroup.LayoutParams;
@@ -31,8 +32,10 @@
import com.android.settings.R;
import com.android.settings.dashboard.DashboardAdapter;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.WirelessUtils;
public class ConditionAdapterUtils {
+ private static final String TAG = "ConditionAdapterUtils";
public static void addDismiss(final RecyclerView recyclerView) {
ItemTouchHelper.SimpleCallback callback = new ItemTouchHelper.SimpleCallback(0,
@@ -65,6 +68,11 @@
public static void bindViews(final Condition condition,
DashboardAdapter.DashboardItemHolder view, boolean isExpanded,
View.OnClickListener onClickListener, View.OnClickListener onExpandListener) {
+ if (condition instanceof AirplaneModeCondition) {
+ Log.d(TAG, "Airplane mode condition has been bound with "
+ + "isActive=" + condition.isActive() + ". Airplane mode is currently " +
+ WirelessUtils.isAirplaneModeOn(condition.mManager.getContext()));
+ }
View card = view.itemView.findViewById(R.id.content);
card.setTag(condition);
card.setOnClickListener(onClickListener);
diff --git a/src/com/android/settings/dashboard/conditional/ConditionManager.java b/src/com/android/settings/dashboard/conditional/ConditionManager.java
index 691821a..030c62d 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionManager.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionManager.java
@@ -59,9 +59,11 @@
mContext = context;
mConditions = new ArrayList<>();
if (loadConditionsNow) {
+ Log.d(TAG, "conditions loading synchronously");
ConditionLoader loader = new ConditionLoader();
loader.onPostExecute(loader.doInBackground());
} else {
+ Log.d(TAG, "conditions loading asychronously");
new ConditionLoader().execute();
}
}
@@ -229,6 +231,7 @@
private class ConditionLoader extends AsyncTask<Void, Void, ArrayList<Condition>> {
@Override
protected ArrayList<Condition> doInBackground(Void... params) {
+ Log.d(TAG, "loading conditions from xml");
ArrayList<Condition> conditions = new ArrayList<>();
mXmlFile = new File(mContext.getFilesDir(), FILE_NAME);
if (mXmlFile.exists()) {
@@ -240,6 +243,7 @@
@Override
protected void onPostExecute(ArrayList<Condition> conditions) {
+ Log.d(TAG, "conditions loaded from xml, refreshing conditions");
mConditions.clear();
mConditions.addAll(conditions);
refreshAll();
diff --git a/src/com/android/settings/datetime/AutoTimePreferenceController.java b/src/com/android/settings/datetime/AutoTimePreferenceController.java
new file mode 100644
index 0000000..fdeef29
--- /dev/null
+++ b/src/com/android/settings/datetime/AutoTimePreferenceController.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+public class AutoTimePreferenceController extends PreferenceController
+ implements Preference.OnPreferenceChangeListener {
+
+ private static final String KEY_AUTO_TIME = "auto_time";
+ private final UpdateTimeAndDateCallback mCallback;
+
+ public AutoTimePreferenceController(Context context, UpdateTimeAndDateCallback callback) {
+ super(context);
+ mCallback = callback;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ if (!(preference instanceof RestrictedSwitchPreference)) {
+ return;
+ }
+ ((RestrictedSwitchPreference) preference).setDisabledByAdmin(
+ getEnforcedAdminProperty());
+ ((RestrictedSwitchPreference) preference).setChecked(isEnabled());
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_AUTO_TIME;
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ boolean autoEnabled = (Boolean) newValue;
+ Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AUTO_TIME,
+ autoEnabled ? 1 : 0);
+ mCallback.updateTimeAndDateDisplay(mContext);
+ return true;
+ }
+
+ public boolean isEnabled() {
+ return Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.AUTO_TIME, 0) > 0;
+ }
+
+ private RestrictedLockUtils.EnforcedAdmin getEnforcedAdminProperty() {
+ return RestrictedLockUtils.checkIfAutoTimeRequired(mContext);
+ }
+}
diff --git a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
new file mode 100644
index 0000000..c70289b
--- /dev/null
+++ b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
+
+public class AutoTimeZonePreferenceController extends PreferenceController
+ implements Preference.OnPreferenceChangeListener {
+
+ private static final String KEY_AUTO_TIME_ZONE = "auto_zone";
+
+ private final boolean mIsFromSUW;
+ private final UpdateTimeAndDateCallback mCallback;
+
+ public AutoTimeZonePreferenceController(Context context, UpdateTimeAndDateCallback callback,
+ boolean isFromSUW) {
+ super(context);
+ mCallback = callback;
+ mIsFromSUW = isFromSUW;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return !(Utils.isWifiOnly(mContext) || mIsFromSUW);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_AUTO_TIME_ZONE;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ if (!(preference instanceof SwitchPreference)) {
+ return;
+ }
+ ((SwitchPreference) preference).setChecked(isEnabled());
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ boolean autoZoneEnabled = (Boolean) newValue;
+ Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AUTO_TIME_ZONE,
+ autoZoneEnabled ? 1 : 0);
+ mCallback.updateTimeAndDateDisplay(mContext);
+ return true;
+ }
+
+ public boolean isEnabled() {
+ return Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.AUTO_TIME_ZONE, 0) > 0;
+ }
+}
diff --git a/src/com/android/settings/datetime/DatePreferenceController.java b/src/com/android/settings/datetime/DatePreferenceController.java
new file mode 100644
index 0000000..2a06e5a
--- /dev/null
+++ b/src/com/android/settings/datetime/DatePreferenceController.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.app.Activity;
+import android.app.AlarmManager;
+import android.app.DatePickerDialog;
+import android.content.Context;
+import android.support.annotation.VisibleForTesting;
+import android.support.v7.preference.Preference;
+import android.text.TextUtils;
+import android.text.format.DateFormat;
+import android.widget.DatePicker;
+
+import com.android.settings.core.PreferenceController;
+
+import java.util.Calendar;
+
+public class DatePreferenceController extends PreferenceController implements
+ DatePickerDialog.OnDateSetListener {
+
+ public interface DatePreferenceHost extends UpdateTimeAndDateCallback {
+ void showDatePicker();
+ }
+
+ public static final int DIALOG_DATEPICKER = 0;
+
+ private static final String KEY_DATE = "date";
+
+ private final DatePreferenceHost mHost;
+ private final AutoTimePreferenceController mAutoTimePreferenceController;
+
+ public DatePreferenceController(Context context, DatePreferenceHost host,
+ AutoTimePreferenceController autoTimePreferenceController) {
+ super(context);
+ mHost = host;
+ mAutoTimePreferenceController = autoTimePreferenceController;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ final Calendar now = Calendar.getInstance();
+ preference.setSummary(DateFormat.getLongDateFormat(mContext).format(now.getTime()));
+ preference.setEnabled(!mAutoTimePreferenceController.isEnabled());
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (!TextUtils.equals(preference.getKey(), KEY_DATE)) {
+ return false;
+ }
+ mHost.showDatePicker();
+ return true;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_DATE;
+ }
+
+ @Override
+ public void onDateSet(DatePicker view, int year, int month, int day) {
+ setDate(year, month, day);
+ mHost.updateTimeAndDateDisplay(mContext);
+ }
+
+ public DatePickerDialog buildDatePicker(Activity activity) {
+ final Calendar calendar = Calendar.getInstance();
+ final DatePickerDialog d = new DatePickerDialog(
+ activity,
+ this,
+ calendar.get(Calendar.YEAR),
+ calendar.get(Calendar.MONTH),
+ calendar.get(Calendar.DAY_OF_MONTH));
+ // The system clock can't represent dates outside this range.
+ calendar.clear();
+ calendar.set(2007, Calendar.JANUARY, 1);
+ d.getDatePicker().setMinDate(calendar.getTimeInMillis());
+ calendar.clear();
+ calendar.set(2037, Calendar.DECEMBER, 31);
+ d.getDatePicker().setMaxDate(calendar.getTimeInMillis());
+ return d;
+ }
+
+ @VisibleForTesting
+ void setDate(int year, int month, int day) {
+ Calendar c = Calendar.getInstance();
+
+ c.set(Calendar.YEAR, year);
+ c.set(Calendar.MONTH, month);
+ c.set(Calendar.DAY_OF_MONTH, day);
+ long when = Math.max(c.getTimeInMillis(), DatePreferenceHost.MIN_DATE);
+
+ if (when / 1000 < Integer.MAX_VALUE) {
+ ((AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
+ }
+ }
+}
diff --git a/src/com/android/settings/datetime/TimeChangeListenerMixin.java b/src/com/android/settings/datetime/TimeChangeListenerMixin.java
new file mode 100644
index 0000000..f3729ae
--- /dev/null
+++ b/src/com/android/settings/datetime/TimeChangeListenerMixin.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import com.android.settings.core.lifecycle.LifecycleObserver;
+import com.android.settings.core.lifecycle.events.OnPause;
+import com.android.settings.core.lifecycle.events.OnResume;
+
+public class TimeChangeListenerMixin extends BroadcastReceiver
+ implements LifecycleObserver, OnPause, OnResume {
+
+ private final Context mContext;
+ private final UpdateTimeAndDateCallback mCallback;
+
+ public TimeChangeListenerMixin(Context context, UpdateTimeAndDateCallback callback) {
+ mContext = context;
+ mCallback = callback;
+ }
+
+ @Override
+ public void onResume() {
+ // Register for time ticks and other reasons for time change
+ final IntentFilter filter = new IntentFilter();
+ filter.addAction(Intent.ACTION_TIME_TICK);
+ filter.addAction(Intent.ACTION_TIME_CHANGED);
+ filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
+
+ mContext.registerReceiver(this, filter, null, null);
+ }
+
+ @Override
+ public void onPause() {
+ mContext.unregisterReceiver(this);
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (mCallback != null) {
+ mCallback.updateTimeAndDateDisplay(mContext);
+ }
+ }
+}
diff --git a/src/com/android/settings/datetime/TimeFormatPreferenceController.java b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
index 068b790..75fc808 100644
--- a/src/com/android/settings/datetime/TimeFormatPreferenceController.java
+++ b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
@@ -58,8 +58,7 @@
@Override
public void updateState(Preference preference) {
- if (!(preference instanceof TwoStatePreference)
- || !TextUtils.equals(KEY_TIME_FORMAT, preference.getKey())) {
+ if (!(preference instanceof TwoStatePreference)) {
return;
}
((TwoStatePreference) preference).setChecked(is24Hour());
@@ -96,7 +95,10 @@
private void timeUpdated(boolean is24Hour) {
Intent timeChanged = new Intent(Intent.ACTION_TIME_CHANGED);
- timeChanged.putExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, is24Hour);
+ int timeFormatPreference =
+ is24Hour ? Intent.EXTRA_TIME_PREF_VALUE_USE_24_HOUR
+ : Intent.EXTRA_TIME_PREF_VALUE_USE_12_HOUR;
+ timeChanged.putExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, timeFormatPreference);
mContext.sendBroadcast(timeChanged);
}
diff --git a/src/com/android/settings/datetime/TimePreferenceController.java b/src/com/android/settings/datetime/TimePreferenceController.java
new file mode 100644
index 0000000..4862588
--- /dev/null
+++ b/src/com/android/settings/datetime/TimePreferenceController.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.app.Activity;
+import android.app.AlarmManager;
+import android.app.TimePickerDialog;
+import android.content.Context;
+import android.support.v7.preference.Preference;
+import android.text.TextUtils;
+import android.text.format.DateFormat;
+import android.widget.TimePicker;
+
+import com.android.settings.core.PreferenceController;
+
+import java.util.Calendar;
+
+public class TimePreferenceController extends PreferenceController implements
+ TimePickerDialog.OnTimeSetListener {
+
+ public interface TimePreferenceHost extends UpdateTimeAndDateCallback {
+ void showTimePicker();
+ }
+
+ public static final int DIALOG_TIMEPICKER = 1;
+
+ private static final String KEY_TIME = "time";
+
+ private final AutoTimePreferenceController mAutoTimePreferenceController;
+ private final TimePreferenceHost mHost;
+
+
+ public TimePreferenceController(Context context,
+ TimePreferenceHost callback,
+ AutoTimePreferenceController autoTimePreferenceController) {
+ super(context);
+ mHost = callback;
+ mAutoTimePreferenceController = autoTimePreferenceController;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ final Calendar now = Calendar.getInstance();
+ preference.setSummary(DateFormat.getTimeFormat(mContext).format(now.getTime()));
+ preference.setEnabled(!mAutoTimePreferenceController.isEnabled());
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (!TextUtils.equals(KEY_TIME, preference.getKey())) {
+ return false;
+ }
+ mHost.showTimePicker();
+ return true;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_TIME;
+ }
+
+ @Override
+ public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
+ if (mContext != null) {
+ setTime(hourOfDay, minute);
+ mHost.updateTimeAndDateDisplay(mContext);
+ }
+ // We don't need to call timeUpdated() here because the TIME_CHANGED
+ // broadcast is sent by the AlarmManager as a side effect of setting the
+ // SystemClock time.
+ }
+
+ public TimePickerDialog buildTimePicker(Activity activity) {
+ final Calendar calendar = Calendar.getInstance();
+ return new TimePickerDialog(
+ activity,
+ this,
+ calendar.get(Calendar.HOUR_OF_DAY),
+ calendar.get(Calendar.MINUTE),
+ DateFormat.is24HourFormat(activity));
+ }
+
+ void setTime(int hourOfDay, int minute) {
+ Calendar c = Calendar.getInstance();
+
+ c.set(Calendar.HOUR_OF_DAY, hourOfDay);
+ c.set(Calendar.MINUTE, minute);
+ c.set(Calendar.SECOND, 0);
+ c.set(Calendar.MILLISECOND, 0);
+ long when = Math.max(c.getTimeInMillis(), TimePreferenceHost.MIN_DATE);
+
+ if (when / 1000 < Integer.MAX_VALUE) {
+ ((AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
+ }
+ }
+}
diff --git a/src/com/android/settings/datetime/TimeZonePreferenceController.java b/src/com/android/settings/datetime/TimeZonePreferenceController.java
new file mode 100644
index 0000000..f0b604e
--- /dev/null
+++ b/src/com/android/settings/datetime/TimeZonePreferenceController.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.content.Context;
+import android.support.annotation.VisibleForTesting;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.datetime.ZoneGetter;
+
+import java.util.Calendar;
+
+public class TimeZonePreferenceController extends PreferenceController {
+
+ private static final String KEY_TIMEZONE = "timezone";
+
+ private final AutoTimeZonePreferenceController mAutoTimeZonePreferenceController;
+
+ public TimeZonePreferenceController(Context context,
+ AutoTimeZonePreferenceController autoTimeZonePreferenceController) {
+ super(context);
+ mAutoTimeZonePreferenceController = autoTimeZonePreferenceController;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ preference.setSummary(getTimeZoneOffsetAndName());
+ preference.setEnabled(!mAutoTimeZonePreferenceController.isEnabled());
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_TIMEZONE;
+ }
+
+ @VisibleForTesting
+ CharSequence getTimeZoneOffsetAndName() {
+ final Calendar now = Calendar.getInstance();
+ return ZoneGetter.getTimeZoneOffsetAndName(mContext,
+ now.getTimeZone(), now.getTime());
+ }
+}
diff --git a/src/com/android/settings/datetime/UpdateTimeAndDateCallback.java b/src/com/android/settings/datetime/UpdateTimeAndDateCallback.java
index e89b5da..333b9aa 100644
--- a/src/com/android/settings/datetime/UpdateTimeAndDateCallback.java
+++ b/src/com/android/settings/datetime/UpdateTimeAndDateCallback.java
@@ -19,6 +19,8 @@
import android.content.Context;
public interface UpdateTimeAndDateCallback {
+ // Minimum time is Nov 5, 2007, 0:00.
+ long MIN_DATE = 1194220800000L;
void updateTimeAndDateDisplay(Context context);
}
diff --git a/src/com/android/settings/development/BugReportInPowerPreferenceController.java b/src/com/android/settings/development/BugReportInPowerPreferenceController.java
new file mode 100644
index 0000000..47b2d0d
--- /dev/null
+++ b/src/com/android/settings/development/BugReportInPowerPreferenceController.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserManager;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.core.PreferenceController;
+
+public class BugReportInPowerPreferenceController extends PreferenceController {
+
+ private static final String KEY_BUGREPORT_IN_POWER = "bugreport_in_power";
+
+ private UserManager mUserManager;
+ private SwitchPreference mPreference;
+
+ public BugReportInPowerPreferenceController(Context context) {
+ super(context);
+ mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (KEY_BUGREPORT_IN_POWER.equals(preference.getKey())) {
+ final SwitchPreference switchPreference = (SwitchPreference) preference;
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Global.BUGREPORT_IN_POWER_MENU,
+ switchPreference.isChecked() ? 1 : 0);
+ setBugreportStorageProviderStatus();
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ if (isAvailable()) {
+ mPreference = (SwitchPreference) screen.findPreference(KEY_BUGREPORT_IN_POWER);
+ }
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_BUGREPORT_IN_POWER;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return !mUserManager.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ updatePreference();
+ }
+
+ public void enablePreference(boolean enabled) {
+ if (isAvailable()) {
+ mPreference.setEnabled(enabled);
+ }
+ }
+
+ public void resetPreference() {
+ if (mPreference.isChecked()) {
+ mPreference.setChecked(false);
+ handlePreferenceTreeClick(mPreference);
+ }
+ }
+
+ public boolean updatePreference() {
+ if (!isAvailable()) {
+ return false;
+ }
+ final boolean enabled = Settings.Secure.getInt(
+ mContext.getContentResolver(), Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0;
+ mPreference.setChecked(enabled);
+ return enabled;
+ }
+
+ public void updateBugreportOptions() {
+ if (!isAvailable()) {
+ return;
+ }
+ mPreference.setEnabled(true);
+ setBugreportStorageProviderStatus();
+ }
+
+ private void setBugreportStorageProviderStatus() {
+ final ComponentName componentName = new ComponentName("com.android.shell",
+ "com.android.shell.BugreportStorageProvider");
+ final boolean enabled = mPreference.isChecked();
+ mContext.getPackageManager().setComponentEnabledSetting(componentName,
+ enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+ : PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
+ 0);
+ }
+
+}
diff --git a/src/com/android/settings/development/BugReportPreferenceController.java b/src/com/android/settings/development/BugReportPreferenceController.java
new file mode 100644
index 0000000..371fb73
--- /dev/null
+++ b/src/com/android/settings/development/BugReportPreferenceController.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.core.PreferenceController;
+
+public class BugReportPreferenceController extends PreferenceController {
+
+ private static final String KEY_BUGREPORT = "bugreport";
+
+ private UserManager mUserManager;
+ private Preference mPreference;
+
+ public BugReportPreferenceController(Context context) {
+ super(context);
+ mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ if (isAvailable()) {
+ mPreference = screen.findPreference(KEY_BUGREPORT);
+ }
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_BUGREPORT;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return !mUserManager.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES);
+ }
+
+ public void enablePreference(boolean enabled) {
+ if (isAvailable()) {
+ mPreference.setEnabled(enabled);
+ }
+ }
+
+}
diff --git a/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceController.java b/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceController.java
index 3435b53..8d35eca 100644
--- a/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceController.java
@@ -29,11 +29,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean isAvailable() {
return mContext.getResources().getBoolean(
com.android.settings.R.bool.config_additional_system_update_setting_enable);
diff --git a/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java b/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java
index e64525b..f4dd14e 100644
--- a/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/ManageStoragePreferenceController.java
@@ -35,11 +35,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean isAvailable() {
return mContext.getResources().getBoolean(R.bool.config_storage_manager_settings_enabled);
}
diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeFormat.java b/src/com/android/settings/deviceinfo/PrivateVolumeFormat.java
index c4ca880..319a09c 100644
--- a/src/com/android/settings/deviceinfo/PrivateVolumeFormat.java
+++ b/src/com/android/settings/deviceinfo/PrivateVolumeFormat.java
@@ -30,10 +30,10 @@
import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.R;
-public class PrivateVolumeFormat extends InstrumentedFragment {
+public class PrivateVolumeFormat extends InstrumentedPreferenceFragment {
private VolumeInfo mVolume;
private DiskInfo mDisk;
diff --git a/src/com/android/settings/deviceinfo/SerialNumberPreferenceController.java b/src/com/android/settings/deviceinfo/SerialNumberPreferenceController.java
index 1029e20..0362bbc 100644
--- a/src/com/android/settings/deviceinfo/SerialNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/SerialNumberPreferenceController.java
@@ -56,11 +56,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public String getPreferenceKey() {
return KEY_SERIAL_NUMBER;
}
diff --git a/src/com/android/settings/display/AutoBrightnessPreferenceController.java b/src/com/android/settings/display/AutoBrightnessPreferenceController.java
index df2000e..1d644a4 100644
--- a/src/com/android/settings/display/AutoBrightnessPreferenceController.java
+++ b/src/com/android/settings/display/AutoBrightnessPreferenceController.java
@@ -46,11 +46,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void updateState(Preference preference) {
int brightnessMode = Settings.System.getInt(mContext.getContentResolver(),
SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
diff --git a/src/com/android/settings/display/AutoRotatePreferenceController.java b/src/com/android/settings/display/AutoRotatePreferenceController.java
index ee940a3..11c9333 100644
--- a/src/com/android/settings/display/AutoRotatePreferenceController.java
+++ b/src/com/android/settings/display/AutoRotatePreferenceController.java
@@ -68,11 +68,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean isAvailable() {
return RotationPolicy.isRotationLockToggleVisible(mContext);
}
diff --git a/src/com/android/settings/display/CameraGesturePreferenceController.java b/src/com/android/settings/display/CameraGesturePreferenceController.java
index a3dc6cf..1b60721 100644
--- a/src/com/android/settings/display/CameraGesturePreferenceController.java
+++ b/src/com/android/settings/display/CameraGesturePreferenceController.java
@@ -38,11 +38,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void updateState(Preference preference) {
int value = Settings.Secure.getInt(mContext.getContentResolver(),
CAMERA_GESTURE_DISABLED, 0);
diff --git a/src/com/android/settings/display/FontSizePreferenceController.java b/src/com/android/settings/display/FontSizePreferenceController.java
index 5014bda..7528f18 100644
--- a/src/com/android/settings/display/FontSizePreferenceController.java
+++ b/src/com/android/settings/display/FontSizePreferenceController.java
@@ -51,9 +51,4 @@
strEntryValues);
preference.setSummary(entries[index]);
}
-
- @Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
}
diff --git a/src/com/android/settings/display/LiftToWakePreferenceController.java b/src/com/android/settings/display/LiftToWakePreferenceController.java
index 81ba5f5..e8be936 100644
--- a/src/com/android/settings/display/LiftToWakePreferenceController.java
+++ b/src/com/android/settings/display/LiftToWakePreferenceController.java
@@ -45,11 +45,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean value = (Boolean) newValue;
Settings.Secure.putInt(mContext.getContentResolver(), WAKE_GESTURE_ENABLED, value ? 1 : 0);
diff --git a/src/com/android/settings/display/NightDisplayPreferenceController.java b/src/com/android/settings/display/NightDisplayPreferenceController.java
index 9cf2409..4b18778 100644
--- a/src/com/android/settings/display/NightDisplayPreferenceController.java
+++ b/src/com/android/settings/display/NightDisplayPreferenceController.java
@@ -28,11 +28,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean isAvailable() {
return NightDisplayController.isAvailable(mContext);
}
diff --git a/src/com/android/settings/display/NightModePreferenceController.java b/src/com/android/settings/display/NightModePreferenceController.java
index 874d84f..2eb64c0 100644
--- a/src/com/android/settings/display/NightModePreferenceController.java
+++ b/src/com/android/settings/display/NightModePreferenceController.java
@@ -62,11 +62,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
try {
final int value = Integer.parseInt((String) newValue);
diff --git a/src/com/android/settings/display/ScreenSaverPreferenceController.java b/src/com/android/settings/display/ScreenSaverPreferenceController.java
index 7335b1f..fab9062 100644
--- a/src/com/android/settings/display/ScreenSaverPreferenceController.java
+++ b/src/com/android/settings/display/ScreenSaverPreferenceController.java
@@ -39,11 +39,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void updateState(Preference preference) {
preference.setSummary(DreamSettings.getSummaryTextWithDreamName(mContext));
}
diff --git a/src/com/android/settings/display/ScreenZoomPreference.java b/src/com/android/settings/display/ScreenZoomPreference.java
index ee2ac95..07f61f8 100644
--- a/src/com/android/settings/display/ScreenZoomPreference.java
+++ b/src/com/android/settings/display/ScreenZoomPreference.java
@@ -16,23 +16,23 @@
package com.android.settings.display;
-import com.android.settingslib.display.DisplayDensityUtils;
-
import android.content.Context;
import android.support.v4.content.res.TypedArrayUtils;
-import android.support.v7.preference.PreferenceGroup;
+import android.support.v7.preference.Preference;
import android.text.TextUtils;
import android.util.AttributeSet;
+import com.android.settingslib.display.DisplayDensityUtils;
+
/**
* Preference for changing the density of the display on which the preference
* is visible.
*/
-public class ScreenZoomPreference extends PreferenceGroup {
+public class ScreenZoomPreference extends Preference {
public ScreenZoomPreference(Context context, AttributeSet attrs) {
super(context, attrs, TypedArrayUtils.getAttr(context,
- android.support.v7.preference.R.attr.preferenceScreenStyle,
- android.R.attr.preferenceScreenStyle));
+ android.support.v7.preference.R.attr.preferenceStyle,
+ android.R.attr.preferenceStyle));
if (TextUtils.isEmpty(getFragment())) {
setFragment("com.android.settings.display.ScreenZoomSettings");
@@ -49,9 +49,4 @@
setSummary(entries[currentIndex]);
}
}
-
- @Override
- protected boolean isOnSameScreenAsChildren() {
- return false;
- }
}
diff --git a/src/com/android/settings/display/TapToWakePreferenceController.java b/src/com/android/settings/display/TapToWakePreferenceController.java
index 18c877a..1f24d74 100644
--- a/src/com/android/settings/display/TapToWakePreferenceController.java
+++ b/src/com/android/settings/display/TapToWakePreferenceController.java
@@ -41,11 +41,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void updateState(Preference preference) {
int value = Settings.Secure.getInt(
mContext.getContentResolver(), Settings.Secure.DOUBLE_TAP_TO_WAKE, 0);
diff --git a/src/com/android/settings/display/TimeoutPreferenceController.java b/src/com/android/settings/display/TimeoutPreferenceController.java
index d33f813..d409656 100644
--- a/src/com/android/settings/display/TimeoutPreferenceController.java
+++ b/src/com/android/settings/display/TimeoutPreferenceController.java
@@ -52,11 +52,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void updateState(Preference preference) {
final TimeoutListPreference timeoutListPreference = (TimeoutListPreference) preference;
final long currentTimeout = Settings.System.getLong(mContext.getContentResolver(),
diff --git a/src/com/android/settings/display/VrDisplayPreferenceController.java b/src/com/android/settings/display/VrDisplayPreferenceController.java
index 61c3ed2..0eb1c88 100644
--- a/src/com/android/settings/display/VrDisplayPreferenceController.java
+++ b/src/com/android/settings/display/VrDisplayPreferenceController.java
@@ -74,9 +74,4 @@
}
return true;
}
-
- @Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
}
diff --git a/src/com/android/settings/display/WallpaperPreferenceController.java b/src/com/android/settings/display/WallpaperPreferenceController.java
index 8352377..aa29afc 100644
--- a/src/com/android/settings/display/WallpaperPreferenceController.java
+++ b/src/com/android/settings/display/WallpaperPreferenceController.java
@@ -46,11 +46,6 @@
disablePreferenceIfManaged((RestrictedPreference) preference);
}
- @Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
private void disablePreferenceIfManaged(RestrictedPreference pref) {
final String restriction = DISALLOW_SET_WALLPAPER;
if (pref != null) {
diff --git a/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java b/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java
new file mode 100644
index 0000000..99ff62e
--- /dev/null
+++ b/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+package com.android.settings.enterprise;
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+import android.text.format.DateUtils;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+
+import java.util.Date;
+
+public abstract class AdminActionPreferenceControllerBase extends PreferenceController {
+
+ private final Context mContext;
+ protected final EnterprisePrivacyFeatureProvider mFeatureProvider;
+
+ public AdminActionPreferenceControllerBase(Context context) {
+ super(context);
+ mContext = context;
+ mFeatureProvider = FeatureFactory.getFactory(context)
+ .getEnterprisePrivacyFeatureProvider(context);
+ }
+
+ protected abstract Date getAdminActionTimestamp();
+
+ @Override
+ public void updateState(Preference preference) {
+ final Date timestamp = getAdminActionTimestamp();
+ preference.setSummary(timestamp == null ?
+ mContext.getString(R.string.enterprise_privacy_never) :
+ DateUtils.formatDateTime(mContext, timestamp.getTime(),
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE));
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+}
diff --git a/src/com/android/settings/enterprise/BugReportsPreferenceController.java b/src/com/android/settings/enterprise/BugReportsPreferenceController.java
new file mode 100644
index 0000000..b5b61c3
--- /dev/null
+++ b/src/com/android/settings/enterprise/BugReportsPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+package com.android.settings.enterprise;
+
+import android.content.Context;
+
+import java.util.Date;
+
+public class BugReportsPreferenceController extends AdminActionPreferenceControllerBase {
+
+ private static final String KEY_BUG_REPORTS = "bug_reports";
+
+ public BugReportsPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ protected Date getAdminActionTimestamp() {
+ return mFeatureProvider.getLastBugReportRequestTime();
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_BUG_REPORTS;
+ }
+}
diff --git a/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java b/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
index 2d8ca1f..d65292f 100644
--- a/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
+++ b/src/com/android/settings/enterprise/DevicePolicyManagerWrapper.java
@@ -31,4 +31,25 @@
* @see android.app.admin.DevicePolicyManager#getDeviceOwnerComponentOnAnyUser
*/
ComponentName getDeviceOwnerComponentOnAnyUser();
+
+ /**
+ * Calls {@code DevicePolicyManager.getLastSecurityLogRetrievalTime()}.
+ *
+ * @see android.app.admin.DevicePolicyManager#getLastSecurityLogRetrievalTime
+ */
+ public long getLastSecurityLogRetrievalTime();
+
+ /**
+ * Calls {@code DevicePolicyManager.getLastBugReportRequestTime()}.
+ *
+ * @see android.app.admin.DevicePolicyManager#getLastBugReportRequestTime
+ */
+ public long getLastBugReportRequestTime();
+
+ /**
+ * Calls {@code DevicePolicyManager.getLastNetworkLogRetrievalTime()}.
+ *
+ * @see android.app.admin.DevicePolicyManager#getLastNetworkLogRetrievalTime
+ */
+ public long getLastNetworkLogRetrievalTime();
}
diff --git a/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java b/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
index 2b1efb4..710e5ac 100644
--- a/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
+++ b/src/com/android/settings/enterprise/DevicePolicyManagerWrapperImpl.java
@@ -30,4 +30,19 @@
public ComponentName getDeviceOwnerComponentOnAnyUser() {
return mDpm.getDeviceOwnerComponentOnAnyUser();
}
+
+ @Override
+ public long getLastSecurityLogRetrievalTime() {
+ return mDpm.getLastSecurityLogRetrievalTime();
+ }
+
+ @Override
+ public long getLastBugReportRequestTime() {
+ return mDpm.getLastBugReportRequestTime();
+ }
+
+ @Override
+ public long getLastNetworkLogRetrievalTime() {
+ return mDpm.getLastNetworkLogRetrievalTime();
+ }
}
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java
index e2fb0a3..efc02d6 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProvider.java
@@ -16,6 +16,30 @@
package com.android.settings.enterprise;
+import java.util.Date;
+
public interface EnterprisePrivacyFeatureProvider {
+
+ /**
+ * Returns whether the device is managed by a Device Owner app.
+ */
boolean hasDeviceOwner();
+
+ /**
+ * Returns the time at which the Device Owner last retrieved security logs, or {@code null} if
+ * logs were never retrieved by the Device Owner on this device.
+ */
+ Date getLastSecurityLogRetrievalTime();
+
+ /**
+ * Returns the time at which the Device Owner last requested a bug report, or {@code null} if no
+ * bug report was ever requested by the Device Owner on this device.
+ */
+ Date getLastBugReportRequestTime();
+
+ /**
+ * Returns the time at which the Device Owner last retrieved network logs, or {@code null} if
+ * logs were never retrieved by the Device Owner on this device.
+ */
+ Date getLastNetworkLogRetrievalTime();
}
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
index 8cdf270..2e8b7f6 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
@@ -20,6 +20,8 @@
import com.android.settings.applications.PackageManagerWrapper;
+import java.util.Date;
+
public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFeatureProvider {
private final DevicePolicyManagerWrapper mDpm;
@@ -38,4 +40,20 @@
}
return mDpm.getDeviceOwnerComponentOnAnyUser() != null;
}
+
+ @Override
+ public Date getLastSecurityLogRetrievalTime() {
+ final long timestamp = mDpm.getLastSecurityLogRetrievalTime();
+ return timestamp < 0 ? null : new Date(timestamp);
+ }
+
+ public Date getLastBugReportRequestTime() {
+ final long timestamp = mDpm.getLastBugReportRequestTime();
+ return timestamp < 0 ? null : new Date(timestamp);
+ }
+
+ public Date getLastNetworkLogRetrievalTime() {
+ final long timestamp = mDpm.getLastNetworkLogRetrievalTime();
+ return timestamp < 0 ? null : new Date(timestamp);
+ }
}
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
index 9ac76df..91d3a65 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
@@ -58,6 +58,9 @@
protected List<PreferenceController> getPreferenceControllers(Context context) {
final List controllers = new ArrayList<PreferenceController>();
controllers.add(new InstalledPackagesPreferenceController(context));
+ controllers.add(new NetworkLogsPreferenceController(context));
+ controllers.add(new BugReportsPreferenceController(context));
+ controllers.add(new SecurityLogsPreferenceController(context));
return controllers;
}
diff --git a/src/com/android/settings/enterprise/InstalledPackagesPreferenceController.java b/src/com/android/settings/enterprise/InstalledPackagesPreferenceController.java
index 34c72ed..a7afac0 100644
--- a/src/com/android/settings/enterprise/InstalledPackagesPreferenceController.java
+++ b/src/com/android/settings/enterprise/InstalledPackagesPreferenceController.java
@@ -40,7 +40,7 @@
@Override
public void onNumberOfInstalledAppsResult(int num) {
preference.setTitle(mContext.getResources().getQuantityString(
- R.plurals.number_installed_packages, num, num));
+ R.plurals.enterprise_privacy_number_installed_packages, num, num));
}
});
}
@@ -51,11 +51,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public String getPreferenceKey() {
return KEY_NUMBER_INSTALLED_PACKAGES;
}
diff --git a/src/com/android/settings/enterprise/NetworkLogsPreferenceController.java b/src/com/android/settings/enterprise/NetworkLogsPreferenceController.java
new file mode 100644
index 0000000..d7da525
--- /dev/null
+++ b/src/com/android/settings/enterprise/NetworkLogsPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+package com.android.settings.enterprise;
+
+import android.content.Context;
+
+import java.util.Date;
+
+public class NetworkLogsPreferenceController extends AdminActionPreferenceControllerBase {
+
+ private static final String KEY_NETWORK_LOGS = "network_logs";
+
+ public NetworkLogsPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ protected Date getAdminActionTimestamp() {
+ return mFeatureProvider.getLastNetworkLogRetrievalTime();
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_NETWORK_LOGS;
+ }
+}
diff --git a/src/com/android/settings/enterprise/SecurityLogsPreferenceController.java b/src/com/android/settings/enterprise/SecurityLogsPreferenceController.java
new file mode 100644
index 0000000..60baa63
--- /dev/null
+++ b/src/com/android/settings/enterprise/SecurityLogsPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+package com.android.settings.enterprise;
+
+import android.content.Context;
+
+import java.util.Date;
+
+public class SecurityLogsPreferenceController extends AdminActionPreferenceControllerBase {
+
+ private static final String KEY_SECURITY_LOGS = "security_logs";
+
+ public SecurityLogsPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ protected Date getAdminActionTimestamp() {
+ return mFeatureProvider.getLastSecurityLogRetrievalTime();
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_SECURITY_LOGS;
+ }
+}
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
index c0c0d33..e0c5d65 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
@@ -28,12 +28,12 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.Utils;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
/**
* Sidecar fragment to handle the state around fingerprint enrollment.
*/
-public class FingerprintEnrollSidecar extends InstrumentedFragment {
+public class FingerprintEnrollSidecar extends InstrumentedPreferenceFragment {
private int mEnrollmentSteps = -1;
private int mEnrollmentRemaining = 0;
diff --git a/src/com/android/settings/fuelgauge/HighPowerDetail.java b/src/com/android/settings/fuelgauge/HighPowerDetail.java
index 580c59f..a59dc78 100644
--- a/src/com/android/settings/fuelgauge/HighPowerDetail.java
+++ b/src/com/android/settings/fuelgauge/HighPowerDetail.java
@@ -138,7 +138,7 @@
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
Fragment target = getTargetFragment();
- if (target != null) {
+ if (target != null && target.getActivity() != null) {
target.onActivityResult(getTargetRequestCode(), 0, null);
}
}
diff --git a/src/com/android/settings/gestures/DoubleTapPowerSettings.java b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
index 521c665..b4319f1 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
@@ -17,12 +17,16 @@
package com.android.settings.gestures;
import android.content.Context;
+import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
public class DoubleTapPowerSettings extends DashboardFragment {
@@ -55,4 +59,19 @@
controllers.add(new DoubleTapPowerPreferenceController(context, getLifecycle()));
return controllers;
}
+
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.double_tap_power_settings;
+ return Arrays.asList(sir);
+ }
+ };
}
diff --git a/src/com/android/settings/gestures/DoubleTapScreenSettings.java b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
index 3c53947..c10fbb7 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
@@ -18,13 +18,17 @@
import android.content.Context;
import android.os.UserHandle;
+import android.provider.SearchIndexableResource;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
public class DoubleTapScreenSettings extends DashboardFragment {
@@ -58,4 +62,19 @@
new AmbientDisplayConfiguration(context), UserHandle.myUserId()));
return controllers;
}
+
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.double_tap_screen_settings;
+ return Arrays.asList(sir);
+ }
+ };
}
diff --git a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
index 07b40bb..c11f4a5 100644
--- a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
+++ b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
@@ -17,12 +17,16 @@
package com.android.settings.gestures;
import android.content.Context;
+import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
public class DoubleTwistGestureSettings extends DashboardFragment {
@@ -55,4 +59,19 @@
controllers.add(new DoubleTwistPreferenceController(context, getLifecycle()));
return controllers;
}
+
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.double_twist_gesture_settings;
+ return Arrays.asList(sir);
+ }
+ };
}
diff --git a/src/com/android/settings/gestures/GesturePreferenceController.java b/src/com/android/settings/gestures/GesturePreferenceController.java
index 345f7b7..ebfccb5 100644
--- a/src/com/android/settings/gestures/GesturePreferenceController.java
+++ b/src/com/android/settings/gestures/GesturePreferenceController.java
@@ -65,11 +65,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void onStop() {
if (mVideoPreference != null) {
mVideoPreference.onViewInvisible();
diff --git a/src/com/android/settings/gestures/PickupGestureSettings.java b/src/com/android/settings/gestures/PickupGestureSettings.java
index 1298dfe..63d3968 100644
--- a/src/com/android/settings/gestures/PickupGestureSettings.java
+++ b/src/com/android/settings/gestures/PickupGestureSettings.java
@@ -18,13 +18,17 @@
import android.content.Context;
import android.os.UserHandle;
+import android.provider.SearchIndexableResource;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
public class PickupGestureSettings extends DashboardFragment {
@@ -58,4 +62,20 @@
new AmbientDisplayConfiguration(context), UserHandle.myUserId()));
return controllers;
}
+
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.pick_up_gesture_settings;
+ return Arrays.asList(sir);
+ }
+ };
+
}
diff --git a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
index 01af974..08dc614 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
@@ -32,11 +32,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public String getPreferenceKey() {
return PREF_KEY_SWIPE_DOWN_FINGERPRINT;
}
diff --git a/src/com/android/settings/gestures/SwipeToNotificationSettings.java b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
index 7eeba29..57796a6 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationSettings.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
@@ -17,12 +17,16 @@
package com.android.settings.gestures;
import android.content.Context;
+import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
public class SwipeToNotificationSettings extends DashboardFragment {
@@ -55,4 +59,19 @@
controllers.add(new SwipeToNotificationPreferenceController(context, getLifecycle()));
return controllers;
}
+
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.swipe_to_notification_settings;
+ return Arrays.asList(sir);
+ }
+ };
}
diff --git a/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java b/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java
index 17d3fdc..8fcaa74 100644
--- a/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java
+++ b/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java
@@ -52,11 +52,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public String getPreferenceKey() {
return KEY_SPELL_CHECKERS;
}
diff --git a/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java b/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
index 65b40a3..0d30bcc 100644
--- a/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
+++ b/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
@@ -27,7 +27,7 @@
import android.widget.ArrayAdapter;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.inputmethod.UserDictionaryAddWordContents.LocaleRenderer;
@@ -41,7 +41,7 @@
* As opposed to the UserDictionaryActivity, this is only invoked within Settings
* from the UserDictionarySettings.
*/
-public class UserDictionaryAddWordFragment extends InstrumentedFragment
+public class UserDictionaryAddWordFragment extends InstrumentedPreferenceFragment
implements AdapterView.OnItemSelectedListener,
com.android.internal.app.LocalePicker.LocaleSelectionListener {
diff --git a/src/com/android/settings/language/PhoneLanguagePreferenceController.java b/src/com/android/settings/language/PhoneLanguagePreferenceController.java
index 2b87fd9..cd2f539 100644
--- a/src/com/android/settings/language/PhoneLanguagePreferenceController.java
+++ b/src/com/android/settings/language/PhoneLanguagePreferenceController.java
@@ -36,11 +36,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void updateState(Preference preference) {
if (preference == null) {
return;
diff --git a/src/com/android/settings/language/TtsPreferenceController.java b/src/com/android/settings/language/TtsPreferenceController.java
index ffc1eb1..9b40b6d 100644
--- a/src/com/android/settings/language/TtsPreferenceController.java
+++ b/src/com/android/settings/language/TtsPreferenceController.java
@@ -49,11 +49,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public String getPreferenceKey() {
return KEY_TTS_SETTINGS;
}
diff --git a/src/com/android/settings/language/UserDictionaryPreferenceController.java b/src/com/android/settings/language/UserDictionaryPreferenceController.java
index d26761b..01ce3aa 100644
--- a/src/com/android/settings/language/UserDictionaryPreferenceController.java
+++ b/src/com/android/settings/language/UserDictionaryPreferenceController.java
@@ -44,11 +44,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public String getPreferenceKey() {
return KEY_USER_DICTIONARY_SETTINGS;
}
diff --git a/src/com/android/settings/network/MobileNetworkPreferenceController.java b/src/com/android/settings/network/MobileNetworkPreferenceController.java
index 588d80c..7c8cd40 100644
--- a/src/com/android/settings/network/MobileNetworkPreferenceController.java
+++ b/src/com/android/settings/network/MobileNetworkPreferenceController.java
@@ -40,11 +40,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean isAvailable() {
return !mIsSecondaryUser
&& !Utils.isWifiOnly(mContext)
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index cb75f0e..a58a879 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -18,15 +18,19 @@
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
+import android.provider.SearchIndexableResource;
import android.util.Log;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.drawer.CategoryKey;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import static com.android.settings.network.MobilePlanPreferenceController
@@ -107,4 +111,19 @@
}
return 0;
}
+
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
+ .isEnabled()) {
+ return null;
+ }
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.network_and_internet;
+ return Arrays.asList(sir);
+ }
+ };
}
diff --git a/src/com/android/settings/network/NetworkResetPreferenceController.java b/src/com/android/settings/network/NetworkResetPreferenceController.java
index 2842139..e357fbe 100644
--- a/src/com/android/settings/network/NetworkResetPreferenceController.java
+++ b/src/com/android/settings/network/NetworkResetPreferenceController.java
@@ -32,11 +32,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean isAvailable() {
return !RestrictedLockUtils.hasBaseUserRestriction(mContext,
UserManager.DISALLOW_NETWORK_RESET, UserHandle.myUserId());
diff --git a/src/com/android/settings/network/ProxyPreferenceController.java b/src/com/android/settings/network/ProxyPreferenceController.java
index 54b8ca9..edec247 100644
--- a/src/com/android/settings/network/ProxyPreferenceController.java
+++ b/src/com/android/settings/network/ProxyPreferenceController.java
@@ -31,11 +31,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean isAvailable() {
// proxy UI disabled until we have better app support
return false;
diff --git a/src/com/android/settings/network/TetherPreferenceController.java b/src/com/android/settings/network/TetherPreferenceController.java
index f6ef678..e24c873 100644
--- a/src/com/android/settings/network/TetherPreferenceController.java
+++ b/src/com/android/settings/network/TetherPreferenceController.java
@@ -49,11 +49,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
final Preference preference = screen.findPreference(KEY_TETHER_SETTINGS);
diff --git a/src/com/android/settings/network/VpnPreferenceController.java b/src/com/android/settings/network/VpnPreferenceController.java
index 146b400..f7e230f 100644
--- a/src/com/android/settings/network/VpnPreferenceController.java
+++ b/src/com/android/settings/network/VpnPreferenceController.java
@@ -41,11 +41,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
// Manually set dependencies for Wifi when not toggleable.
diff --git a/src/com/android/settings/network/WifiCallingPreferenceController.java b/src/com/android/settings/network/WifiCallingPreferenceController.java
index 5036c46..b35d476 100644
--- a/src/com/android/settings/network/WifiCallingPreferenceController.java
+++ b/src/com/android/settings/network/WifiCallingPreferenceController.java
@@ -35,11 +35,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
final Preference pref = screen.findPreference(KEY_WFC_SETTINGS);
diff --git a/src/com/android/settings/nfc/AndroidBeam.java b/src/com/android/settings/nfc/AndroidBeam.java
index 76b67e8..fe264f3 100644
--- a/src/com/android/settings/nfc/AndroidBeam.java
+++ b/src/com/android/settings/nfc/AndroidBeam.java
@@ -29,7 +29,7 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settingslib.HelpUtils;
-import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.ShowAdminSupportDetailsDialog;
@@ -38,7 +38,7 @@
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-public class AndroidBeam extends InstrumentedFragment
+public class AndroidBeam extends InstrumentedPreferenceFragment
implements SwitchBar.OnSwitchChangeListener {
private View mView;
private NfcAdapter mNfcAdapter;
diff --git a/src/com/android/settings/nfc/NfcPreferenceController.java b/src/com/android/settings/nfc/NfcPreferenceController.java
index 6303d5b..65c2d4c 100644
--- a/src/com/android/settings/nfc/NfcPreferenceController.java
+++ b/src/com/android/settings/nfc/NfcPreferenceController.java
@@ -96,11 +96,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public boolean isAvailable() {
return mNfcAdapter != null;
}
diff --git a/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceController.java b/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceController.java
new file mode 100644
index 0000000..f513882
--- /dev/null
+++ b/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceController.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.accounts.AccountRestrictionHelper;
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.RestrictedPreference;
+
+/**
+ * Base class for preference controller that handles preference that enforce adjust volume
+ * restriction
+ */
+public abstract class AdjustVolumeRestrictedPreferenceController extends PreferenceController {
+
+ private AccountRestrictionHelper mHelper;
+
+ public AdjustVolumeRestrictedPreferenceController(Context context) {
+ this(context, new AccountRestrictionHelper(context));
+ }
+
+ @VisibleForTesting
+ AdjustVolumeRestrictedPreferenceController(Context context, AccountRestrictionHelper helper) {
+ super(context);
+ mHelper = helper;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ if (!(preference instanceof RestrictedPreference)) {
+ return;
+ }
+ mHelper.enforceRestrictionOnPreference((RestrictedPreference) preference,
+ UserManager.DISALLOW_ADJUST_VOLUME, UserHandle.myUserId());
+ }
+
+}
diff --git a/src/com/android/settings/notification/AlarmRingtonePreferenceController.java b/src/com/android/settings/notification/AlarmRingtonePreferenceController.java
new file mode 100644
index 0000000..2e7aab0
--- /dev/null
+++ b/src/com/android/settings/notification/AlarmRingtonePreferenceController.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+
+public class AlarmRingtonePreferenceController extends RingtonePreferenceControllerBase {
+
+ private static final String KEY_ALARM_RINGTONE = "alarm_ringtone";
+
+ public AlarmRingtonePreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_ALARM_RINGTONE;
+ }
+
+ @Override
+ public int getRingtoneType() {
+ return RingtoneManager.TYPE_ALARM;
+ }
+}
diff --git a/src/com/android/settings/notification/AlarmVolumePreferenceController.java b/src/com/android/settings/notification/AlarmVolumePreferenceController.java
new file mode 100644
index 0000000..e9c4b57
--- /dev/null
+++ b/src/com/android/settings/notification/AlarmVolumePreferenceController.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+
+public class AlarmVolumePreferenceController extends
+ VolumeSeekBarPreferenceController {
+
+ private static final String KEY_ALARM_VOLUME = "alarm_volume";
+ private AudioHelper mHelper;
+
+ public AlarmVolumePreferenceController(Context context, Callback callback,
+ Lifecycle lifecycle) {
+ this(context, callback, lifecycle, new AudioHelper(context));
+ }
+
+ @VisibleForTesting
+ AlarmVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle,
+ AudioHelper helper) {
+ super(context, callback, lifecycle);
+ mHelper = helper;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return !mHelper.isSingleVolume();
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_ALARM_VOLUME;
+ }
+
+ @Override
+ public int getAudioStream() {
+ return AudioManager.STREAM_ALARM;
+ }
+
+ @Override
+ public int getMuteIcon() {
+ return com.android.internal.R.drawable.ic_audio_alarm_mute;
+ }
+
+}
diff --git a/src/com/android/settings/notification/AudioHelper.java b/src/com/android/settings/notification/AudioHelper.java
new file mode 100644
index 0000000..ea5bc4a
--- /dev/null
+++ b/src/com/android/settings/notification/AudioHelper.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.AudioSystem;
+
+/**
+ * Helper class to wrap API for testing
+ */
+public class AudioHelper {
+
+ private Context mContext;
+
+ public AudioHelper(Context context) {
+ mContext = context;
+ }
+
+ public boolean isSingleVolume() {
+ return AudioSystem.isSingleVolume(mContext);
+ }
+
+}
diff --git a/src/com/android/settings/notification/CastPreferenceController.java b/src/com/android/settings/notification/CastPreferenceController.java
new file mode 100644
index 0000000..7de5c48
--- /dev/null
+++ b/src/com/android/settings/notification/CastPreferenceController.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
+import java.util.List;
+
+public class CastPreferenceController extends PreferenceController {
+
+ private static final String KEY_WIFI_DISPLAY = "wifi_display";
+
+ public CastPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_WIFI_DISPLAY;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public void updateNonIndexableKeys(List<String> keys) {
+ if (!Utils.isVoiceCapable(mContext)) {
+ keys.add(KEY_WIFI_DISPLAY);
+ }
+ }
+
+}
diff --git a/src/com/android/settings/notification/ChannelNotificationSettings.java b/src/com/android/settings/notification/ChannelNotificationSettings.java
index 8cbdd60..02cc436 100644
--- a/src/com/android/settings/notification/ChannelNotificationSettings.java
+++ b/src/com/android/settings/notification/ChannelNotificationSettings.java
@@ -156,7 +156,7 @@
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
final boolean vibrate = (Boolean) newValue;
- mChannel.setVibration(vibrate);
+ mChannel.enableVibration(vibrate);
mChannel.lockFields(NotificationChannel.USER_LOCKED_VIBRATION);
mBackend.updateChannel(mPkg, mUid, mChannel);
return true;
diff --git a/src/com/android/settings/notification/EmergencyBroadcastPreferenceController.java b/src/com/android/settings/notification/EmergencyBroadcastPreferenceController.java
new file mode 100644
index 0000000..1154493
--- /dev/null
+++ b/src/com/android/settings/notification/EmergencyBroadcastPreferenceController.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.accounts.AccountRestrictionHelper;
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.RestrictedPreference;
+
+/**
+ * Base class for preference controller that handles preference that enforce adjust volume
+ * restriction
+ */
+public class EmergencyBroadcastPreferenceController extends PreferenceController {
+
+ private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
+
+ private AccountRestrictionHelper mHelper;
+ private UserManager mUserManager;
+ private PackageManager mPm;
+ private boolean mCellBroadcastAppLinkEnabled;
+
+ public EmergencyBroadcastPreferenceController(Context context) {
+ this(context, new AccountRestrictionHelper(context));
+ }
+
+ @VisibleForTesting
+ EmergencyBroadcastPreferenceController(Context context, AccountRestrictionHelper helper) {
+ super(context);
+ mHelper = helper;
+ mUserManager = UserManager.get(context);
+ mPm = mContext.getPackageManager();
+ // Enable link to CMAS app settings depending on the value in config.xml.
+ mCellBroadcastAppLinkEnabled = isCellBroadcastAppLinkEnabled();
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ if (!(preference instanceof RestrictedPreference)) {
+ return;
+ }
+ ((RestrictedPreference) preference).checkRestrictionAndSetDisabled(
+ UserManager.DISALLOW_CONFIG_CELL_BROADCASTS);
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ return false;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_CELL_BROADCAST_SETTINGS;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return mUserManager.isAdminUser() && mCellBroadcastAppLinkEnabled
+ && !mHelper.hasBaseUserRestriction(
+ UserManager.DISALLOW_CONFIG_CELL_BROADCASTS, UserHandle.myUserId());
+ }
+
+ private boolean isCellBroadcastAppLinkEnabled() {
+ boolean enabled = mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_cellBroadcastAppLinks);
+ if (enabled) {
+ try {
+ if (mPm.getApplicationEnabledSetting("com.android.cellbroadcastreceiver")
+ == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
+ enabled = false; // CMAS app disabled
+ }
+ } catch (IllegalArgumentException ignored) {
+ enabled = false; // CMAS app not installed
+ }
+ }
+ return enabled;
+ }
+
+}
\ No newline at end of file
diff --git a/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java b/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
index 15f8c9f..a7ebbe1 100644
--- a/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
@@ -76,11 +76,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mLockscreen =
diff --git a/src/com/android/settings/notification/MediaVolumePreferenceController.java b/src/com/android/settings/notification/MediaVolumePreferenceController.java
new file mode 100644
index 0000000..fb8dba5
--- /dev/null
+++ b/src/com/android/settings/notification/MediaVolumePreferenceController.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+
+public class MediaVolumePreferenceController extends
+ VolumeSeekBarPreferenceController {
+
+ private static final String KEY_MEDIA_VOLUME = "media_volume";
+
+ public MediaVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle) {
+ super(context, callback, lifecycle);
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_MEDIA_VOLUME;
+ }
+
+ @Override
+ public int getAudioStream() {
+ return AudioManager.STREAM_MUSIC;
+ }
+
+ @Override
+ public int getMuteIcon() {
+ return com.android.internal.R.drawable.ic_audio_media_mute;
+ }
+
+}
diff --git a/src/com/android/settings/notification/NotificationRingtonePreferenceController.java b/src/com/android/settings/notification/NotificationRingtonePreferenceController.java
new file mode 100644
index 0000000..72e8d8f
--- /dev/null
+++ b/src/com/android/settings/notification/NotificationRingtonePreferenceController.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+
+public class NotificationRingtonePreferenceController extends RingtonePreferenceControllerBase {
+
+ private static final String KEY_NOTIFICATION_RINGTONE = "notification_ringtone";
+
+ public NotificationRingtonePreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_NOTIFICATION_RINGTONE;
+ }
+
+ @Override
+ public int getRingtoneType() {
+ return RingtoneManager.TYPE_NOTIFICATION;
+ }
+}
diff --git a/src/com/android/settings/notification/NotificationStation.java b/src/com/android/settings/notification/NotificationStation.java
index 59bc0aa..04897e4 100644
--- a/src/com/android/settings/notification/NotificationStation.java
+++ b/src/com/android/settings/notification/NotificationStation.java
@@ -502,7 +502,7 @@
private CharSequence loadPackageName(String pkg) {
try {
ApplicationInfo info = mPm.getApplicationInfo(pkg,
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
if (info != null) return mPm.getApplicationLabel(info);
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Cannot load package name", e);
diff --git a/src/com/android/settings/notification/NotificationVolumePreferenceController.java b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
new file mode 100644
index 0000000..e4759d7
--- /dev/null
+++ b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.Utils;
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+
+public class NotificationVolumePreferenceController extends
+ RingVolumePreferenceController {
+
+ private static final String KEY_NOTIFICATION_VOLUME = "notification_volume";
+ private AudioHelper mHelper;
+
+ public NotificationVolumePreferenceController(Context context, Callback callback,
+ Lifecycle lifecycle) {
+ this(context, callback, lifecycle, new AudioHelper(context));
+ }
+
+ @VisibleForTesting
+ NotificationVolumePreferenceController(Context context,
+ VolumeSeekBarPreference.Callback callback, Lifecycle lifecycle, AudioHelper helper) {
+ super(context, callback, lifecycle);
+ mHelper = helper;
+ }
+
+
+ @Override
+ public boolean isAvailable() {
+ return !Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume();
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_NOTIFICATION_VOLUME;
+ }
+
+ @Override
+ public int getAudioStream() {
+ return AudioManager.STREAM_NOTIFICATION;
+ }
+
+ @Override
+ public int getMuteIcon() {
+ return com.android.internal.R.drawable.ic_audio_ring_notif_mute;
+ }
+
+}
diff --git a/src/com/android/settings/notification/PhoneRingtonePreferenceController.java b/src/com/android/settings/notification/PhoneRingtonePreferenceController.java
new file mode 100644
index 0000000..cb11151
--- /dev/null
+++ b/src/com/android/settings/notification/PhoneRingtonePreferenceController.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+import com.android.settings.Utils;
+
+public class PhoneRingtonePreferenceController extends RingtonePreferenceControllerBase {
+
+ private static final String KEY_PHONE_RINGTONE = "ringtone";
+
+ public PhoneRingtonePreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_PHONE_RINGTONE;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return Utils.isVoiceCapable(mContext);
+ }
+
+ @Override
+ public int getRingtoneType() {
+ return RingtoneManager.TYPE_RINGTONE;
+ }
+}
diff --git a/src/com/android/settings/notification/PulseNotificationPreferenceController.java b/src/com/android/settings/notification/PulseNotificationPreferenceController.java
index de365f1..3e37ab0 100644
--- a/src/com/android/settings/notification/PulseNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/PulseNotificationPreferenceController.java
@@ -69,11 +69,6 @@
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- return false;
- }
-
- @Override
public String getPreferenceKey() {
return KEY_NOTIFICATION_PULSE;
}
diff --git a/src/com/android/settings/notification/RingVolumePreferenceController.java b/src/com/android/settings/notification/RingVolumePreferenceController.java
new file mode 100644
index 0000000..2297837
--- /dev/null
+++ b/src/com/android/settings/notification/RingVolumePreferenceController.java
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.app.NotificationManager;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.content.pm.ServiceInfo;
+import android.media.AudioManager;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.Vibrator;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.Utils;
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+
+import java.util.Objects;
+
+public class RingVolumePreferenceController extends VolumeSeekBarPreferenceController {
+
+ private static final String TAG = "RingVolumeController";
+ private static final String KEY_RING_VOLUME = "ring_volume";
+
+ private AudioManager mAudioManager;
+ private Vibrator mVibrator;
+ private int mRingerMode = -1;
+ private ComponentName mSuppressor;
+ private final RingReceiver mReceiver = new RingReceiver();
+ private final H mHandler = new H();
+ private AudioHelper mHelper;
+
+ public RingVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle) {
+ this(context, callback, lifecycle, new AudioHelper(context));
+ }
+
+ @VisibleForTesting
+ RingVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle,
+ AudioHelper helper) {
+ super(context, callback, lifecycle);
+ mHelper = helper;
+ mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+ mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
+ if (mVibrator != null && !mVibrator.hasVibrator()) {
+ mVibrator = null;
+ }
+ updateRingerMode();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ mReceiver.register(true);
+ updateEffectsSuppressor();
+ updatePreferenceIcon();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ mReceiver.register(false);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_RING_VOLUME;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume();
+ }
+
+ @Override
+ public int getAudioStream() {
+ return AudioManager.STREAM_RING;
+ }
+
+ @Override
+ public int getMuteIcon() {
+ return com.android.internal.R.drawable.ic_audio_ring_notif_mute;
+ }
+
+ private void updateRingerMode() {
+ final int ringerMode = mAudioManager.getRingerModeInternal();
+ if (mRingerMode == ringerMode) return;
+ mRingerMode = ringerMode;
+ updatePreferenceIcon();
+ }
+
+ private boolean wasRingerModeVibrate() {
+ return mVibrator != null && mRingerMode == AudioManager.RINGER_MODE_SILENT
+ && mAudioManager.getLastAudibleStreamVolume(AudioManager.STREAM_RING) == 0;
+ }
+
+ private void updateEffectsSuppressor() {
+ final ComponentName suppressor = NotificationManager.from(mContext).getEffectsSuppressor();
+ if (Objects.equals(suppressor, mSuppressor)) return;
+ mSuppressor = suppressor;
+ if (mPreference != null) {
+ final String text = suppressor != null ?
+ mContext.getString(com.android.internal.R.string.muted_by,
+ getSuppressorCaption(suppressor)) : null;
+ mPreference.setSuppressionText(text);
+ }
+ updatePreferenceIcon();
+ }
+
+ private void updatePreferenceIcon() {
+ if (mPreference != null) {
+ mPreference.showIcon(mSuppressor != null
+ ? com.android.internal.R.drawable.ic_audio_ring_notif_mute
+ : mRingerMode == AudioManager.RINGER_MODE_VIBRATE || wasRingerModeVibrate()
+ ? com.android.internal.R.drawable.ic_audio_ring_notif_vibrate
+ : com.android.internal.R.drawable.ic_audio_ring_notif);
+ }
+ }
+
+ private String getSuppressorCaption(ComponentName suppressor) {
+ final PackageManager pm = mContext.getPackageManager();
+ try {
+ final ServiceInfo info = pm.getServiceInfo(suppressor, 0);
+ if (info != null) {
+ final CharSequence seq = info.loadLabel(pm);
+ if (seq != null) {
+ final String str = seq.toString().trim();
+ if (str.length() > 0) {
+ return str;
+ }
+ }
+ }
+ } catch (Throwable e) {
+ Log.w(TAG, "Error loading suppressor caption", e);
+ }
+ return suppressor.getPackageName();
+ }
+
+ private final class H extends Handler {
+ private static final int UPDATE_EFFECTS_SUPPRESSOR = 1;
+ private static final int UPDATE_RINGER_MODE = 2;
+
+ private H() {
+ super(Looper.getMainLooper());
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case UPDATE_EFFECTS_SUPPRESSOR:
+ updateEffectsSuppressor();
+ break;
+ case UPDATE_RINGER_MODE:
+ updateRingerMode();
+ break;
+ }
+ }
+ }
+
+ private class RingReceiver extends BroadcastReceiver {
+ private boolean mRegistered;
+
+ public void register(boolean register) {
+ if (mRegistered == register) return;
+ if (register) {
+ final IntentFilter filter = new IntentFilter();
+ filter.addAction(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED);
+ filter.addAction(AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION);
+ mContext.registerReceiver(this, filter);
+ } else {
+ mContext.unregisterReceiver(this);
+ }
+ mRegistered = register;
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ final String action = intent.getAction();
+ if (NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED.equals(action)) {
+ mHandler.sendEmptyMessage(H.UPDATE_EFFECTS_SUPPRESSOR);
+ } else if (AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION.equals(action)) {
+ mHandler.sendEmptyMessage(H.UPDATE_RINGER_MODE);
+ }
+ }
+ }
+
+}
diff --git a/src/com/android/settings/notification/RingtonePreferenceControllerBase.java b/src/com/android/settings/notification/RingtonePreferenceControllerBase.java
new file mode 100644
index 0000000..333f08a
--- /dev/null
+++ b/src/com/android/settings/notification/RingtonePreferenceControllerBase.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.Ringtone;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.core.PreferenceController;
+
+public abstract class RingtonePreferenceControllerBase extends PreferenceController {
+
+ public RingtonePreferenceControllerBase(Context context) {
+ super(context);
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ return false;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ Uri ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(mContext, getRingtoneType());
+ final CharSequence summary = Ringtone.getTitle(
+ mContext, ringtoneUri, false /* followSettingsUri */, true /* allowRemote */);
+ if (summary != null) {
+ preference.setSummary(summary);
+ }
+ }
+
+ public abstract int getRingtoneType();
+
+}
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 1ec3164..9166377 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -20,37 +20,25 @@
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.DialogFragment;
import android.app.FragmentManager;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
-import android.content.pm.PackageManager;
-import android.content.pm.ServiceInfo;
-import android.database.ContentObserver;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteException;
import android.media.AudioManager;
import android.media.AudioSystem;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.UserHandle;
import android.os.UserManager;
-import android.os.Vibrator;
import android.preference.SeekBarVolumizer;
-import android.provider.MediaStore;
-import android.provider.OpenableColumns;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.support.v7.preference.Preference;
@@ -64,40 +52,24 @@
import com.android.settings.R;
import com.android.settings.RingtonePreference;
import com.android.settings.DefaultRingtonePreference;
-import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.search.Indexable;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedPreference;
+import com.android.settingslib.drawer.CategoryKey;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import java.util.Objects;
-import static android.content.ContentProvider.getUriWithoutUserId;
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-public class SoundSettings extends SettingsPreferenceFragment
- implements Indexable, OnPreferenceChangeListener {
+public class SoundSettings extends DashboardFragment
+ implements OnPreferenceChangeListener {
private static final String TAG = "SoundSettings";
- private static final String KEY_MEDIA_VOLUME = "media_volume";
- private static final String KEY_ALARM_VOLUME = "alarm_volume";
- private static final String KEY_RING_VOLUME = "ring_volume";
- private static final String KEY_NOTIFICATION_VOLUME = "notification_volume";
- private static final String KEY_PHONE_RINGTONE = "ringtone";
- private static final String KEY_NOTIFICATION_RINGTONE = "notification_ringtone";
- private static final String KEY_ALARM_RINGTONE = "alarm_ringtone";
- private static final String KEY_VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
- private static final String KEY_WIFI_DISPLAY = "wifi_display";
- private static final String KEY_ZEN_MODE = "zen_mode";
- private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
-
private static final String KEY_WORK_CATEGORY = "sound_work_settings_section";
private static final String KEY_WORK_USE_PERSONAL_SOUNDS = "work_use_personal_sounds";
private static final String KEY_WORK_PHONE_RINGTONE = "work_ringtone";
@@ -107,34 +79,13 @@
private static final String SELECTED_PREFERENCE_KEY = "selected_preference";
private static final int REQUEST_CODE = 200;
- private static final String[] RESTRICTED_KEYS = {
- KEY_MEDIA_VOLUME,
- KEY_ALARM_VOLUME,
- KEY_RING_VOLUME,
- KEY_NOTIFICATION_VOLUME,
- KEY_ZEN_MODE,
- };
-
private static final int SAMPLE_CUTOFF = 2000; // manually cap sample playback at 2 seconds
private final VolumePreferenceCallback mVolumeCallback = new VolumePreferenceCallback();
private final H mHandler = new H();
- private final SettingsObserver mSettingsObserver = new SettingsObserver();
- private final Receiver mReceiver = new Receiver();
- private final ArrayList<VolumeSeekBarPreference> mVolumePrefs = new ArrayList<>();
private Context mContext;
private boolean mVoiceCapable;
- private Vibrator mVibrator;
- private AudioManager mAudioManager;
- private VolumeSeekBarPreference mRingOrNotificationPreference;
-
- private Preference mPhoneRingtonePreference;
- private Preference mNotificationRingtonePreference;
- private Preference mAlarmRingtonePreference;
- private TwoStatePreference mVibrateWhenRinging;
- private ComponentName mSuppressor;
- private int mRingerMode = -1;
private PreferenceGroup mWorkPreferenceCategory;
private TwoStatePreference mWorkUsePersonalSounds;
@@ -142,7 +93,6 @@
private Preference mWorkNotificationRingtonePreference;
private Preference mWorkAlarmRingtonePreference;
- private PackageManager mPm;
private UserManager mUserManager;
private RingtonePreference mRequestPreference;
@@ -157,63 +107,9 @@
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = getActivity();
- mPm = getPackageManager();
mUserManager = UserManager.get(getContext());
mVoiceCapable = Utils.isVoiceCapable(mContext);
- mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
- mVibrator = (Vibrator) getActivity().getSystemService(Context.VIBRATOR_SERVICE);
- if (mVibrator != null && !mVibrator.hasVibrator()) {
- mVibrator = null;
- }
-
- addPreferencesFromResource(R.xml.sound_settings);
-
- initVolumePreference(KEY_MEDIA_VOLUME, AudioManager.STREAM_MUSIC,
- com.android.internal.R.drawable.ic_audio_media_mute);
- initVolumePreference(KEY_ALARM_VOLUME, AudioManager.STREAM_ALARM,
- com.android.internal.R.drawable.ic_audio_alarm_mute);
- if (mVoiceCapable) {
- mRingOrNotificationPreference =
- initVolumePreference(KEY_RING_VOLUME, AudioManager.STREAM_RING,
- com.android.internal.R.drawable.ic_audio_ring_notif_mute);
- removePreference(KEY_NOTIFICATION_VOLUME);
- } else {
- mRingOrNotificationPreference =
- initVolumePreference(KEY_NOTIFICATION_VOLUME, AudioManager.STREAM_NOTIFICATION,
- com.android.internal.R.drawable.ic_audio_ring_notif_mute);
- removePreference(KEY_RING_VOLUME);
- }
-
- if (!shouldShowRingtoneSettings()) {
- removePreference(KEY_RING_VOLUME);
- removePreference(KEY_NOTIFICATION_VOLUME);
- removePreference(KEY_ALARM_VOLUME);
- }
-
- // Enable link to CMAS app settings depending on the value in config.xml.
- boolean isCellBroadcastAppLinkEnabled = this.getResources().getBoolean(
- com.android.internal.R.bool.config_cellBroadcastAppLinks);
- try {
- if (isCellBroadcastAppLinkEnabled) {
- if (mPm.getApplicationEnabledSetting("com.android.cellbroadcastreceiver")
- == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
- isCellBroadcastAppLinkEnabled = false; // CMAS app disabled
- }
- }
- } catch (IllegalArgumentException ignored) {
- isCellBroadcastAppLinkEnabled = false; // CMAS app not installed
- }
- if (!mUserManager.isAdminUser() || !isCellBroadcastAppLinkEnabled ||
- RestrictedLockUtils.hasBaseUserRestriction(mContext,
- UserManager.DISALLOW_CONFIG_CELL_BROADCASTS, UserHandle.myUserId())) {
- removePreference(KEY_CELL_BROADCAST_SETTINGS);
- }
- initRingtones();
- initVibrateWhenRinging();
- updateRingerMode();
- updateEffectsSuppressor();
-
if (savedInstanceState != null) {
String selectedPreference = savedInstanceState.getString(SELECTED_PREFERENCE_KEY, null);
if (!TextUtils.isEmpty(selectedPreference)) {
@@ -225,34 +121,6 @@
@Override
public void onResume() {
super.onResume();
- lookupRingtoneNames();
- mSettingsObserver.register(true);
- mReceiver.register(true);
- updateRingOrNotificationPreference();
- updateEffectsSuppressor();
- for (VolumeSeekBarPreference volumePref : mVolumePrefs) {
- volumePref.onActivityResume();
- }
-
- final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(mContext,
- UserManager.DISALLOW_ADJUST_VOLUME, UserHandle.myUserId());
- final boolean hasBaseRestriction = RestrictedLockUtils.hasBaseUserRestriction(mContext,
- UserManager.DISALLOW_ADJUST_VOLUME, UserHandle.myUserId());
- for (String key : RESTRICTED_KEYS) {
- Preference pref = findPreference(key);
- if (pref != null) {
- pref.setEnabled(!hasBaseRestriction);
- }
- if (pref instanceof RestrictedPreference && !hasBaseRestriction) {
- ((RestrictedPreference) pref).setDisabledByAdmin(admin);
- }
- }
- RestrictedPreference broadcastSettingsPref = (RestrictedPreference) findPreference(
- KEY_CELL_BROADCAST_SETTINGS);
- if (broadcastSettingsPref != null) {
- broadcastSettingsPref.checkRestrictionAndSetDisabled(
- UserManager.DISALLOW_CONFIG_CELL_BROADCASTS);
- }
mManagedProfileId = Utils.getManagedProfileId(mUserManager, UserHandle.myUserId());
if (mManagedProfileId != UserHandle.USER_NULL && shouldShowRingtoneSettings()) {
@@ -272,12 +140,7 @@
@Override
public void onPause() {
super.onPause();
- for (VolumeSeekBarPreference volumePref : mVolumePrefs) {
- volumePref.onActivityPause();
- }
mVolumeCallback.stopSample();
- mSettingsObserver.register(false);
- mReceiver.register(false);
}
@Override
@@ -292,6 +155,45 @@
}
@Override
+ protected String getCategoryKey() {
+ return CategoryKey.CATEGORY_SOUND;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.sound_settings;
+ }
+
+ @Override
+ protected List<PreferenceController> getPreferenceControllers(Context context) {
+ final List<PreferenceController> controllers = new ArrayList<>();
+ Lifecycle lifecycle = getLifecycle();
+ controllers.add(new CastPreferenceController(context));
+ controllers.add(new ZenModePreferenceController(context));
+ controllers.add(new EmergencyBroadcastPreferenceController(context));
+ controllers.add(new VibrateWhenRingPreferenceController(context));
+
+ // === Volumes ===
+ controllers.add(new AlarmVolumePreferenceController(context, mVolumeCallback, lifecycle));
+ controllers.add(new MediaVolumePreferenceController(context, mVolumeCallback, lifecycle));
+ controllers.add(
+ new NotificationVolumePreferenceController(context, mVolumeCallback, lifecycle));
+ controllers.add(new RingVolumePreferenceController(context, mVolumeCallback, lifecycle));
+
+ // === Phone & notification ringtone ===
+ controllers.add(new PhoneRingtonePreferenceController(context));
+ controllers.add(new AlarmRingtonePreferenceController(context));
+ controllers.add(new NotificationRingtonePreferenceController(context));
+
+ return controllers;
+ }
+
+ @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (mRequestPreference != null) {
mRequestPreference.onActivityResult(requestCode, resultCode, data);
@@ -336,68 +238,7 @@
// === Volumes ===
- private VolumeSeekBarPreference initVolumePreference(String key, int stream, int muteIcon) {
- final VolumeSeekBarPreference volumePref = (VolumeSeekBarPreference) findPreference(key);
- volumePref.setCallback(mVolumeCallback);
- volumePref.setStream(stream);
- mVolumePrefs.add(volumePref);
- volumePref.setMuteIcon(muteIcon);
- return volumePref;
- }
-
- private void updateRingOrNotificationPreference() {
- mRingOrNotificationPreference.showIcon(mSuppressor != null
- ? com.android.internal.R.drawable.ic_audio_ring_notif_mute
- : mRingerMode == AudioManager.RINGER_MODE_VIBRATE || wasRingerModeVibrate()
- ? com.android.internal.R.drawable.ic_audio_ring_notif_vibrate
- : com.android.internal.R.drawable.ic_audio_ring_notif);
- }
-
- private boolean wasRingerModeVibrate() {
- return mVibrator != null && mRingerMode == AudioManager.RINGER_MODE_SILENT
- && mAudioManager.getLastAudibleStreamVolume(AudioManager.STREAM_RING) == 0;
- }
-
- private void updateRingerMode() {
- final int ringerMode = mAudioManager.getRingerModeInternal();
- if (mRingerMode == ringerMode) return;
- mRingerMode = ringerMode;
- updateRingOrNotificationPreference();
- }
-
- private void updateEffectsSuppressor() {
- final ComponentName suppressor = NotificationManager.from(mContext).getEffectsSuppressor();
- if (Objects.equals(suppressor, mSuppressor)) return;
- mSuppressor = suppressor;
- if (mRingOrNotificationPreference != null) {
- final String text = suppressor != null ?
- mContext.getString(com.android.internal.R.string.muted_by,
- getSuppressorCaption(suppressor)) : null;
- mRingOrNotificationPreference.setSuppressionText(text);
- }
- updateRingOrNotificationPreference();
- }
-
- private String getSuppressorCaption(ComponentName suppressor) {
- final PackageManager pm = mContext.getPackageManager();
- try {
- final ServiceInfo info = pm.getServiceInfo(suppressor, 0);
- if (info != null) {
- final CharSequence seq = info.loadLabel(pm);
- if (seq != null) {
- final String str = seq.toString().trim();
- if (str.length() > 0) {
- return str;
- }
- }
- }
- } catch (Throwable e) {
- Log.w(TAG, "Error loading suppressor caption", e);
- }
- return suppressor.getPackageName();
- }
-
- private final class VolumePreferenceCallback implements VolumeSeekBarPreference.Callback {
+ final class VolumePreferenceCallback implements VolumeSeekBarPreference.Callback {
private SeekBarVolumizer mCurrent;
@Override
@@ -431,48 +272,6 @@
return !AudioSystem.isSingleVolume(mContext);
}
- private void initRingtones() {
- mPhoneRingtonePreference = getPreferenceScreen().findPreference(KEY_PHONE_RINGTONE);
- if (mPhoneRingtonePreference != null && !mVoiceCapable) {
- getPreferenceScreen().removePreference(mPhoneRingtonePreference);
- mPhoneRingtonePreference = null;
- }
- mNotificationRingtonePreference =
- getPreferenceScreen().findPreference(KEY_NOTIFICATION_RINGTONE);
- mAlarmRingtonePreference = getPreferenceScreen().findPreference(KEY_ALARM_RINGTONE);
- }
-
- private void lookupRingtoneNames() {
- AsyncTask.execute(mLookupRingtoneNames);
- }
-
- private final Runnable mLookupRingtoneNames = new Runnable() {
- @Override
- public void run() {
- if (mPhoneRingtonePreference != null) {
- final CharSequence summary = updateRingtoneName(
- mContext, RingtoneManager.TYPE_RINGTONE);
- if (summary != null) {
- mHandler.obtainMessage(H.UPDATE_PHONE_RINGTONE, summary).sendToTarget();
- }
- }
- if (mNotificationRingtonePreference != null) {
- final CharSequence summary = updateRingtoneName(
- mContext, RingtoneManager.TYPE_NOTIFICATION);
- if (summary != null) {
- mHandler.obtainMessage(H.UPDATE_NOTIFICATION_RINGTONE, summary).sendToTarget();
- }
- }
- if (mAlarmRingtonePreference != null) {
- final CharSequence summary =
- updateRingtoneName(mContext, RingtoneManager.TYPE_ALARM);
- if (summary != null) {
- mHandler.obtainMessage(H.UPDATE_ALARM_RINGTONE, summary).sendToTarget();
- }
- }
- }
- };
-
private static CharSequence updateRingtoneName(Context context, int type) {
if (context == null) {
Log.e(TAG, "Unable to update ringtone name, no context provided");
@@ -483,74 +282,11 @@
true /* allowRemote */);
}
- // === Vibrate when ringing ===
-
- private void initVibrateWhenRinging() {
- mVibrateWhenRinging =
- (TwoStatePreference) getPreferenceScreen().findPreference(KEY_VIBRATE_WHEN_RINGING);
- if (mVibrateWhenRinging == null) {
- Log.i(TAG, "Preference not found: " + KEY_VIBRATE_WHEN_RINGING);
- return;
- }
- if (!mVoiceCapable) {
- getPreferenceScreen().removePreference(mVibrateWhenRinging);
- mVibrateWhenRinging = null;
- return;
- }
- mVibrateWhenRinging.setPersistent(false);
- updateVibrateWhenRinging();
- mVibrateWhenRinging.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- final boolean val = (Boolean) newValue;
- return Settings.System.putInt(getContentResolver(),
- Settings.System.VIBRATE_WHEN_RINGING,
- val ? 1 : 0);
- }
- });
- }
-
- private void updateVibrateWhenRinging() {
- if (mVibrateWhenRinging == null) return;
- mVibrateWhenRinging.setChecked(Settings.System.getInt(getContentResolver(),
- Settings.System.VIBRATE_WHEN_RINGING, 0) != 0);
- }
-
// === Callbacks ===
- private final class SettingsObserver extends ContentObserver {
- private final Uri VIBRATE_WHEN_RINGING_URI =
- Settings.System.getUriFor(Settings.System.VIBRATE_WHEN_RINGING);
-
- public SettingsObserver() {
- super(mHandler);
- }
-
- public void register(boolean register) {
- final ContentResolver cr = getContentResolver();
- if (register) {
- cr.registerContentObserver(VIBRATE_WHEN_RINGING_URI, false, this);
- } else {
- cr.unregisterContentObserver(this);
- }
- }
-
- @Override
- public void onChange(boolean selfChange, Uri uri) {
- super.onChange(selfChange, uri);
- if (VIBRATE_WHEN_RINGING_URI.equals(uri)) {
- updateVibrateWhenRinging();
- }
- }
- }
private final class H extends Handler {
- private static final int UPDATE_PHONE_RINGTONE = 1;
- private static final int UPDATE_NOTIFICATION_RINGTONE = 2;
- private static final int STOP_SAMPLE = 3;
- private static final int UPDATE_EFFECTS_SUPPRESSOR = 4;
- private static final int UPDATE_RINGER_MODE = 5;
- private static final int UPDATE_ALARM_RINGTONE = 6;
+ private static final int STOP_SAMPLE = 1;
private H() {
super(Looper.getMainLooper());
@@ -559,51 +295,9 @@
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
- case UPDATE_PHONE_RINGTONE:
- mPhoneRingtonePreference.setSummary((CharSequence) msg.obj);
- break;
- case UPDATE_NOTIFICATION_RINGTONE:
- mNotificationRingtonePreference.setSummary((CharSequence) msg.obj);
- break;
case STOP_SAMPLE:
mVolumeCallback.stopSample();
break;
- case UPDATE_EFFECTS_SUPPRESSOR:
- updateEffectsSuppressor();
- break;
- case UPDATE_RINGER_MODE:
- updateRingerMode();
- break;
- case UPDATE_ALARM_RINGTONE:
- mAlarmRingtonePreference.setSummary((CharSequence) msg.obj);
- break;
- }
- }
- }
-
- private class Receiver extends BroadcastReceiver {
- private boolean mRegistered;
-
- public void register(boolean register) {
- if (mRegistered == register) return;
- if (register) {
- final IntentFilter filter = new IntentFilter();
- filter.addAction(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED);
- filter.addAction(AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION);
- mContext.registerReceiver(this, filter);
- } else {
- mContext.unregisterReceiver(this);
- }
- mRegistered = register;
- }
-
- @Override
- public void onReceive(Context context, Intent intent) {
- final String action = intent.getAction();
- if (NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED.equals(action)) {
- mHandler.sendEmptyMessage(H.UPDATE_EFFECTS_SUPPRESSOR);
- } else if (AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION.equals(action)) {
- mHandler.sendEmptyMessage(H.UPDATE_RINGER_MODE);
}
}
}
@@ -684,34 +378,14 @@
public List<String> getNonIndexableKeys(Context context) {
final ArrayList<String> rt = new ArrayList<String>();
- if (Utils.isVoiceCapable(context)) {
- rt.add(KEY_NOTIFICATION_VOLUME);
- } else {
- rt.add(KEY_RING_VOLUME);
- rt.add(KEY_PHONE_RINGTONE);
- rt.add(KEY_WIFI_DISPLAY);
- rt.add(KEY_VIBRATE_WHEN_RINGING);
- }
-
- final PackageManager pm = context.getPackageManager();
- final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
-
- // Enable link to CMAS app settings depending on the value in config.xml.
- boolean isCellBroadcastAppLinkEnabled = context.getResources().getBoolean(
- com.android.internal.R.bool.config_cellBroadcastAppLinks);
- try {
- if (isCellBroadcastAppLinkEnabled) {
- if (pm.getApplicationEnabledSetting("com.android.cellbroadcastreceiver")
- == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
- isCellBroadcastAppLinkEnabled = false; // CMAS app disabled
- }
- }
- } catch (IllegalArgumentException ignored) {
- isCellBroadcastAppLinkEnabled = false; // CMAS app not installed
- }
- if (!um.isAdminUser() || !isCellBroadcastAppLinkEnabled) {
- rt.add(KEY_CELL_BROADCAST_SETTINGS);
- }
+ new NotificationVolumePreferenceController(
+ context, null /* Callback */, null /* Lifecycle */).updateNonIndexableKeys(rt);
+ new RingVolumePreferenceController(
+ context, null /* Callback */, null /* Lifecycle */).updateNonIndexableKeys(rt);
+ new CastPreferenceController(context).updateNonIndexableKeys(rt);
+ new PhoneRingtonePreferenceController(context).updateNonIndexableKeys(rt);
+ new VibrateWhenRingPreferenceController(context).updateNonIndexableKeys(rt);
+ new EmergencyBroadcastPreferenceController(context).updateNonIndexableKeys(rt);
return rt;
}
diff --git a/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java b/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
new file mode 100644
index 0000000..2160f3d
--- /dev/null
+++ b/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.support.v7.preference.TwoStatePreference;
+
+import com.android.settings.Utils;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.core.lifecycle.LifecycleObserver;
+import com.android.settings.core.lifecycle.events.OnPause;
+import com.android.settings.core.lifecycle.events.OnResume;
+
+import static android.provider.Settings.System.VIBRATE_WHEN_RINGING;
+
+public class VibrateWhenRingPreferenceController extends PreferenceController implements
+ Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause {
+
+ private static final String KEY_VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
+ private SettingObserver mSettingObserver;
+
+ public VibrateWhenRingPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ Preference preference = screen.findPreference(KEY_VIBRATE_WHEN_RINGING);
+ if (preference != null) {
+ mSettingObserver = new SettingObserver(preference);
+ preference.setPersistent(false);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ if (mSettingObserver != null) {
+ mSettingObserver.register(true /* register */);
+ }
+ }
+
+ @Override
+ public void onPause() {
+ if (mSettingObserver != null) {
+ mSettingObserver.register(false /* register */);
+ }
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ return false;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_VIBRATE_WHEN_RINGING;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return Utils.isVoiceCapable(mContext);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ ((TwoStatePreference) preference).setChecked(
+ Settings.System.getInt(mContext.getContentResolver(), VIBRATE_WHEN_RINGING, 0) != 0);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final boolean val = (Boolean) newValue;
+ return Settings.System.putInt(mContext.getContentResolver(),
+ VIBRATE_WHEN_RINGING, val ? 1 : 0);
+ }
+
+ private final class SettingObserver extends ContentObserver {
+
+ private final Uri VIBRATE_WHEN_RINGING_URI =
+ Settings.System.getUriFor(VIBRATE_WHEN_RINGING);
+
+ private final Preference mPreference;
+
+ public SettingObserver(Preference preference) {
+ super(new Handler());
+ mPreference = preference;
+ }
+
+ public void register(boolean register) {
+ final ContentResolver cr = mContext.getContentResolver();
+ if (register) {
+ cr.registerContentObserver(VIBRATE_WHEN_RINGING_URI, false, this);
+ } else {
+ cr.unregisterContentObserver(this);
+ }
+ }
+
+ @Override
+ public void onChange(boolean selfChange, Uri uri) {
+ super.onChange(selfChange, uri);
+ if (VIBRATE_WHEN_RINGING_URI.equals(uri)) {
+ updateState(mPreference);
+ }
+ }
+ }
+
+}
diff --git a/src/com/android/settings/notification/VolumeSeekBarPreference.java b/src/com/android/settings/notification/VolumeSeekBarPreference.java
index 7b02cae..5ab1d29 100644
--- a/src/com/android/settings/notification/VolumeSeekBarPreference.java
+++ b/src/com/android/settings/notification/VolumeSeekBarPreference.java
@@ -146,7 +146,9 @@
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
super.onProgressChanged(seekBar, progress, fromTouch);
- mCallback.onStreamValueChanged(mStream, progress);
+ if (mCallback != null) {
+ mCallback.onStreamValueChanged(mStream, progress);
+ }
}
private void updateIconView() {
diff --git a/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java b/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java
new file mode 100644
index 0000000..eeb9c28
--- /dev/null
+++ b/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settings.core.lifecycle.LifecycleObserver;
+import com.android.settings.core.lifecycle.events.OnPause;
+import com.android.settings.core.lifecycle.events.OnResume;
+import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+
+/**
+ * Base class for preference controller that handles VolumeSeekBarPreference
+ */
+public abstract class VolumeSeekBarPreferenceController extends
+ AdjustVolumeRestrictedPreferenceController implements LifecycleObserver, OnResume, OnPause {
+
+ protected VolumeSeekBarPreference mPreference;
+ protected VolumeSeekBarPreference.Callback mVolumePreferenceCallback;
+
+ public VolumeSeekBarPreferenceController(Context context, Callback callback,
+ Lifecycle lifecycle) {
+ super(context);
+ mVolumePreferenceCallback = callback;
+ if (lifecycle != null) {
+ lifecycle.addObserver(this);
+ }
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ if (isAvailable()) {
+ mPreference = (VolumeSeekBarPreference) screen.findPreference(getPreferenceKey());
+ mPreference.setCallback(mVolumePreferenceCallback);
+ mPreference.setStream(getAudioStream());
+ mPreference.setMuteIcon(getMuteIcon());
+ }
+ }
+
+ @Override
+ public void onResume() {
+ if (mPreference != null) {
+ mPreference.onActivityResume();
+ }
+ }
+
+ @Override
+ public void onPause() {
+ if (mPreference != null) {
+ mPreference.onActivityPause();
+ }
+ }
+
+ protected abstract int getAudioStream();
+
+ protected abstract int getMuteIcon();
+
+}
diff --git a/src/com/android/settings/notification/ZenModePreferenceController.java b/src/com/android/settings/notification/ZenModePreferenceController.java
new file mode 100644
index 0000000..61bbe9a
--- /dev/null
+++ b/src/com/android/settings/notification/ZenModePreferenceController.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+
+public class ZenModePreferenceController extends AdjustVolumeRestrictedPreferenceController {
+
+ private static final String KEY_ZEN_MODE = "zen_mode";
+
+ public ZenModePreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_ZEN_MODE;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+}
diff --git a/src/com/android/settings/overlay/FeatureFactory.java b/src/com/android/settings/overlay/FeatureFactory.java
index 75f1001..3532274 100644
--- a/src/com/android/settings/overlay/FeatureFactory.java
+++ b/src/com/android/settings/overlay/FeatureFactory.java
@@ -83,6 +83,8 @@
public abstract SearchFeatureProvider getSearchFeatureProvider(Context context);
+ public abstract SurveyFeatureProvider getSurveyFeatureProvider(Context context);
+
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 cb172af..313c270 100644
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.java
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.java
@@ -110,4 +110,9 @@
}
return mSearchFeatureProvider;
}
+
+ @Override
+ public SurveyFeatureProvider getSurveyFeatureProvider(Context context) {
+ return null;
+ }
}
diff --git a/src/com/android/settings/overlay/SupportFeatureProvider.java b/src/com/android/settings/overlay/SupportFeatureProvider.java
index 506d1bc..24ec7b5 100644
--- a/src/com/android/settings/overlay/SupportFeatureProvider.java
+++ b/src/com/android/settings/overlay/SupportFeatureProvider.java
@@ -18,6 +18,7 @@
import android.accounts.Account;
import android.annotation.IntDef;
+import android.annotation.NonNull;
import android.annotation.StringRes;
import android.app.Activity;
import android.content.Context;
@@ -111,15 +112,16 @@
void setShouldShowDisclaimerDialog(Context context, boolean shouldShow);
/**
- * Returns an {@link Account} that's eligible for support options.
+ * Returns array of {@link Account} that's eligible for support options.
*/
- Account getSupportEligibleAccount(Context context);
+ @NonNull
+ Account[] getSupportEligibleAccounts(Context context);
/**
* Starts support activity of specified type
*
* @param activity Calling activity
- * @param account A account returned by {@link #getSupportEligibleAccount}
+ * @param account A account that selected by user
* @param type The type of support account needs.
*/
void startSupport(Activity activity, Account account, @SupportType int type);
diff --git a/src/com/android/settings/overlay/SurveyFeatureProvider.java b/src/com/android/settings/overlay/SurveyFeatureProvider.java
new file mode 100644
index 0000000..79e907f
--- /dev/null
+++ b/src/com/android/settings/overlay/SurveyFeatureProvider.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.overlay;
+
+import android.app.Activity;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.IntentFilter;
+import android.support.annotation.Nullable;
+
+/**
+ * An interface for classes wishing to provide the ability to serve surveys to implement.
+ */
+public interface SurveyFeatureProvider {
+
+ /**
+ * Downloads a survey asynchronously to shared preferences to be served at a later date.
+ *
+ * @param activity A valid context.
+ * @param surveyId A unique Id representing a survey to download.
+ * @param data a text blob to be attached to the survey results.
+ */
+ void downloadSurvey(Activity activity, String surveyId, @Nullable String data);
+
+ /**
+ * Shows a previously downloaded survey/prompt if possible in the activity provided.
+ *
+ * @param activity The host activity to show the survey in.
+ * @param surveyId A unique Id representing a survey to download.
+ */
+ void showSurveyIfAvailable(Activity activity, String surveyId);
+
+ /**
+ * A helper method to get the surveyId. Implementers should create a mapping of
+ * keys to surveyIds and provide them via this function.
+ *
+ * @param context A valid context.
+ * @param key The key to get the surveyId for.
+ * @return The unique Id as a string or null on error.
+ */
+ String getSurveyId(Context context, String key);
+}
diff --git a/src/com/android/settings/password/FingerprintManagerWrapper.java b/src/com/android/settings/password/FingerprintManagerWrapper.java
new file mode 100644
index 0000000..b00f786
--- /dev/null
+++ b/src/com/android/settings/password/FingerprintManagerWrapper.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.password;
+
+import android.annotation.NonNull;
+import android.hardware.fingerprint.FingerprintManager;
+
+import com.android.internal.util.Preconditions;
+
+/**
+ * Wrapper of {@link FingerprintManager}. Workaround for roboelectic testing. See
+ * {@link IFingerprintManager} for details.
+ */
+public class FingerprintManagerWrapper implements IFingerprintManager {
+ private @NonNull FingerprintManager mFingerprintManager;
+
+ public FingerprintManagerWrapper(@NonNull FingerprintManager fingerprintManager) {
+ Preconditions.checkNotNull(fingerprintManager);
+ mFingerprintManager = fingerprintManager;
+ }
+
+ public boolean isHardwareDetected() {
+ return mFingerprintManager.isHardwareDetected();
+ }
+
+ public boolean hasEnrolledFingerprints(int userId) {
+ return mFingerprintManager.hasEnrolledFingerprints(userId);
+ }
+
+ public long preEnroll() {
+ return mFingerprintManager.preEnroll();
+ }
+}
diff --git a/src/com/android/settings/password/IFingerprintManager.java b/src/com/android/settings/password/IFingerprintManager.java
new file mode 100644
index 0000000..15a9242
--- /dev/null
+++ b/src/com/android/settings/password/IFingerprintManager.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.password;
+
+/**
+ * This is the workaround to allow us test {@link SetNewPasswordController} which uses a new hidden
+ * API {@link android.hardware.fingerprint.FingerprintManager#hasEnrolledFingerprints(int)} that
+ * roboelectric does not support yet. Having roboelectic to support latest platform API is tracked
+ * in b/30995831.
+ */
+public interface IFingerprintManager {
+ boolean isHardwareDetected();
+
+ boolean hasEnrolledFingerprints(int userId);
+
+ long preEnroll();
+}
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index 6ca90a4..585f4f4 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -16,23 +16,26 @@
package com.android.settings.password;
-import android.annotation.Nullable;
+import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PARENT_PROFILE_PASSWORD;
+import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
+
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.Intent;
import android.os.Bundle;
+import android.util.Log;
import com.android.settings.ChooseLockGeneric;
import com.android.settings.SetupChooseLockGeneric;
import com.android.settings.Utils;
-
/**
* Trampolines {@link DevicePolicyManager#ACTION_SET_NEW_PASSWORD} and
* {@link DevicePolicyManager#ACTION_SET_NEW_PARENT_PROFILE_PASSWORD} intent to the appropriate UI
* activity for handling set new password.
*/
public class SetNewPasswordActivity extends Activity implements SetNewPasswordController.Ui {
+ private static final String TAG = "SetNewPasswordActivity";
private String mNewPasswordAction;
private SetNewPasswordController mSetNewPasswordController;
@@ -41,19 +44,23 @@
super.onCreate(savedState);
mNewPasswordAction = getIntent().getAction();
- mSetNewPasswordController = new SetNewPasswordController(this, this);
+ if (!ACTION_SET_NEW_PASSWORD.equals(mNewPasswordAction)
+ && !ACTION_SET_NEW_PARENT_PROFILE_PASSWORD.equals(mNewPasswordAction)) {
+ Log.e(TAG, "Unexpected action to launch this activity");
+ finish();
+ return;
+ }
+ mSetNewPasswordController = SetNewPasswordController.create(this, this, getIntent());
mSetNewPasswordController.dispatchSetNewPasswordIntent();
}
@Override
- public void launchChooseLock(@Nullable Bundle chooseLockFingerprintExtras) {
+ public void launchChooseLock(Bundle chooseLockFingerprintExtras) {
final boolean isInSetupWizard = !Utils.isDeviceProvisioned(this);
Intent intent = isInSetupWizard ? new Intent(this, SetupChooseLockGeneric.class)
: new Intent(this, ChooseLockGeneric.class);
intent.setAction(mNewPasswordAction);
- if (chooseLockFingerprintExtras != null) {
- intent.putExtras(chooseLockFingerprintExtras);
- }
+ intent.putExtras(chooseLockFingerprintExtras);
startActivity(intent);
finish();
}
diff --git a/src/com/android/settings/password/SetNewPasswordController.java b/src/com/android/settings/password/SetNewPasswordController.java
index 03afa76..00cf33e 100644
--- a/src/com/android/settings/password/SetNewPasswordController.java
+++ b/src/com/android/settings/password/SetNewPasswordController.java
@@ -16,18 +16,23 @@
package com.android.settings.password;
+import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
+import static android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT;
+import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
import static com.android.internal.util.Preconditions.checkNotNull;
import android.annotation.Nullable;
+import android.app.ActivityManager;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
-import android.os.UserHandle;
+import android.os.UserManager;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.widget.LockPatternUtils;
import com.android.settings.ChooseLockGeneric;
import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.Utils;
@@ -43,31 +48,52 @@
interface Ui {
/** Starts the {@link ChooseLockGeneric} activity with the given extras. */
- void launchChooseLock(@Nullable Bundle chooseLockFingerprintExtras);
+ void launchChooseLock(Bundle chooseLockFingerprintExtras);
}
- private final int mCurrentUserId;
+ /**
+ * Which user is setting new password.
+ */
+ private final int mTargetUserId;
private final PackageManager mPackageManager;
- @Nullable private final FingerprintManager mFingerprintManager;
+ @Nullable private final IFingerprintManager mFingerprintManager;
private final DevicePolicyManager mDevicePolicyManager;
private final Ui mUi;
- public SetNewPasswordController(Context context, Ui ui) {
- this(context.getUserId(),
+ public static SetNewPasswordController create(Context context, Ui ui, Intent intent) {
+ // Trying to figure out which user is setting new password. If it is
+ // ACTION_SET_NEW_PARENT_PROFILE_PASSWORD or the calling user is not allowed to set
+ // separate profile challenge, it is the current user to set new password. Otherwise,
+ // it is the user who starts this activity setting new password.
+ int userId = ActivityManager.getCurrentUser();
+ if (ACTION_SET_NEW_PASSWORD.equals(intent.getAction())) {
+ final int callingUserId = Utils.getSecureTargetUser(context.getActivityToken(),
+ UserManager.get(context), null, intent.getExtras()).getIdentifier();
+ final LockPatternUtils lockPatternUtils = new LockPatternUtils(context);
+ if (lockPatternUtils.isSeparateProfileChallengeAllowed(callingUserId)) {
+ userId = callingUserId;
+ }
+ }
+ // Create a wrapper of FingerprintManager for testing, see IFingerPrintManager for details.
+ final FingerprintManager fingerprintManager = Utils.getFingerprintManagerOrNull(context);
+ final IFingerprintManager fingerprintManagerWrapper =
+ fingerprintManager == null
+ ? null
+ : new FingerprintManagerWrapper(fingerprintManager);
+ return new SetNewPasswordController(userId,
context.getPackageManager(),
- Utils.getFingerprintManagerOrNull(context),
- (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE),
- ui);
+ fingerprintManagerWrapper,
+ (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE), ui);
}
@VisibleForTesting
SetNewPasswordController(
- int currentUserId,
+ int targetUserId,
PackageManager packageManager,
- FingerprintManager fingerprintManager,
+ IFingerprintManager fingerprintManager,
DevicePolicyManager devicePolicyManager,
Ui ui) {
- mCurrentUserId = currentUserId;
+ mTargetUserId = targetUserId;
mPackageManager = checkNotNull(packageManager);
mFingerprintManager = fingerprintManager;
mDevicePolicyManager = checkNotNull(devicePolicyManager);
@@ -78,38 +104,38 @@
* Dispatches the set new password intent to the correct activity that handles it.
*/
public void dispatchSetNewPasswordIntent() {
+ final Bundle extras;
if (mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)
&& mFingerprintManager != null
&& mFingerprintManager.isHardwareDetected()
- && !mFingerprintManager.hasEnrolledFingerprints()
+ && !mFingerprintManager.hasEnrolledFingerprints(mTargetUserId)
&& !isFingerprintDisabledByAdmin()) {
- mUi.launchChooseLock(getFingerprintChooseLockExtras());
+ extras = getFingerprintChooseLockExtras();
} else {
- mUi.launchChooseLock(null);
+ extras = new Bundle();
}
+ // No matter we show fingerprint options or not, we should tell the next activity which
+ // user is setting new password.
+ extras.putInt(Intent.EXTRA_USER_ID, mTargetUserId);
+ mUi.launchChooseLock(extras);
}
private Bundle getFingerprintChooseLockExtras() {
Bundle chooseLockExtras = new Bundle();
- if (mFingerprintManager != null) {
- long challenge = mFingerprintManager.preEnroll();
- chooseLockExtras.putInt(ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY,
- DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
- chooseLockExtras.putBoolean(
- ChooseLockGeneric.ChooseLockGenericFragment.HIDE_DISABLED_PREFS, true);
- chooseLockExtras.putBoolean(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true);
- chooseLockExtras.putLong(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
- chooseLockExtras.putBoolean(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, true);
- if (mCurrentUserId != UserHandle.USER_NULL) {
- chooseLockExtras.putInt(Intent.EXTRA_USER_ID, mCurrentUserId);
- }
- }
+ long challenge = mFingerprintManager.preEnroll();
+ chooseLockExtras.putInt(ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY,
+ PASSWORD_QUALITY_SOMETHING);
+ chooseLockExtras.putBoolean(
+ ChooseLockGeneric.ChooseLockGenericFragment.HIDE_DISABLED_PREFS, true);
+ chooseLockExtras.putBoolean(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true);
+ chooseLockExtras.putLong(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
+ chooseLockExtras.putBoolean(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, true);
return chooseLockExtras;
}
private boolean isFingerprintDisabledByAdmin() {
- int disabledFeatures = mDevicePolicyManager.getKeyguardDisabledFeatures(
- null, mCurrentUserId);
- return (disabledFeatures & DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT) != 0;
+ int disabledFeatures =
+ mDevicePolicyManager.getKeyguardDisabledFeatures(null, mTargetUserId);
+ return (disabledFeatures & KEYGUARD_DISABLE_FINGERPRINT) != 0;
}
}
diff --git a/src/com/android/settings/search/Index.java b/src/com/android/settings/search/Index.java
index ccedd62..bff841b 100644
--- a/src/com/android/settings/search/Index.java
+++ b/src/com/android/settings/search/Index.java
@@ -110,6 +110,9 @@
public static final String ENTRIES_SEPARATOR = "|";
+ static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER =
+ "SEARCH_INDEX_DATA_PROVIDER";
+
// If you change the order of columns here, you SHOULD change the COLUMN_INDEX_XXX values
private static final String[] SELECT_COLUMNS = new String[] {
IndexColumns.DATA_RANK, // 0
@@ -155,9 +158,6 @@
private static final String HYPHEN = "-";
private static final String SPACE = " ";
- private static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER =
- "SEARCH_INDEX_DATA_PROVIDER";
-
private static final String NODE_NAME_PREFERENCE_SCREEN = "PreferenceScreen";
private static final String NODE_NAME_CHECK_BOX_PREFERENCE = "CheckBoxPreference";
private static final String NODE_NAME_LIST_PREFERENCE = "ListPreference";
diff --git a/src/com/android/settings/search/Indexable.java b/src/com/android/settings/search/Indexable.java
index 19f88ae..e87d9dc 100644
--- a/src/com/android/settings/search/Indexable.java
+++ b/src/com/android/settings/search/Indexable.java
@@ -33,7 +33,7 @@
*/
public interface Indexable {
- public interface SearchIndexProvider {
+ interface SearchIndexProvider {
/**
* Return a list of references for indexing.
*
diff --git a/src/com/android/settings/search/Ranking.java b/src/com/android/settings/search/Ranking.java
index 1070200..28861ca 100644
--- a/src/com/android/settings/search/Ranking.java
+++ b/src/com/android/settings/search/Ranking.java
@@ -32,6 +32,7 @@
import com.android.settings.applications.AdvancedAppSettings;
import com.android.settings.applications.SpecialAccessSettings;
import com.android.settings.bluetooth.BluetoothSettings;
+import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
import com.android.settings.datausage.DataUsageMeteredSettings;
import com.android.settings.datausage.DataUsageSummary;
import com.android.settings.deviceinfo.StorageDashboardFragment;
@@ -108,6 +109,7 @@
// BT
sRankMap.put(BluetoothSettings.class.getName(), RANK_BT);
+ sRankMap.put(ConnectedDeviceDashboardFragment.class.getName(), RANK_BT);
// SIM Cards
sRankMap.put(SimSettings.class.getName(), RANK_SIM);
diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java
index 7888c0f..7fa302c 100644
--- a/src/com/android/settings/search/SearchIndexableResources.java
+++ b/src/com/android/settings/search/SearchIndexableResources.java
@@ -17,6 +17,10 @@
package com.android.settings.search;
import android.provider.SearchIndexableResource;
+import android.support.annotation.DrawableRes;
+import android.support.annotation.VisibleForTesting;
+import android.support.annotation.XmlRes;
+
import com.android.settings.DateTimeSettings;
import com.android.settings.DevelopmentSettings;
import com.android.settings.DeviceInfoSettings;
@@ -30,9 +34,12 @@
import com.android.settings.WirelessSettings;
import com.android.settings.accessibility.AccessibilitySettings;
import com.android.settings.accounts.AccountSettings;
+import com.android.settings.accounts.UserAndAccountDashboardFragment;
import com.android.settings.applications.AdvancedAppSettings;
+import com.android.settings.applications.AppAndNotificationDashboardFragment;
import com.android.settings.applications.SpecialAccessSettings;
import com.android.settings.bluetooth.BluetoothSettings;
+import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
import com.android.settings.datausage.DataUsageMeteredSettings;
import com.android.settings.datausage.DataUsageSummary;
import com.android.settings.deviceinfo.StorageDashboardFragment;
@@ -41,10 +48,16 @@
import com.android.settings.enterprise.EnterprisePrivacySettings;
import com.android.settings.fuelgauge.BatterySaverSettings;
import com.android.settings.fuelgauge.PowerUsageSummary;
+import com.android.settings.gestures.DoubleTapPowerSettings;
+import com.android.settings.gestures.DoubleTapScreenSettings;
+import com.android.settings.gestures.DoubleTwistGestureSettings;
import com.android.settings.gestures.GestureSettings;
+import com.android.settings.gestures.PickupGestureSettings;
+import com.android.settings.gestures.SwipeToNotificationSettings;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.location.LocationSettings;
import com.android.settings.location.ScanningSettings;
+import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.notification.ConfigureNotificationSettings;
import com.android.settings.notification.OtherSoundSettings;
import com.android.settings.notification.SoundSettings;
@@ -64,292 +77,83 @@
public final class SearchIndexableResources {
- public static int NO_DATA_RES_ID = 0;
+ @XmlRes
+ public static final int NO_DATA_RES_ID = 0;
- private static HashMap<String, SearchIndexableResource> sResMap =
- new HashMap<String, SearchIndexableResource>();
+ private static final HashMap<String, SearchIndexableResource> sResMap = new HashMap<>();
+
+ @VisibleForTesting
+ static void addIndex(Class<?> indexClass, @XmlRes int xmlResId,
+ @DrawableRes int iconResId) {
+ String className = indexClass.getName();
+ int rank = Ranking.getRankForClassName(className);
+ sResMap.put(className, new SearchIndexableResource(rank, xmlResId, className, iconResId));
+ }
static {
- sResMap.put(WifiSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(WifiSettings.class.getName()),
- NO_DATA_RES_ID,
- WifiSettings.class.getName(),
- R.drawable.ic_settings_wireless));
-
- sResMap.put(AdvancedWifiSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(AdvancedWifiSettings.class.getName()),
- R.xml.wifi_advanced_settings,
- AdvancedWifiSettings.class.getName(),
- R.drawable.ic_settings_wireless));
-
- sResMap.put(SavedAccessPointsWifiSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(SavedAccessPointsWifiSettings.class.getName()),
- R.xml.wifi_display_saved_access_points,
- SavedAccessPointsWifiSettings.class.getName(),
- R.drawable.ic_settings_wireless));
-
- sResMap.put(BluetoothSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(BluetoothSettings.class.getName()),
- NO_DATA_RES_ID,
- BluetoothSettings.class.getName(),
- R.drawable.ic_settings_bluetooth));
-
- sResMap.put(SimSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(SimSettings.class.getName()),
- NO_DATA_RES_ID,
- SimSettings.class.getName(),
- R.drawable.ic_sim_sd));
-
- sResMap.put(DataUsageSummary.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(DataUsageSummary.class.getName()),
- NO_DATA_RES_ID,
- DataUsageSummary.class.getName(),
- R.drawable.ic_settings_data_usage));
-
- sResMap.put(DataUsageMeteredSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(DataUsageMeteredSettings.class.getName()),
- NO_DATA_RES_ID,
- DataUsageMeteredSettings.class.getName(),
- R.drawable.ic_settings_data_usage));
-
- sResMap.put(WirelessSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(WirelessSettings.class.getName()),
- NO_DATA_RES_ID,
- WirelessSettings.class.getName(),
- R.drawable.ic_settings_more));
-
- sResMap.put(ScreenZoomSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(ScreenZoomSettings.class.getName()),
- NO_DATA_RES_ID,
- ScreenZoomSettings.class.getName(),
- R.drawable.ic_settings_display));
-
- sResMap.put(DisplaySettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(DisplaySettings.class.getName()),
- NO_DATA_RES_ID,
- DisplaySettings.class.getName(),
- R.drawable.ic_settings_display));
-
- sResMap.put(WallpaperTypeSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(WallpaperTypeSettings.class.getName()),
- NO_DATA_RES_ID,
- WallpaperTypeSettings.class.getName(),
- R.drawable.ic_settings_display));
-
- sResMap.put(ConfigureNotificationSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(ConfigureNotificationSettings.class.getName()),
- R.xml.configure_notification_settings,
- ConfigureNotificationSettings.class.getName(),
- R.drawable.ic_settings_notifications));
-
- sResMap.put(SoundSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(SoundSettings.class.getName()),
- NO_DATA_RES_ID,
- SoundSettings.class.getName(),
- R.drawable.ic_settings_sound));
-
- sResMap.put(OtherSoundSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(OtherSoundSettings.class.getName()),
- NO_DATA_RES_ID,
- OtherSoundSettings.class.getName(),
- R.drawable.ic_settings_sound));
-
- sResMap.put(ZenModeSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(ZenModeSettings.class.getName()),
- R.xml.zen_mode_settings,
- ZenModeSettings.class.getName(),
- R.drawable.ic_settings_notifications));
-
- sResMap.put(ZenModePrioritySettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(ZenModePrioritySettings.class.getName()),
- R.xml.zen_mode_priority_settings,
- ZenModePrioritySettings.class.getName(),
- R.drawable.ic_settings_notifications));
-
- sResMap.put(StorageSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(StorageSettings.class.getName()),
- NO_DATA_RES_ID,
- StorageSettings.class.getName(),
- R.drawable.ic_settings_storage));
-
- sResMap.put(PowerUsageSummary.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(PowerUsageSummary.class.getName()),
- R.xml.power_usage_summary,
- PowerUsageSummary.class.getName(),
- R.drawable.ic_settings_battery));
-
- sResMap.put(BatterySaverSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(BatterySaverSettings.class.getName()),
- R.xml.battery_saver_settings,
- BatterySaverSettings.class.getName(),
- R.drawable.ic_settings_battery));
-
- sResMap.put(AdvancedAppSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(AdvancedAppSettings.class.getName()),
- NO_DATA_RES_ID,
- AdvancedAppSettings.class.getName(),
- R.drawable.ic_settings_applications));
-
- sResMap.put(SpecialAccessSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(SpecialAccessSettings.class.getName()),
- R.xml.special_access,
- SpecialAccessSettings.class.getName(),
- R.drawable.ic_settings_applications));
-
- sResMap.put(UserSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(UserSettings.class.getName()),
- NO_DATA_RES_ID,
- UserSettings.class.getName(),
- R.drawable.ic_settings_multiuser));
-
- sResMap.put(GestureSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(GestureSettings.class.getName()),
- NO_DATA_RES_ID,
- GestureSettings.class.getName(),
- R.drawable.ic_settings_gestures));
-
- sResMap.put(LocationSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(LocationSettings.class.getName()),
- R.xml.location_settings,
- LocationSettings.class.getName(),
- R.drawable.ic_settings_location));
-
- sResMap.put(ScanningSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(ScanningSettings.class.getName()),
- R.xml.location_scanning,
- ScanningSettings.class.getName(),
- R.drawable.ic_settings_location));
-
- sResMap.put(SecuritySettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(SecuritySettings.class.getName()),
- NO_DATA_RES_ID,
- SecuritySettings.class.getName(),
- R.drawable.ic_settings_security));
-
- sResMap.put(ScreenPinningSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(ScreenPinningSettings.class.getName()),
- NO_DATA_RES_ID,
- ScreenPinningSettings.class.getName(),
- R.drawable.ic_settings_security));
-
- sResMap.put(AccountSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(AccountSettings.class.getName()),
- NO_DATA_RES_ID,
- AccountSettings.class.getName(),
- R.drawable.ic_settings_accounts));
-
- sResMap.put(InputMethodAndLanguageSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(InputMethodAndLanguageSettings.class.getName()),
- NO_DATA_RES_ID,
- InputMethodAndLanguageSettings.class.getName(),
- R.drawable.ic_settings_language));
-
- sResMap.put(PrivacySettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(PrivacySettings.class.getName()),
- NO_DATA_RES_ID,
- PrivacySettings.class.getName(),
- R.drawable.ic_settings_backup));
-
- sResMap.put(DateTimeSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(DateTimeSettings.class.getName()),
- NO_DATA_RES_ID,
- DateTimeSettings.class.getName(),
- R.drawable.ic_settings_date_time));
-
- sResMap.put(AccessibilitySettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(AccessibilitySettings.class.getName()),
- NO_DATA_RES_ID,
- AccessibilitySettings.class.getName(),
- R.drawable.ic_settings_accessibility));
-
- sResMap.put(PrintSettingsFragment.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(PrintSettingsFragment.class.getName()),
- NO_DATA_RES_ID,
- PrintSettingsFragment.class.getName(),
- R.drawable.ic_settings_print));
-
- sResMap.put(DevelopmentSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(DevelopmentSettings.class.getName()),
- NO_DATA_RES_ID,
- DevelopmentSettings.class.getName(),
- R.drawable.ic_settings_development));
-
- sResMap.put(DeviceInfoSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(DeviceInfoSettings.class.getName()),
- NO_DATA_RES_ID,
- DeviceInfoSettings.class.getName(),
- R.drawable.ic_settings_about));
-
- sResMap.put(LegalSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(LegalSettings.class.getName()),
- NO_DATA_RES_ID,
- LegalSettings.class.getName(),
- R.drawable.ic_settings_about));
-
- sResMap.put(ZenModeVisualInterruptionSettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(
- ZenModeVisualInterruptionSettings.class.getName()),
- R.xml.zen_mode_visual_interruptions_settings,
- ZenModeVisualInterruptionSettings.class.getName(),
- R.drawable.ic_settings_notifications));
-
- sResMap.put(SystemDashboardFragment.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(SystemDashboardFragment.class.getName()),
- NO_DATA_RES_ID,
- SystemDashboardFragment.class.getName(),
- R.drawable.ic_settings_about));
-
- sResMap.put(StorageDashboardFragment.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(StorageDashboardFragment.class.getName()),
- NO_DATA_RES_ID,
- StorageDashboardFragment.class.getName(),
- R.drawable.ic_settings_storage));
-
- sResMap.put(EnterprisePrivacySettings.class.getName(),
- new SearchIndexableResource(
- Ranking.getRankForClassName(EnterprisePrivacySettings.class.getName()),
- NO_DATA_RES_ID,
- EnterprisePrivacySettings.class.getName(),
- R.drawable.ic_settings_about));
+ addIndex(WifiSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_wireless);
+ addIndex(NetworkDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_wireless);
+ addIndex(AdvancedWifiSettings.class,
+ R.xml.wifi_advanced_settings, R.drawable.ic_settings_wireless);
+ addIndex(SavedAccessPointsWifiSettings.class,
+ R.xml.wifi_display_saved_access_points, R.drawable.ic_settings_wireless);
+ addIndex(BluetoothSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_bluetooth);
+ addIndex(SimSettings.class, NO_DATA_RES_ID, R.drawable.ic_sim_sd);
+ addIndex(DataUsageSummary.class, NO_DATA_RES_ID, R.drawable.ic_settings_data_usage);
+ addIndex(DataUsageMeteredSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_data_usage);
+ addIndex(WirelessSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_more);
+ addIndex(ScreenZoomSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_display);
+ addIndex(DisplaySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_display);
+ addIndex(WallpaperTypeSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_display);
+ addIndex(ConfigureNotificationSettings.class,
+ R.xml.configure_notification_settings, R.drawable.ic_settings_notifications);
+ addIndex(AppAndNotificationDashboardFragment.class, NO_DATA_RES_ID,
+ R.drawable.ic_settings_applications);
+ addIndex(SoundSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_sound);
+ addIndex(OtherSoundSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_sound);
+ addIndex(ZenModeSettings.class,
+ R.xml.zen_mode_settings, R.drawable.ic_settings_notifications);
+ addIndex(ZenModePrioritySettings.class,
+ R.xml.zen_mode_priority_settings, R.drawable.ic_settings_notifications);
+ addIndex(StorageSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_storage);
+ addIndex(PowerUsageSummary.class,
+ R.xml.power_usage_summary, R.drawable.ic_settings_battery);
+ addIndex(BatterySaverSettings.class,
+ R.xml.battery_saver_settings, R.drawable.ic_settings_battery);
+ addIndex(AdvancedAppSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_applications);
+ addIndex(SpecialAccessSettings.class,
+ R.xml.special_access, R.drawable.ic_settings_applications);
+ addIndex(UserSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_multiuser);
+ addIndex(GestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+ addIndex(PickupGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+ addIndex(DoubleTapScreenSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+ addIndex(DoubleTapPowerSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+ addIndex(DoubleTwistGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
+ addIndex(SwipeToNotificationSettings.class, NO_DATA_RES_ID,
+ R.drawable.ic_settings_gestures);
+ addIndex(LocationSettings.class, R.xml.location_settings, R.drawable.ic_settings_location);
+ addIndex(ScanningSettings.class, R.xml.location_scanning, R.drawable.ic_settings_location);
+ addIndex(SecuritySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_security);
+ addIndex(ScreenPinningSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_security);
+ addIndex(AccountSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_accounts);
+ addIndex(UserAndAccountDashboardFragment.class, NO_DATA_RES_ID,
+ R.drawable.ic_settings_accounts);
+ addIndex(InputMethodAndLanguageSettings.class,
+ NO_DATA_RES_ID, R.drawable.ic_settings_language);
+ addIndex(PrivacySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_backup);
+ addIndex(DateTimeSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_date_time);
+ addIndex(AccessibilitySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_accessibility);
+ addIndex(PrintSettingsFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_print);
+ addIndex(DevelopmentSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_development);
+ addIndex(DeviceInfoSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
+ addIndex(LegalSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
+ addIndex(ZenModeVisualInterruptionSettings.class,
+ R.xml.zen_mode_visual_interruptions_settings,
+ R.drawable.ic_settings_notifications);
+ addIndex(SystemDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
+ addIndex(StorageDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_storage);
+ addIndex(ConnectedDeviceDashboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_bt_laptop);
+ addIndex(EnterprisePrivacySettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_about);
}
private SearchIndexableResources() {
diff --git a/src/com/android/settings/search2/DatabaseIndexingManager.java b/src/com/android/settings/search2/DatabaseIndexingManager.java
new file mode 100644
index 0000000..9bb4538
--- /dev/null
+++ b/src/com/android/settings/search2/DatabaseIndexingManager.java
@@ -0,0 +1,963 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.settings.search2;
+
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.res.XmlResourceParser;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteException;
+import android.database.sqlite.SQLiteFullException;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.provider.SearchIndexableData;
+import android.provider.SearchIndexableResource;
+import android.provider.SearchIndexablesContract;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.Xml;
+
+import com.android.settings.search.IndexDatabaseHelper;
+import com.android.settings.search.Indexable;
+import com.android.settings.search.Ranking;
+import com.android.settings.search.SearchIndexableRaw;
+import com.android.settings.search.SearchIndexableResources;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_CLASS_NAME;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_ENTRIES;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_ICON_RESID;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_INTENT_ACTION;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_INTENT_TARGET_CLASS;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_KEY;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_KEYWORDS;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_RANK;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SCREEN_TITLE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SUMMARY_OFF;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SUMMARY_ON;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_TITLE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_USER_ID;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_CLASS_NAME;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_ICON_RESID;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_ACTION;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RANK;
+import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RESID;
+
+/**
+ * Consumes the SearchIndexableProvider content providers.
+ * Updates the Resource, Raw Data and non-indexable data for Search.
+ */
+public class DatabaseIndexingManager {
+ private static final String LOG_TAG = "DatabaseIndexingManager";
+
+ // Those indices should match the indices of SELECT_COLUMNS !
+ public static final int COLUMN_INDEX_RANK = 0;
+ public static final int COLUMN_INDEX_TITLE = 1;
+ public static final int COLUMN_INDEX_SUMMARY_ON = 2;
+ public static final int COLUMN_INDEX_SUMMARY_OFF = 3;
+ public static final int COLUMN_INDEX_ENTRIES = 4;
+ public static final int COLUMN_INDEX_KEYWORDS = 5;
+ public static final int COLUMN_INDEX_CLASS_NAME = 6;
+ public static final int COLUMN_INDEX_SCREEN_TITLE = 7;
+ public static final int COLUMN_INDEX_ICON = 8;
+ public static final int COLUMN_INDEX_INTENT_ACTION = 9;
+ public static final int COLUMN_INDEX_INTENT_ACTION_TARGET_PACKAGE = 10;
+ public static final int COLUMN_INDEX_INTENT_ACTION_TARGET_CLASS = 11;
+ public static final int COLUMN_INDEX_ENABLED = 12;
+ public static final int COLUMN_INDEX_KEY = 13;
+ public static final int COLUMN_INDEX_USER_ID = 14;
+
+ // If you change the order of columns here, you SHOULD change the COLUMN_INDEX_XXX values
+ private static final String[] SELECT_COLUMNS = new String[] {
+ IndexDatabaseHelper.IndexColumns.DATA_RANK, // 0
+ IndexDatabaseHelper.IndexColumns.DATA_TITLE, // 1
+ IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, // 2
+ IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, // 3
+ IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, // 4
+ IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, // 5
+ IndexDatabaseHelper.IndexColumns.CLASS_NAME, // 6
+ IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, // 7
+ IndexDatabaseHelper.IndexColumns.ICON, // 8
+ IndexDatabaseHelper.IndexColumns.INTENT_ACTION, // 9
+ IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, // 10
+ IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, // 11
+ IndexDatabaseHelper.IndexColumns.ENABLED, // 12
+ IndexDatabaseHelper.IndexColumns.DATA_KEY_REF // 13
+ };
+
+ private static final String[] MATCH_COLUMNS_PRIMARY = {
+ IndexDatabaseHelper.IndexColumns.DATA_TITLE,
+ IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED,
+ IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS
+ };
+
+ private static final String[] MATCH_COLUMNS_SECONDARY = {
+ IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON,
+ IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED,
+ IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF,
+ IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED,
+ IndexDatabaseHelper.IndexColumns.DATA_ENTRIES
+ };
+
+
+ private static final String NODE_NAME_PREFERENCE_SCREEN = "PreferenceScreen";
+ private static final String NODE_NAME_CHECK_BOX_PREFERENCE = "CheckBoxPreference";
+ private static final String NODE_NAME_LIST_PREFERENCE = "ListPreference";
+
+ private static final List<String> EMPTY_LIST = Collections.<String>emptyList();
+
+ private final String mBaseAuthority;
+
+ /**
+ * A private class to describe the update data for the Index database
+ */
+ private static class UpdateData {
+ public List<SearchIndexableData> dataToUpdate;
+ public List<SearchIndexableData> dataToDelete;
+ public Map<String, List<String>> nonIndexableKeys;
+
+ public boolean forceUpdate;
+ public boolean fullIndex;
+
+ public UpdateData() {
+ dataToUpdate = new ArrayList<SearchIndexableData>();
+ dataToDelete = new ArrayList<SearchIndexableData>();
+ nonIndexableKeys = new HashMap<String, List<String>>();
+ }
+
+ public UpdateData(DatabaseIndexingManager.UpdateData other) {
+ dataToUpdate = new ArrayList<SearchIndexableData>(other.dataToUpdate);
+ dataToDelete = new ArrayList<SearchIndexableData>(other.dataToDelete);
+ nonIndexableKeys = new HashMap<String, List<String>>(other.nonIndexableKeys);
+ forceUpdate = other.forceUpdate;
+ fullIndex = other.fullIndex;
+ }
+
+ public DatabaseIndexingManager.UpdateData copy() {
+ return new DatabaseIndexingManager.UpdateData(this);
+ }
+
+ public void clear() {
+ dataToUpdate.clear();
+ dataToDelete.clear();
+ nonIndexableKeys.clear();
+ forceUpdate = false;
+ fullIndex = false;
+ }
+ }
+
+ private final AtomicBoolean mIsAvailable = new AtomicBoolean(false);
+ private final DatabaseIndexingManager.UpdateData mDataToProcess =
+ new DatabaseIndexingManager.UpdateData();
+ private Context mContext;
+
+ public DatabaseIndexingManager(Context context, String baseAuthority) {
+ mContext = context;
+ mBaseAuthority = baseAuthority;
+ }
+
+ public void setContext(Context context) {
+ mContext = context;
+ }
+
+ public boolean isAvailable() {
+ return mIsAvailable.get();
+ }
+
+ public void update() {
+ AsyncTask.execute(new Runnable() {
+ @Override
+ public void run() {
+ final Intent intent = new Intent(SearchIndexablesContract.PROVIDER_INTERFACE);
+ List<ResolveInfo> list =
+ mContext.getPackageManager().queryIntentContentProviders(intent, 0);
+
+ final int size = list.size();
+ for (int n = 0; n < size; n++) {
+ final ResolveInfo info = list.get(n);
+ if (!DatabaseIndexingUtils.isWellKnownProvider(info, mContext)) {
+ continue;
+ }
+ final String authority = info.providerInfo.authority;
+ final String packageName = info.providerInfo.packageName;
+
+ addIndexablesFromRemoteProvider(packageName, authority);
+ addNonIndexablesKeysFromRemoteProvider(packageName, authority);
+ }
+
+ mDataToProcess.fullIndex = true;
+ updateInternal();
+ }
+ });
+ }
+
+ private boolean addIndexablesFromRemoteProvider(String packageName, String authority) {
+ try {
+ final int baseRank = Ranking.getBaseRankForAuthority(authority);
+
+ final Context context = mBaseAuthority.equals(authority) ?
+ mContext : mContext.createPackageContext(packageName, 0);
+
+ final Uri uriForResources = buildUriForXmlResources(authority);
+ addIndexablesForXmlResourceUri(context, packageName, uriForResources,
+ SearchIndexablesContract.INDEXABLES_XML_RES_COLUMNS, baseRank);
+
+ final Uri uriForRawData = buildUriForRawData(authority);
+ addIndexablesForRawDataUri(context, packageName, uriForRawData,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS, baseRank);
+ return true;
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.w(LOG_TAG, "Could not create context for " + packageName + ": "
+ + Log.getStackTraceString(e));
+ return false;
+ }
+ }
+
+ private void addNonIndexablesKeysFromRemoteProvider(String packageName,
+ String authority) {
+ final List<String> keys =
+ getNonIndexablesKeysFromRemoteProvider(packageName, authority);
+ addNonIndexableKeys(packageName, keys);
+ }
+
+ private List<String> getNonIndexablesKeysFromRemoteProvider(String packageName,
+ String authority) {
+ try {
+ final Context packageContext = mContext.createPackageContext(packageName, 0);
+
+ final Uri uriForNonIndexableKeys = buildUriForNonIndexableKeys(authority);
+ return getNonIndexablesKeys(packageContext, uriForNonIndexableKeys,
+ SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.w(LOG_TAG, "Could not create context for " + packageName + ": "
+ + Log.getStackTraceString(e));
+ return EMPTY_LIST;
+ }
+ }
+
+ private List<String> getNonIndexablesKeys(Context packageContext, Uri uri,
+ String[] projection) {
+
+ final ContentResolver resolver = packageContext.getContentResolver();
+ final Cursor cursor = resolver.query(uri, projection, null, null, null);
+
+ if (cursor == null) {
+ Log.w(LOG_TAG, "Cannot add index data for Uri: " + uri.toString());
+ return EMPTY_LIST;
+ }
+
+ List<String> result = new ArrayList<String>();
+ try {
+ final int count = cursor.getCount();
+ if (count > 0) {
+ while (cursor.moveToNext()) {
+ final String key = cursor.getString(COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE);
+ result.add(key);
+ }
+ }
+ return result;
+ } finally {
+ cursor.close();
+ }
+ }
+
+ public void addIndexableData(SearchIndexableData data) {
+ synchronized (mDataToProcess) {
+ mDataToProcess.dataToUpdate.add(data);
+ }
+ }
+
+ public void deleteIndexableData(SearchIndexableData data) {
+ synchronized (mDataToProcess) {
+ mDataToProcess.dataToDelete.add(data);
+ }
+ }
+
+ public void addNonIndexableKeys(String authority, List<String> keys) {
+ synchronized (mDataToProcess) {
+ mDataToProcess.nonIndexableKeys.put(authority, keys);
+ }
+ }
+
+ private void updateFromRemoteProvider(String packageName, String authority) {
+ if (addIndexablesFromRemoteProvider(packageName, authority)) {
+ updateInternal();
+ }
+ }
+
+ /**
+ * Update the Index for a specific class name resources
+ *
+ * @param className the class name (typically a fragment name).
+ * @param rebuild true means that you want to delete the data from the Index first.
+ * @param includeInSearchResults true means that you want the bit "enabled" set so that the
+ * data will be seen included into the search results
+ */
+ public void updateFromClassNameResource(String className, final boolean rebuild,
+ boolean includeInSearchResults) {
+ if (className == null) {
+ throw new IllegalArgumentException("class name cannot be null!");
+ }
+ final SearchIndexableResource res = SearchIndexableResources.getResourceByName(className);
+ if (res == null ) {
+ Log.e(LOG_TAG, "Cannot find SearchIndexableResources for class name: " + className);
+ return;
+ }
+ res.context = mContext;
+ res.enabled = includeInSearchResults;
+ AsyncTask.execute(new Runnable() {
+ @Override
+ public void run() {
+ if (rebuild) {
+ deleteIndexableData(res);
+ }
+ addIndexableData(res);
+ mDataToProcess.forceUpdate = true;
+ updateInternal();
+ res.enabled = false;
+ }
+ });
+ }
+
+ public void updateFromSearchIndexableData(final SearchIndexableData data) {
+ AsyncTask.execute(new Runnable() {
+ @Override
+ public void run() {
+ addIndexableData(data);
+ mDataToProcess.forceUpdate = true;
+ updateInternal();
+ }
+ });
+ }
+
+ private SQLiteDatabase getReadableDatabase() {
+ return IndexDatabaseHelper.getInstance(mContext).getReadableDatabase();
+ }
+
+ private SQLiteDatabase getWritableDatabase() {
+ try {
+ return IndexDatabaseHelper.getInstance(mContext).getWritableDatabase();
+ } catch (SQLiteException e) {
+ Log.e(LOG_TAG, "Cannot open writable database", e);
+ return null;
+ }
+ }
+
+ private static Uri buildUriForXmlResources(String authority) {
+ return Uri.parse("content://" + authority + "/" +
+ SearchIndexablesContract.INDEXABLES_XML_RES_PATH);
+ }
+
+ private static Uri buildUriForRawData(String authority) {
+ return Uri.parse("content://" + authority + "/" +
+ SearchIndexablesContract.INDEXABLES_RAW_PATH);
+ }
+
+ private static Uri buildUriForNonIndexableKeys(String authority) {
+ return Uri.parse("content://" + authority + "/" +
+ SearchIndexablesContract.NON_INDEXABLES_KEYS_PATH);
+ }
+
+ private void updateInternal() {
+ synchronized (mDataToProcess) {
+ final DatabaseIndexingManager.UpdateIndexTask task =
+ new DatabaseIndexingManager.UpdateIndexTask();
+ DatabaseIndexingManager.UpdateData copy = mDataToProcess.copy();
+ task.execute(copy);
+ mDataToProcess.clear();
+ }
+ }
+
+ private void addIndexablesForXmlResourceUri(Context packageContext, String packageName,
+ Uri uri, String[] projection, int baseRank) {
+
+ final ContentResolver resolver = packageContext.getContentResolver();
+ final Cursor cursor = resolver.query(uri, projection, null, null, null);
+
+ if (cursor == null) {
+ Log.w(LOG_TAG, "Cannot add index data for Uri: " + uri.toString());
+ return;
+ }
+
+ try {
+ final int count = cursor.getCount();
+ if (count > 0) {
+ while (cursor.moveToNext()) {
+ final int providerRank = cursor.getInt(COLUMN_INDEX_XML_RES_RANK);
+ final int rank = (providerRank > 0) ? baseRank + providerRank : baseRank;
+
+ final int xmlResId = cursor.getInt(COLUMN_INDEX_XML_RES_RESID);
+
+ final String className = cursor.getString(COLUMN_INDEX_XML_RES_CLASS_NAME);
+ final int iconResId = cursor.getInt(COLUMN_INDEX_XML_RES_ICON_RESID);
+
+ final String action = cursor.getString(COLUMN_INDEX_XML_RES_INTENT_ACTION);
+ final String targetPackage = cursor.getString(
+ COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE);
+ final String targetClass = cursor.getString(
+ COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS);
+
+ SearchIndexableResource sir = new SearchIndexableResource(packageContext);
+ sir.rank = rank;
+ sir.xmlResId = xmlResId;
+ sir.className = className;
+ sir.packageName = packageName;
+ sir.iconResId = iconResId;
+ sir.intentAction = action;
+ sir.intentTargetPackage = targetPackage;
+ sir.intentTargetClass = targetClass;
+
+ addIndexableData(sir);
+ }
+ }
+ } finally {
+ cursor.close();
+ }
+ }
+
+ private void addIndexablesForRawDataUri(Context packageContext, String packageName,
+ Uri uri, String[] projection, int baseRank) {
+
+ final ContentResolver resolver = packageContext.getContentResolver();
+ final Cursor cursor = resolver.query(uri, projection, null, null, null);
+
+ if (cursor == null) {
+ Log.w(LOG_TAG, "Cannot add index data for Uri: " + uri.toString());
+ return;
+ }
+
+ try {
+ final int count = cursor.getCount();
+ if (count > 0) {
+ while (cursor.moveToNext()) {
+ final int providerRank = cursor.getInt(COLUMN_INDEX_RAW_RANK);
+ final int rank = (providerRank > 0) ? baseRank + providerRank : baseRank;
+
+ final String title = cursor.getString(COLUMN_INDEX_RAW_TITLE);
+ final String summaryOn = cursor.getString(COLUMN_INDEX_RAW_SUMMARY_ON);
+ final String summaryOff = cursor.getString(COLUMN_INDEX_RAW_SUMMARY_OFF);
+ final String entries = cursor.getString(COLUMN_INDEX_RAW_ENTRIES);
+ final String keywords = cursor.getString(COLUMN_INDEX_RAW_KEYWORDS);
+
+ final String screenTitle = cursor.getString(COLUMN_INDEX_RAW_SCREEN_TITLE);
+
+ final String className = cursor.getString(COLUMN_INDEX_RAW_CLASS_NAME);
+ final int iconResId = cursor.getInt(COLUMN_INDEX_RAW_ICON_RESID);
+
+ final String action = cursor.getString(COLUMN_INDEX_RAW_INTENT_ACTION);
+ final String targetPackage = cursor.getString(
+ COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE);
+ final String targetClass = cursor.getString(
+ COLUMN_INDEX_RAW_INTENT_TARGET_CLASS);
+
+ final String key = cursor.getString(COLUMN_INDEX_RAW_KEY);
+ final int userId = cursor.getInt(COLUMN_INDEX_RAW_USER_ID);
+
+ SearchIndexableRaw data = new SearchIndexableRaw(packageContext);
+ data.rank = rank;
+ data.title = title;
+ data.summaryOn = summaryOn;
+ data.summaryOff = summaryOff;
+ data.entries = entries;
+ data.keywords = keywords;
+ data.screenTitle = screenTitle;
+ data.className = className;
+ data.packageName = packageName;
+ data.iconResId = iconResId;
+ data.intentAction = action;
+ data.intentTargetPackage = targetPackage;
+ data.intentTargetClass = targetClass;
+ data.key = key;
+ data.userId = userId;
+
+ addIndexableData(data);
+ }
+ }
+ } finally {
+ cursor.close();
+ }
+ }
+
+ private void indexOneSearchIndexableData(SQLiteDatabase database, String localeStr,
+ SearchIndexableData data, Map<String, List<String>> nonIndexableKeys) {
+ if (data instanceof SearchIndexableResource) {
+ indexOneResource(database, localeStr, (SearchIndexableResource) data, nonIndexableKeys);
+ } else if (data instanceof SearchIndexableRaw) {
+ indexOneRaw(database, localeStr, (SearchIndexableRaw) data);
+ }
+ }
+
+ private void indexOneRaw(SQLiteDatabase database, String localeStr,
+ SearchIndexableRaw raw) {
+ // Should be the same locale as the one we are processing
+ if (!raw.locale.toString().equalsIgnoreCase(localeStr)) {
+ return;
+ }
+
+ updateOneRowWithFilteredData(database, localeStr,
+ raw.title,
+ raw.summaryOn,
+ raw.summaryOff,
+ raw.entries,
+ raw.className,
+ raw.screenTitle,
+ raw.iconResId,
+ raw.rank,
+ raw.keywords,
+ raw.intentAction,
+ raw.intentTargetPackage,
+ raw.intentTargetClass,
+ raw.enabled,
+ raw.key,
+ raw.userId);
+ }
+
+ private void indexOneResource(SQLiteDatabase database, String localeStr,
+ SearchIndexableResource sir, Map<String, List<String>> nonIndexableKeysFromResource) {
+
+ if (sir == null) {
+ Log.e(LOG_TAG, "Cannot index a null resource!");
+ return;
+ }
+
+ final List<String> nonIndexableKeys = new ArrayList<String>();
+
+ if (sir.xmlResId > SearchIndexableResources.NO_DATA_RES_ID) {
+ List<String> resNonIndxableKeys = nonIndexableKeysFromResource.get(sir.packageName);
+ if (resNonIndxableKeys != null && resNonIndxableKeys.size() > 0) {
+ nonIndexableKeys.addAll(resNonIndxableKeys);
+ }
+
+ indexFromResource(sir.context, database, localeStr,
+ sir.xmlResId, sir.className, sir.iconResId, sir.rank,
+ sir.intentAction, sir.intentTargetPackage, sir.intentTargetClass,
+ nonIndexableKeys);
+ } else {
+ if (TextUtils.isEmpty(sir.className)) {
+ Log.w(LOG_TAG, "Cannot index an empty Search Provider name!");
+ return;
+ }
+
+ final Class<?> clazz = DatabaseIndexingUtils.getIndexableClass(sir.className);
+ if (clazz == null) {
+ Log.d(LOG_TAG, "SearchIndexableResource '" + sir.className +
+ "' should implement the " + Indexable.class.getName() + " interface!");
+ return;
+ }
+
+ // Will be non null only for a Local provider implementing a
+ // SEARCH_INDEX_DATA_PROVIDER field
+ final Indexable.SearchIndexProvider provider =
+ DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+ if (provider != null) {
+ List<String> providerNonIndexableKeys = provider.getNonIndexableKeys(sir.context);
+ if (providerNonIndexableKeys != null && providerNonIndexableKeys.size() > 0) {
+ nonIndexableKeys.addAll(providerNonIndexableKeys);
+ }
+
+ indexFromProvider(mContext, database, localeStr, provider, sir.className,
+ sir.iconResId, sir.rank, sir.enabled, nonIndexableKeys);
+ }
+ }
+ }
+
+ private void indexFromResource(Context context, SQLiteDatabase database, String localeStr,
+ int xmlResId, String fragmentName, int iconResId, int rank,
+ String intentAction, String intentTargetPackage, String intentTargetClass,
+ List<String> nonIndexableKeys) {
+
+ XmlResourceParser parser = null;
+ try {
+ parser = context.getResources().getXml(xmlResId);
+
+ int type;
+ while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+ && type != XmlPullParser.START_TAG) {
+ // Parse next until start tag is found
+ }
+
+ String nodeName = parser.getName();
+ if (!NODE_NAME_PREFERENCE_SCREEN.equals(nodeName)) {
+ throw new RuntimeException(
+ "XML document must start with <PreferenceScreen> tag; found"
+ + nodeName + " at " + parser.getPositionDescription());
+ }
+
+ final int outerDepth = parser.getDepth();
+ final AttributeSet attrs = Xml.asAttributeSet(parser);
+
+ final String screenTitle = XMLParserUtil.getDataTitle(context, attrs);
+
+ String key = XMLParserUtil.getDataKey(context, attrs);
+
+ String title;
+ String summary;
+ String keywords;
+
+ // Insert rows for the main PreferenceScreen node. Rewrite the data for removing
+ // hyphens.
+ if (!nonIndexableKeys.contains(key)) {
+ title = XMLParserUtil.getDataTitle(context, attrs);
+ summary = XMLParserUtil.getDataSummary(context, attrs);
+ keywords = XMLParserUtil.getDataKeywords(context, attrs);
+
+ updateOneRowWithFilteredData(database, localeStr, title, summary, null, null,
+ fragmentName, screenTitle, iconResId, rank,
+ keywords, intentAction, intentTargetPackage, intentTargetClass, true,
+ key, -1 /* default user id */);
+ }
+
+ while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+ && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) {
+ if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
+ continue;
+ }
+
+ nodeName = parser.getName();
+
+ key = XMLParserUtil.getDataKey(context, attrs);
+ if (nonIndexableKeys.contains(key)) {
+ continue;
+ }
+
+ title = XMLParserUtil.getDataTitle(context, attrs);
+ keywords = XMLParserUtil.getDataKeywords(context, attrs);
+
+ if (!nodeName.equals(NODE_NAME_CHECK_BOX_PREFERENCE)) {
+ summary = XMLParserUtil.getDataSummary(context, attrs);
+
+ String entries = null;
+
+ if (nodeName.endsWith(NODE_NAME_LIST_PREFERENCE)) {
+ entries = XMLParserUtil.getDataEntries(context, attrs);
+ }
+
+ // Insert rows for the child nodes of PreferenceScreen
+ updateOneRowWithFilteredData(database, localeStr, title, summary, null, entries,
+ fragmentName, screenTitle, iconResId, rank,
+ keywords, intentAction, intentTargetPackage, intentTargetClass,
+ true, key, -1 /* default user id */);
+ } else {
+ String summaryOn = XMLParserUtil.getDataSummaryOn(context, attrs);
+ String summaryOff = XMLParserUtil.getDataSummaryOff(context, attrs);
+
+ if (TextUtils.isEmpty(summaryOn) && TextUtils.isEmpty(summaryOff)) {
+ summaryOn = XMLParserUtil.getDataSummary(context, attrs);
+ }
+
+ updateOneRowWithFilteredData(database, localeStr, title, summaryOn, summaryOff,
+ null, fragmentName, screenTitle, iconResId, rank,
+ keywords, intentAction, intentTargetPackage, intentTargetClass,
+ true, key, -1 /* default user id */);
+ }
+ }
+
+ } catch (XmlPullParserException e) {
+ throw new RuntimeException("Error parsing PreferenceScreen", e);
+ } catch (IOException e) {
+ throw new RuntimeException("Error parsing PreferenceScreen", e);
+ } finally {
+ if (parser != null) parser.close();
+ }
+ }
+
+ private void indexFromProvider(Context context, SQLiteDatabase database, String localeStr,
+ Indexable.SearchIndexProvider provider, String className, int iconResId, int rank,
+ boolean enabled, List<String> nonIndexableKeys) {
+
+ if (provider == null) {
+ Log.w(LOG_TAG, "Cannot find provider: " + className);
+ return;
+ }
+
+ final List<SearchIndexableRaw> rawList = provider.getRawDataToIndex(context, enabled);
+
+ if (rawList != null) {
+ final int rawSize = rawList.size();
+ for (int i = 0; i < rawSize; i++) {
+ SearchIndexableRaw raw = rawList.get(i);
+
+ // Should be the same locale as the one we are processing
+ if (!raw.locale.toString().equalsIgnoreCase(localeStr)) {
+ continue;
+ }
+
+ if (nonIndexableKeys.contains(raw.key)) {
+ continue;
+ }
+
+ updateOneRowWithFilteredData(database, localeStr,
+ raw.title,
+ raw.summaryOn,
+ raw.summaryOff,
+ raw.entries,
+ className,
+ raw.screenTitle,
+ iconResId,
+ rank,
+ raw.keywords,
+ raw.intentAction,
+ raw.intentTargetPackage,
+ raw.intentTargetClass,
+ raw.enabled,
+ raw.key,
+ raw.userId);
+ }
+ }
+
+ final List<SearchIndexableResource> resList =
+ provider.getXmlResourcesToIndex(context, enabled);
+ if (resList != null) {
+ final int resSize = resList.size();
+ for (int i = 0; i < resSize; i++) {
+ SearchIndexableResource item = resList.get(i);
+
+ // Should be the same locale as the one we are processing
+ if (!item.locale.toString().equalsIgnoreCase(localeStr)) {
+ continue;
+ }
+
+ final int itemIconResId = (item.iconResId == 0) ? iconResId : item.iconResId;
+ final int itemRank = (item.rank == 0) ? rank : item.rank;
+ String itemClassName = (TextUtils.isEmpty(item.className))
+ ? className : item.className;
+
+ indexFromResource(context, database, localeStr,
+ item.xmlResId, itemClassName, itemIconResId, itemRank,
+ item.intentAction, item.intentTargetPackage,
+ item.intentTargetClass, nonIndexableKeys);
+ }
+ }
+ }
+
+ private void updateOneRowWithFilteredData(SQLiteDatabase database, String locale,
+ String title, String summaryOn, String summaryOff, String entries,
+ String className,
+ String screenTitle, int iconResId, int rank, String keywords,
+ String intentAction, String intentTargetPackage, String intentTargetClass,
+ boolean enabled, String key, int userId) {
+
+ final String updatedTitle = XMLParserUtil.normalizeHyphen(title);
+ final String updatedSummaryOn = XMLParserUtil.normalizeHyphen(summaryOn);
+ final String updatedSummaryOff = XMLParserUtil.normalizeHyphen(summaryOff);
+
+ final String normalizedTitle = XMLParserUtil.normalizeString(updatedTitle);
+ final String normalizedSummaryOn = XMLParserUtil.normalizeString(updatedSummaryOn);
+ final String normalizedSummaryOff = XMLParserUtil.normalizeString(updatedSummaryOff);
+
+ final String spaceDelimitedKeywords = XMLParserUtil.normalizeKeywords(keywords);
+
+ updateOneRow(database, locale,
+ updatedTitle, normalizedTitle, updatedSummaryOn, normalizedSummaryOn,
+ updatedSummaryOff, normalizedSummaryOff, entries, className, screenTitle, iconResId,
+ rank, spaceDelimitedKeywords, intentAction, intentTargetPackage, intentTargetClass,
+ enabled, key, userId);
+ }
+
+ private void updateOneRow(SQLiteDatabase database, String locale, String updatedTitle,
+ String normalizedTitle, String updatedSummaryOn, String normalizedSummaryOn,
+ String updatedSummaryOff, String normalizedSummaryOff, String entries, String className,
+ String screenTitle, int iconResId, int rank, String spaceDelimitedKeywords,
+ String intentAction, String intentTargetPackage, String intentTargetClass,
+ boolean enabled, String key, int userId) {
+
+ if (TextUtils.isEmpty(updatedTitle)) {
+ return;
+ }
+
+ // The DocID should contains more than the title string itself (you may have two settings
+ // with the same title). So we need to use a combination of the title and the screenTitle.
+ StringBuilder sb = new StringBuilder(updatedTitle);
+ sb.append(screenTitle);
+ int docId = sb.toString().hashCode();
+
+ ContentValues values = new ContentValues();
+ values.put(IndexDatabaseHelper.IndexColumns.DOCID, docId);
+ values.put(IndexDatabaseHelper.IndexColumns.LOCALE, locale);
+ values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, rank);
+ values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, updatedTitle);
+ values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, normalizedTitle);
+ values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, updatedSummaryOn);
+ values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED,
+ normalizedSummaryOn);
+ values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, updatedSummaryOff);
+ values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED,
+ normalizedSummaryOff);
+ values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, entries);
+ values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, spaceDelimitedKeywords);
+ values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, className);
+ values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, screenTitle);
+ values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, intentAction);
+ values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, intentTargetPackage);
+ values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, intentTargetClass);
+ values.put(IndexDatabaseHelper.IndexColumns.ICON, iconResId);
+ values.put(IndexDatabaseHelper.IndexColumns.ENABLED, enabled);
+ values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, key);
+ values.put(IndexDatabaseHelper.IndexColumns.USER_ID, userId);
+
+ database.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values);
+ }
+
+ /**
+ * A private class for updating the Index database
+ */
+ private class UpdateIndexTask extends AsyncTask<DatabaseIndexingManager.UpdateData, Integer,
+ Void> {
+
+ @Override
+ protected void onPreExecute() {
+ super.onPreExecute();
+ mIsAvailable.set(false);
+ }
+
+ @Override
+ protected void onPostExecute(Void aVoid) {
+ super.onPostExecute(aVoid);
+ mIsAvailable.set(true);
+ }
+
+ @Override
+ protected Void doInBackground(DatabaseIndexingManager.UpdateData... params) {
+ try {
+ final List<SearchIndexableData> dataToUpdate = params[0].dataToUpdate;
+ final List<SearchIndexableData> dataToDelete = params[0].dataToDelete;
+ final Map<String, List<String>> nonIndexableKeys = params[0].nonIndexableKeys;
+
+ final boolean forceUpdate = params[0].forceUpdate;
+ final boolean fullIndex = params[0].fullIndex;
+
+ final SQLiteDatabase database = getWritableDatabase();
+ if (database == null) {
+ Log.e(LOG_TAG, "Cannot update Index as I cannot get a writable database");
+ return null;
+ }
+ final String localeStr = Locale.getDefault().toString();
+
+ try {
+ database.beginTransaction();
+ if (dataToDelete.size() > 0) {
+ processDataToDelete(database, localeStr, dataToDelete);
+ }
+ if (dataToUpdate.size() > 0) {
+ processDataToUpdate(database, localeStr, dataToUpdate, nonIndexableKeys,
+ forceUpdate);
+ }
+ database.setTransactionSuccessful();
+ } finally {
+ database.endTransaction();
+ }
+ if (fullIndex) {
+ IndexDatabaseHelper.setLocaleIndexed(mContext, localeStr);
+ }
+ } catch (SQLiteFullException e) {
+ Log.e(LOG_TAG, "Unable to index search, out of space", e);
+ }
+
+ return null;
+ }
+
+ private boolean processDataToUpdate(SQLiteDatabase database, String localeStr,
+ List<SearchIndexableData> dataToUpdate, Map<String, List<String>> nonIndexableKeys,
+ boolean forceUpdate) {
+
+ if (!forceUpdate && IndexDatabaseHelper.isLocaleAlreadyIndexed(mContext, localeStr)) {
+ Log.d(LOG_TAG, "Locale '" + localeStr + "' is already indexed");
+ return true;
+ }
+
+ boolean result = false;
+ final long current = System.currentTimeMillis();
+
+ final int count = dataToUpdate.size();
+ for (int n = 0; n < count; n++) {
+ final SearchIndexableData data = dataToUpdate.get(n);
+ try {
+ indexOneSearchIndexableData(database, localeStr, data, nonIndexableKeys);
+ } catch (Exception e) {
+ Log.e(LOG_TAG, "Cannot index: " + (data != null ? data.className : data)
+ + " for locale: " + localeStr, e);
+ }
+ }
+
+ final long now = System.currentTimeMillis();
+ Log.d(LOG_TAG, "Indexing locale '" + localeStr + "' took " +
+ (now - current) + " millis");
+ return result;
+ }
+
+ private boolean processDataToDelete(SQLiteDatabase database, String localeStr,
+ List<SearchIndexableData> dataToDelete) {
+
+ boolean result = false;
+ final long current = System.currentTimeMillis();
+
+ final int count = dataToDelete.size();
+ for (int n = 0; n < count; n++) {
+ final SearchIndexableData data = dataToDelete.get(n);
+ if (data == null) {
+ continue;
+ }
+ if (!TextUtils.isEmpty(data.className)) {
+ delete(database, IndexDatabaseHelper.IndexColumns.CLASS_NAME, data.className);
+ } else {
+ if (data instanceof SearchIndexableRaw) {
+ final SearchIndexableRaw raw = (SearchIndexableRaw) data;
+ if (!TextUtils.isEmpty(raw.title)) {
+ delete(database, IndexDatabaseHelper.IndexColumns.DATA_TITLE,
+ raw.title);
+ }
+ }
+ }
+ }
+
+ final long now = System.currentTimeMillis();
+ Log.d(LOG_TAG, "Deleting data for locale '" + localeStr + "' took " +
+ (now - current) + " millis");
+ return result;
+ }
+
+ private int delete(SQLiteDatabase database, String columName, String value) {
+ final String whereClause = columName + "=?";
+ final String[] whereArgs = new String[] { value };
+
+ return database.delete(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, whereClause,
+ whereArgs);
+ }
+ }
+}
diff --git a/src/com/android/settings/search2/DatabaseIndexingUtils.java b/src/com/android/settings/search2/DatabaseIndexingUtils.java
new file mode 100644
index 0000000..a8f64df
--- /dev/null
+++ b/src/com/android/settings/search2/DatabaseIndexingUtils.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.settings.search2;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.settings.search.Indexable;
+
+import java.lang.reflect.Field;
+
+/**
+ * Utility class for {@like DatabaseIndexingManager} to handle the mapping between Payloads
+ * and Preference controllers, and managing indexable classes.
+ */
+public class DatabaseIndexingUtils {
+
+ private static final String LOG_TAG = "IndexingUtil";
+
+ private static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER =
+ "SEARCH_INDEX_DATA_PROVIDER";
+
+ public static Class<?> getIndexableClass(String className) {
+ final Class<?> clazz;
+ try {
+ clazz = Class.forName(className);
+ } catch (ClassNotFoundException e) {
+ Log.d(LOG_TAG, "Cannot find class: " + className);
+ return null;
+ }
+ return isIndexableClass(clazz) ? clazz : null;
+ }
+
+ public static boolean isIndexableClass(final Class<?> clazz) {
+ return (clazz != null) && Indexable.class.isAssignableFrom(clazz);
+ }
+
+ public static Indexable.SearchIndexProvider getSearchIndexProvider(final Class<?> clazz) {
+ try {
+ final Field f = clazz.getField(FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER);
+ return (Indexable.SearchIndexProvider) f.get(null);
+ } catch (NoSuchFieldException e) {
+ Log.d(LOG_TAG, "Cannot find field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+ } catch (SecurityException se) {
+ Log.d(LOG_TAG,
+ "Security exception for field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+ } catch (IllegalAccessException e) {
+ Log.d(LOG_TAG,
+ "Illegal access to field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+ } catch (IllegalArgumentException e) {
+ Log.d(LOG_TAG,
+ "Illegal argument when accessing field '" +
+ FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+ }
+ return null;
+ }
+
+ /**
+ * Only allow a "well known" SearchIndexablesProvider. The provider should:
+ *
+ * - have read/write {@link Manifest.permission#READ_SEARCH_INDEXABLES}
+ * - be from a privileged package
+ */
+ public static boolean isWellKnownProvider(ResolveInfo info, Context context) {
+ final String authority = info.providerInfo.authority;
+ final String packageName = info.providerInfo.applicationInfo.packageName;
+
+ if (TextUtils.isEmpty(authority) || TextUtils.isEmpty(packageName)) {
+ return false;
+ }
+
+ final String readPermission = info.providerInfo.readPermission;
+ final String writePermission = info.providerInfo.writePermission;
+
+ if (TextUtils.isEmpty(readPermission) || TextUtils.isEmpty(writePermission)) {
+ return false;
+ }
+
+ if (!android.Manifest.permission.READ_SEARCH_INDEXABLES.equals(readPermission) ||
+ !android.Manifest.permission.READ_SEARCH_INDEXABLES.equals(writePermission)) {
+ return false;
+ }
+
+ return isPrivilegedPackage(packageName, context);
+ }
+
+ public static boolean isPrivilegedPackage(String packageName, Context context) {
+ final PackageManager pm = context.getPackageManager();
+ try {
+ PackageInfo packInfo = pm.getPackageInfo(packageName, 0);
+ return ((packInfo.applicationInfo.privateFlags
+ & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0);
+ } catch (PackageManager.NameNotFoundException e) {
+ return false;
+ }
+ }
+}
diff --git a/src/com/android/settings/search2/DatabaseResultLoader.java b/src/com/android/settings/search2/DatabaseResultLoader.java
index aca94b1..b268f6a 100644
--- a/src/com/android/settings/search2/DatabaseResultLoader.java
+++ b/src/com/android/settings/search2/DatabaseResultLoader.java
@@ -16,31 +16,37 @@
package com.android.settings.search2;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.drawable.Drawable;
+import android.os.Bundle;
import android.support.annotation.VisibleForTesting;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.Utils;
import com.android.settings.search.Index;
import com.android.settings.search.IndexDatabaseHelper;
import com.android.settings.utils.AsyncLoader;
-import com.android.settings.R;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
-
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_ICON_RESID;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_RAW_SUMMARY_ON;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RANK;
+import java.util.Map;
/**
* AsyncTask to retrieve Settings, First party app and any intent based results.
*/
public class DatabaseResultLoader extends AsyncLoader<List<SearchResult>> {
+ private static final String LOG = "DatabaseResultLoader";
private final String mQueryText;
private final Context mContext;
protected final SQLiteDatabase mDatabase;
@@ -64,7 +70,7 @@
}
String query = getSQLQuery();
- Cursor result = mDatabase.rawQuery(query, null);
+ Cursor result = mDatabase.rawQuery(query, null);
return parseCursorForSearch(result);
}
@@ -77,10 +83,12 @@
protected String getSQLQuery() {
return String.format("SELECT data_rank, data_title, data_summary_on, " +
- "data_summary_off, data_entries, data_keywords, class_name, screen_title, icon, " +
- "intent_action, intent_target_package, intent_target_class, enabled, " +
- "data_key_reference FROM prefs_index WHERE prefs_index MATCH 'data_title:%s* " +
- "OR data_title_normalized:%s* OR data_keywords:%s*' AND locale = 'en_US'",
+ "data_summary_off, data_entries, data_keywords, class_name, screen_title,"
+ + " icon, " +
+ "intent_action, intent_target_package, intent_target_class, enabled, " +
+ "data_key_reference FROM prefs_index WHERE prefs_index MATCH "
+ + "'data_title:%s* " +
+ "OR data_title_normalized:%s* OR data_keywords:%s*' AND locale = 'en_US'",
mQueryText, mQueryText, mQueryText);
}
@@ -89,36 +97,89 @@
if (cursorResults == null) {
return null;
}
+ final Map<String, Context> contextMap = new HashMap<>();
final ArrayList<SearchResult> results = new ArrayList<>();
while (cursorResults.moveToNext()) {
- final String title = cursorResults.getString(Index.COLUMN_INDEX_TITLE);
- final String summaryOn = cursorResults.getString(COLUMN_INDEX_RAW_SUMMARY_ON);
- final ArrayList<String> breadcrumbs = new ArrayList<>();
- final int rank = cursorResults.getInt(COLUMN_INDEX_XML_RES_RANK);
-
- final String intentString = cursorResults.getString(Index.COLUMN_INDEX_INTENT_ACTION);
- final IntentPayload intentPayload = new IntentPayload(new Intent(intentString));
- final int iconID = cursorResults.getInt(COLUMN_INDEX_RAW_ICON_RESID);
- Drawable icon;
- try {
- icon = mContext.getDrawable(iconID);
- } catch (Resources.NotFoundException nfe) {
- icon = mContext.getDrawable(R.drawable.ic_search_history);
+ SearchResult result = buildSingleSearchResultFromCursor(contextMap, cursorResults);
+ if (result != null) {
+ results.add(result);
}
-
-
- SearchResult.Builder builder = new SearchResult.Builder();
- builder.addTitle(title)
- .addSummary(summaryOn)
- .addBreadcrumbs(breadcrumbs)
- .addRank(rank)
- .addIcon(icon)
- .addPayload(intentPayload);
- results.add(builder.build());
}
Collections.sort(results);
return results;
}
+ private SearchResult buildSingleSearchResultFromCursor(Map<String, Context> contextMap,
+ Cursor cursor) {
+ final String pkgName = cursor.getString(Index.COLUMN_INDEX_INTENT_ACTION_TARGET_PACKAGE);
+ final String action = cursor.getString(Index.COLUMN_INDEX_INTENT_ACTION);
+ final String title = cursor.getString(Index.COLUMN_INDEX_TITLE);
+ final String summaryOn = cursor.getString(Index.COLUMN_INDEX_SUMMARY_ON);
+ final String className = cursor.getString(Index.COLUMN_INDEX_CLASS_NAME);
+ final int rank = cursor.getInt(Index.COLUMN_INDEX_RANK);
+ final String key = cursor.getString(Index.COLUMN_INDEX_KEY);
+ final String iconResStr = cursor.getString(Index.COLUMN_INDEX_ICON);
+
+ final ResultPayload payload;
+ if (TextUtils.isEmpty(action)) {
+ final String screenTitle = cursor.getString(Index.COLUMN_INDEX_SCREEN_TITLE);
+ // Action is null, we will launch it as a sub-setting
+ final Bundle args = new Bundle();
+ args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key);
+ final Intent intent = Utils.onBuildStartFragmentIntent(mContext,
+ className, args, null, 0, screenTitle, false);
+ payload = new IntentPayload(intent);
+ } else {
+ final Intent intent = new Intent(action);
+ final String targetClass = cursor.getString(
+ Index.COLUMN_INDEX_INTENT_ACTION_TARGET_CLASS);
+ if (!TextUtils.isEmpty(pkgName) && !TextUtils.isEmpty(targetClass)) {
+ final ComponentName component = new ComponentName(pkgName, targetClass);
+ intent.setComponent(component);
+ }
+ intent.putExtra(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key);
+ payload = new IntentPayload(intent);
+ }
+ SearchResult.Builder builder = new SearchResult.Builder();
+ builder.addTitle(title)
+ .addSummary(summaryOn)
+ .addRank(rank)
+ .addIcon(getIconForPackage(contextMap, pkgName, className, iconResStr))
+ .addPayload(payload);
+ return builder.build();
+ }
+
+ private Drawable getIconForPackage(Map<String, Context> contextMap, String pkgName,
+ String className, String iconResStr) {
+ final int iconId = TextUtils.isEmpty(iconResStr)
+ ? 0 : Integer.parseInt(iconResStr);
+ Drawable icon;
+ Context packageContext;
+ if (iconId == 0) {
+ icon = null;
+ } else {
+ if (TextUtils.isEmpty(className) && !TextUtils.isEmpty(pkgName)) {
+ packageContext = contextMap.get(pkgName);
+ if (packageContext == null) {
+ try {
+ packageContext = mContext.createPackageContext(pkgName, 0);
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.e(LOG, "Cannot create Context for package: " + pkgName);
+ return null;
+ }
+ contextMap.put(pkgName, packageContext);
+ }
+ } else {
+ packageContext = mContext;
+ }
+ try {
+ icon = packageContext.getDrawable(iconId);
+ } catch (Resources.NotFoundException nfe) {
+ icon = null;
+ }
+ }
+ return icon;
+ }
+
}
diff --git a/src/com/android/settings/search2/InstalledAppResultLoader.java b/src/com/android/settings/search2/InstalledAppResultLoader.java
new file mode 100644
index 0000000..449e52c
--- /dev/null
+++ b/src/com/android/settings/search2/InstalledAppResultLoader.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.search2;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.UserInfo;
+import android.net.Uri;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import com.android.settings.applications.PackageManagerWrapper;
+import com.android.settings.utils.AsyncLoader;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Search loader for installed apps.
+ */
+public class InstalledAppResultLoader extends AsyncLoader<List<SearchResult>> {
+
+ private static final int NAME_NO_MATCH = -1;
+ private static final int NAME_EXACT_MATCH = 0;
+
+ private final String mQuery;
+ private final UserManager mUserManager;
+ private final PackageManagerWrapper mPackageManager;
+
+ public InstalledAppResultLoader(Context context, PackageManagerWrapper pmWrapper,
+ String query) {
+ super(context);
+ mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+ mPackageManager = pmWrapper;
+ mQuery = query;
+ }
+
+ @Override
+ public List<SearchResult> loadInBackground() {
+ final List<SearchResult> results = new ArrayList<>();
+ final PackageManager pm = mPackageManager.getPackageManager();
+
+ for (UserInfo user : getUsersToCount()) {
+ final List<ApplicationInfo> apps =
+ mPackageManager.getInstalledApplicationsAsUser(
+ PackageManager.MATCH_DISABLED_COMPONENTS
+ | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
+ | (user.isAdmin() ? PackageManager.MATCH_ANY_USER : 0),
+ user.id);
+ for (ApplicationInfo info : apps) {
+ if (info.isSystemApp()) {
+ continue;
+ }
+ final CharSequence label = info.loadLabel(pm);
+ final int wordDiff = getWordDifference(label.toString(), mQuery);
+ if (wordDiff == NAME_NO_MATCH) {
+ continue;
+ }
+ final Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
+ .setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
+ .setData(Uri.fromParts("package", info.packageName, null));
+
+ final SearchResult.Builder builder = new SearchResult.Builder();
+ builder.addIcon(info.loadIcon(pm))
+ .addTitle(info.loadLabel(pm))
+ .addRank(wordDiff)
+ .addPayload(new IntentPayload(intent));
+ results.add(builder.build());
+ }
+ }
+ Collections.sort(results);
+ return results;
+ }
+
+ @Override
+ protected void onDiscardResult(List<SearchResult> result) {
+
+ }
+
+ private List<UserInfo> getUsersToCount() {
+ return mUserManager.getProfiles(UserHandle.myUserId());
+ }
+
+ /**
+ * Returns "difference" between appName and query string. appName must contain all
+ * characters from query, in the same order. If not, returns NAME_NO_MATCH. If they do match,
+ * returns an int value representing how different they are, NAME_EXACT_MATCH means they match
+ * perfectly, and larger values means they are less similar.
+ * <p/>
+ * Example:
+ * appName: Abcde, query: Abcde, Returns NAME_EXACT_MATCH
+ * appName: Abcde, query: ade, Returns 2
+ * appName: Abcde, query: ae, Returns 3
+ * appName: Abcde, query: ea, Returns NAME_NO_MATCH
+ * appName: Abcde, query: xyz, Returns NAME_NO_MATCH
+ */
+ private int getWordDifference(String appName, String query) {
+ if (TextUtils.isEmpty(appName) || TextUtils.isEmpty(query)) {
+ return NAME_NO_MATCH;
+ }
+ final char[] queryTokens = query.toString().toLowerCase().toCharArray();
+ final char[] valueText = appName.toLowerCase().toCharArray();
+ if (queryTokens.length > valueText.length) {
+ return NAME_NO_MATCH;
+ }
+ int i = 0;
+ int j = 0;
+ while (i < valueText.length && j < queryTokens.length) {
+ if (valueText[i++] == queryTokens[j]) {
+ j++;
+ }
+ }
+ if (j != queryTokens.length) {
+ return NAME_NO_MATCH;
+ }
+ // Use the diff in length as a proxy of how close the 2 words match. Value range from 0
+ // to infinity.
+ return valueText.length - queryTokens.length;
+ }
+}
diff --git a/src/com/android/settings/search2/IntentSearchViewHolder.java b/src/com/android/settings/search2/IntentSearchViewHolder.java
index 0b99d6e..0ef27d0 100644
--- a/src/com/android/settings/search2/IntentSearchViewHolder.java
+++ b/src/com/android/settings/search2/IntentSearchViewHolder.java
@@ -15,9 +15,11 @@
*/
package com.android.settings.search2;
+import android.app.Fragment;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
+
import com.android.settings.R;
/**
@@ -25,6 +27,7 @@
* The DatabaseResultLoader is the primary use case for this ViewHolder.
*/
public class IntentSearchViewHolder extends SearchViewHolder {
+
public final TextView titleView;
public final TextView summaryView;
public final ImageView iconView;
@@ -33,12 +36,22 @@
super(view);
titleView = (TextView) view.findViewById(R.id.title);
summaryView = (TextView) view.findViewById(R.id.summary);
- iconView= (ImageView) view.findViewById(R.id.icon);
+ iconView = (ImageView) view.findViewById(R.id.icon);
}
- public void onBind(SearchResult result) {
+ @Override
+ public void onBind(Fragment fragment, SearchResult result) {
titleView.setText(result.title);
summaryView.setText(result.summary);
iconView.setImageDrawable(result.icon);
+ if (result.icon == null) {
+ iconView.setBackgroundResource(R.drawable.empty_icon);
+ }
+ itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ fragment.startActivity(((IntentPayload) result.payload).intent);
+ }
+ });
}
}
diff --git a/src/com/android/settings/search2/ResultPayload.java b/src/com/android/settings/search2/ResultPayload.java
index 3a4e477..84df7b6 100644
--- a/src/com/android/settings/search2/ResultPayload.java
+++ b/src/com/android/settings/search2/ResultPayload.java
@@ -31,8 +31,19 @@
@IntDef({PayloadType.INLINE_SLIDER, PayloadType.INLINE_SWITCH, PayloadType.INTENT})
@Retention(RetentionPolicy.SOURCE)
public @interface PayloadType {
+ /**
+ * Resulting page will be started using an intent
+ */
int INTENT = 0;
+
+ /**
+ * Result is a inline widget, using a slider widget as UI.
+ */
int INLINE_SLIDER = 1;
+
+ /**
+ * Result is a inline widget, using a toggle widget as UI.
+ */
int INLINE_SWITCH = 2;
}
diff --git a/src/com/android/settings/search2/SearchFeatureProvider.java b/src/com/android/settings/search2/SearchFeatureProvider.java
index 14f5d13..ad26eae 100644
--- a/src/com/android/settings/search2/SearchFeatureProvider.java
+++ b/src/com/android/settings/search2/SearchFeatureProvider.java
@@ -16,7 +16,7 @@
package com.android.settings.search2;
import android.app.Activity;
-import android.widget.SearchView;
+import android.content.Context;
import android.view.Menu;
/**
@@ -31,8 +31,29 @@
/**
* Inserts the Menu items into Settings activity.
+ *
* @param menu Items will be inserted into this menu.
* @param activity The activity that precedes SearchActivity.
*/
void setUpSearchMenu(Menu menu, Activity activity);
+
+ /**
+ * Returns a new loader to search in index database.
+ */
+ DatabaseResultLoader getDatabaseSearchLoader(Context context, String query);
+
+ /**
+ * Returns a new loader to search installed apps.
+ */
+ InstalledAppResultLoader getInstalledAppSearchLoader(Context context, String query);
+
+ /**
+ * Returns the manager for indexing Settings data.
+ */
+ DatabaseIndexingManager getIndexingManager(Context context);
+
+ /**
+ * Updates the Settings indexes
+ */
+ void updateIndex(Context context);
}
diff --git a/src/com/android/settings/search2/SearchFeatureProviderImpl.java b/src/com/android/settings/search2/SearchFeatureProviderImpl.java
index 3c6dc35..e2d25ad 100644
--- a/src/com/android/settings/search2/SearchFeatureProviderImpl.java
+++ b/src/com/android/settings/search2/SearchFeatureProviderImpl.java
@@ -19,11 +19,13 @@
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
-import android.widget.SearchView;
import android.view.Menu;
-
import android.view.MenuItem;
+
import com.android.settings.R;
+import com.android.settings.search.Index;
+
+import com.android.settings.applications.PackageManagerWrapperImpl;
/**
* FeatureProvider for the refactored search code.
@@ -31,6 +33,7 @@
public class SearchFeatureProviderImpl implements SearchFeatureProvider {
protected Context mContext;
+ private DatabaseIndexingManager mDatabaseIndexingManager;
public SearchFeatureProviderImpl(Context context) {
mContext = context;
@@ -48,16 +51,45 @@
}
String menuTitle = mContext.getString(R.string.search_menu);
MenuItem menuItem = menu.add(Menu.NONE, Menu.NONE, Menu.NONE, menuTitle)
- .setIcon(R.drawable.abc_ic_search_api_material)
- .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- Intent intent = new Intent(activity, SearchActivity.class);
- activity.startActivity(intent);
- return true;
- }
- });
+ .setIcon(R.drawable.abc_ic_search_api_material)
+ .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ Intent intent = new Intent(activity, SearchActivity.class);
+ activity.startActivity(intent);
+ return true;
+ }
+ });
menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
+
+ @Override
+ public DatabaseResultLoader getDatabaseSearchLoader(Context context, String query) {
+ return new DatabaseResultLoader(context, query);
+ }
+
+ @Override
+ public InstalledAppResultLoader getInstalledAppSearchLoader(Context context, String query) {
+ return new InstalledAppResultLoader(
+ context, new PackageManagerWrapperImpl(context.getPackageManager()), query);
+ }
+
+ @Override
+ public DatabaseIndexingManager getIndexingManager(Context context) {
+ if (mDatabaseIndexingManager == null) {
+ mDatabaseIndexingManager = new DatabaseIndexingManager(context.getApplicationContext(),
+ context.getPackageName());
+ }
+ return mDatabaseIndexingManager;
+ }
+
+ @Override
+ public void updateIndex(Context context) {
+ if (isEnabled()) {
+ getIndexingManager(context).update();
+ } else {
+ Index.getInstance(context).update();
+ }
+ }
}
diff --git a/src/com/android/settings/search2/SearchFragment.java b/src/com/android/settings/search2/SearchFragment.java
index 18f20be..fca52e9 100644
--- a/src/com/android/settings/search2/SearchFragment.java
+++ b/src/com/android/settings/search2/SearchFragment.java
@@ -16,107 +16,112 @@
package com.android.settings.search2;
+import android.app.ActionBar;
import android.app.Activity;
+import android.app.LoaderManager;
+import android.content.Context;
import android.content.Loader;
import android.os.Bundle;
-import android.app.LoaderManager;
+import android.support.annotation.VisibleForTesting;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
import android.view.LayoutInflater;
-import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
-import android.view.Menu;
-import android.view.MenuInflater;
+import android.widget.LinearLayout.LayoutParams;
import android.widget.SearchView;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.overlay.FeatureFactory;
import java.util.List;
public class SearchFragment extends InstrumentedFragment implements
- SearchView.OnQueryTextListener, MenuItem.OnActionExpandListener,
- LoaderManager.LoaderCallbacks<List<SearchResult>> {
+ SearchView.OnQueryTextListener, LoaderManager.LoaderCallbacks<List<SearchResult>> {
- private static final int DATABASE_LOADER_ID = 0;
+ // State values
+ static final String STATE_QUERY = "query";
+
+ // Loader IDs
+ private static final int LOADER_ID_DATABASE = 0;
+ private static final int LOADER_ID_INSTALLED_APPS = 1;
+
+ @VisibleForTesting
+ String mQuery;
+
+ private SearchFeatureProvider mSearchFeatureProvider;
private SearchResultsAdapter mSearchAdapter;
-
- private DatabaseResultLoader mSearchLoader;
-
private RecyclerView mResultsRecyclerView;
- private SearchView mSearchView;
- private MenuItem mSearchMenuItem;
- private String mQuery;
+ @Override
+ public int getMetricsCategory() {
+ return MetricsProto.MetricsEvent.DASHBOARD_SEARCH_RESULTS;
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ mSearchFeatureProvider = FeatureFactory.getFactory(context)
+ .getSearchFeatureProvider(context);
+ }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
-
- mSearchAdapter = new SearchResultsAdapter();
-
- final LoaderManager loaderManager = getLoaderManager();
- loaderManager.initLoader(DATABASE_LOADER_ID, null, this);
+ mSearchAdapter = new SearchResultsAdapter(this);
+ if (savedInstanceState != null) {
+ mQuery = savedInstanceState.getString(STATE_QUERY);
+ final LoaderManager loaderManager = getLoaderManager();
+ loaderManager.initLoader(LOADER_ID_DATABASE, null, this);
+ loaderManager.initLoader(LOADER_ID_INSTALLED_APPS, null, this);
+ }
+ final ActionBar actionBar = getActivity().getActionBar();
+ actionBar.setCustomView(makeSearchView(actionBar, mQuery));
+ actionBar.setDisplayShowCustomEnabled(true);
+ actionBar.setDisplayShowTitleEnabled(false);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
+ Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.search_panel_2, container, false);
mResultsRecyclerView = (RecyclerView) view.findViewById(R.id.list_results);
-
mResultsRecyclerView.setAdapter(mSearchAdapter);
mResultsRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
return view;
}
@Override
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- super.onCreateOptionsMenu(menu, inflater);
- inflater.inflate(R.menu.search_options_menu, menu);
-
-
- mSearchMenuItem = menu.findItem(R.id.search);
-
- mSearchView = (SearchView) mSearchMenuItem.getActionView();
- mSearchView.setOnQueryTextListener(this);
- mSearchView.setMaxWidth(Integer.MAX_VALUE);
- mSearchMenuItem.expandActionView();
- }
-
- @Override
- public boolean onMenuItemActionExpand(MenuItem item) {
- return true;
- }
-
- @Override
- public boolean onMenuItemActionCollapse(MenuItem item) {
- // Return false to prevent the search box from collapsing.
- return false;
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putString(STATE_QUERY, mQuery);
}
@Override
public boolean onQueryTextChange(String query) {
- if (query == null || query.equals(mQuery)) {
- return false;
+ if (TextUtils.equals(query, mQuery)) {
+ return true;
}
-
mQuery = query;
- clearLoaders();
+ mSearchAdapter.clearResults();
- final LoaderManager loaderManager = getLoaderManager();
- loaderManager.restartLoader(DATABASE_LOADER_ID, null, this);
+ if (TextUtils.isEmpty(mQuery)) {
+ getLoaderManager().destroyLoader(LOADER_ID_DATABASE);
+ } else {
+ restartLoaders();
+ }
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
- return false;
+ return true;
}
@Override
@@ -124,9 +129,10 @@
final Activity activity = getActivity();
switch (id) {
- case DATABASE_LOADER_ID:
- mSearchLoader = new DatabaseResultLoader(activity, mQuery);
- return mSearchLoader;
+ case LOADER_ID_DATABASE:
+ return mSearchFeatureProvider.getDatabaseSearchLoader(activity, mQuery);
+ case LOADER_ID_INSTALLED_APPS:
+ return mSearchFeatureProvider.getInstalledAppSearchLoader(activity, mQuery);
default:
return null;
}
@@ -134,25 +140,27 @@
@Override
public void onLoadFinished(Loader<List<SearchResult>> loader, List<SearchResult> data) {
- if (data == null) {
- return;
- }
-
mSearchAdapter.mergeResults(data, loader.getClass().getName());
}
@Override
- public void onLoaderReset(Loader<List<SearchResult>> loader) { }
-
- @Override
- public int getMetricsCategory() {
- return MetricsProto.MetricsEvent.DASHBOARD_SEARCH_RESULTS;
+ public void onLoaderReset(Loader<List<SearchResult>> loader) {
}
- private void clearLoaders() {
- if (mSearchLoader != null) {
- mSearchLoader.cancelLoad();
- mSearchLoader = null;
- }
+ private void restartLoaders() {
+ final LoaderManager loaderManager = getLoaderManager();
+ loaderManager.restartLoader(LOADER_ID_DATABASE, null /* args */, this /* callback */);
+ loaderManager.restartLoader(LOADER_ID_INSTALLED_APPS, null /* args */, this /* callback */);
+ }
+
+ private SearchView makeSearchView(ActionBar actionBar, String query) {
+ final SearchView searchView = new SearchView(actionBar.getThemedContext());
+ searchView.setIconifiedByDefault(false);
+ searchView.setQuery(query, false /* submitQuery */);
+ searchView.setOnQueryTextListener(this);
+ final LayoutParams lp =
+ new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
+ searchView.setLayoutParams(lp);
+ return searchView;
}
}
diff --git a/src/com/android/settings/search2/SearchResult.java b/src/com/android/settings/search2/SearchResult.java
index e483df3..5bf757f 100644
--- a/src/com/android/settings/search2/SearchResult.java
+++ b/src/com/android/settings/search2/SearchResult.java
@@ -19,90 +19,24 @@
import android.graphics.drawable.Drawable;
import java.util.ArrayList;
+import java.util.Objects;
/**
- * Dataclass as an interface for all Search Results.
+ * Data class as an interface for all Search Results.
*/
public class SearchResult implements Comparable<SearchResult> {
- @Override
- public int compareTo(SearchResult searchResult) {
- if (searchResult == null) {
- return -1;
- }
- return this.rank - searchResult.rank;
- }
-
- public static class Builder {
- protected String mTitle;
- protected String mSummary;
- protected ArrayList<String> mBreadcrumbs;
- protected int mRank = -1;
- protected ResultPayload mResultPayload;
- protected Drawable mIcon;
-
- public Builder addTitle(String title) {
- mTitle = title;
- return this;
- }
-
- public Builder addSummary(String summary) {
- mSummary = summary;
- return this;
- }
-
- public Builder addBreadcrumbs(ArrayList<String> breadcrumbs) {
- mBreadcrumbs = breadcrumbs;
- return this;
- }
-
- public Builder addRank(int rank) {
- if (rank < 0 || rank > 9) {
- rank = 42;
- }
- mRank = rank;
- return this;
- }
-
- public Builder addIcon(Drawable icon) {
- mIcon = icon;
- return this;
- }
-
- public Builder addPayload(ResultPayload payload) {
- mResultPayload = payload;
- return this;
- }
-
- public SearchResult build() {
- // Check that all of the mandatory fields are set.
- if (mTitle == null) {
- throw new IllegalArgumentException("SearchResult missing title argument");
- } else if (mSummary == null ) {
- throw new IllegalArgumentException("SearchResult missing summary argument");
- } else if (mBreadcrumbs == null){
- throw new IllegalArgumentException("SearchResult missing breadcrumbs argument");
- } else if (mRank == -1) {
- throw new IllegalArgumentException("SearchResult missing rank argument");
- } else if (mIcon == null) {
- throw new IllegalArgumentException("SearchResult missing icon argument");
- } else if (mResultPayload == null) {
- throw new IllegalArgumentException("SearchResult missing Payload argument");
- }
- return new SearchResult(this);
- }
- }
/**
* The title of the result and main text displayed.
* Intent Results: Displays as the primary
*/
- public final String title;
+ public final CharSequence title;
/**
* Summary / subtitle text
* Intent Results: Displays the text underneath the title
*/
- final public String summary;
+ final public CharSequence summary;
/**
* An ordered list of the information hierarchy.
@@ -122,7 +56,8 @@
/**
* Identifier for the recycler view adapter.
*/
- @ResultPayload.PayloadType public final int viewType;
+ @ResultPayload.PayloadType
+ public final int viewType;
/**
* Metadata for the specific result types.
@@ -134,6 +69,11 @@
*/
public final Drawable icon;
+ /**
+ * Stable id for this object.
+ */
+ public final long stableId;
+
private SearchResult(Builder builder) {
title = builder.mTitle;
summary = builder.mSummary;
@@ -142,5 +82,65 @@
icon = builder.mIcon;
payload = builder.mResultPayload;
viewType = payload.getType();
+ stableId = Objects.hash(title, summary, breadcrumbs, rank, icon, payload, viewType);
+ }
+
+ @Override
+ public int compareTo(SearchResult searchResult) {
+ if (searchResult == null) {
+ return -1;
+ }
+ return this.rank - searchResult.rank;
+ }
+
+ public static class Builder {
+ protected CharSequence mTitle;
+ protected CharSequence mSummary;
+ protected ArrayList<String> mBreadcrumbs;
+ protected int mRank = 42;
+ protected ResultPayload mResultPayload;
+ protected Drawable mIcon;
+
+ public Builder addTitle(CharSequence title) {
+ mTitle = title;
+ return this;
+ }
+
+ public Builder addSummary(CharSequence summary) {
+ mSummary = summary;
+ return this;
+ }
+
+ public Builder addBreadcrumbs(ArrayList<String> breadcrumbs) {
+ mBreadcrumbs = breadcrumbs;
+ return this;
+ }
+
+ public Builder addRank(int rank) {
+ if (rank >= 0 && rank <= 9) {
+ mRank = rank;
+ }
+ return this;
+ }
+
+ public Builder addIcon(Drawable icon) {
+ mIcon = icon;
+ return this;
+ }
+
+ public Builder addPayload(ResultPayload payload) {
+ mResultPayload = payload;
+ return this;
+ }
+
+ public SearchResult build() {
+ // Check that all of the mandatory fields are set.
+ if (mTitle == null) {
+ throw new IllegalArgumentException("SearchResult missing title argument");
+ } else if (mResultPayload == null) {
+ throw new IllegalArgumentException("SearchResult missing Payload argument");
+ }
+ return new SearchResult(this);
+ }
}
}
diff --git a/src/com/android/settings/search2/SearchResultsAdapter.java b/src/com/android/settings/search2/SearchResultsAdapter.java
index 22f106b..b588496 100644
--- a/src/com/android/settings/search2/SearchResultsAdapter.java
+++ b/src/com/android/settings/search2/SearchResultsAdapter.java
@@ -28,39 +28,25 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
public class SearchResultsAdapter extends Adapter<SearchViewHolder> {
- private ArrayList<SearchResult> mSearchResults;
- private HashMap<String, List<SearchResult>> mResultsMap;
+ private final List<SearchResult> mSearchResults;
+ private final Map<String, List<SearchResult>> mResultsMap;
+ private final SearchFragment mFragment;
- public SearchResultsAdapter() {
+ public SearchResultsAdapter(SearchFragment fragment) {
+ mFragment = fragment;
mSearchResults = new ArrayList<>();
mResultsMap = new HashMap<>();
setHasStableIds(true);
}
- public void mergeResults(List<SearchResult> freshResults, String loaderClassName) {
- if (freshResults == null) {
- return;
- }
- mResultsMap.put(loaderClassName, freshResults);
- mSearchResults = mergeMappedResults();
- notifyDataSetChanged();
- }
-
- private ArrayList<SearchResult> mergeMappedResults() {
- ArrayList<SearchResult> mergedResults = new ArrayList<>();
- for(String key : mResultsMap.keySet()) {
- mergedResults.addAll(mResultsMap.get(key));
- }
- return mergedResults;
- }
-
@Override
public SearchViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- LayoutInflater inflater = LayoutInflater.from(parent.getContext());
- switch(viewType) {
+ final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
+ switch (viewType) {
case PayloadType.INTENT:
View view = inflater.inflate(R.layout.search_intent_item, parent, false);
return new IntentSearchViewHolder(view);
@@ -75,13 +61,12 @@
@Override
public void onBindViewHolder(SearchViewHolder holder, int position) {
- SearchResult result = mSearchResults.get(position);
- holder.onBind(result);
+ holder.onBind(mFragment, mSearchResults.get(position));
}
@Override
public long getItemId(int position) {
- return super.getItemId(position);
+ return mSearchResults.get(position).stableId;
}
@Override
@@ -94,8 +79,25 @@
return mSearchResults.size();
}
+ public void mergeResults(List<SearchResult> freshResults, String loaderClassName) {
+ if (freshResults == null) {
+ return;
+ }
+ mResultsMap.put(loaderClassName, freshResults);
+ final int oldSize = mSearchResults.size();
+ mSearchResults.addAll(freshResults);
+ final int newSize = mSearchResults.size();
+ notifyItemRangeInserted(oldSize, newSize - oldSize);
+ }
+
+ public void clearResults() {
+ mSearchResults.clear();
+ mResultsMap.clear();
+ notifyDataSetChanged();
+ }
+
@VisibleForTesting
- public ArrayList<SearchResult> getSearchResults() {
+ public List<SearchResult> getSearchResults() {
return mSearchResults;
}
}
diff --git a/src/com/android/settings/search2/SearchViewHolder.java b/src/com/android/settings/search2/SearchViewHolder.java
index 2f500fb..45ceb38 100644
--- a/src/com/android/settings/search2/SearchViewHolder.java
+++ b/src/com/android/settings/search2/SearchViewHolder.java
@@ -15,6 +15,7 @@
*/
package com.android.settings.search2;
+import android.app.Fragment;
import android.support.v7.widget.RecyclerView;
import android.view.View;
@@ -29,5 +30,5 @@
super(view);
}
- public abstract void onBind(SearchResult result);
+ public abstract void onBind(Fragment fragment, SearchResult result);
}
\ No newline at end of file
diff --git a/src/com/android/settings/search2/XMLParserUtil.java b/src/com/android/settings/search2/XMLParserUtil.java
new file mode 100644
index 0000000..dcb3cbb
--- /dev/null
+++ b/src/com/android/settings/search2/XMLParserUtil.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.settings.search2;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+
+import com.android.settings.R;
+
+import java.text.Normalizer;
+import java.util.regex.Pattern;
+
+/**
+ * Utility class to parse elements of XML preferences
+ */
+public class XMLParserUtil {
+
+ private static final String NON_BREAKING_HYPHEN = "\u2011";
+ private static final String EMPTY = "";
+ private static final String LIST_DELIMITERS = "[,]\\s*";
+ private static final String HYPHEN = "-";
+ private static final String SPACE = " ";
+
+ private static final String ENTRIES_SEPARATOR = "|";
+
+ private static final Pattern REMOVE_DIACRITICALS_PATTERN
+ = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
+
+ public static String getDataKey(Context context, AttributeSet attrs) {
+ return getData(context, attrs,
+ com.android.internal.R.styleable.Preference,
+ com.android.internal.R.styleable.Preference_key);
+ }
+
+ public static String getDataTitle(Context context, AttributeSet attrs) {
+ return getData(context, attrs,
+ com.android.internal.R.styleable.Preference,
+ com.android.internal.R.styleable.Preference_title);
+ }
+
+ public static String getDataSummary(Context context, AttributeSet attrs) {
+ return getData(context, attrs,
+ com.android.internal.R.styleable.Preference,
+ com.android.internal.R.styleable.Preference_summary);
+ }
+
+ public static String getDataSummaryOn(Context context, AttributeSet attrs) {
+ return getData(context, attrs,
+ com.android.internal.R.styleable.CheckBoxPreference,
+ com.android.internal.R.styleable.CheckBoxPreference_summaryOn);
+ }
+
+ public static String getDataSummaryOff(Context context, AttributeSet attrs) {
+ return getData(context, attrs,
+ com.android.internal.R.styleable.CheckBoxPreference,
+ com.android.internal.R.styleable.CheckBoxPreference_summaryOff);
+ }
+
+ public static String getDataEntries(Context context, AttributeSet attrs) {
+ return getDataEntries(context, attrs,
+ com.android.internal.R.styleable.ListPreference,
+ com.android.internal.R.styleable.ListPreference_entries);
+ }
+
+ public static String getDataKeywords(Context context, AttributeSet attrs) {
+ return getData(context, attrs, R.styleable.Preference, R.styleable.Preference_keywords);
+ }
+
+ public static String getData(Context context, AttributeSet set, int[] attrs, int resId) {
+ final TypedArray sa = context.obtainStyledAttributes(set, attrs);
+ final TypedValue tv = sa.peekValue(resId);
+
+ CharSequence data = null;
+ if (tv != null && tv.type == TypedValue.TYPE_STRING) {
+ if (tv.resourceId != 0) {
+ data = context.getText(tv.resourceId);
+ } else {
+ data = tv.string;
+ }
+ }
+ return (data != null) ? data.toString() : null;
+ }
+
+ public static String getDataEntries(Context context, AttributeSet set, int[] attrs, int resId) {
+ final TypedArray sa = context.obtainStyledAttributes(set, attrs);
+ final TypedValue tv = sa.peekValue(resId);
+
+ String[] data = null;
+ if (tv != null && tv.type == TypedValue.TYPE_REFERENCE) {
+ if (tv.resourceId != 0) {
+ data = context.getResources().getStringArray(tv.resourceId);
+ }
+ }
+ final int count = (data == null ) ? 0 : data.length;
+ if (count == 0) {
+ return null;
+ }
+ final StringBuilder result = new StringBuilder();
+ for (int n = 0; n < count; n++) {
+ result.append(data[n]);
+ result.append(ENTRIES_SEPARATOR);
+ }
+ return result.toString();
+ }
+
+ public static String normalizeHyphen(String input) {
+ return (input != null) ? input.replaceAll(NON_BREAKING_HYPHEN, HYPHEN) : EMPTY;
+ }
+
+ public static String normalizeString(String input) {
+ final String nohyphen = (input != null) ? input.replaceAll(HYPHEN, EMPTY) : EMPTY;
+ final String normalized = Normalizer.normalize(nohyphen, Normalizer.Form.NFD);
+
+ return REMOVE_DIACRITICALS_PATTERN.matcher(normalized).replaceAll("").toLowerCase();
+ }
+
+ public static String normalizeKeywords(String input) {
+ return (input != null) ? input.replaceAll(LIST_DELIMITERS, SPACE) : EMPTY;
+ }
+}
diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java
index 609ed27..d487c70 100644
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
@@ -371,7 +371,7 @@
PackageInfo pi = null;
try {
pi = ipm.getPackageInfo(packageName,
- PackageManager.MATCH_UNINSTALLED_PACKAGES
+ PackageManager.MATCH_ANY_USER
| PackageManager.GET_SIGNATURES, userId);
} catch (RemoteException e) {
// Ignore
diff --git a/src/com/android/settings/vpn2/ConfigDialogFragment.java b/src/com/android/settings/vpn2/ConfigDialogFragment.java
index 86245d4..d9f35af 100644
--- a/src/com/android/settings/vpn2/ConfigDialogFragment.java
+++ b/src/com/android/settings/vpn2/ConfigDialogFragment.java
@@ -55,6 +55,7 @@
private final IConnectivityManager mService = IConnectivityManager.Stub.asInterface(
ServiceManager.getService(Context.CONNECTIVITY_SERVICE));
+ private Context mContext;
private boolean mUnlocking = false;
@@ -79,6 +80,12 @@
}
@Override
+ public void onAttach(final Context context) {
+ super.onAttach(context);
+ mContext = context;
+ }
+
+ @Override
public void onResume() {
super.onResume();
@@ -86,7 +93,7 @@
if (!KeyStore.getInstance().isUnlocked()) {
if (!mUnlocking) {
// Let us unlock KeyStore. See you later!
- Credentials.getInstance().unlock(getActivity());
+ Credentials.getInstance().unlock(mContext);
} else {
// We already tried, but it is still not working!
dismiss();
@@ -142,9 +149,9 @@
// Possibly throw up a dialog to explain lockdown VPN.
final boolean shouldLockdown = dialog.isVpnAlwaysOn();
final boolean shouldConnect = shouldLockdown || !dialog.isEditing();
- final boolean wasAlwaysOn = VpnUtils.isAlwaysOnOrLegacyLockdownActive(getContext());
+ final boolean wasAlwaysOn = VpnUtils.isAlwaysOnOrLegacyLockdownActive(mContext);
try {
- final boolean replace = VpnUtils.isVpnActive(getContext());
+ final boolean replace = VpnUtils.isVpnActive(mContext);
if (shouldConnect && !isConnected(profile) &&
ConfirmLockdownFragment.shouldShow(replace, wasAlwaysOn, shouldLockdown)) {
final Bundle opts = new Bundle();
@@ -185,19 +192,19 @@
if (isVpnAlwaysOn) {
// Show toast if vpn profile is not valid
if (!profile.isValidLockdownProfile()) {
- Toast.makeText(getContext(), R.string.vpn_lockdown_config_error,
+ Toast.makeText(mContext, R.string.vpn_lockdown_config_error,
Toast.LENGTH_LONG).show();
return;
}
- final ConnectivityManager conn = ConnectivityManager.from(getActivity());
+ final ConnectivityManager conn = ConnectivityManager.from(mContext);
conn.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null,
/* lockdownEnabled */ false);
- VpnUtils.setLockdownVpn(getContext(), profile.key);
+ VpnUtils.setLockdownVpn(mContext, profile.key);
} else {
// update only if lockdown vpn has been changed
if (VpnUtils.isVpnLockdown(profile.key)) {
- VpnUtils.clearLockdownVpn(getContext());
+ VpnUtils.clearLockdownVpn(mContext);
}
}
}
@@ -219,11 +226,11 @@
// Now try to start the VPN - this is not necessary if the profile is set as lockdown,
// because just saving the profile in this mode will start a connection.
if (!VpnUtils.isVpnLockdown(profile.key)) {
- VpnUtils.clearLockdownVpn(getContext());
+ VpnUtils.clearLockdownVpn(mContext);
try {
mService.startLegacyVpn(profile);
} catch (IllegalStateException e) {
- Toast.makeText(getActivity(), R.string.vpn_no_network, Toast.LENGTH_LONG).show();
+ Toast.makeText(mContext, R.string.vpn_no_network, Toast.LENGTH_LONG).show();
} catch (RemoteException e) {
Log.e(TAG, "Failed to connect", e);
}
@@ -241,7 +248,7 @@
if (!isConnected(profile)) {
return true;
}
- VpnUtils.clearLockdownVpn(getContext());
+ VpnUtils.clearLockdownVpn(mContext);
return mService.prepareVpn(null, VpnConfig.LEGACY_VPN, UserHandle.myUserId());
} catch (RemoteException e) {
Log.e(TAG, "Failed to disconnect", e);
diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java
index c2ed1c0..3aac639 100644
--- a/src/com/android/settings/vpn2/VpnSettings.java
+++ b/src/com/android/settings/vpn2/VpnSettings.java
@@ -49,6 +49,8 @@
import android.view.MenuInflater;
import android.view.MenuItem;
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.net.LegacyVpnInfo;
import com.android.internal.net.VpnConfig;
@@ -62,6 +64,7 @@
import com.google.android.collect.Lists;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -96,8 +99,9 @@
private Map<String, LegacyVpnPreference> mLegacyVpnPreferences = new ArrayMap<>();
private Map<AppVpnInfo, AppPreference> mAppPreferences = new ArrayMap<>();
- private HandlerThread mUpdaterThread;
+ @GuardedBy("this")
private Handler mUpdater;
+ private HandlerThread mUpdaterThread;
private LegacyVpnInfo mConnectedLegacyVpn;
private boolean mUnavailable;
@@ -181,11 +185,9 @@
mConnectivityManager.registerNetworkCallback(VPN_REQUEST, mNetworkCallback);
// Trigger a refresh
- if (mUpdater == null) {
- mUpdaterThread = new HandlerThread("Refresh VPN list in background");
- mUpdaterThread.start();
- mUpdater = new Handler(mUpdaterThread.getLooper(), this);
- }
+ mUpdaterThread = new HandlerThread("Refresh VPN list in background");
+ mUpdaterThread.start();
+ mUpdater = new Handler(mUpdaterThread.getLooper(), this);
mUpdater.sendEmptyMessage(RESCAN_MESSAGE);
}
@@ -199,7 +201,7 @@
// Stop monitoring
mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
- if (mUpdater != null) {
+ synchronized (this) {
mUpdater.removeCallbacksAndMessages(null);
mUpdater = null;
mUpdaterThread.quit();
@@ -211,8 +213,6 @@
@Override @WorkerThread
public boolean handleMessage(Message message) {
- mUpdater.removeMessages(RESCAN_MESSAGE);
-
// Run heavy RPCs before switching to UI thread
final List<VpnProfile> vpnProfiles = loadVpnProfiles(mKeyStore);
final List<AppVpnInfo> vpnApps = getVpnApps(getActivity(), /* includeProfiles */ true);
@@ -224,63 +224,128 @@
final String lockdownVpnKey = VpnUtils.getLockdownVpn();
// Refresh list of VPNs
- getActivity().runOnUiThread(new Runnable() {
- @Override
- public void run() {
- // Can't do anything useful if the context has gone away
- if (!isAdded()) {
- return;
- }
+ getActivity().runOnUiThread(new UpdatePreferences(this)
+ .legacyVpns(vpnProfiles, connectedLegacyVpns, lockdownVpnKey)
+ .appVpns(vpnApps, connectedAppVpns, alwaysOnAppVpnInfos));
- // Find new VPNs by subtracting existing ones from the full set
- final Set<Preference> updates = new ArraySet<>();
-
- for (VpnProfile profile : vpnProfiles) {
- LegacyVpnPreference p = findOrCreatePreference(profile);
- if (connectedLegacyVpns.containsKey(profile.key)) {
- p.setState(connectedLegacyVpns.get(profile.key).state);
- } else {
- p.setState(LegacyVpnPreference.STATE_NONE);
- }
- p.setAlwaysOn(lockdownVpnKey != null && lockdownVpnKey.equals(profile.key));
- updates.add(p);
- }
- for (AppVpnInfo app : vpnApps) {
- AppPreference p = findOrCreatePreference(app);
- if (connectedAppVpns.contains(app)) {
- p.setState(AppPreference.STATE_CONNECTED);
- } else {
- p.setState(AppPreference.STATE_DISCONNECTED);
- }
- p.setAlwaysOn(alwaysOnAppVpnInfos.contains(app));
- updates.add(p);
- }
-
- // Trim out deleted VPN preferences
- mLegacyVpnPreferences.values().retainAll(updates);
- mAppPreferences.values().retainAll(updates);
-
- final PreferenceGroup vpnGroup = getPreferenceScreen();
- for (int i = vpnGroup.getPreferenceCount() - 1; i >= 0; i--) {
- Preference p = vpnGroup.getPreference(i);
- if (updates.contains(p)) {
- updates.remove(p);
- } else {
- vpnGroup.removePreference(p);
- }
- }
-
- // Show any new preferences on the screen
- for (Preference pref : updates) {
- vpnGroup.addPreference(pref);
- }
+ synchronized (this) {
+ if (mUpdater != null) {
+ mUpdater.removeMessages(RESCAN_MESSAGE);
+ mUpdater.sendEmptyMessageDelayed(RESCAN_MESSAGE, RESCAN_INTERVAL_MS);
}
- });
-
- mUpdater.sendEmptyMessageDelayed(RESCAN_MESSAGE, RESCAN_INTERVAL_MS);
+ }
return true;
}
+ @VisibleForTesting
+ static class UpdatePreferences implements Runnable {
+ private List<VpnProfile> vpnProfiles = Collections.<VpnProfile>emptyList();
+ private List<AppVpnInfo> vpnApps = Collections.<AppVpnInfo>emptyList();
+
+ private Map<String, LegacyVpnInfo> connectedLegacyVpns =
+ Collections.<String, LegacyVpnInfo>emptyMap();
+ private Set<AppVpnInfo> connectedAppVpns = Collections.<AppVpnInfo>emptySet();
+
+ private Set<AppVpnInfo> alwaysOnAppVpnInfos = Collections.<AppVpnInfo>emptySet();
+ private String lockdownVpnKey = null;
+
+ private final VpnSettings mSettings;
+
+ public UpdatePreferences(VpnSettings settings) {
+ mSettings = settings;
+ }
+
+ public final UpdatePreferences legacyVpns(List<VpnProfile> vpnProfiles,
+ Map<String, LegacyVpnInfo> connectedLegacyVpns, String lockdownVpnKey) {
+ this.vpnProfiles = vpnProfiles;
+ this.connectedLegacyVpns = connectedLegacyVpns;
+ this.lockdownVpnKey = lockdownVpnKey;
+ return this;
+ }
+
+ public final UpdatePreferences appVpns(List<AppVpnInfo> vpnApps,
+ Set<AppVpnInfo> connectedAppVpns, Set<AppVpnInfo> alwaysOnAppVpnInfos) {
+ this.vpnApps = vpnApps;
+ this.connectedAppVpns = connectedAppVpns;
+ this.alwaysOnAppVpnInfos = alwaysOnAppVpnInfos;
+ return this;
+ }
+
+ @Override @UiThread
+ public void run() {
+ if (!mSettings.canAddPreferences()) {
+ return;
+ }
+
+ // Find new VPNs by subtracting existing ones from the full set
+ final Set<Preference> updates = new ArraySet<>();
+
+ // Add legacy VPNs
+ for (VpnProfile profile : vpnProfiles) {
+ LegacyVpnPreference p = mSettings.findOrCreatePreference(profile, true);
+ if (connectedLegacyVpns.containsKey(profile.key)) {
+ p.setState(connectedLegacyVpns.get(profile.key).state);
+ } else {
+ p.setState(LegacyVpnPreference.STATE_NONE);
+ }
+ p.setAlwaysOn(lockdownVpnKey != null && lockdownVpnKey.equals(profile.key));
+ updates.add(p);
+ }
+
+ // Show connected VPNs even if the original entry in keystore is gone
+ for (LegacyVpnInfo vpn : connectedLegacyVpns.values()) {
+ final VpnProfile stubProfile = new VpnProfile(vpn.key);
+ LegacyVpnPreference p = mSettings.findOrCreatePreference(stubProfile, false);
+ p.setState(vpn.state);
+ p.setAlwaysOn(lockdownVpnKey != null && lockdownVpnKey.equals(vpn.key));
+ updates.add(p);
+ }
+
+ // Add VpnService VPNs
+ for (AppVpnInfo app : vpnApps) {
+ AppPreference p = mSettings.findOrCreatePreference(app);
+ if (connectedAppVpns.contains(app)) {
+ p.setState(AppPreference.STATE_CONNECTED);
+ } else {
+ p.setState(AppPreference.STATE_DISCONNECTED);
+ }
+ p.setAlwaysOn(alwaysOnAppVpnInfos.contains(app));
+ updates.add(p);
+ }
+
+ // Trim out deleted VPN preferences
+ mSettings.setShownPreferences(updates);
+ }
+ }
+
+ @VisibleForTesting
+ public boolean canAddPreferences() {
+ return isAdded();
+ }
+
+ @VisibleForTesting @UiThread
+ public void setShownPreferences(final Collection<Preference> updates) {
+ mLegacyVpnPreferences.values().retainAll(updates);
+ mAppPreferences.values().retainAll(updates);
+
+ // Change {@param updates} in-place to only contain new preferences that were not already
+ // added to the preference screen.
+ final PreferenceGroup vpnGroup = getPreferenceScreen();
+ for (int i = vpnGroup.getPreferenceCount() - 1; i >= 0; i--) {
+ Preference p = vpnGroup.getPreference(i);
+ if (updates.contains(p)) {
+ updates.remove(p);
+ } else {
+ vpnGroup.removePreference(p);
+ }
+ }
+
+ // Show any new preferences on the screen
+ for (Preference pref : updates) {
+ vpnGroup.addPreference(pref);
+ }
+ }
+
@Override
public boolean onPreferenceClick(Preference preference) {
if (preference instanceof LegacyVpnPreference) {
@@ -360,22 +425,26 @@
}
};
- @UiThread
- private LegacyVpnPreference findOrCreatePreference(VpnProfile profile) {
+ @VisibleForTesting @UiThread
+ public LegacyVpnPreference findOrCreatePreference(VpnProfile profile, boolean update) {
LegacyVpnPreference pref = mLegacyVpnPreferences.get(profile.key);
- if (pref == null) {
+ boolean created = false;
+ if (pref == null ) {
pref = new LegacyVpnPreference(getPrefContext());
pref.setOnGearClickListener(mGearListener);
pref.setOnPreferenceClickListener(this);
mLegacyVpnPreferences.put(profile.key, pref);
+ created = true;
}
- // This may change as the profile can update and keep the same key.
- pref.setProfile(profile);
+ if (created || update) {
+ // This can change call-to-call because the profile can update and keep the same key.
+ pref.setProfile(profile);
+ }
return pref;
}
- @UiThread
- private AppPreference findOrCreatePreference(AppVpnInfo app) {
+ @VisibleForTesting @UiThread
+ public AppPreference findOrCreatePreference(AppVpnInfo app) {
AppPreference pref = mAppPreferences.get(app);
if (pref == null) {
pref = new AppPreference(getPrefContext(), app.userId, app.packageName);
diff --git a/src/com/android/settings/widget/SwitchBar.java b/src/com/android/settings/widget/SwitchBar.java
index e998e79..7bf6a83 100644
--- a/src/com/android/settings/widget/SwitchBar.java
+++ b/src/com/android/settings/widget/SwitchBar.java
@@ -117,7 +117,6 @@
lp = (MarginLayoutParams) mSwitch.getLayoutParams();
lp.setMarginEnd(switchBarMarginEnd);
setBackgroundColor(switchBarBackgroundColor);
- mSwitch.setBackgroundColor(switchBarBackgroundColor);
addOnSwitchChangeListener(new OnSwitchChangeListener() {
@Override
diff --git a/src/com/android/settings/wifi/ConfigureWifiSettings.java b/src/com/android/settings/wifi/ConfigureWifiSettings.java
index ce27ba9..9739ef9 100644
--- a/src/com/android/settings/wifi/ConfigureWifiSettings.java
+++ b/src/com/android/settings/wifi/ConfigureWifiSettings.java
@@ -121,7 +121,7 @@
mWifiAssistantPreference = (AppListSwitchPreference) findPreference(KEY_WIFI_ASSISTANT);
Collection<NetworkScorerAppManager.NetworkScorerAppData> scorers =
- NetworkScorerAppManager.getAllValidScorers(context);
+ new NetworkScorerAppManager(context).getAllValidScorers();
if (UserManager.get(context).isAdminUser() && !scorers.isEmpty()) {
mWifiAssistantPreference.setOnPreferenceChangeListener(this);
initWifiAssistantPreference(scorers);
@@ -200,7 +200,7 @@
if (KEY_WIFI_ASSISTANT.equals(key)) {
NetworkScorerAppManager.NetworkScorerAppData wifiAssistant =
- NetworkScorerAppManager.getScorer(context, (String) newValue);
+ new NetworkScorerAppManager(context).getScorer((String) newValue);
if (wifiAssistant == null) {
mNetworkScoreManager.setActiveScorer(null);
return true;
diff --git a/tests/app/src/com/android/settings/CreateShortcutTest.java b/tests/app/src/com/android/settings/CreateShortcutTest.java
new file mode 100644
index 0000000..9481a64
--- /dev/null
+++ b/tests/app/src/com/android/settings/CreateShortcutTest.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import android.app.Instrumentation;
+import android.content.Intent;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static android.support.test.espresso.Espresso.onView;
+import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
+import static android.support.test.espresso.matcher.ViewMatchers.withText;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class CreateShortcutTest {
+
+ @Test
+ public void test_layoutDoesNotHaveCancelButton() {
+ Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
+ instrumentation.startActivitySync(new Intent(Intent.ACTION_CREATE_SHORTCUT)
+ .setClassName(instrumentation.getTargetContext(),
+ CreateShortcut.class.getName()));
+ onView(withText(R.string.cancel)).check(doesNotExist());
+ }
+}
diff --git a/tests/app/src/com/android/settings/dashboard/FirstIdViewMatcher.java b/tests/app/src/com/android/settings/dashboard/FirstIdViewMatcher.java
new file mode 100644
index 0000000..15290b1
--- /dev/null
+++ b/tests/app/src/com/android/settings/dashboard/FirstIdViewMatcher.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.dashboard;
+
+import android.content.res.Resources;
+import android.view.View;
+
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
+
+/***
+ * Matches on the first view with id if there are multiple views using the same Id.
+ */
+public class FirstIdViewMatcher {
+
+ public static Matcher<View> withFirstId(final int id) {
+ return new TypeSafeMatcher<View>() {
+ Resources resources = null;
+ private boolean mMatched;
+
+ public void describeTo(Description description) {
+ description.appendText(" is the first view that matches id.");
+ }
+
+ public boolean matchesSafely(View view) {
+ this.resources = view.getResources();
+ if (mMatched) {
+ return false;
+ } else {
+ mMatched |= id == view.getId();
+ return mMatched;
+ }
+ }
+ };
+ }
+}
diff --git a/tests/app/src/com/android/settings/dashboard/PreferenceThemeTest.java b/tests/app/src/com/android/settings/dashboard/PreferenceThemeTest.java
new file mode 100644
index 0000000..b99f753e
--- /dev/null
+++ b/tests/app/src/com/android/settings/dashboard/PreferenceThemeTest.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.dashboard;
+
+import android.app.Instrumentation;
+import android.content.Context;
+import android.content.Intent;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static android.support.test.espresso.Espresso.onView;
+import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
+import static android.support.test.espresso.assertion.ViewAssertions.matches;
+import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static android.support.test.espresso.matcher.ViewMatchers.withId;
+import static com.android.settings.dashboard.FirstIdViewMatcher.withFirstId;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class PreferenceThemeTest {
+
+ private Instrumentation mInstrumentation;
+ private Context mTargetContext;
+ private String mTargetPackage;
+
+ @Before
+ public void setUp() throws Exception {
+ mInstrumentation = InstrumentationRegistry.getInstrumentation();
+ mTargetContext = mInstrumentation.getTargetContext();
+ mTargetPackage = mTargetContext.getPackageName();
+ }
+
+ @Test
+ public void startPhoneStatus_preferenceIconSpaceReserved() throws InterruptedException {
+ launchPhoneStatus();
+ onView(withId(android.R.id.icon_frame)).check(doesNotExist());
+ onView(withFirstId(R.id.icon_container)).check(matches(isDisplayed()));
+ }
+
+ private void launchPhoneStatus() {
+ final Intent settingsIntent = new Intent("android.settings.DEVICE_INFO_SETTINGS")
+ .addCategory(Intent.CATEGORY_DEFAULT)
+ .setPackage(mTargetPackage)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ InstrumentationRegistry.getInstrumentation().startActivitySync(settingsIntent);
+ }
+}
diff --git a/tests/robotests/assets/grandfather_not_implementing_index_provider b/tests/robotests/assets/grandfather_not_implementing_index_provider
new file mode 100644
index 0000000..05cd93b
--- /dev/null
+++ b/tests/robotests/assets/grandfather_not_implementing_index_provider
@@ -0,0 +1,5 @@
+com.android.settings.notification.ConfigureNotificationSettings
+com.android.settings.language.LanguageAndRegionSettings
+com.android.settings.notification.ZenModePrioritySettings
+com.android.settings.inputmethod.InputAndGestureSettings
+com.android.settings.accounts.AccountDetailDashboardFragment
\ No newline at end of file
diff --git a/tests/robotests/assets/grandfather_not_implementing_indexable b/tests/robotests/assets/grandfather_not_implementing_indexable
new file mode 100644
index 0000000..0c539d8
--- /dev/null
+++ b/tests/robotests/assets/grandfather_not_implementing_indexable
@@ -0,0 +1,91 @@
+com.android.settings.location.LocationMode
+com.android.settings.notification.ZenModeVisualInterruptionSettings
+com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment
+com.android.settings.deviceinfo.SimStatus
+com.android.settings.deviceinfo.PrivateVolumeForget
+com.android.settings.inputmethod.SpellCheckersSettings
+com.android.settings.inputmethod.KeyboardLayoutPickerFragment
+com.android.settings.notification.ZenModeEventRuleSettings
+com.android.settings.fuelgauge.InactiveApps
+com.android.settings.accessibility.CaptionPropertiesFragment
+com.android.settings.accounts.ManageAccountsSettings
+com.android.settings.accessibility.AccessibilitySettingsForSetupWizard
+com.android.settings.deviceinfo.ImeiInformation
+com.android.settings.datausage.DataUsageList
+com.android.settings.vpn2.AppManagementFragment
+com.android.settings.display.NightDisplaySettings
+com.android.settings.vpn2.VpnSettings
+com.android.settings.fingerprint.FingerprintSettings$FingerprintSettingsFragment
+com.android.settings.applications.ProcessStatsDetail
+com.android.settings.wifi.WifiInfo
+com.android.settings.applications.VrListenerSettings
+com.android.settings.nfc.PaymentSettings
+com.android.settings.inputmethod.VirtualKeyboardFragment
+com.android.settings.bluetooth.DevicePickerFragment
+com.android.settings.inputmethod.UserDictionaryList
+com.android.settings.deviceinfo.Status
+com.android.settings.datausage.DataSaverSummary
+com.android.settings.notification.ChannelNotificationSettings
+com.android.settings.datausage.AppDataUsage
+com.android.settings.accessibility.FontSizePreferenceFragmentForSetupWizard
+com.android.settings.inputmethod.PhysicalKeyboardFragment
+com.android.settings.applications.ManageDomainUrls
+com.android.settings.applications.WriteSettingsDetails
+com.android.settings.location.LocationSettings
+com.android.settings.applications.ProcessStatsSummary
+com.android.settings.users.RestrictedProfileSettings
+com.android.settings.accounts.ChooseAccountActivity
+com.android.settings.accounts.ManagedProfileSettings
+com.android.settings.notification.ZenModeAutomationSettings
+com.android.settings.accessibility.ToggleAutoclickPreferenceFragment
+com.android.settings.applications.AppLaunchSettings
+com.android.settings.fuelgauge.BatterySaverSettings
+com.android.settings.location.ScanningSettings
+com.android.settings.tts.TextToSpeechSettings
+com.android.settings.applications.ProcessStatsUi
+com.android.settings.fuelgauge.PowerUsageDetail
+com.android.settings.notification.ZenModeScheduleRuleSettings
+com.android.settings.datausage.BillingCycleSettings
+com.android.settings.notification.NotificationStation
+com.android.settings.print.PrintJobSettingsFragment
+com.android.settings.applications.SpecialAccessSettings
+com.android.settings.accessibility.ToggleScreenReaderPreferenceFragmentForSetupWizard
+com.android.settings.accounts.AccountSyncSettings
+com.android.settings.notification.RedactionInterstitial$RedactionInterstitialFragment
+com.android.settings.inputmethod.InputMethodAndSubtypeEnabler
+com.android.settings.inputmethod.AvailableVirtualKeyboardFragment
+com.android.settings.applications.DrawOverlayDetails
+com.android.settings.tts.TtsEngineSettingsFragment
+com.android.settings.backup.ToggleBackupSettingFragment
+com.android.settings.users.UserDetailsSettings
+com.android.settings.datausage.UnrestrictedDataAccess
+com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragmentForSetupWizard
+com.android.settings.fuelgauge.BatteryHistoryDetail
+com.android.settings.fuelgauge.PowerUsageSummary
+com.android.settings.applications.RunningServices
+com.android.settings.wifi.p2p.WifiP2pSettings
+com.android.settings.applications.ManageAssist
+com.android.settings.applications.ConfirmConvertToFbe
+com.android.settings.deviceinfo.PublicVolumeSettings
+com.android.settings.applications.InstalledAppDetails
+com.android.settings.accessibility.ToggleAccessibilityServicePreferenceFragment
+com.android.settings.print.PrintServiceSettingsFragment
+com.android.settings.wfd.WifiDisplaySettings
+com.android.settings.notification.AppNotificationSettings
+com.android.settings.deviceinfo.PrivateVolumeSettings
+com.android.settings.users.AppRestrictionsFragment
+com.android.settings.deviceinfo.PrivateVolumeUnmount
+com.android.settings.deletionhelper.AutomaticStorageManagerSettings
+com.android.settings.notification.ZenAccessSettings
+com.android.settings.accessibility.ToggleFontSizePreferenceFragment
+com.android.settings.accessibility.ToggleGlobalGesturePreferenceFragment
+com.android.settings.wifi.ConfigureWifiSettings
+com.android.settings.wifi.AdvancedWifiSettings
+com.android.settings.applications.PremiumSmsAccess
+com.android.settings.applications.UsageAccessDetails
+com.android.settings.applications.AppStorageSettings
+com.android.settings.notification.NotificationAccessSettings
+com.android.settings.notification.ZenModeSettings
+com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment
+com.android.settings.applications.ConvertToFbe
+com.android.settings.localepicker.LocaleListEditor
\ No newline at end of file
diff --git a/tests/robotests/assets/grandfather_not_implementing_instrumentable b/tests/robotests/assets/grandfather_not_implementing_instrumentable
new file mode 100644
index 0000000..c1f0d60
--- /dev/null
+++ b/tests/robotests/assets/grandfather_not_implementing_instrumentable
@@ -0,0 +1,5 @@
+com.android.settings.deletionhelper.ActivationWarningFragment
+com.android.settings.core.lifecycle.ObservableDialogFragment
+com.android.settings.core.lifecycle.ObservableFragment
+com.android.settings.applications.AppOpsCategory
+com.android.settings.inputmethod.UserDictionaryLocalePicker
diff --git a/tests/robotests/assets/grandfather_not_in_search_index_provider_registry b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
new file mode 100644
index 0000000..29f3816
--- /dev/null
+++ b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
@@ -0,0 +1,3 @@
+com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard
+com.android.settings.wifi.WifiSettingsForSetupWizard
+com.android.settings.print.PrintServiceSettingsFragment
diff --git a/tests/robotests/src/android/print/PrintServicesLoader.java b/tests/robotests/src/android/print/PrintServicesLoader.java
new file mode 100644
index 0000000..e4975ed
--- /dev/null
+++ b/tests/robotests/src/android/print/PrintServicesLoader.java
@@ -0,0 +1,19 @@
+package android.print;
+
+import android.annotation.NonNull;
+import android.content.Context;
+import android.content.Loader;
+import android.printservice.PrintServiceInfo;
+import com.android.internal.util.Preconditions;
+
+import java.util.List;
+
+/**
+ * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility.
+ */
+public class PrintServicesLoader extends Loader<List<PrintServiceInfo>> {
+ public PrintServicesLoader(@NonNull PrintManager printManager, @NonNull Context context,
+ int selectionFlags) {
+ super(Preconditions.checkNotNull(context));
+ }
+}
diff --git a/tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java b/tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java
new file mode 100644
index 0000000..9edda45
--- /dev/null
+++ b/tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java
@@ -0,0 +1,11 @@
+package com.android.internal.app;
+
+/**
+ * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility.
+ */
+public class LocalePickerWithRegion {
+
+ public interface LocaleSelectedListener {
+ void onLocaleSelected(LocaleStore.LocaleInfo locale);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/SettingsActivityTest.java b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
new file mode 100644
index 0000000..1661947
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class SettingsActivityTest {
+
+ private SettingsActivity mActivity;
+
+ @Test
+ public void testQueryTextChange_shouldUpdate() {
+ final String testQuery = "abc";
+ mActivity = new SettingsActivity();
+
+ assertThat(mActivity.mSearchQuery).isNull();
+ try {
+ mActivity.onQueryTextChange(testQuery);
+ } catch (NullPointerException e) {
+ // Expected, because searchFeatureProvider is not wired up.
+ }
+
+ assertThat(mActivity.mSearchQuery).isEqualTo(testQuery);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java b/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
index 86b613c..9bf168d 100644
--- a/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
@@ -17,6 +17,7 @@
import android.app.Dialog;
import android.app.Fragment;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java b/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java
index d6d6963..4472025 100644
--- a/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java
+++ b/tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java
@@ -15,13 +15,22 @@
*/
package com.android.settings;
-import java.util.List;
+import android.app.Activity;
+import android.app.Fragment;
+import android.content.Intent;
import org.junit.runners.model.InitializationError;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.manifest.AndroidManifest;
import org.robolectric.res.Fs;
import org.robolectric.res.ResourcePath;
+import org.robolectric.util.ActivityController;
+import org.robolectric.util.ReflectionHelpers;
+
+import java.util.List;
+
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
+import static org.robolectric.Robolectric.getShadowsAdapter;
/**
* Custom test runner for the testing of BluetoothPairingDialogs. This is needed because the
@@ -47,7 +56,7 @@
final String appRoot = "packages/apps/Settings";
final String manifestPath = appRoot + "/AndroidManifest.xml";
final String resDir = appRoot + "/res";
- final String assetsDir = appRoot + "/assets";
+ final String assetsDir = appRoot + config.assetDir();
// By adding any resources from libraries we need to the AndroidManifest, we can access
// them from within the parallel universe's resource loader.
@@ -76,4 +85,15 @@
manifest.setPackageName("com.android.settings");
return manifest;
}
-}
\ No newline at end of file
+
+ // A simple utility class to start a Settings fragment with an intent. The code here is almost
+ // the same as FragmentTestUtil.startFragment except that it starts an activity with an intent.
+ public static void startSettingsFragment(
+ Fragment fragment, Class<? extends SettingsActivity> activityClass) {
+ Intent intent = new Intent().putExtra(EXTRA_SHOW_FRAGMENT, fragment.getClass().getName());
+ SettingsActivity activity = ActivityController.of(
+ getShadowsAdapter(), ReflectionHelpers.callConstructor(activityClass), intent)
+ .setup().get();
+ activity.getFragmentManager().beginTransaction().add(fragment, null).commit();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
new file mode 100644
index 0000000..7006dfb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.settings.accounts;
+
+import android.os.Bundle;
+
+import com.android.settings.TestConfig;
+import com.android.settingslib.drawer.CategoryKey;
+import com.android.settingslib.drawer.Tile;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AccountDetailDashboardFragmentTest {
+
+ private static final String METADATA_CATEGORY = "com.android.settings.category";
+ private static final String METADATA_ACCOUNT_TYPE = "com.android.settings.ia.account";
+
+ private AccountDetailDashboardFragment mFragment;
+
+ @Before
+ public void setUp() {
+ mFragment = new AccountDetailDashboardFragment();
+ final Bundle args = new Bundle();
+ args.putString(METADATA_ACCOUNT_TYPE, "com.abc");
+ mFragment.mAccountType = "com.abc";
+ }
+
+ @Test
+ public void testCategory_isAccount() {
+ assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_ACCOUNT);
+ }
+
+ @Test
+ public void refreshDashboardTiles_HasAccountType_shouldDisplay() {
+ final Tile tile = new Tile();
+ final Bundle metaData = new Bundle();
+ metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
+ metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc");
+ tile.metaData = metaData;
+
+ assertThat(mFragment.displayTile(tile)).isTrue();
+ }
+
+ @Test
+ public void refreshDashboardTiles_NoAccountType_shouldNotDisplay() {
+ final Tile tile = new Tile();
+ final Bundle metaData = new Bundle();
+ metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
+ tile.metaData = metaData;
+
+ assertThat(mFragment.displayTile(tile)).isFalse();
+ }
+
+ @Test
+ public void refreshDashboardTiles_OtherAccountType_shouldNotDisplay() {
+ final Tile tile = new Tile();
+ final Bundle metaData = new Bundle();
+ metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
+ metaData.putString(METADATA_ACCOUNT_TYPE, "com.other");
+ tile.metaData = metaData;
+
+ assertThat(mFragment.displayTile(tile)).isFalse();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
index 528d811..552c689 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
@@ -21,6 +21,7 @@
import android.content.Context;
import android.content.pm.UserInfo;
import android.os.UserManager;
+import android.os.UserHandle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
@@ -28,6 +29,7 @@
import android.util.SparseArray;
import com.android.settings.AccessiblePreferenceCategory;
+import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.search.SearchIndexableRaw;
@@ -266,4 +268,37 @@
assertThat(data.size()).isEqualTo(2);
}
+ @Test
+ @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
+ public void onResume_twoAccountsOfSameType_shouldAddThreePreferences() {
+ final List<UserInfo> infos = new ArrayList<>();
+ infos.add(new UserInfo(1, "user 1", 0));
+ when(mUserManager.isManagedProfile()).thenReturn(false);
+ when(mUserManager.isLinkedUser()).thenReturn(false);
+ when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+ Account[] accounts = {new Account("Account1", "com.acct1")};
+ when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(accounts);
+
+ Account[] accountType1 = new Account[2];
+ accountType1[0] = new Account("Account11", "com.acct1");
+ accountType1[1] = new Account("Account12", "com.acct1");
+ when(mAccountManager.getAccountsByTypeAsUser(eq("com.acct1"), any(UserHandle.class)))
+ .thenReturn(accountType1);
+
+ AuthenticatorDescription[] authDescs = {
+ new AuthenticatorDescription("com.acct1", "com.android.settings",
+ R.string.account_settings_title, 0, 0, 0, false)
+ };
+ when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(authDescs);
+
+ AccessiblePreferenceCategory preferenceGroup = mock(AccessiblePreferenceCategory.class);
+ when(mAccountHelper.createAccessiblePreferenceCategory(any(Context.class))).thenReturn(
+ preferenceGroup);
+
+ mController.onResume();
+
+ // should add 2 individual account and the Add account preference
+ verify(preferenceGroup, times(3)).addPreference(any(Preference.class));
+ }
+
}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceTest.java b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceTest.java
new file mode 100644
index 0000000..eeca90b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceTest.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accounts;
+
+import android.accounts.Account;
+import android.content.Context;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.ArrayList;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AccountPreferenceTest {
+
+ private Context mContext;
+ private Account mAccount;
+ private ArrayList<String> mAuthorities;
+ private AccountPreference mPreference;
+
+ @Before
+ public void setUp() {
+ mContext = ShadowApplication.getInstance().getApplicationContext();
+ mAccount = new Account("name", "type");
+ mAuthorities = new ArrayList<>();
+ mAuthorities.add("authority");
+
+ mPreference = spy(new AccountPreference(
+ mContext, mAccount, null /* icon */, mAuthorities, false /* showTypeIcon */));
+ }
+
+ @Test
+ public void setSyncStatus_differentStatus_shouldUpdate() {
+ mPreference.setSyncStatus(AccountPreference.SYNC_ERROR, true);
+ verify(mPreference).setSummary(R.string.sync_error);
+ }
+
+ @Test
+ public void setSyncStatus_sameStatus_shouldNotUpdate() {
+ // Set it once, should update summary
+ mPreference.setSyncStatus(AccountPreference.SYNC_ERROR, true);
+ verify(mPreference).setSummary(R.string.sync_error);
+
+ // Set it again, should not update summary
+ mPreference.setSyncStatus(AccountPreference.SYNC_ERROR, true);
+ verify(mPreference).setSummary(R.string.sync_error);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
new file mode 100644
index 0000000..26c640d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.accounts;
+
+import android.accounts.Account;
+import android.content.Context;
+import android.os.UserHandle;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import static org.mockito.Mockito.mock;
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AccountSyncPreferenceControllerTest {
+
+ @Test
+ public void handlePreferenceTreeClick_shouldStartFragment() {
+ final ShadowApplication application = ShadowApplication.getInstance();
+ final Context context = application.getApplicationContext();
+ final Preference preference = new Preference(context);
+ preference.setKey("account_sync");
+ AccountSyncPreferenceController controller = new AccountSyncPreferenceController(context);
+ controller.init(new Account("acct1", "type1"), mock(UserHandle.class));
+
+ controller.handlePreferenceTreeClick(preference);
+
+ assertThat(application.getNextStartedActivity().getStringExtra(
+ SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo(AccountSyncSettings.class.getName());
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/ManageAccountsSettingsTest.java b/tests/robotests/src/com/android/settings/accounts/ManageAccountsSettingsTest.java
new file mode 100644
index 0000000..916e395
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/ManageAccountsSettingsTest.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accounts;
+
+import android.accounts.Account;
+import android.content.SyncInfo;
+import android.content.SyncStatusInfo;
+import android.os.UserHandle;
+import android.support.v7.preference.PreferenceScreen;
+import android.util.ArraySet;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class ManageAccountsSettingsTest {
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private AccountPreference mAccountPref;
+ private Account mAccount;
+ private ArrayList<String> mAuthorities;
+ private TestFragment mSettings;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mAuthorities = new ArrayList<>();
+ mAuthorities.add("authority");
+ mAccount = new Account("name", "type");
+ when(mAccountPref.getAccount()).thenReturn(mAccount);
+ when(mAccountPref.getAuthorities()).thenReturn(mAuthorities);
+ mSettings = new TestFragment();
+ }
+
+ @Test
+ public void showSyncState_noAccountPrefs_shouldUpdateNothing() {
+ when(mAccountPref.getAuthorities()).thenReturn(null);
+ mSettings.showSyncState();
+ verify(mSettings.getPreferenceScreen(), never()).getPreference(anyInt());
+ }
+
+ @Test
+ public void showSyncState_syncInProgress_shouldUpdateInProgress() {
+ mSettings.mUserFacingSyncAuthorities.add(mAuthorities.get(0));
+ mSettings.mSyncInfos.add(new SyncInfo(0, mAccount, mAuthorities.get(0), 0));
+ mSettings.mSyncStatusInfo = new SyncStatusInfo(0);
+ when(mSettings.getPreferenceScreen().getPreferenceCount()).thenReturn(1);
+ when(mSettings.getPreferenceScreen().getPreference(0)).thenReturn(mAccountPref);
+
+ mSettings.showSyncState();
+
+ verify(mSettings.getPreferenceScreen()).getPreference(anyInt());
+ verify(mAccountPref).setSyncStatus(AccountPreference.SYNC_IN_PROGRESS, true);
+ }
+
+ @Test
+ public void showSyncState_noUserFacingSynclets_shouldUpdateToDisabled() {
+ mSettings.mSyncInfos.add(new SyncInfo(0, mAccount, mAuthorities.get(0), 0));
+ mSettings.mSyncStatusInfo = new SyncStatusInfo(0);
+ when(mSettings.getPreferenceScreen().getPreferenceCount()).thenReturn(1);
+ when(mSettings.getPreferenceScreen().getPreference(0)).thenReturn(mAccountPref);
+
+ mSettings.showSyncState();
+
+ verify(mSettings.getPreferenceScreen()).getPreference(anyInt());
+ verify(mAccountPref).setSyncStatus(AccountPreference.SYNC_DISABLED, true);
+ }
+
+ public static class TestFragment extends ManageAccountsSettings {
+
+ private PreferenceScreen mScreen;
+ private List<SyncInfo> mSyncInfos;
+ private SyncStatusInfo mSyncStatusInfo;
+
+ public TestFragment() {
+ mUserHandle = mock(UserHandle.class);
+ mScreen = mock(PreferenceScreen.class);
+ mUserFacingSyncAuthorities = new ArraySet<>();
+ mSyncInfos = new ArrayList<>();
+ }
+
+ @Override
+ public PreferenceScreen getPreferenceScreen() {
+ return mScreen;
+ }
+
+ @Override
+ protected boolean isSyncEnabled(int userId, Account account, String authority) {
+ return true;
+ }
+
+ @Override
+ protected List<SyncInfo> getCurrentSyncs(int userId) {
+ return mSyncInfos;
+ }
+
+ @Override
+ protected SyncStatusInfo getSyncStatusInfo(Account account, String authority, int userId) {
+ return mSyncStatusInfo;
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/accounts/RemoveUserFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/RemoveUserFragmentTest.java
new file mode 100644
index 0000000..965b6dc
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/RemoveUserFragmentTest.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accounts;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.lang.reflect.Modifier;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class RemoveUserFragmentTest {
+
+ @Test
+ public void testClassModifier_shouldBePublic() {
+ final int modifiers = RemoveUserFragment.class.getModifiers();
+
+ assertThat(Modifier.isPublic(modifiers)).isTrue();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java
index 2d266b6..90761a0 100644
--- a/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java
@@ -16,10 +16,13 @@
package com.android.settings.accounts;
import android.content.Context;
+import android.os.Bundle;
+import android.provider.SearchIndexableResource;
import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.drawer.CategoryKey;
+import com.android.settingslib.drawer.Tile;
import org.junit.Before;
import org.junit.Test;
@@ -29,28 +32,68 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
@RunWith(RobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class UserAndAccountDashboardFragmentTest {
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private Context mContext;
+ private static final String METADATA_CATEGORY = "com.android.settings.category";
+ private static final String METADATA_ACCOUNT_TYPE = "com.android.settings.ia.account";
- private UserAndAccountDashboardFragment mFragment;
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private Context mContext;
+ private UserAndAccountDashboardFragment mFragment;
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- FakeFeatureFactory.setupForTest(mContext);
- mFragment = new UserAndAccountDashboardFragment();
- }
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest(mContext);
+ final FakeFeatureFactory factory =
+ (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+ mFragment = new UserAndAccountDashboardFragment();
+ }
- @Test
- public void testCategory_isConnectedDevice() {
- assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_ACCOUNT);
- }
+ @Test
+ public void testCategory_isAccount() {
+ assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_ACCOUNT);
+ }
+ @Test
+ public void refreshDashboardTiles_HasAccountType_shouldNotDisplay() {
+ final Tile tile = new Tile();
+ final Bundle metaData = new Bundle();
+ metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
+ metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc");
+ tile.metaData = metaData;
+
+ assertThat(mFragment.displayTile(tile)).isFalse();
+ }
+
+ @Test
+ public void refreshDashboardTiles_NoAccountType_shouldDisplay() {
+ final Tile tile = new Tile();
+ final Bundle metaData = new Bundle();
+ metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
+ tile.metaData = metaData;
+
+ assertThat(mFragment.displayTile(tile)).isTrue();
+ }
+
+ @Test
+ public void testSearchIndexProvider_shouldIndexResource() {
+ final List<SearchIndexableResource> indexRes =
+ UserAndAccountDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ ShadowApplication.getInstance().getApplicationContext(),
+ true /* enabled */);
+
+ assertThat(indexRes).isNotNull();
+ assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
+ }
}
diff --git a/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
index dc177b8..56834db 100644
--- a/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
@@ -76,7 +76,7 @@
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.GET_UNINSTALLED_PACKAGES,
+ | PackageManager.MATCH_ANY_USER,
MAIN_USER_ID)).thenReturn(Arrays.asList(
ApplicationTestUtils.buildInfo(MAIN_USER_ID, "app1", 0 /* flags */)));
diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
index 0f0ada5..b6c84d0 100644
--- a/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
+++ b/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
@@ -99,7 +99,7 @@
// * app4 is a system app that provides no launcher icon. It should not be counted.
when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
| PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.GET_UNINSTALLED_PACKAGES,
+ | PackageManager.MATCH_ANY_USER,
MAIN_USER_ID)).thenReturn(Arrays.asList(
buildInfo(MAIN_USER_ID, "app1", ApplicationInfo.FLAG_UPDATED_SYSTEM_APP),
buildInfo(MAIN_USER_ID, "app2", 0 /* flags */),
diff --git a/tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java b/tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java
new file mode 100644
index 0000000..e49b8b8
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java
@@ -0,0 +1,61 @@
+package com.android.settings.applications;
+
+import android.os.Looper;
+import android.os.UserManager;
+import com.android.settings.Settings;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.SettingsShadowResources.SettingsShadowTheme;
+import com.android.settingslib.applications.ApplicationsState;
+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.util.ReflectionHelpers;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.when;
+
+/**
+ * Tests for {@link ManageApplications}.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+// TODO: Consider making the shadow class set global using a robolectric.properties file.
+@Config(manifest = TestConfig.MANIFEST_PATH,
+ sdk = TestConfig.SDK_VERSION,
+ shadows = {
+ SettingsShadowResources.class,
+ SettingsShadowTheme.class,
+ ShadowDynamicIndexableContentMonitor.class
+ })
+public class ManageApplicationsTest {
+
+ @Mock private ApplicationsState mState;
+ @Mock private ApplicationsState.Session mSession;
+ @Mock private UserManager mUserManager;
+
+ private Looper mBgLooper;
+
+ private ManageApplications mFragment;
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ ReflectionHelpers.setStaticField(ApplicationsState.class, "sInstance", mState);
+ when(mState.newSession(any())).thenReturn(mSession);
+ mBgLooper = Looper.myLooper();
+ when(mState.getBackgroundLooper()).thenReturn(mBgLooper);
+
+ mFragment = new ManageApplications();
+ }
+
+ @Test
+ public void launchFragment() {
+ SettingsRobolectricTestRunner.startSettingsFragment(
+ mFragment, Settings.ManageApplicationsActivity.class);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
index 035d29e..90f2106 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
@@ -16,20 +16,24 @@
package com.android.settings.bluetooth;
import android.app.AlertDialog;
+import android.content.Context;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
+
import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
+
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.util.FragmentTestUtil;
import static com.google.common.truth.Truth.assertThat;
@@ -330,6 +334,14 @@
assertThat(message.getVisibility()).isEqualTo(View.GONE);
}
+ @Test
+ public void pairingStringIsFormattedCorrectly() {
+ final String device = "test_device";
+ final Context context = ShadowApplication.getInstance().getApplicationContext();
+ assertThat(context.getString(R.string.bluetooth_pb_acceptance_dialog_text, device, device))
+ .contains(device);
+ }
+
private BluetoothPairingDialogFragment makeFragment() {
BluetoothPairingDialogFragment frag = new BluetoothPairingDialogFragment();
frag.setPairingController(controller);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
index d53a27b..83bae50 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
@@ -16,10 +16,13 @@
package com.android.settings.connecteddevice;
import android.content.Context;
+import android.provider.SearchIndexableResource;
+
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.drawer.CategoryKey;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -27,28 +30,45 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class ConnectedDeviceDashboardFragmentTest {
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private Context mContext;
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private Context mContext;
- private ConnectedDeviceDashboardFragment mFragment;
+ private ConnectedDeviceDashboardFragment mFragment;
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- FakeFeatureFactory.setupForTest(mContext);
- mFragment = new ConnectedDeviceDashboardFragment();
- }
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest(mContext);
+ final FakeFeatureFactory factory =
+ (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+ mFragment = new ConnectedDeviceDashboardFragment();
+ }
- @Test
- public void testCategory_isConnectedDevice() {
- assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_DEVICE);
- }
+ @Test
+ public void testCategory_isConnectedDevice() {
+ assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_DEVICE);
+ }
+ @Test
+ public void testSearchIndexProvider_shouldIndexResource() {
+ final List<SearchIndexableResource> indexRes =
+ ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ ShadowApplication.getInstance().getApplicationContext(),
+ true /* enabled */);
+
+ assertThat(indexRes).isNotNull();
+ assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
+ }
}
diff --git a/tests/robotests/src/com/android/settings/core/codeinspection/ClassScanner.java b/tests/robotests/src/com/android/settings/core/codeinspection/ClassScanner.java
new file mode 100644
index 0000000..09af870
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/core/codeinspection/ClassScanner.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core.codeinspection;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.JarURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+/**
+ * Scans and builds all classes in current classloader.
+ */
+public class ClassScanner {
+
+ private static final String CLASS_SUFFIX = ".class";
+
+ public List<Class<?>> getClassesForPackage(String packageName)
+ throws ClassNotFoundException {
+ final List<Class<?>> classes = new ArrayList<>();
+
+ try {
+ final Enumeration<URL> resources = Thread.currentThread().getContextClassLoader()
+ .getResources(packageName.replace('.', '/'));
+ if (!resources.hasMoreElements()) {
+ return classes;
+ }
+ URL url = resources.nextElement();
+ while (url != null) {
+ final URLConnection connection = url.openConnection();
+
+ if (connection instanceof JarURLConnection) {
+ loadClassFromJar((JarURLConnection) connection, packageName,
+ classes);
+ } else {
+ loadClassFromDirectory(new File(URLDecoder.decode(url.getPath(), "UTF-8")),
+ packageName, classes);
+ }
+ if (resources.hasMoreElements()) {
+ url = resources.nextElement();
+ } else {
+ break;
+ }
+ }
+ } catch (final IOException e) {
+ throw new ClassNotFoundException("Error when parsing " + packageName, e);
+ }
+ return classes;
+ }
+
+ private void loadClassFromDirectory(File directory, String packageName, List<Class<?>> classes)
+ throws ClassNotFoundException {
+ if (directory.exists() && directory.isDirectory()) {
+ final String[] files = directory.list();
+
+ for (final String file : files) {
+ if (file.endsWith(CLASS_SUFFIX)) {
+ try {
+ classes.add(Class.forName(
+ packageName + '.' + file.substring(0, file.length() - 6),
+ false /* init */,
+ Thread.currentThread().getContextClassLoader()));
+ } catch (NoClassDefFoundError e) {
+ // do nothing. this class hasn't been found by the
+ // loader, and we don't care.
+ }
+ } else {
+ final File tmpDirectory = new File(directory, file);
+ if (tmpDirectory.isDirectory()) {
+ loadClassFromDirectory(tmpDirectory, packageName + "." + file, classes);
+ }
+ }
+ }
+ }
+ }
+
+ private void loadClassFromJar(JarURLConnection connection, String packageName,
+ List<Class<?>> classes) throws ClassNotFoundException, IOException {
+ final JarFile jarFile = connection.getJarFile();
+ final Enumeration<JarEntry> entries = jarFile.entries();
+ String name;
+ if (!entries.hasMoreElements()) {
+ return;
+ }
+ JarEntry jarEntry = entries.nextElement();
+ while (jarEntry != null) {
+ name = jarEntry.getName();
+
+ if (name.contains(CLASS_SUFFIX)) {
+ name = name.substring(0, name.length() - CLASS_SUFFIX.length()).replace('/', '.');
+
+ if (name.startsWith(packageName)) {
+ try {
+ classes.add(Class.forName(name,
+ false /* init */,
+ Thread.currentThread().getContextClassLoader()));
+ } catch (NoClassDefFoundError e) {
+ // do nothing. this class hasn't been found by the
+ // loader, and we don't care.
+ }
+ }
+ }
+ if (entries.hasMoreElements()) {
+ jarEntry = entries.nextElement();
+ } else {
+ break;
+ }
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
new file mode 100644
index 0000000..4aa576f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core.codeinspection;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.core.instrumentation.InstrumentableFragmentCodeInspector;
+import com.android.settings.search.SearchIndexProviderCodeInspector;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+/**
+ * Test suite that scans all class in app package, and perform different types of code inspection
+ * for conformance.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+ assetDir = "/tests/robotests/assets")
+public class CodeInspectionTest {
+
+ private List<Class<?>> mClasses;
+
+ @Before
+ public void setUp() throws Exception {
+ mClasses = new ClassScanner().getClassesForPackage(CodeInspector.PACKAGE_NAME);
+ }
+
+ @Test
+ public void runCodeInspections() {
+ new InstrumentableFragmentCodeInspector(mClasses).run();
+ new SearchIndexProviderCodeInspector(mClasses).run();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspector.java b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspector.java
new file mode 100644
index 0000000..86c14a5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspector.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core.codeinspection;
+
+import com.google.common.truth.Truth;
+
+import org.junit.Assert;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.Modifier;
+import java.util.List;
+
+/**
+ * Inspector takes a list of class objects and perform static code analysis in its {@link #run()}
+ * method.
+ */
+public abstract class CodeInspector {
+
+ protected static final String PACKAGE_NAME = "com.android.settings";
+
+ protected static final String TEST_CLASS_SUFFIX = "Test";
+ private static final String TEST_INNER_CLASS_SIGNATURE = "Test$";
+
+ protected final List<Class<?>> mClasses;
+
+ public CodeInspector(List<Class<?>> classes) {
+ mClasses = classes;
+ }
+
+ /**
+ * Code inspection runner method.
+ */
+ public abstract void run();
+
+ protected boolean isConcreteSettingsClass(Class clazz) {
+ // Abstract classes
+ if (Modifier.isAbstract(clazz.getModifiers())) {
+ return false;
+ }
+ final String packageName = clazz.getPackage().getName();
+ // Classes that are not in Settings
+ if (!packageName.contains(PACKAGE_NAME + ".")) {
+ return false;
+ }
+ final String className = clazz.getName();
+ // Classes from tests
+ if (className.endsWith(TEST_CLASS_SUFFIX)) {
+ return false;
+ }
+ if (className.contains(TEST_INNER_CLASS_SIGNATURE)) {
+ return false;
+ }
+ return true;
+ }
+
+ protected void initializeGrandfatherList(List<String> grandfather, String filename) {
+ try {
+ final InputStream in = ShadowApplication.getInstance().getApplicationContext()
+ .getAssets()
+ .open(filename);
+ BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+ String line;
+ while ((line = reader.readLine()) != null) {
+ grandfather.add(line);
+ }
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Error initializing grandfather " + filename, e);
+ }
+
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java
new file mode 100644
index 0000000..ed4e50c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core.instrumentation;
+
+import android.app.Fragment;
+import android.util.ArraySet;
+
+import com.android.settings.core.codeinspection.CodeInspector;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+/**
+ * {@link CodeInspector} that verifies all fragments implements Instrumentable.
+ */
+public class InstrumentableFragmentCodeInspector extends CodeInspector {
+
+ private final List<String> grandfather_notImplementingInstrumentable;
+
+ public InstrumentableFragmentCodeInspector(List<Class<?>> classes) {
+ super(classes);
+ grandfather_notImplementingInstrumentable = new ArrayList<>();
+ initializeGrandfatherList(grandfather_notImplementingInstrumentable,
+ "grandfather_not_implementing_instrumentable");
+ }
+
+ @Override
+ public void run() {
+ final Set<String> broken = new ArraySet<>();
+
+ for (Class clazz : mClasses) {
+ if (!isConcreteSettingsClass(clazz)) {
+ continue;
+ }
+ final String className = clazz.getName();
+ // If it's a fragment, it must also be instrumentable.
+ if (Fragment.class.isAssignableFrom(clazz)
+ && !Instrumentable.class.isAssignableFrom(clazz)
+ && !grandfather_notImplementingInstrumentable.contains(className)) {
+ broken.add(className);
+ }
+ }
+ final StringBuilder sb = new StringBuilder(
+ "All fragment should implement Instrumentable, but the following are not:\n");
+ for (String c : broken) {
+ sb.append(c).append("\n");
+ }
+ assertWithMessage(sb.toString())
+ .that(broken.isEmpty())
+ .isTrue();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java
index dad6fa9..eeaa175 100644
--- a/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java
@@ -17,16 +17,18 @@
import android.content.Context;
import android.content.SharedPreferences;
+
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
-import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.testutils.FakeFeatureFactory;
+
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.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
@@ -41,23 +43,21 @@
private static final String TEST_TAG = "tag";
private static final String TEST_KEY = "key";
- @Mock
- private LogWriter mLogWriter;
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private Context mContext;
+ private FakeFeatureFactory mFactory;
private MetricsFeatureProvider mMetricsFeature;
- private ShadowApplication mApplication;
private SharedPreferencesLogger mSharedPrefLogger;
@Before
public void init() {
MockitoAnnotations.initMocks(this);
- mApplication = ShadowApplication.getInstance();
- Context context = mApplication.getApplicationContext();
- mMetricsFeature = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
- ((MetricsFeatureProviderImpl) mMetricsFeature).addLogWriter(mLogWriter);
+ FakeFeatureFactory.setupForTest(mContext);
+ mFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ mMetricsFeature = mFactory.metricsFeatureProvider;
- mSharedPrefLogger = new SharedPreferencesLogger(
- mApplication.getApplicationContext(), TEST_TAG);
+ mSharedPrefLogger = new SharedPreferencesLogger(mContext, TEST_TAG);
}
@Test
@@ -71,7 +71,7 @@
editor.putInt(TEST_KEY, 2);
editor.putInt(TEST_KEY, 2);
- verify(mLogWriter, times(6)).count(any(Context.class), anyString(), anyInt());
+ verify(mMetricsFeature, times(6)).count(any(Context.class), anyString(), anyInt());
}
@Test
@@ -83,7 +83,7 @@
editor.putBoolean(TEST_KEY, false);
editor.putBoolean(TEST_KEY, false);
- verify(mLogWriter, times(4)).count(any(Context.class), anyString(), anyInt());
+ verify(mMetricsFeature, times(4)).count(any(Context.class), anyString(), anyInt());
}
@Test
@@ -95,7 +95,7 @@
editor.putLong(TEST_KEY, 1);
editor.putLong(TEST_KEY, 2);
- verify(mLogWriter, times(4)).count(any(Context.class), anyString(), anyInt());
+ verify(mMetricsFeature, times(4)).count(any(Context.class), anyString(), anyInt());
}
@Test
@@ -107,7 +107,7 @@
editor.putFloat(TEST_KEY, 1);
editor.putFloat(TEST_KEY, 2);
- verify(mLogWriter, times(4)).count(any(Context.class), anyString(), anyInt());
+ verify(mMetricsFeature, times(4)).count(any(Context.class), anyString(), anyInt());
}
}
diff --git a/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java b/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java
index 6aae543..db83bbb 100644
--- a/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java
+++ b/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java
@@ -16,6 +16,7 @@
package com.android.settings.core.lifecycle;
import android.content.Context;
+
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.lifecycle.events.OnAttach;
@@ -24,6 +25,7 @@
import com.android.settings.core.lifecycle.events.OnResume;
import com.android.settings.core.lifecycle.events.OnStart;
import com.android.settings.core.lifecycle.events.OnStop;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
@@ -47,6 +49,16 @@
}
}
+ public static class TestFragment extends ObservableFragment {
+
+ final TestObserver mFragObserver;
+
+ public TestFragment() {
+ mFragObserver = new TestObserver();
+ getLifecycle().addObserver(mFragObserver);
+ }
+ }
+
public static class TestActivity extends ObservableActivity {
final TestObserver mActObserver;
@@ -119,7 +131,7 @@
}
@Test
- public void runThroughFragmentLifecycles_shouldObserveEverything() {
+ public void runThroughDialogFragmentLifecycles_shouldObserveEverything() {
FragmentController<TestDialogFragment> fragmentController =
Robolectric.buildFragment(TestDialogFragment.class);
TestDialogFragment fragment = fragmentController.get();
@@ -134,4 +146,21 @@
assertThat(fragment.mFragObserver.mOnStopObserved).isTrue();
assertThat(fragment.mFragObserver.mOnDestroyObserved).isTrue();
}
+
+ @Test
+ public void runThroughFragmentLifecycles_shouldObserveEverything() {
+ FragmentController<TestFragment> fragmentController =
+ Robolectric.buildFragment(TestFragment.class);
+ TestFragment fragment = fragmentController.get();
+
+ fragmentController.attach().create().start().resume().pause().stop().destroy();
+
+ assertThat(fragment.mFragObserver.mOnAttachObserved).isTrue();
+ assertThat(fragment.mFragObserver.mOnAttachHasContext).isTrue();
+ assertThat(fragment.mFragObserver.mOnStartObserved).isTrue();
+ assertThat(fragment.mFragObserver.mOnResumeObserved).isTrue();
+ assertThat(fragment.mFragObserver.mOnPauseObserved).isTrue();
+ assertThat(fragment.mFragObserver.mOnStopObserved).isTrue();
+ assertThat(fragment.mFragObserver.mOnDestroyObserved).isTrue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardDividerDecorationTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardDividerDecorationTest.java
deleted file mode 100644
index e829eb2..0000000
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardDividerDecorationTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.dashboard;
-
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.drawable.Drawable;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceGroupAdapter;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-import com.android.settings.SettingsRobolectricTestRunner;
-import com.android.settings.TestConfig;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.testutils.FakeFeatureFactory;
-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.annotation.Config;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class DashboardDividerDecorationTest {
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private Context mContext;
- @Mock
- private Drawable mDrawable;
- @Mock
- private Canvas mCanvas;
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private RecyclerView mRecyclerView;
- @Mock
- private PreferenceGroupAdapter mAdapter;
- @Mock
- private Preference pref1;
- @Mock
- private Preference pref2;
- private DashboardDividerDecoration mDecoration;
- private FakeFeatureFactory mFactory;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- FakeFeatureFactory.setupForTest(mContext);
- mFactory = (FakeFeatureFactory) FeatureFactory.getFactory(mContext);
- mDecoration = new DashboardDividerDecoration(mContext);
- mDecoration.setDivider(mDrawable);
- mDecoration.setDividerHeight(3);
- }
-
- @Test
- public void drawOver_differentPriorityGroup_shouldDrawDivider() {
- when(mRecyclerView.getAdapter()).thenReturn(mAdapter);
- when(mRecyclerView.getChildCount()).thenReturn(2);
- when(mRecyclerView.getChildAdapterPosition(any(View.class)))
- .thenReturn(0)
- .thenReturn(1);
- when(mAdapter.getItem(0)).thenReturn(pref1);
- when(mAdapter.getItem(1)).thenReturn(pref2);
- when(mFactory.dashboardFeatureProvider.getPriorityGroup(pref1)).thenReturn(1);
- when(mFactory.dashboardFeatureProvider.getPriorityGroup(pref2)).thenReturn(2);
-
- mDecoration.onDrawOver(mCanvas, mRecyclerView, null /* state */);
-
- verify(mDrawable).draw(mCanvas);
- }
-
-
- @Test
- public void drawOver_samePriorityGroup_doNotDrawDivider() {
- when(mRecyclerView.getAdapter()).thenReturn(mAdapter);
- when(mRecyclerView.getChildCount()).thenReturn(2);
- when(mRecyclerView.getChildAdapterPosition(any(View.class)))
- .thenReturn(0)
- .thenReturn(1);
- when(mAdapter.getItem(0)).thenReturn(pref1);
- when(mAdapter.getItem(1)).thenReturn(pref2);
-
- mDecoration.onDrawOver(mCanvas, mRecyclerView, null /* state */);
-
- verify(mDrawable, never()).draw(mCanvas);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
index c0bfad5..6aa22b2 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
@@ -41,7 +41,9 @@
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
@@ -51,6 +53,7 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -145,6 +148,20 @@
}
@Test
+ public void bindPreference_withNullKeyTileKey_shouldUseTileKey() {
+ final Preference preference = new Preference(
+ ShadowApplication.getInstance().getApplicationContext());
+ final Tile tile = new Tile();
+ tile.key = "key";
+ tile.intent = new Intent();
+ tile.intent.setComponent(new ComponentName("pkg", "class"));
+ mImpl.bindPreferenceToTile(mActivity, preference, tile, null /* key */
+ , Preference.DEFAULT_ORDER);
+
+ assertThat(preference.getKey()).isEqualTo(tile.key);
+ }
+
+ @Test
public void bindPreference_withBaseOrder_shouldOffsetPriority() {
final int baseOrder = 100;
final Preference preference = new Preference(
@@ -158,6 +175,26 @@
}
@Test
+ public void bindPreference_withIntentActionMetatdata_shouldSetLaunchAction() {
+ Activity activity = Robolectric.buildActivity(Activity.class).get();
+ final ShadowApplication application = ShadowApplication.getInstance();
+ final Preference preference = new Preference(application.getApplicationContext());
+ final Tile tile = new Tile();
+ tile.key = "key";
+ tile.intent = new Intent();
+ tile.intent.setComponent(new ComponentName("pkg", "class"));
+ tile.metaData = new Bundle();
+ tile.metaData.putString("com.android.settings.intent.action", "TestAction");
+ tile.userHandle = null;
+ mImpl.bindPreferenceToTile(activity, preference, tile, "123", Preference.DEFAULT_ORDER);
+ preference.performClick();
+ ShadowActivity shadowActivity = shadowOf(activity);
+
+ assertThat(shadowActivity.getNextStartedActivityForResult().intent.getAction())
+ .isEqualTo("TestAction");
+ }
+
+ @Test
public void getPreferences_notEnabled_shouldReturnNull() {
final DashboardFeatureProviderImpl mSpy = spy(mImpl);
when(mSpy.isEnabled()).thenReturn(false);
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardItemAnimatorTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardItemAnimatorTest.java
new file mode 100644
index 0000000..6ca6f4d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardItemAnimatorTest.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.dashboard;
+
+import android.content.Context;
+import android.widget.TextView;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.dashboard.SupportItemAdapter.ViewHolder;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DashboardItemAnimatorTest {
+
+ private DashboardItemAnimator mDashboardItemAnimator;
+ private ViewHolder mViewHolder;
+
+ @Before
+ public void SetUp() {
+ final Context context = ShadowApplication.getInstance().getApplicationContext();
+ mDashboardItemAnimator = new DashboardItemAnimator();
+ mViewHolder = new ViewHolder(new TextView(context));
+ }
+
+ @Test
+ public void testAnimateChange_NoOffset_NoPendingAnimation() {
+ final boolean hasPendingAnimation = mDashboardItemAnimator
+ .animateChange(mViewHolder, mViewHolder, 0, 1, 0, 1);
+ assertThat(hasPendingAnimation).isFalse();
+ }
+
+ @Test
+ public void testAnimateChange_HasOffset_HasPendingAnimation() {
+ final boolean hasPendingAnimation = mDashboardItemAnimator
+ .animateChange(mViewHolder, mViewHolder, 0, 0, 1, 1);
+ assertThat(hasPendingAnimation).isTrue();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java b/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java
index ab94f35..ffc6874 100644
--- a/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java
@@ -20,11 +20,12 @@
import android.support.v14.preference.PreferenceFragment;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
+
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.testutils.FakeFeatureFactory;
-import java.util.List;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -34,6 +35,8 @@
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
+import java.util.List;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
@@ -86,6 +89,7 @@
public void shouldCollapse_morePreferenceThanLimit() {
when(mFakeFeatureFactory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
when(mScreen.getPreferenceCount()).thenReturn(5);
+ mMixin.setTileLimit(3);
assertThat(mMixin.shouldCollapse(mScreen)).isTrue();
}
diff --git a/tests/robotests/src/com/android/settings/dashboard/SupportItemAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/SupportItemAdapterTest.java
new file mode 100644
index 0000000..e3d4c94
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/dashboard/SupportItemAdapterTest.java
@@ -0,0 +1,152 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.dashboard;
+
+import android.accounts.Account;
+import android.app.Activity;
+import android.content.Intent;
+import android.provider.Settings;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Spinner;
+import android.widget.SpinnerAdapter;
+import com.android.settings.TestConfig;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
+import com.android.settings.overlay.SupportFeatureProvider;
+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.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import com.android.settings.R;
+import org.robolectric.shadows.ShadowActivity;
+
+import static org.mockito.Mockito.verify;
+import static org.robolectric.Shadows.shadowOf;
+import static org.mockito.Mockito.when;
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class SupportItemAdapterTest {
+ private static final String ACCOUNT_TYPE = "com.google";
+ private final Account USER_1 = new Account("user1", ACCOUNT_TYPE);
+ private final Account USER_2 = new Account("user2", ACCOUNT_TYPE);
+ private final Account TWO_ACCOUNTS[] = {USER_1, USER_2};
+ private final Account ONE_ACCOUNT[] = {USER_1};
+ private final Account ZERO_ACCOUNT[] = {};
+
+ private ShadowActivity mShadowActivity;
+ private Activity mActivity;
+ private SupportItemAdapter mSupportItemAdapter;
+ private SupportItemAdapter.ViewHolder mViewHolder;
+ @Mock
+ private SupportFeatureProvider mSupportFeatureProvider;
+ @Mock
+ private MetricsFeatureProvider mMetricsFeatureProvider;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mActivity = Robolectric.setupActivity(Activity.class);
+ mShadowActivity = shadowOf(mActivity);
+
+ final View itemView = LayoutInflater.from(mActivity).inflate(
+ R.layout.support_escalation_options, null);
+ mViewHolder = new SupportItemAdapter.ViewHolder(itemView);
+
+ // Mock this to prevent crash in testing
+ when(mSupportFeatureProvider.getAccountLoginIntent()).thenReturn(
+ new Intent(Settings.ACTION_ADD_ACCOUNT));
+ }
+
+ @Test
+ public void testBindAccountPicker_TwoAccounts_ShouldHaveTwoAccounts() {
+ testBindAccountPickerInner(mViewHolder, TWO_ACCOUNTS);
+ }
+
+ @Test
+ public void testBindAccountPicker_OneAccount_ShouldHaveOneAccount() {
+ testBindAccountPickerInner(mViewHolder, ONE_ACCOUNT);
+ }
+
+ @Test
+ public void testOnSpinnerItemClick_AddAccountClicked_AccountLoginIntentInvoked() {
+ bindAccountPickerInner(mViewHolder, TWO_ACCOUNTS);
+
+ final Spinner spinner = (Spinner) mViewHolder.itemView.findViewById(R.id.account_spinner);
+ spinner.setSelection(TWO_ACCOUNTS.length);
+
+ Robolectric.flushForegroundThreadScheduler();
+
+ verify(mSupportFeatureProvider).getAccountLoginIntent();
+ }
+
+ @Test
+ public void testSetAccount_AccountEmpty_NotCrash() {
+ when(mSupportFeatureProvider.getSupportEligibleAccounts(mActivity)).thenReturn(ZERO_ACCOUNT);
+ mSupportItemAdapter = new SupportItemAdapter(mActivity, null, mSupportFeatureProvider,
+ mMetricsFeatureProvider, null);
+
+ // Should not crash in this method
+ mSupportItemAdapter.setAccounts(ONE_ACCOUNT);
+
+ verify(mSupportFeatureProvider).getSupportEligibleAccounts(mActivity);
+ }
+
+ /**
+ * Check after {@link SupportItemAdapter#bindAccountPicker(SupportItemAdapter.ViewHolder)} is
+ * invoked, whether the spinner in {@paramref viewHolder} has all the data from {@paramref
+ * accounts}
+ *
+ * @param viewHolder holds the view that contains the spinner to test
+ * @param accounts holds the accounts info to be showed in spinner.
+ */
+ private void testBindAccountPickerInner(SupportItemAdapter.ViewHolder viewHolder,
+ Account accounts[]) {
+ bindAccountPickerInner(viewHolder, accounts);
+
+ final Spinner spinner = (Spinner) viewHolder.itemView.findViewById(R.id.account_spinner);
+ final SpinnerAdapter adapter = spinner.getAdapter();
+
+ // Contains "Add account" option, so should be 'count+1'
+ assertThat(adapter.getCount()).isEqualTo(accounts.length + 1);
+ for (int i = 0; i < accounts.length; i++) {
+ assertThat(adapter.getItem(i)).isEqualTo(accounts[i].name);
+ }
+ }
+
+ /**
+ * Create {@link SupportItemAdapter} and bind the account picker view into
+ * {@paramref viewholder}
+ *
+ * @param viewHolder holds the view that contains the spinner to test
+ * @param accounts holds the accounts info to be showed in spinner.
+ */
+ private void bindAccountPickerInner(SupportItemAdapter.ViewHolder viewHolder,
+ Account accounts[]) {
+ when(mSupportFeatureProvider.getSupportEligibleAccounts(mActivity)).thenReturn(accounts);
+ mSupportItemAdapter = new SupportItemAdapter(mActivity, null, mSupportFeatureProvider,
+ mMetricsFeatureProvider, null);
+
+ mSupportItemAdapter.bindAccountPicker(viewHolder);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
new file mode 100644
index 0000000..d0bd67b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+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.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.verify;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AutoTimePreferenceControllerTest {
+
+ @Mock
+ private UpdateTimeAndDateCallback mCallback;
+
+ private Context mContext;
+ private RestrictedSwitchPreference mPreference;
+ private AutoTimePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = ShadowApplication.getInstance().getApplicationContext();
+ mPreference = new RestrictedSwitchPreference(mContext);
+ mController = new AutoTimePreferenceController(mContext, mCallback);
+ }
+
+ @Test
+ public void testIsEnabled_shouldReadFromSettingsProvider() {
+ // Disabled
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.AUTO_TIME, 0);
+ assertThat(mController.isEnabled()).isFalse();
+
+ // Enabled
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.AUTO_TIME, 1);
+ assertThat(mController.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void updatePreferenceChange_prefIsChecked_shouldUpdatePreferenceAndNotifyCallback() {
+ mController.onPreferenceChange(mPreference, true);
+
+ assertThat(mController.isEnabled()).isTrue();
+ verify(mCallback).updateTimeAndDateDisplay(mContext);
+ }
+
+ @Test
+ public void updatePreferenceChange_prefIsUnchecked_shouldUpdatePreferenceAndNotifyCallback() {
+ mController.onPreferenceChange(mPreference, false);
+
+ assertThat(mController.isEnabled()).isFalse();
+ verify(mCallback).updateTimeAndDateDisplay(mContext);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
new file mode 100644
index 0000000..cc8d84a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AutoTimeZonePreferenceControllerTest {
+
+ @Mock
+ private Context mMockContext;
+ @Mock
+ private ConnectivityManager mCm;
+ @Mock
+ private UpdateTimeAndDateCallback mCallback;
+
+ private Context mContext;
+ private AutoTimeZonePreferenceController mController;
+ private Preference mPreference;
+
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = ShadowApplication.getInstance().getApplicationContext();
+ mPreference = new Preference(mContext);
+ when(mMockContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(mCm);
+ when(mCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(true);
+ }
+
+ @Test
+ public void isFromSUW_notAvailable() {
+ mController = new AutoTimeZonePreferenceController(
+ mMockContext, null /* callback */, true /* isFromSUW */);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void notFromSUW_isAvailable() {
+ mController = new AutoTimeZonePreferenceController(
+ mMockContext, null /* callback */, false /* isFromSUW */);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isWifiOnly_notAvailable() {
+ when(mCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false);
+
+ mController = new AutoTimeZonePreferenceController(
+ mMockContext, null /* callback */, false /* isFromSUW */);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void testIsEnabled_shouldReadFromSettingsProvider() {
+ mController = new AutoTimeZonePreferenceController(
+ mContext, null /* callback */, false /* isFromSUW */);
+
+ // Disabled
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.AUTO_TIME_ZONE, 0);
+ assertThat(mController.isEnabled()).isFalse();
+
+ // Enabled
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.AUTO_TIME_ZONE, 1);
+ assertThat(mController.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void updatePreferenceChange_prefIsChecked_shouldUpdatePreferenceAndNotifyCallback() {
+ mController = new AutoTimeZonePreferenceController(
+ mContext, mCallback, false /* isFromSUW */);
+
+ mController.onPreferenceChange(mPreference, true);
+
+ assertThat(mController.isEnabled()).isTrue();
+ verify(mCallback).updateTimeAndDateDisplay(mContext);
+ }
+
+ @Test
+ public void updatePreferenceChange_prefIsUnchecked_shouldUpdatePreferenceAndNotifyCallback() {
+ mController = new AutoTimeZonePreferenceController(
+ mContext, mCallback, false /* isFromSUW */);
+
+ mController.onPreferenceChange(mPreference, false);
+
+ assertThat(mController.isEnabled()).isFalse();
+ verify(mCallback).updateTimeAndDateDisplay(mContext);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
new file mode 100644
index 0000000..4b9d3ec
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.app.AlarmManager;
+import android.content.Context;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DatePreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+ @Mock
+ private AlarmManager mAlarmManager;
+ @Mock
+ private DatePreferenceController.DatePreferenceHost mHost;
+ @Mock
+ private AutoTimePreferenceController mAutoTimePreferenceController;
+
+ private Preference mPreference;
+ private DatePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ when(mContext.getSystemService(Context.ALARM_SERVICE)).thenReturn(mAlarmManager);
+ mPreference = new Preference(ShadowApplication.getInstance().getApplicationContext());
+ mController = new DatePreferenceController(mContext, mHost, mAutoTimePreferenceController);
+ }
+
+ @Test
+ public void isAlwaysAvailable() {
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void shouldHandleDateSetCallback() {
+ mController.onDateSet(null, 2016, 1, 1);
+ verify(mHost).updateTimeAndDateDisplay(mContext);
+ }
+
+ @Test
+ public void updateState_autoTimeEnabled_shouldDisablePref() {
+ when(mAutoTimePreferenceController.isEnabled()).thenReturn(true);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void updateState_autoTimeDisabled_shouldEnablePref() {
+ when(mAutoTimePreferenceController.isEnabled()).thenReturn(false);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void clickPreference_showDatePicker() {
+ // Click a preference that's not controlled by this controller.
+ mPreference.setKey("fake_key");
+ assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse();
+
+ // Click a preference controlled by this controller.
+ mPreference.setKey(mController.getPreferenceKey());
+ mController.handlePreferenceTreeClick(mPreference);
+ // Should show date picker
+ verify(mHost).showDatePicker();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java b/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
new file mode 100644
index 0000000..8a8c066
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.content.Context;
+import android.content.Intent;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.core.lifecycle.LifecycleObserver;
+import com.android.settings.core.lifecycle.events.OnPause;
+import com.android.settings.core.lifecycle.events.OnResume;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class TimeChangeListenerMixinTest {
+
+ @Mock
+ private UpdateTimeAndDateCallback mCallback;
+
+ private Context mContext;
+ private TimeChangeListenerMixin mMixin;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = ShadowApplication.getInstance().getApplicationContext();
+ mMixin = new TimeChangeListenerMixin(mContext, mCallback);
+ }
+
+ @Test
+ public void shouldImplementMixinInterfaces() {
+ assertThat(mMixin instanceof LifecycleObserver).isTrue();
+ assertThat(mMixin instanceof OnPause).isTrue();
+ assertThat(mMixin instanceof OnResume).isTrue();
+ }
+
+ @Test
+ public void onResume_shouldRegisterIntentFilter() {
+ mMixin.onResume();
+ mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_TICK));
+ mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_CHANGED));
+ mContext.sendBroadcast(new Intent(Intent.ACTION_TIMEZONE_CHANGED));
+
+ verify(mCallback, times(3)).updateTimeAndDateDisplay(mContext);
+ }
+
+ @Test
+ public void onPause_shouldUnregisterIntentFilter() {
+ mMixin.onResume();
+ mMixin.onPause();
+ mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_TICK));
+ mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_CHANGED));
+ mContext.sendBroadcast(new Intent(Intent.ACTION_TIMEZONE_CHANGED));
+
+ verify(mCallback, never()).updateTimeAndDateDisplay(mContext);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
index 91c6a44..41c5a27 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
@@ -18,6 +18,7 @@
import android.content.Context;
+import android.content.Intent;
import android.provider.Settings;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.PreferenceScreen;
@@ -25,6 +26,8 @@
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
+import java.util.List;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -35,6 +38,7 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.verify;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -45,6 +49,7 @@
@Mock
private UpdateTimeAndDateCallback mCallback;
+ private ShadowApplication mApplication;
private Context mContext;
private SwitchPreference mPreference;
private TimeFormatPreferenceController mController;
@@ -52,7 +57,8 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = ShadowApplication.getInstance().getApplicationContext();
+ mApplication = ShadowApplication.getInstance();
+ mContext = mApplication.getApplicationContext();
}
@Test
@@ -94,4 +100,42 @@
assertThat(mPreference.isChecked()).isFalse();
}
+
+ @Test
+ public void updatePreference_12HourSet_shouldSendIntent() {
+ mController = new TimeFormatPreferenceController(mContext, mCallback, false);
+ mPreference = new SwitchPreference(mContext);
+ mPreference.setKey(mController.getPreferenceKey());
+ mPreference.setChecked(false);
+
+ boolean result = mController.handlePreferenceTreeClick(mPreference);
+
+ assertThat(result).isTrue();
+
+ List<Intent> intentsFired = mApplication.getBroadcastIntents();
+ assertThat(intentsFired.size()).isEqualTo(1);
+ Intent intentFired = intentsFired.get(0);
+ assertThat(intentFired.getAction()).isEqualTo(Intent.ACTION_TIME_CHANGED);
+ assertThat(intentFired.getIntExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, -1))
+ .isEqualTo(Intent.EXTRA_TIME_PREF_VALUE_USE_12_HOUR);
+ }
+
+ @Test
+ public void updatePreference_24HourSet_shouldSendIntent() {
+ mController = new TimeFormatPreferenceController(mContext, mCallback, false);
+ mPreference = new SwitchPreference(mContext);
+ mPreference.setKey(mController.getPreferenceKey());
+ mPreference.setChecked(true);
+
+ boolean result = mController.handlePreferenceTreeClick(mPreference);
+
+ assertThat(result).isTrue();
+
+ List<Intent> intentsFired = mApplication.getBroadcastIntents();
+ assertThat(intentsFired.size()).isEqualTo(1);
+ Intent intentFired = intentsFired.get(0);
+ assertThat(intentFired.getAction()).isEqualTo(Intent.ACTION_TIME_CHANGED);
+ assertThat(intentFired.getIntExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, -1))
+ .isEqualTo(Intent.EXTRA_TIME_PREF_VALUE_USE_24_HOUR);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java
new file mode 100644
index 0000000..3995f37
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class TimePreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+ @Mock
+ private TimePreferenceController.TimePreferenceHost mHost;
+ @Mock
+ private AutoTimePreferenceController mAutoTimePreferenceController;
+
+ private TimePreferenceController mController;
+ private Preference mPreference;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mPreference = new Preference(ShadowApplication.getInstance().getApplicationContext());
+ mController = new TimePreferenceController(mContext, mHost, mAutoTimePreferenceController);
+ }
+
+ @Test
+ public void isAlwaysAvailable() {
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void updateState_autoTimeEnabled_shouldDisablePref() {
+ when(mAutoTimePreferenceController.isEnabled()).thenReturn(true);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void updateState_autoTimeDisabled_shouldEnablePref() {
+ when(mAutoTimePreferenceController.isEnabled()).thenReturn(false);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void clickPreference_showTimePicker() {
+ // Click a preference that's not controlled by this controller.
+ mPreference.setKey("fake_key");
+ assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse();
+
+ // Click a preference controlled by this controller.
+ mPreference.setKey(mController.getPreferenceKey());
+ mController.handlePreferenceTreeClick(mPreference);
+ // Should show date picker
+ verify(mHost).showTimePicker();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
new file mode 100644
index 0000000..cab6f71
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datetime;
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class TimeZonePreferenceControllerTest {
+
+ @Mock
+ private AutoTimeZonePreferenceController mAutoTimeZonePreferenceController;
+ private Context mContext;
+ private TimeZonePreferenceController mController;
+ private Preference mPreference;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = ShadowApplication.getInstance().getApplicationContext();
+ mPreference = new Preference(mContext);
+ mController = spy(new TimeZonePreferenceController(mContext,
+ mAutoTimeZonePreferenceController));
+ }
+
+ @Test
+ public void isAlwaysAvailable() {
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void updateState_autoTimeZoneEnabled_shouldDisablePref() {
+ doReturn("test timezone").when(mController).getTimeZoneOffsetAndName();
+ when(mAutoTimeZonePreferenceController.isEnabled()).thenReturn(true);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void updateState_autoTimeZoneDisabled_shouldEnablePref() {
+ doReturn("test timezone").when(mController).getTimeZoneOffsetAndName();
+ when(mAutoTimeZonePreferenceController.isEnabled()).thenReturn(false);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/development/BugReportInPowerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BugReportInPowerPreferenceControllerTest.java
new file mode 100644
index 0000000..4ca6609
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/BugReportInPowerPreferenceControllerTest.java
@@ -0,0 +1,193 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.provider.Settings;
+import android.os.UserManager;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Answers.RETURNS_DEEP_STUBS;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doCallRealMethod;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class BugReportInPowerPreferenceControllerTest {
+
+ @Mock(answer = RETURNS_DEEP_STUBS)
+ private PreferenceScreen mScreen;
+ @Mock
+ private UserManager mUserManager;
+ @Mock
+ private PackageManager mPackageManager;
+
+ private Context mContext;
+ private SwitchPreference mPreference;
+ private BugReportInPowerPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ ShadowApplication shadowContext = ShadowApplication.getInstance();
+ shadowContext.setSystemService(Context.USER_SERVICE, mUserManager);
+ mContext = spy(shadowContext.getApplicationContext());
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ mPreference = new SwitchPreference(mContext);
+ when(mScreen.findPreference(anyString())).thenReturn(mPreference);
+ mController = new BugReportInPowerPreferenceController(mContext);
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void displayPreference_hasDebugRestriction_shouldRemovePreference() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(true);
+
+ mController.displayPreference(mScreen);
+
+ verify(mScreen).removePreference(any(Preference.class));
+ }
+
+ @Test
+ public void displayPreference_noDebugRestriction_shouldNotRemovePreference() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+
+ mController.displayPreference(mScreen);
+
+ verify(mScreen, never()).removePreference(any(Preference.class));
+ }
+
+ @Test
+ public void enablePreference_hasDebugRestriction_shouldNotEnable() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(true);
+ mController.displayPreference(mScreen);
+ mPreference.setEnabled(false);
+
+ mController.enablePreference(true);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void enablePreference_noDebugRestriction_shouldEnable() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+ mController.displayPreference(mScreen);
+ mPreference.setEnabled(false);
+
+ mController.enablePreference(true);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void resetPreference_shouldUncheck() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+ mController.displayPreference(mScreen);
+ mPreference.setChecked(true);
+
+ mController.resetPreference();
+
+ assertThat(mPreference.isChecked()).isFalse();
+ }
+
+ @Test
+ public void handlePreferenceTreeClick_shouldUpdateSettings() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Global.BUGREPORT_IN_POWER_MENU, 0);
+ mPreference.setChecked(true);
+ mController.displayPreference(mScreen);
+
+ mController.handlePreferenceTreeClick(mPreference);
+
+ assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Global.BUGREPORT_IN_POWER_MENU, 0)).isEqualTo(1);
+ }
+
+ @Test
+ public void updateState_settingsOn_shouldCheck() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Global.BUGREPORT_IN_POWER_MENU, 1);
+ mPreference.setChecked(false);
+ mController.displayPreference(mScreen);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isChecked()).isTrue();
+ }
+
+ @Test
+ public void updateState_settingsOff_shouldUncheck() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Global.BUGREPORT_IN_POWER_MENU, 0);
+ mPreference.setChecked(true);
+ mController.displayPreference(mScreen);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isChecked()).isFalse();
+ }
+
+ @Test
+ public void updateBugreportOptions_shouldEnable() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+ mPreference.setEnabled(false);
+ mController.displayPreference(mScreen);
+
+ mController.updateBugreportOptions();
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void updateBugreportOptions_shouldEnableBugReportStorage() {
+ final ComponentName componentName = new ComponentName("com.android.shell",
+ "com.android.shell.BugreportStorageProvider");
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+ mController.displayPreference(mScreen);
+
+ mController.updateBugreportOptions();
+
+ verify(mPackageManager).setComponentEnabledSetting(eq(componentName), anyInt(), anyInt());
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/development/BugReportPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BugReportPreferenceControllerTest.java
new file mode 100644
index 0000000..377b467
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/BugReportPreferenceControllerTest.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settingslib.drawer.CategoryKey;
+
+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.annotation.Config;
+
+import static org.mockito.Answers.RETURNS_DEEP_STUBS;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class BugReportPreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+ @Mock
+ private Preference mPreference;
+ @Mock(answer = RETURNS_DEEP_STUBS)
+ private PreferenceScreen mScreen;
+ @Mock
+ private UserManager mUserManager;
+
+ private BugReportPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+ when(mScreen.findPreference(anyString())).thenReturn(mPreference);
+ mController = new BugReportPreferenceController(mContext);
+ }
+
+ @Test
+ public void displayPreference_hasDebugRestriction_shouldRemovePreference() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(true);
+
+ mController.displayPreference(mScreen);
+
+ verify(mScreen).removePreference(any(Preference.class));
+ }
+
+ @Test
+ public void displayPreference_noDebugRestriction_shouldNotRemovePreference() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+
+ mController.displayPreference(mScreen);
+
+ verify(mScreen, never()).removePreference(any(Preference.class));
+ }
+
+ @Test
+ public void enablePreference_hasDebugRestriction_shouldNotEnable() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(true);
+ mController.displayPreference(mScreen);
+
+ mController.enablePreference(true);
+
+ verify(mPreference, never()).setEnabled(anyBoolean());
+ }
+
+ @Test
+ public void enablePreference_noDebugRestriction_shouldEnable() {
+ when(mUserManager.hasUserRestriction(anyString())).thenReturn(false);
+ mController.displayPreference(mScreen);
+
+ mController.enablePreference(true);
+
+ verify(mPreference).setEnabled(anyBoolean());
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerBaseTest.java
new file mode 100644
index 0000000..66233f5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerBaseTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.enterprise;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.util.Date;
+
+/**
+ * Tests for {@link AdminActionPreferenceControllerBase}.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public final class AdminActionPreferenceControllerBaseTest extends
+ AdminActionPreferenceControllerTestBase {
+
+ private Date mDate;
+
+ @Override
+ public void setUp() {
+ super.setUp();
+ mController = new AdminActionPreferenceControllerBaseTestable();
+ }
+
+ @Override
+ public void setDate(Date date) {
+ mDate = date;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return null;
+ }
+
+ private class AdminActionPreferenceControllerBaseTestable extends
+ AdminActionPreferenceControllerBase {
+ AdminActionPreferenceControllerBaseTestable() {
+ super(mContext);
+ }
+
+ @Override
+ protected Date getAdminActionTimestamp() {
+ return mDate;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return null;
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerTestBase.java b/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerTestBase.java
new file mode 100644
index 0000000..c8cb69c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/enterprise/AdminActionPreferenceControllerTestBase.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.enterprise;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+import android.text.format.DateUtils;
+
+import com.android.settings.R;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+/**
+ * Common base for testing subclasses of {@link AdminActionPreferenceControllerBase}.
+ */
+public abstract class AdminActionPreferenceControllerTestBase {
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ protected Context mContext;
+ protected FakeFeatureFactory mFeatureFactory;
+
+ protected AdminActionPreferenceControllerBase mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest(mContext);
+ mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ }
+
+ protected abstract void setDate(Date date);
+
+ @Test
+ public void testUpdateState() {
+ final Preference preference = new Preference(mContext, null, 0, 0);
+ when(mContext.getString(R.string.enterprise_privacy_never)).thenReturn("Never");
+ Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24, "24");
+
+ setDate(null);
+ mController.updateState(preference);
+ assertThat(preference.getSummary()).isEqualTo("Never");
+
+ final Date date = new GregorianCalendar(2011 /* year */, 10 /* month */, 9 /* dayOfMonth */,
+ 8 /* hourOfDay */, 7 /* minute */, 6 /* second */).getTime();
+ setDate(date);
+ mController.updateState(preference);
+ assertThat(preference.getSummary()).isEqualTo(DateUtils.formatDateTime(
+ mContext, date.getTime(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE));
+ }
+
+ @Test
+ public void testIsAvailable() {
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void testHandlePreferenceTreeClick() {
+ assertThat(mController.handlePreferenceTreeClick(new Preference(mContext, null, 0, 0)))
+ .isFalse();
+ }
+
+ public abstract String getPreferenceKey();
+
+ @Test
+ public void testGetPreferenceKey() {
+ assertThat(mController.getPreferenceKey()).isEqualTo(getPreferenceKey());
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/enterprise/BugReportsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/BugReportsPreferenceControllerTest.java
new file mode 100644
index 0000000..ae1e264
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/enterprise/BugReportsPreferenceControllerTest.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.enterprise;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.util.Date;
+
+import static org.mockito.Mockito.when;
+
+/**
+ * Tests for {@link BugReportsPreferenceController}.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public final class BugReportsPreferenceControllerTest extends
+ AdminActionPreferenceControllerTestBase {
+
+ @Override
+ public void setUp() {
+ super.setUp();
+ mController = new BugReportsPreferenceController(mContext);
+ }
+
+ @Override
+ public void setDate(Date date) {
+ when(mFeatureFactory.enterprisePrivacyFeatureProvider.getLastBugReportRequestTime())
+ .thenReturn(date);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return "bug_reports";
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
index be43d0e..9688c12 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java
@@ -23,6 +23,7 @@
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.applications.PackageManagerWrapper;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -30,6 +31,8 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
+import java.util.Date;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
@@ -41,6 +44,7 @@
public final class EnterprisePrivacyFeatureProviderImplTest {
private final ComponentName DEVICE_OWNER = new ComponentName("dummy", "component");
+ private final Date TIMESTAMP = new Date(2011, 11, 11);
private @Mock DevicePolicyManagerWrapper mDevicePolicyManager;
private @Mock PackageManagerWrapper mPackageManager;
@@ -65,4 +69,32 @@
when(mDevicePolicyManager.getDeviceOwnerComponentOnAnyUser()).thenReturn(DEVICE_OWNER);
assertThat(mProvider.hasDeviceOwner()).isTrue();
}
+
+ @Test
+ public void testGetLastSecurityLogRetrievalTime() {
+ when(mDevicePolicyManager.getLastSecurityLogRetrievalTime()).thenReturn(-1L);
+ assertThat(mProvider.getLastSecurityLogRetrievalTime()).isNull();
+
+ when(mDevicePolicyManager.getLastSecurityLogRetrievalTime())
+ .thenReturn(TIMESTAMP.getTime());
+ assertThat(mProvider.getLastSecurityLogRetrievalTime()).isEqualTo(TIMESTAMP);
+ }
+
+ @Test
+ public void testGetLastBugReportRequestTime() {
+ when(mDevicePolicyManager.getLastBugReportRequestTime()).thenReturn(-1L);
+ assertThat(mProvider.getLastBugReportRequestTime()).isNull();
+
+ when(mDevicePolicyManager.getLastBugReportRequestTime()).thenReturn(TIMESTAMP.getTime());
+ assertThat(mProvider.getLastBugReportRequestTime()).isEqualTo(TIMESTAMP);
+ }
+
+ @Test
+ public void testGetLastNetworkLogRetrievalTime() {
+ when(mDevicePolicyManager.getLastNetworkLogRetrievalTime()).thenReturn(-1L);
+ assertThat(mProvider.getLastNetworkLogRetrievalTime()).isNull();
+
+ when(mDevicePolicyManager.getLastNetworkLogRetrievalTime()).thenReturn(TIMESTAMP.getTime());
+ assertThat(mProvider.getLastNetworkLogRetrievalTime()).isEqualTo(TIMESTAMP);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java
index 28db647..f6e18c6 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java
@@ -73,7 +73,10 @@
final List<PreferenceController> controllers = mSettings.getPreferenceControllers(
ShadowApplication.getInstance().getApplicationContext());
assertThat(controllers).isNotNull();
- assertThat(controllers.size()).isEqualTo(1);
+ assertThat(controllers.size()).isEqualTo(4);
assertThat(controllers.get(0)).isInstanceOf(InstalledPackagesPreferenceController.class);
+ assertThat(controllers.get(1)).isInstanceOf(NetworkLogsPreferenceController.class);
+ assertThat(controllers.get(2)).isInstanceOf(BugReportsPreferenceController.class);
+ assertThat(controllers.get(3)).isInstanceOf(SecurityLogsPreferenceController.class);
}
}
diff --git a/tests/robotests/src/com/android/settings/enterprise/InstalledPackagesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/InstalledPackagesPreferenceControllerTest.java
index fe41faa..79db853 100644
--- a/tests/robotests/src/com/android/settings/enterprise/InstalledPackagesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/InstalledPackagesPreferenceControllerTest.java
@@ -73,7 +73,8 @@
return null;
}}).when(mFeatureFactory.applicationFeatureProvider)
.calculateNumberOfInstalledApps(anyObject());
- when(mContext.getResources().getQuantityString(R.plurals.number_installed_packages, 20, 20))
+ when(mContext.getResources().getQuantityString(
+ R.plurals.enterprise_privacy_number_installed_packages, 20, 20))
.thenReturn("20 packages");
mController.updateState(preference);
assertThat(preference.getTitle()).isEqualTo("20 packages");
diff --git a/tests/robotests/src/com/android/settings/enterprise/NetworkLogsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/NetworkLogsPreferenceControllerTest.java
new file mode 100644
index 0000000..fe9fcf6
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/enterprise/NetworkLogsPreferenceControllerTest.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.enterprise;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.util.Date;
+
+import static org.mockito.Mockito.when;
+
+/**
+ * Tests for {@link NetworkLogsPreferenceController}.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public final class NetworkLogsPreferenceControllerTest extends
+ AdminActionPreferenceControllerTestBase {
+
+ @Override
+ public void setUp() {
+ super.setUp();
+ mController = new NetworkLogsPreferenceController(mContext);
+ }
+
+ @Override
+ public void setDate(Date date) {
+ when(mFeatureFactory.enterprisePrivacyFeatureProvider.getLastNetworkLogRetrievalTime())
+ .thenReturn(date);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return "network_logs";
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/enterprise/SecurityLogsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/SecurityLogsPreferenceControllerTest.java
new file mode 100644
index 0000000..b260d61
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/enterprise/SecurityLogsPreferenceControllerTest.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.enterprise;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+import java.util.Date;
+
+import static org.mockito.Mockito.when;
+
+/**
+ * Tests for {@link SecurityLogsPreferenceController}.
+ */
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public final class SecurityLogsPreferenceControllerTest extends
+ AdminActionPreferenceControllerTestBase {
+
+ @Override
+ public void setUp() {
+ super.setUp();
+ mController = new SecurityLogsPreferenceController(mContext);
+ }
+
+ @Override
+ public void setDate(Date date) {
+ when(mFeatureFactory.enterprisePrivacyFeatureProvider.getLastSecurityLogRetrievalTime())
+ .thenReturn(date);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return "security_logs";
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerSettingsTest.java
new file mode 100644
index 0000000..b5fdfea
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerSettingsTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+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.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DoubleTapPowerSettingsTest {
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private Context mContext;
+
+ private DoubleTapPowerSettings mSettings;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest(mContext);
+ final FakeFeatureFactory factory =
+ (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+ mSettings = new DoubleTapPowerSettings();
+ }
+
+ @Test
+ public void testSearchIndexProvider_shouldIndexResource() {
+ final List<SearchIndexableResource> indexRes =
+ DoubleTapPowerSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ ShadowApplication.getInstance().getApplicationContext(),
+ true /* enabled */);
+
+ assertThat(indexRes).isNotNull();
+ assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenSettingsTest.java
new file mode 100644
index 0000000..c0aac43
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenSettingsTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+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.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DoubleTapScreenSettingsTest {
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private Context mContext;
+
+ private DoubleTapScreenSettings mSettings;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest(mContext);
+ final FakeFeatureFactory factory =
+ (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+ mSettings = new DoubleTapScreenSettings();
+ }
+
+ @Test
+ public void testSearchIndexProvider_shouldIndexResource() {
+ final List<SearchIndexableResource> indexRes =
+ DoubleTapScreenSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ ShadowApplication.getInstance().getApplicationContext(),
+ true /* enabled */);
+
+ assertThat(indexRes).isNotNull();
+ assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTwistGestureSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTwistGestureSettingsTest.java
new file mode 100644
index 0000000..f2a56d7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTwistGestureSettingsTest.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+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.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DoubleTwistGestureSettingsTest {
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private Context mContext;
+
+ private DoubleTwistGestureSettings mSettings;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest(mContext);
+ final FakeFeatureFactory factory =
+ (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+ mSettings = new DoubleTwistGestureSettings();
+ }
+
+ @Test
+ public void testSearchIndexProvider_shouldIndexResource() {
+ final List<SearchIndexableResource> indexRes =
+ DoubleTwistGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ ShadowApplication.getInstance().getApplicationContext(),
+ true /* enabled */);
+
+ assertThat(indexRes).isNotNull();
+ assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/PickupGestureSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/PickupGestureSettingsTest.java
new file mode 100644
index 0000000..cf08836
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/PickupGestureSettingsTest.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+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.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class PickupGestureSettingsTest {
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private Context mContext;
+
+ private PickupGestureSettings mSettings;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest(mContext);
+ final FakeFeatureFactory factory =
+ (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
+ mSettings = new PickupGestureSettings();
+ }
+
+ @Test
+ public void testSearchIndexProvider_shouldIndexResource() {
+ final List<SearchIndexableResource> indexRes =
+ PickupGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ ShadowApplication.getInstance().getApplicationContext(),
+ true /* enabled */);
+
+ assertThat(indexRes).isNotNull();
+ assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationSettingsTest.java
index 19185a0..b9f3bac 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationSettingsTest.java
@@ -17,11 +17,13 @@
package com.android.settings.gestures;
import android.content.Context;
+import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.core.PreferenceController;
+import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
import org.junit.Test;
@@ -30,10 +32,12 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
import java.util.List;
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -46,6 +50,10 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest(mContext);
+ final FakeFeatureFactory factory =
+ (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
mFragment = new SwipeToNotificationSettings();
}
@@ -62,4 +70,14 @@
assertThat(controllers.isEmpty()).isFalse();
}
+ @Test
+ public void testSearchIndexProvider_shouldIndexResource() {
+ final List<SearchIndexableResource> indexRes =
+ SwipeToNotificationSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ ShadowApplication.getInstance().getApplicationContext(),
+ true /* enabled */);
+
+ assertThat(indexRes).isNotNull();
+ assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
+ }
}
diff --git a/tests/robotests/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java
new file mode 100644
index 0000000..5827c8b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network;
+
+import android.content.Context;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class MobilePlanPreferenceControllerTest {
+
+ @Test
+ public void testNoProvisionStringFormattedCorrectly() {
+ final String operator = "test_operator";
+ final Context context = ShadowApplication.getInstance().getApplicationContext();
+ assertThat(context.getString(R.string.mobile_no_provisioning_url, operator, operator))
+ .contains(operator);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
index 6dd9c75..b30e3ff 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
@@ -16,8 +16,11 @@
package com.android.settings.network;
import android.content.Context;
+import android.provider.SearchIndexableResource;
+
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
+import com.android.settings.accounts.UserAndAccountDashboardFragment;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.drawer.CategoryKey;
import org.junit.Before;
@@ -27,8 +30,12 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.List;
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -43,6 +50,9 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
FakeFeatureFactory.setupForTest(mContext);
+ final FakeFeatureFactory factory =
+ (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true);
mFragment = new NetworkDashboardFragment();
}
@@ -50,4 +60,15 @@
public void testCategory_isNetwork() {
assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_NETWORK);
}
+
+ @Test
+ public void testSearchIndexProvider_shouldIndexResource() {
+ final List<SearchIndexableResource> indexRes =
+ NetworkDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ ShadowApplication.getInstance().getApplicationContext(),
+ true /* enabled */);
+
+ assertThat(indexRes).isNotNull();
+ assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
+ }
}
diff --git a/tests/robotests/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceControllerTest.java
new file mode 100644
index 0000000..994582c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceControllerTest.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.accounts.AccountRestrictionHelper;
+import com.android.settingslib.RestrictedPreference;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doCallRealMethod;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AdjustVolumeRestrictedPreferenceControllerTest {
+
+ @Mock
+ private AccountRestrictionHelper mAccountHelper;
+
+ private Context mContext;
+ private AdjustVolumeRestrictedPreferenceControllerTestable mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ ShadowApplication shadowContext = ShadowApplication.getInstance();
+ mContext = spy(shadowContext.getApplicationContext());
+ mController =
+ new AdjustVolumeRestrictedPreferenceControllerTestable(mContext, mAccountHelper);
+ }
+
+ @Test
+ public void updateState_hasBaseRestriction_shouldDisable() {
+ RestrictedPreference preference = mock(RestrictedPreference.class);
+ when(mAccountHelper.hasBaseUserRestriction(
+ eq(UserManager.DISALLOW_ADJUST_VOLUME), anyInt())).thenReturn(true);
+
+ mController.updateState(preference);
+
+ assertThat(preference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void updateState_NoBaseRestriction_shouldCheckRestriction() {
+ RestrictedPreference preference = spy(new RestrictedPreference(mContext));
+
+ when(mContext.getSystemService(Context.DEVICE_POLICY_SERVICE)).thenReturn(null);
+ when(mAccountHelper.hasBaseUserRestriction(
+ eq(UserManager.DISALLOW_ADJUST_VOLUME), anyInt())).thenReturn(false);
+ doCallRealMethod().when(mAccountHelper).enforceRestrictionOnPreference(
+ eq(preference), eq(UserManager.DISALLOW_ADJUST_VOLUME), anyInt());
+
+ mController.updateState(preference);
+
+ verify(preference).checkRestrictionAndSetDisabled(
+ eq(UserManager.DISALLOW_ADJUST_VOLUME), anyInt());
+ }
+
+ private class AdjustVolumeRestrictedPreferenceControllerTestable extends
+ AdjustVolumeRestrictedPreferenceController {
+ AdjustVolumeRestrictedPreferenceControllerTestable(Context context,
+ AccountRestrictionHelper helper) {
+ super(context, helper);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return null;
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ return false;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/AlarmRingtonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/AlarmRingtonePreferenceControllerTest.java
new file mode 100644
index 0000000..4ac9179
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/AlarmRingtonePreferenceControllerTest.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AlarmRingtonePreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+ private AlarmRingtonePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mController = new AlarmRingtonePreferenceController(mContext);
+ }
+
+ @Test
+ public void getRingtoneType_shouldReturnAlarm() {
+ assertThat(mController.getRingtoneType()).isEqualTo(RingtoneManager.TYPE_ALARM);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/AlarmVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/AlarmVolumePreferenceControllerTest.java
new file mode 100644
index 0000000..a08ec17
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/AlarmVolumePreferenceControllerTest.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AlarmVolumePreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+ @Mock
+ private AudioHelper mHelper;
+
+ private AlarmVolumePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mController = new AlarmVolumePreferenceController(mContext, null, null, mHelper);
+ }
+
+ @Test
+ public void isAvailable_singleVolume_shouldReturnFalse() {
+ when(mHelper.isSingleVolume()).thenReturn(true);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_notSingleVolume_shouldReturnTrue() {
+ when(mHelper.isSingleVolume()).thenReturn(false);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void getAudioStream_shouldReturnAlarm() {
+ assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_ALARM);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/CastPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/CastPreferenceControllerTest.java
new file mode 100644
index 0000000..5fe4c42
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/CastPreferenceControllerTest.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.telephony.TelephonyManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+import java.util.ArrayList;
+import java.util.List;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class CastPreferenceControllerTest {
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+
+ private Context mContext;
+ private CastPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ ShadowApplication shadowContext = ShadowApplication.getInstance();
+ shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
+ mContext = shadowContext.getApplicationContext();
+ mController = new CastPreferenceController(mContext);
+ }
+
+ @Test
+ public void isAlwaysAvailable() {
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void updateNonIndexableKeys_voiceCapable_shouldNotUpdate() {
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+ final List<String> keys = new ArrayList<>();
+
+ mController.updateNonIndexableKeys(keys);
+
+ assertThat(keys).isEmpty();
+ }
+
+ @Test
+ public void updateNonIndexableKeys_voiceIncapable_shouldUpdate() {
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+ final List<String> keys = new ArrayList<>();
+
+ mController.updateNonIndexableKeys(keys);
+
+ assertThat(keys).isNotEmpty();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/EmergencyBroadcastPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/EmergencyBroadcastPreferenceControllerTest.java
new file mode 100644
index 0000000..98951d1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/EmergencyBroadcastPreferenceControllerTest.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.accounts.AccountRestrictionHelper;
+import com.android.settingslib.RestrictedPreference;
+
+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.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class EmergencyBroadcastPreferenceControllerTest {
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private Context mContext;
+ @Mock
+ private AccountRestrictionHelper mAccountHelper;
+ @Mock
+ private PackageManager mPackageManager;
+ @Mock
+ private UserManager mUserManager;
+ @Mock
+ private RestrictedPreference mPreference;
+
+ private EmergencyBroadcastPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ mController = new EmergencyBroadcastPreferenceController(mContext, mAccountHelper);
+ }
+
+ @Test
+ public void updateState_shouldCheckRestriction() {
+ mController.updateState(mPreference);
+
+ verify(mPreference).checkRestrictionAndSetDisabled(anyString());
+ }
+
+ @Test
+ public void isAvailable_notAdminUser_shouldReturnFalse() {
+ when(mUserManager.isAdminUser()).thenReturn(false);
+ when(mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
+ when(mPackageManager.getApplicationEnabledSetting(anyString()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+ when(mAccountHelper.hasBaseUserRestriction(anyString(), anyInt())).thenReturn(false);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_hasConfigCellBroadcastRestriction_shouldReturnFalse() {
+ when(mUserManager.isAdminUser()).thenReturn(true);
+ when(mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
+ when(mPackageManager.getApplicationEnabledSetting(anyString()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+ when(mAccountHelper.hasBaseUserRestriction(
+ eq(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS), anyInt())).thenReturn(true);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_cellBroadcastAppLinkDisabled_shouldReturnFalse() {
+ when(mUserManager.isAdminUser()).thenReturn(true);
+ when(mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(false);
+ when(mPackageManager.getApplicationEnabledSetting(anyString()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+ when(mAccountHelper.hasBaseUserRestriction(anyString(), anyInt())).thenReturn(false);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_cellBroadcastReceiverDisabled_shouldReturnFalse() {
+ when(mUserManager.isAdminUser()).thenReturn(true);
+ when(mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_cellBroadcastAppLinks)).thenReturn(true);
+ when(mPackageManager.getApplicationEnabledSetting(anyString()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
+ when(mAccountHelper.hasBaseUserRestriction(anyString(), anyInt())).thenReturn(false);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
new file mode 100644
index 0000000..9944379
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class MediaVolumePreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+
+ private MediaVolumePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mController = new MediaVolumePreferenceController(mContext, null, null);
+ }
+
+ @Test
+ public void isAlwaysAvailable() {
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void getAudioStream_shouldReturnMusic() {
+ assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_MUSIC);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java
new file mode 100644
index 0000000..841367f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class NotificationRingtonePreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+ private NotificationRingtonePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mController = new NotificationRingtonePreferenceController(mContext);
+ }
+
+ @Test
+ public void getRingtoneType_shouldReturnNotification() {
+ assertThat(mController.getRingtoneType()).isEqualTo(RingtoneManager.TYPE_NOTIFICATION);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationVolumePreferenceControllerTest.java
new file mode 100644
index 0000000..e6d8a41
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/NotificationVolumePreferenceControllerTest.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.AudioManager;
+import android.os.Vibrator;
+import android.telephony.TelephonyManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class NotificationVolumePreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+ @Mock
+ private AudioHelper mHelper;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private AudioManager mAudioManager;
+ @Mock
+ private Vibrator mVibrator;
+
+ private NotificationVolumePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+ when(mContext.getSystemService(Context.AUDIO_SERVICE)).thenReturn(mAudioManager);
+ when(mContext.getSystemService(Context.VIBRATOR_SERVICE)).thenReturn(mVibrator);
+ mController = new NotificationVolumePreferenceController(mContext, null, null, mHelper);
+ }
+
+ @Test
+ public void isAvailable_singleVolume_shouldReturnFalse() {
+ when(mHelper.isSingleVolume()).thenReturn(true);
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_voiceCapable_shouldReturnFalse() {
+ when(mHelper.isSingleVolume()).thenReturn(false);
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_notSingleVolume_notVoiceCapable_shouldReturnTrue() {
+ when(mHelper.isSingleVolume()).thenReturn(false);
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void getAudioStream_shouldReturnNotification() {
+ assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_NOTIFICATION);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/PhoneRingtonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/PhoneRingtonePreferenceControllerTest.java
new file mode 100644
index 0000000..85e74b0
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/PhoneRingtonePreferenceControllerTest.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.media.RingtoneManager;
+import android.telephony.TelephonyManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class PhoneRingtonePreferenceControllerTest {
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+
+ private Context mContext;
+ private PhoneRingtonePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ ShadowApplication shadowContext = ShadowApplication.getInstance();
+ shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
+ mContext = shadowContext.getApplicationContext();
+ mController = new PhoneRingtonePreferenceController(mContext);
+ }
+
+ @Test
+ public void isAvailable_notVoiceCapable_shouldReturnFalse() {
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_VoiceCapable_shouldReturnTrue() {
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void getRingtoneType_shouldReturnRingtone() {
+ assertThat(mController.getRingtoneType()).isEqualTo(RingtoneManager.TYPE_RINGTONE);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java
new file mode 100644
index 0000000..4780e5c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.app.NotificationManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.media.AudioManager;
+import android.os.Vibrator;
+import android.telephony.TelephonyManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class RingVolumePreferenceControllerTest {
+
+ @Mock
+ private AudioHelper mHelper;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private AudioManager mAudioManager;
+ @Mock
+ private Vibrator mVibrator;
+ @Mock
+ private NotificationManager mNotificationManager;
+ @Mock
+ private ComponentName mSuppressor;
+
+ private Context mContext;
+ private RingVolumePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ ShadowApplication shadowContext = ShadowApplication.getInstance();
+ shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
+ shadowContext.setSystemService(Context.AUDIO_SERVICE, mAudioManager);
+ shadowContext.setSystemService(Context.VIBRATOR_SERVICE, mVibrator);
+ shadowContext.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
+ mContext = shadowContext.getApplicationContext();
+ when(mNotificationManager.getEffectsSuppressor()).thenReturn(mSuppressor);
+ mController = new RingVolumePreferenceController(mContext, null, null, mHelper);
+ }
+
+ @Test
+ public void isAvailable_singleVolume_shouldReturnFalse() {
+ when(mHelper.isSingleVolume()).thenReturn(true);
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_notVoiceCapable_shouldReturnFalse() {
+ when(mHelper.isSingleVolume()).thenReturn(false);
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_notSingleVolume_VoiceCapable_shouldReturnTrue() {
+ when(mHelper.isSingleVolume()).thenReturn(false);
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void getAudioStream_shouldReturnRing() {
+ assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_RING);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/RingtonePreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/notification/RingtonePreferenceControllerBaseTest.java
new file mode 100644
index 0000000..d680c38
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/RingtonePreferenceControllerBaseTest.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.support.v7.preference.Preference;
+import android.media.RingtoneManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class RingtonePreferenceControllerBaseTest {
+
+ @Mock
+ private Context mContext;
+
+ private RingtonePreferenceControllerBase mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mController = new RingtonePreferenceControllerBaseTestable(mContext);
+ }
+
+ @Test
+ public void isAlwaysAvailable() {
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+
+ @Test
+ public void updateState_shouldSetSummary() {
+ Preference preference = mock(Preference.class);
+
+ mController.updateState(preference);
+
+ verify(preference).setSummary(anyString());
+ }
+
+ private class RingtonePreferenceControllerBaseTestable extends
+ RingtonePreferenceControllerBase {
+ RingtonePreferenceControllerBaseTestable(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return null;
+ }
+
+ @Override
+ public int getRingtoneType() {
+ return RingtoneManager.TYPE_RINGTONE;
+ }
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/VibrateWhenRingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/VibrateWhenRingPreferenceControllerTest.java
new file mode 100644
index 0000000..3c3f212
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/VibrateWhenRingPreferenceControllerTest.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.support.v7.preference.TwoStatePreference;
+import android.telephony.TelephonyManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static android.provider.Settings.System.VIBRATE_WHEN_RINGING;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class VibrateWhenRingPreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+ @Mock
+ private PreferenceScreen mScreen;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+
+ private VibrateWhenRingPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+ mController = new VibrateWhenRingPreferenceController(mContext);
+ }
+
+ @Test
+ public void display_voiceCapable_shouldDisplay() {
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
+ when(mScreen.findPreference(mController.getPreferenceKey()))
+ .thenReturn(mock(Preference.class));
+
+ mController.displayPreference(mScreen);
+
+ verify(mScreen, never()).removePreference(any(Preference.class));
+ }
+
+ @Test
+ public void display_notVoiceCapable_shouldNotDisplay() {
+ when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
+ when(mScreen.findPreference(mController.getPreferenceKey()))
+ .thenReturn(mock(Preference.class));
+
+ mController.displayPreference(mScreen);
+
+ verify(mScreen).removePreference(any(Preference.class));
+ }
+
+ @Test
+ public void updateState_settingIsOn_preferenceShouldBeChecked() {
+ final TwoStatePreference preference = mock(TwoStatePreference.class);
+ final Context context = ShadowApplication.getInstance().getApplicationContext();
+ Settings.System.putInt(context.getContentResolver(), VIBRATE_WHEN_RINGING, 1);
+
+ mController = new VibrateWhenRingPreferenceController(context);
+ mController.updateState(preference);
+
+ verify(preference).setChecked(true);
+ }
+
+ @Test
+ public void updateState_settingIsOff_preferenceShouldNotBeChecked() {
+ final TwoStatePreference preference = mock(TwoStatePreference.class);
+ final Context context = ShadowApplication.getInstance().getApplicationContext();
+ Settings.System.putInt(context.getContentResolver(), VIBRATE_WHEN_RINGING, 0);
+
+ mController = new VibrateWhenRingPreferenceController(context);
+ mController.updateState(preference);
+
+ verify(preference).setChecked(false);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceControllerTest.java
new file mode 100644
index 0000000..581ed47
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceControllerTest.java
@@ -0,0 +1,152 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.preference.SeekBarVolumizer;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class VolumeSeekBarPreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+ @Mock
+ private PreferenceScreen mScreen;
+ @Mock
+ private VolumeSeekBarPreference mPreference;
+ @Mock
+ private VolumeSeekBarPreference.Callback mCallback;
+
+ private VolumeSeekBarPreferenceControllerTestable mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ when(mScreen.findPreference(anyString())).thenReturn(mPreference);
+ mController =
+ new VolumeSeekBarPreferenceControllerTestable(mContext, mCallback);
+ }
+
+ @Test
+ public void displayPreference_available_shouldUpdatePreference() {
+ mController.displayPreference(mScreen);
+
+ verify(mPreference).setCallback(mCallback);
+ verify(mPreference).setStream(mController.AUDIO_STREAM);
+ verify(mPreference).setMuteIcon(mController.MUTE_ICON);
+ }
+
+ @Test
+ public void displayPreference_notAvailable_shouldNotUpdatePreference() {
+ mController =
+ new VolumeSeekBarPreferenceControllerTestable(mContext, mCallback, false);
+
+ mController.displayPreference(mScreen);
+
+ verify(mPreference, never()).setCallback(any(VolumeSeekBarPreference.Callback.class));
+ verify(mPreference, never()).setStream(anyInt());
+ verify(mPreference, never()).setMuteIcon(anyInt());
+ }
+
+ @Test
+ public void onResume_shouldResumePreference() {
+ mController.displayPreference(mScreen);
+
+ mController.onResume();
+
+ verify(mPreference).onActivityResume();
+ }
+
+ @Test
+ public void onPause_shouldPausePreference() {
+ mController.displayPreference(mScreen);
+
+ mController.onPause();
+
+ verify(mPreference).onActivityPause();
+ }
+
+ private class VolumeSeekBarPreferenceControllerTestable extends
+ VolumeSeekBarPreferenceController {
+
+ private final static int AUDIO_STREAM = 1;
+ private final static int MUTE_ICON = 2;
+
+ private boolean mAvailable;
+
+ VolumeSeekBarPreferenceControllerTestable(Context context,
+ VolumeSeekBarPreference.Callback callback) {
+ this(context, callback, true);
+ }
+
+ VolumeSeekBarPreferenceControllerTestable(Context context,
+ VolumeSeekBarPreference.Callback callback, boolean available) {
+ super(context, callback, null);
+ mAvailable = available;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return null;
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ return false;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return mAvailable;
+ }
+
+ @Override
+ public int getAudioStream() {
+ return AUDIO_STREAM;
+ }
+
+ @Override
+ public int getMuteIcon() {
+ return MUTE_ICON;
+ }
+
+ private void setAvailable(boolean available) {
+
+ }
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
new file mode 100644
index 0000000..155e6ea
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class ZenModePreferenceControllerTest {
+
+ @Mock
+ private Context mContext;
+
+ private ZenModePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mController = new ZenModePreferenceController(mContext);
+ }
+
+ @Test
+ public void isAlwaysAvailable() {
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
index 4c11008..573f5d8 100644
--- a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
@@ -18,6 +18,7 @@
import android.content.ComponentName;
import android.content.Intent;
+import android.os.Bundle;
import android.provider.Settings;
import com.android.settings.ChooseLockGeneric;
@@ -59,7 +60,9 @@
public void testChooseLockGeneric() {
Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 1);
- SetNewPasswordActivity activity = Robolectric.setupActivity(SetNewPasswordActivity.class);
+ SetNewPasswordActivity activity =
+ Robolectric.buildActivity(SetNewPasswordActivity.class).get();
+ activity.launchChooseLock(new Bundle());
ShadowActivity shadowActivity = shadowOf(activity);
Intent intent = shadowActivity.getNextStartedActivityForResult().intent;
@@ -71,7 +74,9 @@
public void testSetupChooseLockGeneric() {
Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 0);
- SetNewPasswordActivity activity = Robolectric.setupActivity(SetNewPasswordActivity.class);
+ SetNewPasswordActivity activity =
+ Robolectric.buildActivity(SetNewPasswordActivity.class).get();
+ activity.launchChooseLock(new Bundle());
ShadowActivity shadowActivity = shadowOf(activity);
Intent intent = shadowActivity.getNextStartedActivityForResult().intent;
diff --git a/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java b/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
index 2921b30..ab01360 100644
--- a/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
@@ -20,10 +20,11 @@
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
-import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
+
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -38,6 +39,7 @@
import static com.android.settings.ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE;
import static com.android.settings.ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT;
import static com.android.settings.ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE;
+import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
@@ -45,17 +47,18 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+
/**
* Tests for {@link SetNewPasswordController}.
*/
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public final class SetNewPasswordControllerTest {
- private static final int CURRENT_UID = 101;
+ private static final int CURRENT_USER_ID = 101;
private static final long FINGERPRINT_CHALLENGE = -9876512313131L;
@Mock PackageManager mPackageManager;
- @Mock FingerprintManager mFingerprintManager;
+ @Mock IFingerprintManager mFingerprintManager;
@Mock DevicePolicyManager mDevicePolicyManager;
@Mock private SetNewPasswordController.Ui mUi;
@@ -64,9 +67,8 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
-
mSetNewPasswordController = new SetNewPasswordController(
- CURRENT_UID, mPackageManager, mFingerprintManager, mDevicePolicyManager, mUi);
+ CURRENT_USER_ID, mPackageManager, mFingerprintManager, mDevicePolicyManager, mUi);
when(mFingerprintManager.preEnroll()).thenReturn(FINGERPRINT_CHALLENGE);
when(mPackageManager.hasSystemFeature(eq(FEATURE_FINGERPRINT))).thenReturn(true);
@@ -77,7 +79,7 @@
// GIVEN the device supports fingerprint.
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
// GIVEN there are no enrolled fingerprints.
- when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(false);
+ when(mFingerprintManager.hasEnrolledFingerprints(CURRENT_USER_ID)).thenReturn(false);
// GIVEN DPC does not disallow fingerprint for keyguard usage.
when(mDevicePolicyManager.getKeyguardDisabledFeatures(any(ComponentName.class)))
.thenReturn(0);
@@ -101,7 +103,9 @@
mSetNewPasswordController.dispatchSetNewPasswordIntent();
// THEN the choose lock activity is launched without fingerprint extras.
- verify(mUi).launchChooseLock(null);
+ ArgumentCaptor<Bundle> bundleArgumentCaptor = ArgumentCaptor.forClass(Bundle.class);
+ verify(mUi).launchChooseLock(bundleArgumentCaptor.capture());
+ assertBundleContainsUserIdOnly(bundleArgumentCaptor.getValue());
}
@Test
@@ -109,7 +113,7 @@
// GIVEN the device does NOT support fingerprint.
when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
// GIVEN there are no enrolled fingerprints.
- when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(false);
+ when(mFingerprintManager.hasEnrolledFingerprints(CURRENT_USER_ID)).thenReturn(false);
// GIVEN DPC does not disallow fingerprint for keyguard usage.
when(mDevicePolicyManager.getKeyguardDisabledFeatures(any(ComponentName.class)))
.thenReturn(0);
@@ -117,8 +121,10 @@
// WHEN the controller dispatches a set new password intent.
mSetNewPasswordController.dispatchSetNewPasswordIntent();
- // THEN the choose lock activity is launched without fingerprint extras.
- verify(mUi).launchChooseLock(null);
+ // THEN the choose lock activity is launched without a bundle contains user id only.
+ ArgumentCaptor<Bundle> bundleArgumentCaptor = ArgumentCaptor.forClass(Bundle.class);
+ verify(mUi).launchChooseLock(bundleArgumentCaptor.capture());
+ assertBundleContainsUserIdOnly(bundleArgumentCaptor.getValue());
}
@Test
@@ -126,7 +132,7 @@
// GIVEN the device supports fingerprint.
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
// GIVEN there are no enrolled fingerprints.
- when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(true);
+ when(mFingerprintManager.hasEnrolledFingerprints(CURRENT_USER_ID)).thenReturn(true);
// GIVEN DPC does not disallow fingerprint for keyguard usage.
when(mDevicePolicyManager.getKeyguardDisabledFeatures(any(ComponentName.class)))
.thenReturn(0);
@@ -134,8 +140,10 @@
// WHEN the controller dispatches a set new password intent.
mSetNewPasswordController.dispatchSetNewPasswordIntent();
- // THEN the choose lock activity is launched without fingerprint extras.
- verify(mUi).launchChooseLock(null);
+ // THEN the choose lock activity is launched without a bundle contains user id only.
+ ArgumentCaptor<Bundle> bundleArgumentCaptor = ArgumentCaptor.forClass(Bundle.class);
+ verify(mUi).launchChooseLock(bundleArgumentCaptor.capture());
+ assertBundleContainsUserIdOnly(bundleArgumentCaptor.getValue());
}
@Test
@@ -143,7 +151,7 @@
// GIVEN the device supports fingerprint.
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
// GIVEN there is an enrolled fingerprint.
- when(mFingerprintManager.hasEnrolledFingerprints()).thenReturn(true);
+ when(mFingerprintManager.hasEnrolledFingerprints(CURRENT_USER_ID)).thenReturn(true);
// GIVEN DPC disallows fingerprint for keyguard usage.
when(mDevicePolicyManager.getKeyguardDisabledFeatures(any(ComponentName.class)))
.thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT);
@@ -151,8 +159,10 @@
// WHEN the controller dispatches a set new password intent.
mSetNewPasswordController.dispatchSetNewPasswordIntent();
- // THEN the choose lock activity is launched without fingerprint extras.
- verify(mUi).launchChooseLock(null);
+ // THEN the choose lock activity is launched without a bundle contains user id only.
+ ArgumentCaptor<Bundle> bundleArgumentCaptor = ArgumentCaptor.forClass(Bundle.class);
+ verify(mUi).launchChooseLock(bundleArgumentCaptor.capture());
+ assertBundleContainsUserIdOnly(bundleArgumentCaptor.getValue());
}
private void compareFingerprintExtras(Bundle actualBundle) {
@@ -175,7 +185,12 @@
actualBundle.getBoolean(EXTRA_KEY_FOR_FINGERPRINT));
assertEquals(
"User id must be equaled to the input one.",
- CURRENT_UID,
+ CURRENT_USER_ID,
actualBundle.getInt(Intent.EXTRA_USER_ID));
}
+
+ private void assertBundleContainsUserIdOnly(Bundle actualBundle) {
+ assertThat(actualBundle.size()).isEqualTo(1);
+ assertThat(actualBundle.getInt(Intent.EXTRA_USER_ID)).isEqualTo(CURRENT_USER_ID);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java b/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java
index a744bb7..1df7b1f 100644
--- a/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java
@@ -22,20 +22,23 @@
import android.content.Intent;
import android.database.MatrixCursor;
import android.graphics.drawable.Drawable;
+
+import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.SubSettings;
import com.android.settings.TestConfig;
+import com.android.settings.gestures.GestureSettings;
import com.android.settings.search2.DatabaseResultLoader;
import com.android.settings.search2.IntentPayload;
import com.android.settings.search2.ResultPayload;
import com.android.settings.search2.ResultPayload.PayloadType;
import com.android.settings.search2.SearchResult;
-import com.android.settings.R;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-
-import org.robolectric.annotation.Config;
import org.robolectric.Robolectric;
+import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
@@ -47,7 +50,11 @@
public class DatabaseResultLoaderTest {
private DatabaseResultLoader mLoader;
- private static final String[] TITLES = new String[] {"title1", "title2", "title3"};
+ private static final String[] COLUMNS = new String[]{"rank", "title", "summary_on",
+ "summary off", "entries", "keywords", "class name", "screen title", "icon",
+ "intent action", "target package", "target class", "enabled", "key", "user id"};
+
+ private static final String[] TITLES = new String[]{"title1", "title2", "title3"};
private static final String SUMMARY = "SUMMARY";
private static final int EXAMPLES = 3;
private static final Intent mIntent = new Intent("com.android.settings");
@@ -108,6 +115,16 @@
}
@Test
+ public void testParseCursor_NoIcon() {
+ List<SearchResult> results = mLoader.parseCursorForSearch(
+ getDummyCursor(false /* hasIcon */));
+ for (int i = 0; i < EXAMPLES; i++) {
+ Drawable resultDrawable = results.get(i).icon;
+ assertThat(resultDrawable).isNull();
+ }
+ }
+
+ @Test
public void testParseCursor_MatchesPayloadType() {
List<SearchResult> results = mLoader.parseCursorForSearch(getDummyCursor());
ResultPayload payload;
@@ -118,6 +135,33 @@
}
@Test
+ public void testParseCursor_MatchesIntentForSubSettings() {
+ MatrixCursor cursor = new MatrixCursor(COLUMNS);
+ final String BLANK = "";
+ cursor.addRow(new Object[]{
+ 0, // rank
+ TITLES[0],
+ SUMMARY,
+ SUMMARY, // summary off
+ BLANK, // entries
+ BLANK, // Keywords
+ GestureSettings.class.getName(),
+ BLANK, // screen title
+ null, // icon
+ BLANK, // action
+ null, // target package
+ BLANK, // target class
+ BLANK, // enabled
+ BLANK, // key
+ BLANK // user id
+ });
+ List<SearchResult> results = mLoader.parseCursorForSearch(cursor);
+ IntentPayload payload = (IntentPayload) results.get(0).payload;
+ Intent intent = payload.intent;
+ assertThat(intent.getComponent().getClassName()).isEqualTo(SubSettings.class.getName());
+ }
+
+ @Test
public void testParseCursor_MatchesIntentPayload() {
List<SearchResult> results = mLoader.parseCursorForSearch(getDummyCursor());
IntentPayload payload;
@@ -129,14 +173,15 @@
}
private MatrixCursor getDummyCursor() {
- String[] columns = new String[] {"rank", "title", "summary_on", "summary off", "entries",
- "keywords", "class name", "screen title", "icon", "intent action",
- "target package", "target class", "enabled", "key", "user id"};
- MatrixCursor cursor = new MatrixCursor(columns);
+ return getDummyCursor(true /* hasIcon */);
+ }
+
+ private MatrixCursor getDummyCursor(boolean hasIcon) {
+ MatrixCursor cursor = new MatrixCursor(COLUMNS);
final String BLANK = "";
for (int i = 0; i < EXAMPLES; i++) {
- ArrayList<String> item = new ArrayList<>(columns.length);
+ ArrayList<String> item = new ArrayList<>(COLUMNS.length);
item.add(Integer.toString(i));
item.add(TITLES[i]);
item.add(SUMMARY);
@@ -145,7 +190,7 @@
item.add(BLANK); // keywords
item.add(BLANK); // classname
item.add(BLANK); // screen title
- item.add(Integer.toString(mIcon));
+ item.add(hasIcon ? Integer.toString(mIcon) : null);
item.add(mIntent.getAction());
item.add(BLANK); // target package
item.add(BLANK); // target class
diff --git a/tests/robotests/src/com/android/settings/search/IntentSearchViewHolderTest.java b/tests/robotests/src/com/android/settings/search/IntentSearchViewHolderTest.java
index 2534c0b..805c7cb 100644
--- a/tests/robotests/src/com/android/settings/search/IntentSearchViewHolderTest.java
+++ b/tests/robotests/src/com/android/settings/search/IntentSearchViewHolderTest.java
@@ -17,40 +17,50 @@
package com.android.settings.search;
+import android.app.Fragment;
import android.content.Context;
+import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
+
import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.search2.IntentPayload;
import com.android.settings.search2.IntentSearchViewHolder;
-import com.android.settings.search2.SearchResult.Builder;
import com.android.settings.search2.SearchResult;
+import com.android.settings.search2.SearchResult.Builder;
+
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 java.util.ArrayList;
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.verify;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class IntentSearchViewHolderTest {
- private IntentSearchViewHolder mHolder;
- private static Drawable mIcon;
private static final String TITLE = "title";
private static final String SUMMARY = "summary";
+ @Mock
+ private Fragment mFragment;
+ private IntentSearchViewHolder mHolder;
+ private Drawable mIcon;
@Before
public void setUp() {
+ MockitoAnnotations.initMocks(this);
final Context context = ShadowApplication.getInstance().getApplicationContext();
View view = LayoutInflater.from(context).inflate(R.layout.search_intent_item, null);
mHolder = new IntentSearchViewHolder(view);
@@ -68,11 +78,13 @@
@Test
public void testBindViewElements_AllUpdated() {
SearchResult result = getSearchResult();
- mHolder.onBind(result);
+ mHolder.onBind(mFragment, result);
+ mHolder.itemView.performClick();
assertThat(mHolder.titleView.getText()).isEqualTo(TITLE);
assertThat(mHolder.summaryView.getText()).isEqualTo(SUMMARY);
assertThat(mHolder.iconView.getDrawable()).isEqualTo(mIcon);
+ verify(mFragment).startActivity(any(Intent.class));
}
private SearchResult getSearchResult() {
@@ -81,7 +93,7 @@
.addSummary(SUMMARY)
.addRank(1)
.addPayload(new IntentPayload(null))
- .addBreadcrumbs(new ArrayList<String>())
+ .addBreadcrumbs(new ArrayList<>())
.addIcon(mIcon);
return builder.build();
diff --git a/tests/robotests/src/com/android/settings/search/SearchAdapterTest.java b/tests/robotests/src/com/android/settings/search/SearchAdapterTest.java
index b3da4eb..0756d3f 100644
--- a/tests/robotests/src/com/android/settings/search/SearchAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchAdapterTest.java
@@ -20,20 +20,28 @@
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
+
+import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
-import com.android.settings.search2.*;
+import com.android.settings.search2.DatabaseResultLoader;
+import com.android.settings.search2.IntentPayload;
+import com.android.settings.search2.ResultPayload;
+import com.android.settings.search2.SearchFragment;
+import com.android.settings.search2.SearchResult;
import com.android.settings.search2.SearchResult.Builder;
-import com.android.settings.R;
-
-import java.util.ArrayList;
+import com.android.settings.search2.SearchResultsAdapter;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-
-import org.robolectric.annotation.Config;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
+import org.robolectric.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.List;
import static com.google.common.truth.Truth.assertThat;
@@ -41,14 +49,17 @@
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SearchAdapterTest {
+ @Mock
+ private SearchFragment mFragment;
private SearchResultsAdapter mAdapter;
private Context mContext;
private String mLoaderClassName;
@Before
public void setUp() {
+ MockitoAnnotations.initMocks(this);
mContext = Robolectric.buildActivity(Activity.class).get();
- mAdapter = new SearchResultsAdapter();
+ mAdapter = new SearchResultsAdapter(mFragment);
mLoaderClassName = DatabaseResultLoader.class.getName();
}
@@ -57,8 +68,7 @@
ArrayList<String> breadcrumbs = new ArrayList<>();
final Drawable icon = mContext.getDrawable(R.drawable.ic_search_history);
final ResultPayload payload = new IntentPayload(null);
-
- SearchResult.Builder builder = new Builder();
+ final SearchResult.Builder builder = new Builder();
builder.addTitle("title")
.addSummary("summary")
.addRank(1)
@@ -78,7 +88,7 @@
@Test
public void testNoResultsAdded_EmptyListReturned() {
- ArrayList<SearchResult> updatedResults = mAdapter.getSearchResults();
+ List<SearchResult> updatedResults = mAdapter.getSearchResults();
assertThat(updatedResults).isEmpty();
}
@@ -88,7 +98,7 @@
ArrayList<SearchResult> intentResults = getIntentSampleResults();
mAdapter.mergeResults(intentResults, mLoaderClassName);
- ArrayList<SearchResult> updatedResults = mAdapter.getSearchResults();
+ List<SearchResult> updatedResults = mAdapter.getSearchResults();
assertThat(updatedResults).containsAllIn(intentResults);
}
@@ -98,7 +108,7 @@
mAdapter.mergeResults(intentResults, mLoaderClassName);
mAdapter.mergeResults(intentResults, mLoaderClassName);
- ArrayList<SearchResult> updatedResults = mAdapter.getSearchResults();
+ List<SearchResult> updatedResults = mAdapter.getSearchResults();
assertThat(updatedResults).containsAllIn(intentResults);
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
index 06f4322..d9e2dd6 100644
--- a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
@@ -18,24 +18,35 @@
package com.android.settings.search;
import android.app.Activity;
+import android.content.Context;
+import android.content.res.Configuration;
import android.view.Menu;
+
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search2.DatabaseIndexingManager;
import com.android.settings.search2.SearchFeatureProviderImpl;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.drawer.DashboardCategory;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
-
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -50,19 +61,36 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mActivity = Robolectric.buildActivity(Activity.class).create().visible().get();
- mProvider = (SearchFeatureProviderImpl) FeatureFactory.getFactory(mActivity)
- .getSearchFeatureProvider(mActivity);
+ mProvider = new SearchFeatureProviderImpl(mActivity);
}
@Test
public void testPassNull_NoError() {
- mProvider.setUpSearchMenu(null,null);
+ mProvider.setUpSearchMenu(null, null);
}
@Test
public void testSetUpMenu_HasItemAdded() {
mProvider.setUpSearchMenu(menu, mActivity);
- verify(menu).add(anyInt(),anyInt(), anyInt(), anyString());
+ verify(menu).add(anyInt(), anyInt(), anyInt(), anyString());
+ }
+
+ @Test
+ public void testUpdateIndexNewSearch_UsesDatabaseIndexingManager() {
+ mProvider = spy(new SearchFeatureProviderImpl(mActivity));
+ when(mProvider.isEnabled()).thenReturn(true);
+
+ mProvider.updateIndex(mActivity);
+ verify(mProvider).getIndexingManager(any(Context.class));
+ }
+
+ @Test
+ public void testUpdateIndexNewSearch_UsesIndex() {
+ mProvider = spy(new SearchFeatureProviderImpl(mActivity));
+ when(mProvider.isEnabled()).thenReturn(false);
+
+ mProvider.updateIndex(mActivity);
+ verify(mProvider, never()).getIndexingManager(any(Context.class));
}
}
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
new file mode 100644
index 0000000..899952b2
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.search;
+
+import android.util.ArraySet;
+import android.util.Log;
+
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.core.codeinspection.CodeInspector;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+/**
+ * {@link CodeInspector} to ensure fragments implement search components correctly.
+ */
+public class SearchIndexProviderCodeInspector extends CodeInspector {
+ private static final String TAG = "SearchCodeInspector";
+
+ private static final String NOT_IMPLEMENTING_INDEXABLE_ERROR =
+ "SettingsPreferenceFragment should implement Indexable, but these are not:\n";
+ private static final String NOT_CONTAINING_PROVIDER_OBJECT_ERROR =
+ "Indexable should have public field " + Index.FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER
+ + " but these are not:\n";
+ private static final String NOT_IN_INDEXABLE_PROVIDER_REGISTRY =
+ "Class containing " + Index.FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + " must be added to "
+ + SearchIndexableResources.class.getName() + " but these are not: \n";
+
+ private final List<String> notImplementingIndexableGrandfatherList;
+ private final List<String> notImplementingIndexProviderGrandfatherList;
+ private final List<String> notInSearchIndexableRegistryGrandfatherList;
+
+ public SearchIndexProviderCodeInspector(List<Class<?>> classes) {
+ super(classes);
+ notImplementingIndexableGrandfatherList = new ArrayList<>();
+ notImplementingIndexProviderGrandfatherList = new ArrayList<>();
+ notInSearchIndexableRegistryGrandfatherList = new ArrayList<>();
+ initializeGrandfatherList(notImplementingIndexableGrandfatherList,
+ "grandfather_not_implementing_indexable");
+ initializeGrandfatherList(notImplementingIndexProviderGrandfatherList,
+ "grandfather_not_implementing_index_provider");
+ initializeGrandfatherList(notInSearchIndexableRegistryGrandfatherList,
+ "grandfather_not_in_search_index_provider_registry");
+ }
+
+ @Override
+ public void run() {
+ final Set<String> notImplementingIndexable = new ArraySet<>();
+ final Set<String> notImplementingIndexProvider = new ArraySet<>();
+ final Set<String> notInSearchProviderRegistry = new ArraySet<>();
+
+ for (Class clazz : mClasses) {
+ if (!isConcreteSettingsClass(clazz)) {
+ continue;
+ }
+ final String className = clazz.getName();
+ // Skip fragments if it's not SettingsPreferenceFragment.
+ if (!SettingsPreferenceFragment.class.isAssignableFrom(clazz)) {
+ continue;
+ }
+ // If it's a SettingsPreferenceFragment, it must also be Indexable.
+ final boolean implementsIndexable = Indexable.class.isAssignableFrom(clazz);
+ if (!implementsIndexable
+ && !notImplementingIndexableGrandfatherList.contains(className)) {
+ notImplementingIndexable.add(className);
+ }
+ final boolean hasSearchIndexProvider = hasSearchIndexProvider(clazz);
+ // If it implements Indexable, it must also implement the index provider field.
+ if (implementsIndexable && !hasSearchIndexProvider
+ && !notImplementingIndexProviderGrandfatherList.contains(className)) {
+ notImplementingIndexProvider.add(className);
+ }
+ if (hasSearchIndexProvider
+ && SearchIndexableResources.getResourceByName(className) == null
+ && !notInSearchIndexableRegistryGrandfatherList.contains(className)) {
+ notInSearchProviderRegistry.add(className);
+ }
+ }
+
+ // Build error messages
+ final String indexableError = buildErrorMessage(NOT_IMPLEMENTING_INDEXABLE_ERROR,
+ notImplementingIndexable);
+ final String indexProviderError = buildErrorMessage(NOT_CONTAINING_PROVIDER_OBJECT_ERROR,
+ notImplementingIndexProvider);
+ final String notInProviderRegistryError =
+ buildErrorMessage(NOT_IN_INDEXABLE_PROVIDER_REGISTRY, notInSearchProviderRegistry);
+ assertWithMessage(indexableError)
+ .that(notImplementingIndexable)
+ .isEmpty();
+ assertWithMessage(indexProviderError.toString())
+ .that(notImplementingIndexProvider)
+ .isEmpty();
+ assertWithMessage(notInProviderRegistryError.toString())
+ .that(notInSearchProviderRegistry)
+ .isEmpty();
+ }
+
+ private boolean hasSearchIndexProvider(Class clazz) {
+ try {
+ final Field f = clazz.getField(Index.FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER);
+ return f != null;
+ } catch (NoClassDefFoundError e) {
+ // Cannot find class def, ignore
+ return true;
+ } catch (NoSuchFieldException e) {
+ Log.e(TAG, "error fetching search provider from class " + clazz.getName());
+ return false;
+ }
+ }
+
+ private String buildErrorMessage(String errorSummary, Set<String> errorClasses) {
+ final StringBuilder error = new StringBuilder(errorSummary);
+ for (String c : errorClasses) {
+ error.append(c).append("\n");
+ }
+ return error.toString();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
new file mode 100644
index 0000000..efb5cbc
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.search;
+
+import static com.android.settings.search.SearchIndexableResources.NO_DATA_RES_ID;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.annotation.DrawableRes;
+import android.annotation.XmlRes;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.wifi.WifiSettings;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class SearchIndexableResourcesTest {
+
+ @XmlRes
+ private static final int XML_RES_ID = R.xml.physical_keyboard_settings;
+ @DrawableRes
+ private static final int ICON_RES_ID = R.drawable.ic_settings_language;
+
+ @Test
+ public void testAddIndex() {
+ // Confirms that String.class isn't contained in SearchIndexableResources.
+ assertThat(SearchIndexableResources.getResourceByName("java.lang.String")).isNull();
+ final int beforeCount = SearchIndexableResources.values().size();
+
+ SearchIndexableResources.addIndex(java.lang.String.class, XML_RES_ID, ICON_RES_ID);
+ final SearchIndexableResource index = SearchIndexableResources
+ .getResourceByName("java.lang.String");
+
+ assertThat(index).isNotNull();
+ assertThat(index.className).isEqualTo("java.lang.String");
+ assertThat(index.rank).isEqualTo(Ranking.RANK_OTHERS);
+ assertThat(index.xmlResId).isEqualTo(XML_RES_ID);
+ assertThat(index.iconResId).isEqualTo(ICON_RES_ID);
+ final int afterCount = SearchIndexableResources.values().size();
+ assertThat(afterCount).isEqualTo(beforeCount + 1);
+ }
+
+ @Test
+ public void testIndexHasWifiSettings() {
+ final SearchIndexableResource index = SearchIndexableResources
+ .getResourceByName(WifiSettings.class.getName());
+
+ assertThat(index).isNotNull();
+ assertThat(index.className).isEqualTo(WifiSettings.class.getName());
+ assertThat(index.rank).isEqualTo(Ranking.RANK_WIFI);
+ assertThat(index.xmlResId).isEqualTo(NO_DATA_RES_ID);
+ assertThat(index.iconResId).isEqualTo(R.drawable.ic_settings_wireless);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/search/SearchResultBuilderTest.java b/tests/robotests/src/com/android/settings/search/SearchResultBuilderTest.java
index c2ec49c..5649a95 100644
--- a/tests/robotests/src/com/android/settings/search/SearchResultBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchResultBuilderTest.java
@@ -19,23 +19,23 @@
import android.content.Context;
import android.graphics.drawable.Drawable;
+
+import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.search2.IntentPayload;
import com.android.settings.search2.ResultPayload;
import com.android.settings.search2.SearchResult;
import com.android.settings.search2.SearchResult.Builder;
-import com.android.settings.R;
-
-import java.util.ArrayList;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
+import java.util.ArrayList;
+
import static com.google.common.truth.Truth.assertThat;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -100,23 +100,6 @@
}
@Test
- public void testNoSummary_BuildSearchResultException() {
- mBuilder.addTitle(mTitle)
- .addRank(mRank)
- .addBreadcrumbs(mBreadcrumbs)
- .addIcon(mIcon)
- .addPayload(mResultPayload);
-
- SearchResult result = null;
- try {
- result = mBuilder.build();
- } catch (IllegalArgumentException e) {
- // passes.
- }
- assertThat(result).isNull();
- }
-
- @Test
public void testNoRank_BuildSearchResultException() {
mBuilder.addTitle(mTitle)
.addSummary(mSummary)
@@ -134,23 +117,6 @@
}
@Test
- public void testNoBreadcrumbs_BuildSearchResultException() {
- mBuilder.addTitle(mTitle)
- .addSummary(mSummary)
- .addRank(mRank)
- .addIcon(mIcon)
- .addPayload(mResultPayload);
-
- SearchResult result = null;
- try {
- result = mBuilder.build();
- } catch (IllegalArgumentException e) {
- // passes.
- }
- assertThat(result).isNull();
- }
-
- @Test
public void testNoIcon_BuildSearchResultException() {
mBuilder.addTitle(mTitle)
.addSummary(mSummary)
@@ -158,13 +124,7 @@
.addBreadcrumbs(mBreadcrumbs)
.addPayload(mResultPayload);
- SearchResult result = null;
- try {
- result = mBuilder.build();
- } catch (IllegalArgumentException e) {
- // passes.
- }
- assertThat(result).isNull();
+ assertThat(mBuilder.build()).isNotNull();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/search2/InstalledAppResultLoaderTest.java b/tests/robotests/src/com/android/settings/search2/InstalledAppResultLoaderTest.java
new file mode 100644
index 0000000..e3c2180
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search2/InstalledAppResultLoaderTest.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.search2;
+
+import android.content.Context;
+import android.content.pm.UserInfo;
+import android.os.UserManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.applications.PackageManagerWrapper;
+import com.android.settings.testutils.ApplicationTestUtils;
+
+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.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static android.content.pm.ApplicationInfo.FLAG_SYSTEM;
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class InstalledAppResultLoaderTest {
+
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private Context mContext;
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private PackageManagerWrapper mPackageManagerWrapper;
+ @Mock
+ private UserManager mUserManager;
+
+ private InstalledAppResultLoader mLoader;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ final List<UserInfo> infos = new ArrayList<>();
+ infos.add(new UserInfo(1, "user 1", 0));
+ when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+ when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+ when(mPackageManagerWrapper.getInstalledApplicationsAsUser(anyInt(), anyInt()))
+ .thenReturn(Arrays.asList(
+ ApplicationTestUtils.buildInfo(0 /* uid */, "app1", FLAG_SYSTEM),
+ ApplicationTestUtils.buildInfo(0 /* uid */, "app2", FLAG_SYSTEM),
+ ApplicationTestUtils.buildInfo(0 /* uid */, "app3", FLAG_SYSTEM),
+ ApplicationTestUtils.buildInfo(0 /* uid */, "app4", 0 /* flags */),
+ ApplicationTestUtils.buildInfo(0 /* uid */, "app", 0 /* flags */)));
+ }
+
+ @Test
+ public void query_noMatchingQuery_shouldReturnEmptyResult() {
+ final String query = "abc";
+
+ mLoader = new InstalledAppResultLoader(mContext, mPackageManagerWrapper, query);
+
+ assertThat(mLoader.loadInBackground()).isEmpty();
+ }
+
+ @Test
+ public void query_matchingQuery_shouldReturnNonSystemApps() {
+ final String query = "app";
+
+ mLoader = new InstalledAppResultLoader(mContext, mPackageManagerWrapper, query);
+
+ assertThat(mLoader.loadInBackground().size()).isEqualTo(2);
+ }
+
+ @Test
+ public void query_matchingQuery_shouldRankBasedOnSimilarity() {
+ final String query = "app";
+
+ mLoader = new InstalledAppResultLoader(mContext, mPackageManagerWrapper, query);
+ final List<SearchResult> results = mLoader.loadInBackground();
+
+ // List is sorted by rank
+ assertThat(results.get(0).rank).isLessThan(results.get(1).rank);
+ // perfect match first
+ assertThat(results.get(0).title).isEqualTo(query);
+ // Then partial match
+ assertThat(results.get(1).title).isNotEqualTo(query);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/search2/SearchFragmentTest.java b/tests/robotests/src/com/android/settings/search2/SearchFragmentTest.java
new file mode 100644
index 0000000..40d1ae5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search2/SearchFragmentTest.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.search2;
+
+import android.content.Context;
+import android.os.Bundle;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.ActivityController;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class SearchFragmentTest {
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private Context mContext;
+ @Mock
+ private DatabaseResultLoader mDatabaseResultLoader;
+ @Mock
+ private InstalledAppResultLoader mInstalledAppResultLoader;
+ private FakeFeatureFactory mFeatureFactory;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest(mContext);
+ mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+ when(mFeatureFactory.searchFeatureProvider
+ .getDatabaseSearchLoader(any(Context.class), anyString()))
+ .thenReturn(mDatabaseResultLoader);
+ when(mFeatureFactory.searchFeatureProvider
+ .getInstalledAppSearchLoader(any(Context.class), anyString()))
+ .thenReturn(mInstalledAppResultLoader);
+ }
+
+ @Test
+ public void screenRotate_shouldPersistQuery() {
+ final Bundle bundle = new Bundle();
+ final String testQuery = "test";
+ ActivityController<SearchActivity> activityController =
+ Robolectric.buildActivity(SearchActivity.class);
+ activityController.setup();
+ SearchFragment fragment = (SearchFragment) activityController.get().getFragmentManager()
+ .findFragmentById(R.id.main_content);
+
+ fragment.mQuery = testQuery;
+
+ activityController.saveInstanceState(bundle).pause().stop().destroy();
+
+ activityController = Robolectric.buildActivity(SearchActivity.class);
+ activityController.setup(bundle);
+
+ verify(mFeatureFactory.searchFeatureProvider)
+ .getDatabaseSearchLoader(any(Context.class), anyString());
+ verify(mFeatureFactory.searchFeatureProvider)
+ .getInstalledAppSearchLoader(any(Context.class), anyString());
+ }
+
+ @Test
+ public void queryTextChange_shouldTriggerLoader() {
+ final String testQuery = "test";
+ ActivityController<SearchActivity> activityController =
+ Robolectric.buildActivity(SearchActivity.class);
+ activityController.setup();
+ SearchFragment fragment = (SearchFragment) activityController.get().getFragmentManager()
+ .findFragmentById(R.id.main_content);
+
+ fragment.onQueryTextChange(testQuery);
+
+ verify(mFeatureFactory.searchFeatureProvider)
+ .getDatabaseSearchLoader(any(Context.class), anyString());
+ verify(mFeatureFactory.searchFeatureProvider)
+ .getInstalledAppSearchLoader(any(Context.class), anyString());
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
index f702cdc..dc63ca6 100644
--- a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
@@ -26,6 +26,7 @@
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SupportFeatureProvider;
import com.android.settings.search2.SearchFeatureProvider;
+import com.android.settings.overlay.SurveyFeatureProvider;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
@@ -45,6 +46,7 @@
public final ApplicationFeatureProvider applicationFeatureProvider;
public final EnterprisePrivacyFeatureProvider enterprisePrivacyFeatureProvider;
public final SearchFeatureProvider searchFeatureProvider;
+ public final SurveyFeatureProvider surveyFeatureProvider;
/**
* Call this in {@code @Before} method of the test class to use fake factory.
@@ -75,6 +77,7 @@
applicationFeatureProvider = mock(ApplicationFeatureProvider.class);
enterprisePrivacyFeatureProvider = mock(EnterprisePrivacyFeatureProvider.class);
searchFeatureProvider = mock(SearchFeatureProvider.class);
+ surveyFeatureProvider = mock(SurveyFeatureProvider.class);
}
@Override
@@ -116,4 +119,9 @@
public SearchFeatureProvider getSearchFeatureProvider(Context context) {
return searchFeatureProvider;
}
+
+ @Override
+ public SurveyFeatureProvider getSurveyFeatureProvider(Context context) {
+ return surveyFeatureProvider;
+ }
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
new file mode 100644
index 0000000..51a187b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
@@ -0,0 +1,126 @@
+package com.android.settings.testutils.shadow;
+
+import android.annotation.DimenRes;
+import android.content.res.Resources;
+import android.content.res.Resources.NotFoundException;
+import android.content.res.Resources.Theme;
+import android.content.res.TypedArray;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.RealObject;
+import org.robolectric.res.StyleData;
+import org.robolectric.res.StyleResolver;
+import org.robolectric.res.builder.XmlResourceParserImpl;
+import org.robolectric.shadows.ShadowAssetManager;
+import org.robolectric.shadows.ShadowResources;
+import org.robolectric.util.ReflectionHelpers;
+import org.w3c.dom.Node;
+
+import java.util.List;
+import java.util.Map;
+
+import static android.util.TypedValue.TYPE_REFERENCE;
+import static org.robolectric.Shadows.shadowOf;
+import static org.robolectric.internal.Shadow.directlyOn;
+
+/**
+ * Shadow Resources and Theme classes to handle resource references that Robolectric shadows cannot
+ * handle because they are too new or private.
+ */
+@Implements(Resources.class)
+public class SettingsShadowResources extends ShadowResources {
+
+ @RealObject Resources realResources;
+
+ @Implementation
+ public int getDimensionPixelSize(@DimenRes int id) throws NotFoundException {
+ // Handle requests for private dimension resources,
+ // TODO: Consider making a set of private dimension resource ids if this happens repeatedly.
+ if (id == com.android.internal.R.dimen.preference_fragment_padding_bottom) {
+ return 0;
+ }
+ return directlyOn(realResources, Resources.class).getDimensionPixelSize(id);
+ }
+
+ @Implementation
+ public Drawable loadDrawable(TypedValue value, int id, Theme theme)
+ throws NotFoundException {
+ // The drawable item in switchbar_background.xml refers to a very recent color attribute
+ // that Robolectric isn't yet aware of.
+ // TODO: Remove this once Robolectric is updated.
+ if (id == com.android.settings.R.drawable.switchbar_background) {
+ return new ColorDrawable();
+ }
+ return super.loadDrawable(value, id, theme);
+ }
+
+ @Implements(Theme.class)
+ public static class SettingsShadowTheme extends ShadowTheme {
+
+ @RealObject
+ Theme realTheme;
+
+ @Implementation
+ public TypedArray obtainStyledAttributes(
+ AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) {
+ // Replace all private string references with a placeholder.
+ if (set != null) {
+ for (int i = 0; i < set.getAttributeCount(); ++i) {
+ if (set.getAttributeValue(i).startsWith("@*android:string")) {
+ Node node = ReflectionHelpers.callInstanceMethod(
+ XmlResourceParserImpl.class, set, "getAttributeAt",
+ ReflectionHelpers.ClassParameter.from(int.class, i));
+ node.setNodeValue("PLACEHOLDER");
+ }
+ }
+ }
+
+ // Track down all styles and remove all inheritance from private styles.
+ ShadowAssetManager assetManager = shadowOf(RuntimeEnvironment.application.getAssets());
+ // The Object's below are actually ShadowAssetManager.OverlayedStyle. We can't use it
+ // here because it's package private.
+ Map<Long, List<Object>> appliedStylesList =
+ ReflectionHelpers.getField(assetManager, "appliedStyles");
+ for (Long idx : appliedStylesList.keySet()) {
+ List<Object> appliedStyles = appliedStylesList.get(idx);
+ int i = 1;
+ for (Object appliedStyle : appliedStyles) {
+ StyleResolver styleResolver = ReflectionHelpers.getField(appliedStyle, "style");
+ List<StyleData> styleDatas =
+ ReflectionHelpers.getField(styleResolver, "styles");
+ for (StyleData styleData : styleDatas) {
+ if (styleData.getParent() != null &&
+ styleData.getParent().startsWith("@*android:style")) {
+ ReflectionHelpers.setField(StyleData.class, styleData, "parent", null);
+ }
+ }
+ }
+
+ }
+ return super.obtainStyledAttributes(set, attrs, defStyleAttr, defStyleRes);
+ }
+
+ @Implementation
+ public boolean resolveAttribute(int resid, TypedValue outValue, boolean resolveRefs) {
+ // The real Resources instance in Robolectric tests somehow fails to find the
+ // preferenceTheme attribute in the layout. Let's do it ourselves.
+ if (getResources().getResourceName(resid)
+ .equals("com.android.settings:attr/preferenceTheme")) {
+ int preferenceThemeResId =
+ getResources().getIdentifier(
+ "PreferenceTheme", "style", "com.android.settings");
+ outValue.type = TYPE_REFERENCE;
+ outValue.data = preferenceThemeResId;
+ outValue.resourceId = preferenceThemeResId;
+ return true;
+ }
+ return directlyOn(realTheme, Theme.class)
+ .resolveAttribute(resid, outValue, resolveRefs);
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDynamicIndexableContentMonitor.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDynamicIndexableContentMonitor.java
new file mode 100644
index 0000000..de5d243
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDynamicIndexableContentMonitor.java
@@ -0,0 +1,22 @@
+package com.android.settings.testutils.shadow;
+
+import android.app.Activity;
+import android.os.UserManager;
+import com.android.settings.search.DynamicIndexableContentMonitor;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.RealObject;
+
+/**
+ * A shadow class of {@link DynamicIndexableContentMonitor}. The real implementation of
+ * {@link DynamicIndexableContentMonitor#register} calls {@link UserManager#isUserUnlocked()}, which
+ * Robolectric has not yet been updated to support, so throws a NoSuchMethodError exception.
+ */
+// TODO: Delete this once Robolectric is updated to the latest SDK.
+@Implements(DynamicIndexableContentMonitor.class)
+public class ShadowDynamicIndexableContentMonitor {
+
+ @Implementation
+ public void register(Activity activity, int loaderId) {
+ }
+}
diff --git a/tests/unit/Android.mk b/tests/unit/Android.mk
index ae1cc72..d852ac5 100644
--- a/tests/unit/Android.mk
+++ b/tests/unit/Android.mk
@@ -10,7 +10,8 @@
LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-test \
mockito-target-minus-junit4 \
- espresso-core
+ espresso-core \
+ truth-prebuilt
# Include all test java files.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
diff --git a/tests/unit/src/com/android/settings/search/SearchIndexablesContractTest.java b/tests/unit/src/com/android/settings/search/SearchIndexablesContractTest.java
new file mode 100644
index 0000000..4de5fb7
--- /dev/null
+++ b/tests/unit/src/com/android/settings/search/SearchIndexablesContractTest.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.settings.search;
+
+import android.provider.SearchIndexablesContract;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+
+public class SearchIndexablesContractTest extends AndroidTestCase {
+ @SmallTest
+ public void testRawColumns_IncludesRank() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_RANK,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[0]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesTitle() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_TITLE,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[1]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesSummaryOn() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_SUMMARY_ON,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[2]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesSummaryOff() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_SUMMARY_OFF,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[3]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesEntries() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_ENTRIES,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[4]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesKeywords() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_KEYWORDS,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[5]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesScreenTitle() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_SCREEN_TITLE,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[6]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesClassName() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_CLASS_NAME,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[7]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesIcon() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_ICON_RESID,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[8]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesIntentAction() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_INTENT_ACTION,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[9]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesIntentTargetPackage() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_INTENT_TARGET_PACKAGE,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[10]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesTargetClass() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_INTENT_TARGET_CLASS,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[11]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesKey() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_KEY,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[12]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesUserId() {
+ assertEquals(SearchIndexablesContract.RawData.COLUMN_USER_ID,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[13]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesPayloadType() {
+ assertEquals(SearchIndexablesContract.RawData.PAYLOAD_TYPE,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[14]);
+ }
+
+ @SmallTest
+ public void testRawColumns_IncludesPayload() {
+ assertEquals(SearchIndexablesContract.RawData.PAYLOAD,
+ SearchIndexablesContract.INDEXABLES_RAW_COLUMNS[15]);
+ }
+}
diff --git a/tests/unit/src/com/android/settings/vpn2/PreferenceListTest.java b/tests/unit/src/com/android/settings/vpn2/PreferenceListTest.java
new file mode 100644
index 0000000..40958ba
--- /dev/null
+++ b/tests/unit/src/com/android/settings/vpn2/PreferenceListTest.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.vpn2;
+
+import static org.mockito.AdditionalMatchers.not;
+import static org.mockito.Matchers.*;
+import static org.mockito.Mockito.*;
+
+import android.content.Context;
+import android.content.Context;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.text.TextUtils;
+
+import com.android.internal.net.LegacyVpnInfo;
+import com.android.internal.net.VpnProfile;
+import com.android.settings.R;
+import com.android.settings.vpn2.VpnSettings;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.mockito.ArgumentCaptor;
+import org.mockito.ArgumentMatcher;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+public class PreferenceListTest extends AndroidTestCase {
+ private static final String TAG = "PreferenceListTest";
+
+ @Mock VpnSettings mSettings;
+
+ final Map<String, LegacyVpnPreference> mLegacyMocks = new HashMap<>();
+ final Map<AppVpnInfo, AppPreference> mAppMocks = new HashMap<>();
+
+ @Override
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+
+ mLegacyMocks.clear();
+ mAppMocks.clear();
+
+ doAnswer(invocation -> {
+ final String key = ((VpnProfile)(invocation.getArguments()[0])).key;
+ if (!mLegacyMocks.containsKey(key)) {
+ mLegacyMocks.put(key, mock(LegacyVpnPreference.class));
+ }
+ return mLegacyMocks.get(key);
+ }).when(mSettings).findOrCreatePreference(any(VpnProfile.class), anyBoolean());
+
+ doAnswer(invocation -> {
+ final AppVpnInfo key = (AppVpnInfo)(invocation.getArguments()[0]);
+ if (!mAppMocks.containsKey(key)) {
+ mAppMocks.put(key, mock(AppPreference.class));
+ }
+ return mAppMocks.get(key);
+ }).when(mSettings).findOrCreatePreference(any(AppVpnInfo.class));
+
+ doNothing().when(mSettings).setShownPreferences(any());
+ doReturn(true).when(mSettings).canAddPreferences();
+ }
+
+ @SmallTest
+ public void testNothingShownByDefault() {
+ final VpnSettings.UpdatePreferences updater = new VpnSettings.UpdatePreferences(mSettings);
+ updater.run();
+
+ verify(mSettings, never()).findOrCreatePreference(any(VpnProfile.class), anyBoolean());
+ assertEquals(0, mLegacyMocks.size());
+ assertEquals(0, mAppMocks.size());
+ }
+
+ @SmallTest
+ public void testDisconnectedLegacyVpnShown() {
+ final VpnProfile vpnProfile = new VpnProfile("test-disconnected");
+
+ final VpnSettings.UpdatePreferences updater = new VpnSettings.UpdatePreferences(mSettings);
+ updater.legacyVpns(
+ /* vpnProfiles */ Collections.<VpnProfile>singletonList(vpnProfile),
+ /* connectedLegacyVpns */ Collections.<String, LegacyVpnInfo>emptyMap(),
+ /* lockdownVpnKey */ null);
+ updater.run();
+
+ verify(mSettings, times(1)).findOrCreatePreference(any(VpnProfile.class), eq(true));
+ assertEquals(1, mLegacyMocks.size());
+ assertEquals(0, mAppMocks.size());
+ }
+
+ @SmallTest
+ public void testConnectedLegacyVpnShownIfDeleted() {
+ final LegacyVpnInfo connectedLegacyVpn =new LegacyVpnInfo();
+ connectedLegacyVpn.key = "test-connected";
+
+ final VpnSettings.UpdatePreferences updater = new VpnSettings.UpdatePreferences(mSettings);
+ updater.legacyVpns(
+ /* vpnProfiles */ Collections.<VpnProfile>emptyList(),
+ /* connectedLegacyVpns */ new HashMap<String, LegacyVpnInfo>() {{
+ put(connectedLegacyVpn.key, connectedLegacyVpn);
+ }},
+ /* lockdownVpnKey */ null);
+ updater.run();
+
+ verify(mSettings, times(1)).findOrCreatePreference(any(VpnProfile.class), eq(false));
+ assertEquals(1, mLegacyMocks.size());
+ assertEquals(0, mAppMocks.size());
+ }
+
+ @SmallTest
+ public void testConnectedLegacyVpnShownExactlyOnce() {
+ final VpnProfile vpnProfile = new VpnProfile("test-no-duplicates");
+ final LegacyVpnInfo connectedLegacyVpn = new LegacyVpnInfo();
+ connectedLegacyVpn.key = new String(vpnProfile.key);
+
+ final VpnSettings.UpdatePreferences updater = new VpnSettings.UpdatePreferences(mSettings);
+ updater.legacyVpns(
+ /* vpnProfiles */ Collections.<VpnProfile>singletonList(vpnProfile),
+ /* connectedLegacyVpns */ new HashMap<String, LegacyVpnInfo>() {{
+ put(connectedLegacyVpn.key, connectedLegacyVpn);
+ }},
+ /* lockdownVpnKey */ null);
+ updater.run();
+
+ final ArgumentMatcher<VpnProfile> equalsFake = new ArgumentMatcher<VpnProfile>() {
+ @Override
+ public boolean matches(final Object arg) {
+ if (arg == vpnProfile) return true;
+ if (arg == null) return false;
+ return TextUtils.equals(((VpnProfile) arg).key, vpnProfile.key);
+ }
+ };
+
+ // The VPN profile should have been used to create a preference and set up at laest once
+ // with update=true to fill in all the fields.
+ verify(mSettings, atLeast(1)).findOrCreatePreference(argThat(equalsFake), eq(true));
+
+ // ...But no other VPN profile key should ever have been passed in.
+ verify(mSettings, never()).findOrCreatePreference(not(argThat(equalsFake)), anyBoolean());
+
+ // And so we should still have exactly 1 preference created.
+ assertEquals(1, mLegacyMocks.size());
+ assertEquals(0, mAppMocks.size());
+ }
+}