Merge "Clean up BackupSettingsHelper.getSummary()" into main
diff --git a/Android.bp b/Android.bp
index 2699c38..9b4cfde 100644
--- a/Android.bp
+++ b/Android.bp
@@ -75,7 +75,6 @@
"android.hardware.dumpstate-V1-java",
"android.hardware.dumpstate-V1.0-java",
"android.hardware.dumpstate-V1.1-java",
- "android.nfc.flags-aconfig-java",
"android.view.accessibility.flags-aconfig-java",
"com_android_server_accessibility_flags_lib",
"net-utils-framework-common",
@@ -94,6 +93,7 @@
"battery-event-protos-lite",
"battery-usage-slot-protos-lite",
"contextualcards",
+ "development_settings_flag_lib",
"factory_reset_flags_lib",
"fuelgauge-log-protos-lite",
"fuelgauge-usage-state-protos-lite",
@@ -107,13 +107,12 @@
plugins: ["androidx.room_room-compiler-plugin"],
- // TODO: b/307330031 - Re-enable the nullaway plugin when the issue is fixed.
- // errorprone: {
- // extra_check_modules: ["//external/nullaway:nullaway_plugin"],
- // javacflags: [
- // "-XepOpt:NullAway:AnnotatedPackages=com.android.settings",
- // ],
- // },
+ errorprone: {
+ extra_check_modules: ["//external/nullaway:nullaway_plugin"],
+ javacflags: [
+ "-XepOpt:NullAway:AnnotatedPackages=com.android.settings",
+ ],
+ },
libs: [
"telephony-common",
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 9723ed4..f88c55d 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1741,6 +1741,8 @@
android:targetActivity=".spa.SpaBridgeActivity">
<meta-data android:name="com.android.settings.spa.DESTINATION"
android:value="TogglePermissionAppList/UseFullScreenIntent"/>
+ <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+ android:value="@string/menu_key_apps"/>
</activity-alias>
<activity-alias android:name="AppManageFullScreenIntent"
@@ -1753,6 +1755,8 @@
</intent-filter>
<meta-data android:name="com.android.settings.spa.DESTINATION"
android:value="TogglePermissionAppInfoPage/UseFullScreenIntent"/>
+ <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+ android:value="@string/menu_key_apps"/>
</activity-alias>
<activity android:name=".applications.InstalledAppOpenByDefaultActivity"
@@ -2875,6 +2879,8 @@
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.development.DevelopmentSettingsDashboardFragment" />
+ <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+ android:value="@string/menu_key_system"/>
</activity>
<activity
@@ -4285,6 +4291,15 @@
android:value="true" />
</activity>
+ <!-- Access to the Credential Manager list. -->
+ <activity android:name=".applications.credentials.CredentialsPickerActivity"
+ android:excludeFromRecents="true"
+ android:launchMode="singleInstance"
+ android:exported="false">
+ <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+ android:value="com.android.settings.applications.credentials.DefaultCombinedPicker" />
+ </activity>
+
<activity
android:name=".Settings$SystemDashboardActivity"
android:label="@string/header_category_system"
@@ -4956,6 +4971,8 @@
</intent-filter>
<meta-data android:name="com.android.settings.spa.DESTINATION"
android:value="UsageStats"/>
+ <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+ android:value="@string/menu_key_apps"/>
</activity-alias>
<!-- [b/197780098] Disable eager initialization of Jetpack libraries. -->
diff --git a/aconfig/Android.bp b/aconfig/Android.bp
index de6d0af..d14cc6f 100644
--- a/aconfig/Android.bp
+++ b/aconfig/Android.bp
@@ -47,3 +47,16 @@
name: "accessibility_settings_flags_lib",
aconfig_declarations: "accessibility_flags",
}
+
+aconfig_declarations {
+ name: "development_settings_flags",
+ package: "com.android.settings.development",
+ srcs: [
+ "development/**/*.aconfig"
+ ],
+}
+
+java_aconfig_library {
+ name: "development_settings_flag_lib",
+ aconfig_declarations: "development_settings_flags",
+}
diff --git a/aconfig/development/settings_core_flag_declarations.aconfig b/aconfig/development/settings_core_flag_declarations.aconfig
new file mode 100644
index 0000000..c012263
--- /dev/null
+++ b/aconfig/development/settings_core_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.development"
+
+flag {
+ name: "deprecate_list_activity"
+ namespace: "android_settings"
+ description: "Feature flag for deprecating ListActivity in Settings"
+ bug: "299195099"
+}
diff --git a/aconfig/settings_bluetooth_declarations.aconfig b/aconfig/settings_bluetooth_declarations.aconfig
new file mode 100644
index 0000000..8414309
--- /dev/null
+++ b/aconfig/settings_bluetooth_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.flags"
+
+flag {
+ name: "enable_offload_bluetooth_operations_to_background_thread"
+ namespace: "pixel_cross_device_control"
+ description: "Gates whether to offload bluetooth operations to background thread"
+ bug: "305636727"
+}
diff --git a/res-product/values-it/strings.xml b/res-product/values-it/strings.xml
index ecf409f..9b7ce7e 100644
--- a/res-product/values-it/strings.xml
+++ b/res-product/values-it/strings.xml
@@ -356,7 +356,7 @@
<string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Quando ruoti il tablet in orizzontale e verticale"</string>
<string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Regola la modalità di visualizzazione dei colori sullo smartphone"</string>
<string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Regola la modalità di visualizzazione dei colori sul tablet"</string>
- <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Speaker smartphone"</string>
- <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Speaker tablet"</string>
+ <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Altoparlanti smartphone"</string>
+ <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Altoparlanti tablet"</string>
<string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Speaker dispositivo"</string>
</resources>
diff --git a/res/drawable/battery_hints_chip_bg.xml b/res/drawable/battery_hints_chip_bg.xml
index e7d1d0f..c2b662c 100644
--- a/res/drawable/battery_hints_chip_bg.xml
+++ b/res/drawable/battery_hints_chip_bg.xml
@@ -16,7 +16,8 @@
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
android:shape="rectangle">
- <solid android:color="@color/settingslib_dialog_background" />
+ <solid android:color="?androidprv:attr/materialColorPrimaryContainer" />
<corners android:radius="@dimen/battery_hints_chip_corner_radius" />
</shape>
\ No newline at end of file
diff --git a/res/layout/content_protection_preference_fragment.xml b/res/layout/content_protection_preference_fragment.xml
index 8bf6582..f85f2d1 100644
--- a/res/layout/content_protection_preference_fragment.xml
+++ b/res/layout/content_protection_preference_fragment.xml
@@ -40,8 +40,9 @@
<com.android.settingslib.RestrictedSwitchPreference
android:key="content_protection_preference_user_consent_work_profile_switch"
android:title="@string/content_protection_preference_user_consent_work_profile_switch_title"
+ settings:controller="com.android.settings.security.ContentProtectionWorkSwitchController"
settings:restrictedSwitchSummary="@string/summary_placeholder"
- settings:controller="com.android.settings.security.ContentProtectionWorkSwitchController"/>
+ settings:useAdditionalSummary="true"/>
<com.android.settingslib.widget.FooterPreference
android:key="content_protection_preference_subpage_footer"
diff --git a/res/layout/power_anomaly_hints.xml b/res/layout/power_anomaly_hints.xml
index e4ec47b..3781046 100644
--- a/res/layout/power_anomaly_hints.xml
+++ b/res/layout/power_anomaly_hints.xml
@@ -17,6 +17,7 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
@@ -36,7 +37,7 @@
android:layout_height="wrap_content"
android:paddingHorizontal="8dp"
android:textAlignment="viewStart"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="?android:attr/textColorPrimary"/>
+ android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle2"
+ android:textColor="?androidprv:attr/materialColorOnSurface"/>
</LinearLayout>
\ No newline at end of file
diff --git a/res/navigation/privatespace_main_context_nav.xml b/res/navigation/privatespace_main_context_nav.xml
index ffc63ec..7849458 100644
--- a/res/navigation/privatespace_main_context_nav.xml
+++ b/res/navigation/privatespace_main_context_nav.xml
@@ -33,8 +33,8 @@
android:id="@+id/action_advance_profile_error"
app:destination="@id/ps_profile_error_fragment"/>
<action
- android:id="@+id/action_advance_login_error"
- app:destination="@id/ps_account_error_fragment"/>
+ android:id="@+id/action_set_lock_fragment"
+ app:destination="@id/ps_profile_lock_fragment"/>
</fragment>
<fragment android:id="@+id/ps_profile_error_fragment"
android:name="com.android.settings.privatespace.PrivateProfileCreationError"
@@ -55,9 +55,11 @@
</fragment>
<fragment android:id="@+id/ps_profile_lock_fragment"
android:name="com.android.settings.privatespace.PrivateSpaceSetLockFragment"
- android:label="fragment_ps_lock"/>
+ android:label="fragment_ps_lock">
+ <action
+ android:id="@+id/action_advance_login_error"
+ app:destination="@id/ps_account_error_fragment"/>
+ </fragment>
<action android:id="@+id/action_success_fragment"
app:destination="@id/ps_profile_success_fragment"/>
- <action android:id="@+id/action_set_lock_fragment"
- app:destination="@id/ps_profile_lock_fragment"/>
</navigation>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index d6e46d1..ddac9be 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Stel tans Privaat Ruimte op …"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Gebruiksinligting vir Privaat Ruimte-apps is versteek wanneer dit gesluit is"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Verkry toegang tot Privaat Ruimte vanaf jou applysinskrywing"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Sekere stelselapps in reeds in Privaat Ruimte geïnstalleer"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Kon nie Privaat Ruimte opstel nie"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Probeer nou weer, of kom later terug"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Probeer weer"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Gebruik skermslot"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Kies nuwe slot"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Gereed!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Jy kan van jou applys af toegang tot Privaat Ruimte kry"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Klaar"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Rollees af om toegang to Privaat Ruimte te kry"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Meld aan om Privaat Ruimte op te stel"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Bly op Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Moet nooit weer wys nie"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Koppel"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi is aangeskakel"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Gekoppel aan <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Koppel tans aan <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Koppel tans …"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Netwerkverbinding het misluk"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netwerk nie binne sendbereik nie"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Skermaandag gebruik die voorste kamera om te sien of iemand na die skerm kyk. Dit werk op die toestel, en prente word nooit geberg of na Google toe gestuur nie."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Skakel skermaandag aan"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Hou skerm aan terwyl jy daarna kyk"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera is gesluit"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera moet ontsluit wees vir gesigbespeuring"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera moet ontsluit word vir skermaandag"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Gebruik warmkol en verbinding om deur jou Wi-Fi- of mobiele dataverbinding internet aan ander toestelle te verskaf. Programme kan ook \'n warmkol skep om inhoud met toestelle in die omtrek te deel."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Hulp"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobiele netwerk"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobiele plan"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS-program"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Verander SMS-program?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Gebruik <xliff:g id="NEW_APP">%1$s</xliff:g> in plaas van <xliff:g id="CURRENT_APP">%2$s</xliff:g> as jou SMS-program?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Verander Wi-Fi-assistent?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Gebruik <xliff:g id="NEW_APP">%s</xliff:g> om jou netwerkverbindings te bestuur?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Onbekende SIM-operateur"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> het geen bekende voorsieningwebwerf nie"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Steek asseblief SIM-kaart in en herbegin"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Koppel asseblief aan die internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Onlangse liggingversoeke"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ligging vir werkprofiel"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Programliggingtoestemmings"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Dit kan jou interaksies met \'n app of \'n hardewaresensor naspoor en namens jou met apps interaksie hê."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Laat toe"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Weier"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Skakel af"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Hou aan"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Skakel <xliff:g id="SERVICE">%1$s</xliff:g> af?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Geen dienste geïnstalleer nie"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Geen diens is gekies nie"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Geen beskrywing verskaf nie."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokkeer verbindings sonder VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Vereis VPN-verbinding?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nie veilig nie. Dateer op na \'n IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Kon nie ongesteunde VPN begin nie."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Kies \'n VPN-profiel om altyd aan gekoppel te bly. Netwerkverkeer sal net toegelaat word wanneer verbind aan hierdie VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Geen"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Altydaan-VPN vereis \'n IP-adres vir beide die bediener en DNS."</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 85ca6af..546df66 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"የግል ቦታን በማዋቀር ላይ…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ሲቆለፍ የአጠቃቀም መረጃ ለግል ቦታ መተግበሪያዎች የተደበቀ ነው"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ከእርስዎ የመተግበሪያዎች ዝርዝር የግል ቦታን ይድረሱ"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"አንዳንድ የስርዓት መተግበሪያዎች አስቀድመው በግል ቦታ ላይ ተጭነዋል"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"የግል ቦታን ማዋቀር አልተቻለም"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"አሁን እንደገና ይሞክሩ ወይም በኋላ ተመልሰው ይምጡ"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"እንደገና ይሞክሩ"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ማያ ገፅ መቆለፊያን ይጠቀሙ"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"አዲስ ቁልፍ ይምረጡ"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"ሁሉም ዝግጁ!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"የግል ቦታን ከመተግበሪያ ዝርዝርዎ መድረስ ይችላሉ"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"ተከናውኗል"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"የግል ቦታን ለመድረስ ወደ ታች ያሸብልሉ"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"የግል ቦታን ለማዘጋጀት ይግቡ"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"በWi-Fi ላይ ይቆዩ"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"በፍፁም ዳግመኛ አታሳይ"</string>
<string name="wifi_connect" msgid="2481467560349907397">"አያይዝ"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi በርቷል"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"ከ<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ጋር ተገናኝቷል"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"ወደ <xliff:g id="NETWORK_NAME">%1$s</xliff:g> በመገናኘት ላይ"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"በመገናኘት ላይ…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"ከአውታረ መረቡ ጋር መገናኘት አልተሳካም"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"አውታረ መረብ በክክል ውስጥ አይደለም"</string>
@@ -1131,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"የማያ ገፅ ትኩረት በማያ ገጹ ላይ የሆነ ሰው እያየ መሆኑን ለመመልከት የፊት ካሜራውን ይጠቀማል። በመሣሪያ ላይ ይሠራል፣ እና ምስሎች በጭራሽ ወደ Google አይላኩም ወይም በዚያ አይከማቹም።"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"የማያ ገፅ ትኩረትን ያብሩ"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ማያ ገጹን ሲመለከቱት እንደበራ ይቆይ"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"ረዘም ያለ ማያ ጊዜው ማለቂያው ተጨማሪ ባትሪ ይጠቀማል።"</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ካሜራ ተቆልፏል"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ለመልክ ማወቂያ ካሜራ መከፈት አለበት"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ለየማያ ገፅ ትኩረት ካሜራ መከፈት አለበት"</string>
@@ -1471,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"በእርስዎ Wi-Fi ወይም የተንቀሳቃሽ ስልክ ውሂብ ግንኙነት በኩል በይነመረቡ ለሌሎች መሣሪያዎች ለማቅረብ የመገናኛ ነጥብን እና እንደ ሞደም መሰካትን ይጠቀሙ። መተግበሪያዎች እንዲሁም ይዘቶችን በአቅራቢያ ላሉ መሣሪያዎች ለማጋራት መገናኛ ነጥብን መፍጠር ይችላሉ።"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"እገዛ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"የተንቀሳቃሽ ስልክ አውታረ መረብ"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"የሞባይል ዕቅድ"</string>
<string name="sms_application_title" msgid="4791107002724108809">"የኤስኤምኤስ መተግበሪያ"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"የኤስ ኤም ኤስ መተግበሪያ ይለወጥ?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ከ<xliff:g id="CURRENT_APP">%2$s</xliff:g> ይልቅ <xliff:g id="NEW_APP">%1$s</xliff:g> እንደ እርስዎ ኤስኤምኤስ መተግበሪያ ይጠቀሙበት?"</string>
@@ -1479,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"የWi‑Fi ረዳት ይቀየር?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"የአውታረ መረብ ግንኙነቶችዎን ለማቀናበር ከ<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="680685773455072321">"የአውታረ መረብ ግንኙነቶችዎን ለማቀናበር <xliff:g id="NEW_APP">%s</xliff:g>ን ይጠቀሙ?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ያልታወቀ የሲም አንቀሳቃሽ"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> ምንም የሚታወቅ የማቅረቢያ ድር ጣቢያ የለውም"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"እባክዎ SIM ካርድ ያስገቡና ዳግም ያስጀምሩ"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"እባክዎ ከበይነ መረብ ጋር ያገናኙ"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"የቅርብ ጊዜ የአካባቢ ጥያቄዎች"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"የስራ መገለጫ አካባቢ"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"የመተግበሪያ አካባቢ ፈቃዶች"</string>
@@ -2247,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ከመተግበሪያ ጋር ወይም የሃርድዌር ዳሳሽ ጋር እርስዎ ያልዎትን መስተጋብሮች ዱካ መከታተል እና በእርስዎ ምትክ ከመተግበሪያዎች ጋር መስተጋብር መፈጸም ይችላል።"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ፍቀድ"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ከልክል"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"አጥፋ"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"አቆይ"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ይጥፋ?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"ምንም አገልግሎቶች አልተጫኑም"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"ምንም አገልግሎት አልተመረጠም"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"ምንም መግለጫ አልቀረበም።"</string>
@@ -2779,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"ቪፒኤን የሌላቸው ግንኙነቶችን አግድ"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"የVPN ግንኙነት ይጠይቅ?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ደህንነቱ አልተጠበቀም። ወደ IKEv2 VPN ያዘምኑ"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"ያልተደገፈ VPNን ማስጀመር አልተሳካም።"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"ሁልጊዜ እንደተገናኙ የሚቆዩበት የVPN መገለጫ ይምረጡ። ከዚህ VPN ጋር ሲገናኝ ብቻ ነው የአውታረ መረብ ትራፊክ የሚፈቀደው።"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"ምንም"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ሁልጊዜ የበራ VPN ለአገልጋይም ለDNSም የአይ.ፒ. አድራሻ ያስፈልገዋል።"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 1b61734..5187e57 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"جارٍ إعداد المساحة الخاصة…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"معلومات الاستخدام المتعلّقة بتطبيقات المساحة الخاصة لا تظهر عندما تكون المساحة مقفلة"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"الوصول إلى المساحة الخاصة من قائمة التطبيقات"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"بعض تطبيقات النظام سبق أن تم تثبيتها في المساحة الخاصة"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"تعذُّر إعداد المساحة الخاصة"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"يُرجى إعادة المحاولة الآن أو إعدادها لاحقًا."</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"إعادة المحاولة"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"استخدام قفل الشاشة"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"اختيار قفل جديد"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"اكتملت عملية الإعداد"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"يمكنك الوصول إلى المساحة الخاصة من قائمة التطبيقات."</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"تم"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"انتقِل للأسفل للوصول إلى المساحة الخاصة."</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"يجب تسجيل الدخول لإعداد المساحة الخاصة"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"الإبقاء على الاتصال بشبكة Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"عدم الإظهار مرة أخرى"</string>
<string name="wifi_connect" msgid="2481467560349907397">"اتصال"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"تم تفعيل Wi‑Fi."</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"متّصل بـ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"جارٍ الربط بـ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"جارٍ الاتصال…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"تعذّر التوصيل بالشبكة"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"الشبكة ليست في النطاق."</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"يستخدم إعداد \"استعراض الشاشة\" الكاميرا الأمامية لمعرفة ما إذا كان أحد ينظر إلى الشاشة. يعمل هذا الإعداد على الجهاز ولا يتم تخزين أي صور أو إرسالها إلى Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"تفعيل ميزة \"استعراض الشاشة\""</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"إبقاء شاشتك قيد التفعيل أثناء النظر إليها"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"الكاميرا مُقفَلة"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"يجب فتح قفل الكاميرا لاستخدام تقنية \"التعرّف على الوجوه\"."</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"يجب فتح قفل الكاميرا لاستخدام ميزة \"استعراض الشاشة\"."</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"يمكنك استخدام نقطة الاتصال والتوصيل لتوفير اتصال بالإنترنت للأجهزة الأخرى من خلال شبكة Wi‑Fi أو اتصال بيانات الجوّال، كما يمكن للتطبيقات إنشاء نقطة اتصال لمشاركة المحتوى مع الأجهزة المجاورة."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"مساعدة"</string>
<string name="network_settings_title" msgid="4663717899931613176">"شبكة الجوّال"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"خطة الجوّال"</string>
<string name="sms_application_title" msgid="4791107002724108809">"تطبيق SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"هل تريد تغيير تطبيق الرسائل القصيرة SMS؟"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"هل تريد استخدام <xliff:g id="NEW_APP">%1$s</xliff:g> بدلاً من <xliff:g id="CURRENT_APP">%2$s</xliff:g> كتطبيق للرسائل القصيرة SMS؟"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"هل تريد تغيير مساعد Wi‑Fi؟"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"هل تريد استخدام <xliff:g id="NEW_APP">%1$s</xliff:g> بدلاً من <xliff:g id="CURRENT_APP">%2$s</xliff:g> لإدارة اتصالات الشبكة لديك؟"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"هل تريد استخدام <xliff:g id="NEW_APP">%s</xliff:g> لإدارة اتصالات الشبكة لديك؟"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"مشغل SIM (مشغل شبكة الجوّال) غير معروف"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"ليس لدى <xliff:g id="OPERATOR">%1$s</xliff:g> موقع إلكتروني معروف لإدارة حسابات"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"يُرجى إدخال شريحة SIM وإعادة التشغيل"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"يُرجى الاتصال بالإنترنت"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"طلبات الموقع الجغرافي الأخيرة"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"الموقع الجغرافي للملف الشخصي للعمل"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"أذونات التطبيقات لتحديد الموقع الجغرافي"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"قد يؤدي ذلك إلى السماح للميزة بتتبّع تفاعلاتك مع تطبيق أو جهاز استشعار والتفاعل مع التطبيقات نيابةً عنك."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"سماح"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"رفض"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"إيقاف"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"إبقاء"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"هل تريد إيقاف \"<xliff:g id="SERVICE">%1$s</xliff:g>\"؟"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"لم يتم تثبيت أي خدمات"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"لم يتم اختيار أي خدمة"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"لم يتم تقديم أي وصف."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"حظر أي اتصالات بدون شبكة افتراضية خاصة"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"أيتطلب الأمر اتصالاً بشبكة VPN؟"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"هذا التطبيق غير آمن. يُرجى التحديث إلى شبكة افتراضية خاصة (VPN) باستخدام بروتوكول IKEv2."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"تعذَّر تفعيل شبكة VPN غير المتوافقة."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"حدد ملفًا شخصيًا للشبكة الافتراضية الخاصة (VPN) للاتصال الدائم بها. لن يتم السماح بحركة مرور الشبكة إلا عند الاتصال بهذه الشبكة الافتراضية الخاصة."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"بدون"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"تتطلب الشبكة الافتراضية الخاصة (VPN) دائمة التفعيل عنوان IP لكل من الخادم ونظام أسماء النطاقات."</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 330c3e2..6f40420 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"ব্যক্তিগত স্পে’চ ছেট আপ কৰি থকা হৈছে…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ব্যক্তিগত স্পে’চত থকা এপৰ ব্যৱহাৰৰ তথ্য লুকুওৱা হয়, যদিহে এইটো লক হৈ থাকে"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"আপোনাৰ এপৰ সূচীৰ পৰা ব্যক্তিগত স্পে’চ এক্সেছ কৰক"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"কিছুমান ছিষ্টেম এপ্ ব্যক্তিগত স্পে’চত ইতিমধ্যে ইনষ্টল কৰা আছে"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"ব্যক্তিগত স্পে’চ ছেট আপ কৰিব পৰা নগ’ল"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"এতিয়াই পুনৰ চেষ্টা কৰক অথবা পাছত উভতি আহক"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"পুনৰ চেষ্টা কৰক"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"স্ক্ৰীন লক ব্যৱহাৰ কৰক"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"নতুন লক বাছনি কৰক"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"সকলো সাজু!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"আপুনি আপোনাৰ এপৰ সূচীৰ পৰা ব্যক্তিগত স্পে’চ এক্সেছ কৰিব পাৰে"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"কৰা হ’ল"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"ব্যক্তিগত স্পে’চ এক্সেছ কৰিবলৈ তললৈ স্ক্ৰ’ল কৰক"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"ব্যক্তিগত স্পে’চ ছেট আপ কৰিবলৈ ছাইন ইন কৰক"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"বাই-ফাইত থাকক"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"আকৌ কেতিয়াও নেদেখুৱাব"</string>
<string name="wifi_connect" msgid="2481467560349907397">"সংযোগ কৰক"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"ৱাই-ফাই অন কৰা হ’ল"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰা হৈছে"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰি থকা হৈছে"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"সংযোগ কৰি থকা হৈছে…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"নেটৱৰ্কৰ সৈতে সংযোগ কৰিব পৰা নগ\'ল"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"নেটৱৰ্ক পৰিসৰত নাই"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"স্ক্ৰীনৰ সতর্কতাই কোনোবাই স্ক্ৰীনখন চাই আছে নেকি জানিবলৈ সন্মুখৰ কেমেৰা ব্যৱহাৰ কৰে। এই সুবিধাটোৱে ডিভাইচত কাম কৰে আৰু প্ৰতিচ্ছবিবোৰ কেতিয়াও ষ্ট’ৰ কৰা নহয় বা Googleলৈ পঠিওৱা নহয়।"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"স্ক্ৰীনৰ সতর্কতা অন কৰক"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"স্ক্ৰীনখন চাই থকা অৱস্থাত সেইখন অন কৰি ৰাখক"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"কেমেৰাটো লক আছে"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"মুখাৱয়ব চিনাক্তকৰণৰ বাবে কেমেৰাটো আনলক কৰিবই লাগিব"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"স্ক্ৰীনৰ সতর্কতাৰ বাবে কেমেৰা আনলক কৰি ৰাখিবই লাগিব"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"আপোনাৰ ৱাই-ফাই অথবা ম’বাইল ডেটাৰ জৰিয়তে অন্য ডিভাইচসমূহক ইণ্টাৰনেট প্ৰদান কৰিবলৈ হটস্পট আৰু টে\'ডাৰিং ব্যৱহাৰ কৰক। নিকটৱৰ্তী ডিভাইচসমূহৰ সৈতে সমল শ্বেয়াৰ কৰিবলৈ এপ্সমূহেও এটা হটস্পট সৃষ্টি কৰিব পাৰে।"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"সহায়"</string>
<string name="network_settings_title" msgid="4663717899931613176">"ম’বাইল নেটৱৰ্ক"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ম’বাইল আঁচনি"</string>
<string name="sms_application_title" msgid="4791107002724108809">"এছএমএছ এপ্"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"এছএমএছ এপ্ সলনি কৰিবনে?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"আপোনাৰ এছএমএছ এপ্ হিচাপে <xliff:g id="CURRENT_APP">%2$s</xliff:g>ৰ পৰিৱৰ্তে <xliff:g id="NEW_APP">%1$s</xliff:g> ব্যৱহাৰ কৰিবনে?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ৱাই-ফাই সহায়কক সলনি কৰিবনে?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"নেটৱৰ্ক সংযোগ পৰিচালনাৰ কাৰণে <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="680685773455072321">"আপোনাৰ নেটৱৰ্কৰ সংযোগসমূহ পৰিচালনা কৰিবলৈ <xliff:g id="NEW_APP">%s</xliff:g>ক ব্যৱহাৰ কৰিবনে?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"অজ্ঞাত ছিম অপাৰেটৰ"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>ৰ কোনো জ্ঞাত প্ৰ\'ভিজনিং ৱেবছাইট নাই"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"অনুগ্ৰহ কৰি ছিম কাৰ্ড সুমুৱাওক আৰু ৰিষ্টাৰ্ট কৰক"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"অনুগ্ৰহ কৰি ইণ্টানেটত সংযোগ কৰক"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"শেহতীয়া অৱস্থানৰ অনুৰোধ"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"কৰ্মস্থানৰ প্ৰ’ফাইলৰ বাবে অৱস্থান"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"এপৰ অৱস্থানৰ অনুমতি"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ই আপুনি কোনো এপ্ বা হার্ডৱেৰ ছেন্সৰৰ সৈতে কৰা ভাব-বিনিময় আৰু আপোনাৰ হৈ অন্য কোনো লোকে এপৰ সৈতে কৰা ভাব-বিনিময় ট্ৰেক কৰিব পাৰে।"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"অনুমতি দিয়ক"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"অস্বীকাৰ কৰক"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"অফ কৰক"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"অন ৰাখক"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> অফ কৰিবনে?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"কোনো সেৱা ইনষ্টল কৰা হোৱা নাই"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"কোনো সেৱা বাছনি কৰা হোৱা নাই"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"কোনো বিৱৰণ যোগান ধৰা হোৱা নাই।"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"ভিপিএন নোহোৱাকৈয়ে সংযোগবোৰ অৱৰোধ কৰক"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN সংযোগৰ প্ৰয়োজন নেকি?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"সুৰক্ষিত নহয়। এটা IKEv2 ভিপিএনলৈ আপডে’ট কৰক"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"অসমৰ্থিত ভিপিএন আৰম্ভ কৰিব পৰা নগ’ল।"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"যিকোনো সময়ত সংযোগ হৈ থাকিবলৈ ভিপিএন প্ৰ\'ফাইল বাছনি কৰক। এই ভিপিএনত সংযোগ হ\'লেহে ইণ্টাৰনেট ব্যৱহাৰ কৰিব পাৰিব।"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"নাই"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"সদা-সক্ৰিয় ভিপিএনৰ ক্ষেত্ৰত ছাৰ্ভাৰ আৰু ডিএনএছ দুয়োটাৰ বাবে আইপি ঠিকনা থকাটো দৰকাৰী।"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 27d1eaf..21f3ba6 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Şəxsi məkan ayarlanır…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Şəxsi məkan kilidlənəndə tətbiq istifadəsi məlumatları gizlədilir"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Şəxsi məkana tətbiq siyahınızdan daxil olun"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Bəzi sistem tətbiqləri Şəxsi məkanda quraşdırılıb"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Şəxsi məkanı ayarlamaq olmadı"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Yenidən cəhd edin, yaxud sonra qayıdın"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Yenidən sınayın"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Ekran kilidi istifadə edin"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Yeni kilid seçin"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Hər şey hazırdır!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Şəxsi məkana tətbiq siyahısından daxil ola bilərsiniz"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Hazırdır"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Şəxsi məkana giriş üçün aşağı sürüşdürün"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Şəxsi Məkanı ayarlamaq üçün daxil olun"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi‑Fi şəbəkəsində qalın"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Daha göstərməyin"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Qoşul"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi aktivdir"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> şəbəkəsinə qoşulub"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> şəbəkəsinə qoşulur"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Qoşulur…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Şəbəkəyə qoşulmaq alınmadı"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Şəbəkə aralıqda deyil"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Adaptiv yuxu rejimi aktiv olanda cihaz ekrana baxdığınızı bilmək üçün ön kameranı istifadə edir. Şəkillər heç vaxt cihazdan kənara göndərilmir."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ekran həssaslığını aktiv edin"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ekrana baxarkən onu aktiv saxlayın"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera kilidlidir"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Üzün aşkarlanması üçün kameranın kilidi açılmalıdır"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Ekran Həssaslığı üçün kamera kiliddən çıxarılmalıdır"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Digər cihazları mobil internetlə təmin etmək üçün hotspot və modem rejimini istifadə edin. Tətbiqlər kontent paylaşmaq üçün hotspot da yarada bilər."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Yardım"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobil şəbəkə"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobil plan"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS tətbiqi"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS tətbiqi dəyişilsin?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="NEW_APP">%1$s</xliff:g> tətbiqi <xliff:g id="CURRENT_APP">%2$s</xliff:g> yerinə SMS tətbiqiniz olaraq işlənsin?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi yardımçısı dəyişdirilsin?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Şə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="680685773455072321">"Şə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="6650422533065760963">"Naməlum SIM operatoru"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> naməlum vebsayt təminatçısına malikdir"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Lütfən, SİM kart daxil edin və yenidən başladın"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Lütfən. internetə qoşulun"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Son məkan sorğuları"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"İş profili üçün yer"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Tətbiq məkanı icazələri"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Tətbiq və sensorlarla əlaqələrinizi izləyib tətbiqlərə adınızdan əmrlər verə bilər"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"İcazə verin"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"İmtina edin"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Deaktiv"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Aktiv"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> deaktiv edilsin?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Heç bir xidmət quraşdırılmayıb"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Xidmət seçilmədi"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Heç bir təsvir verilməyib."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN\'siz bağlantıları blok edin"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN bağlantısı tələb edilir?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Güvənli deyil. IKEv2 VPN seçiminə güncəlləyin"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Dəstəklənməyən VPN başladılmadı."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Həmişə qoşulu qalmaq üçün VPN profili seçin. Yalnız bu VPN\'ə qoşulu olduqda şəbəkə trafikinə icazə veriləcək."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Heç biri"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Qoşulu VPN həmişə server və DNS üçün IP ünvan tələb edir."</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 07fdef9..4f01328 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Ostani na Wi‑Fi-ju"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Ne prikazuj ponovo"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Poveži"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"WiFi je uključen"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Povezano je na mrežu <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Povezujete se na <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Povezuje se…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Povezivanje sa mrežom nije uspelo"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mreža nije u dometu"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Pažnja ekrana koristi prednju kameru da bi utvrdila da li neko gleda u ekran. Radi na uređaju, a slike se nikada ne čuvaju niti šalju Google-u."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Uključite pažnju ekrana"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Sprečite isključivanje ekrana dok ga gledate"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera je zaključana"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera mora da bude otključana radi prepoznavanja lica"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera mora da bude otključana radi pažnje ekrana"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Koristite hotspot i privezivanje da biste omogućili internet na drugim uređajima pomoću WiFi veze ili veze za prenos podataka preko mobilnog operatera. Aplikacije mogu i da prave hotspotove za deljenje sadržaja sa uređajima u blizini."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Pomoć"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilna mreža"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Tarifni paket za mobilni uređaj"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplikacija za SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Želite li da promenite aplikaciju za SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Želite li da koristite <xliff:g id="NEW_APP">%1$s</xliff:g> umesto <xliff:g id="CURRENT_APP">%2$s</xliff:g> kao aplikaciju za SMS?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Želite da promenite Wi‑Fi pomoćnik?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Ž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="680685773455072321">"Ž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="6650422533065760963">"Nepoznati SIM operater"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznat veb-sajt za dodelu"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Ubacite SIM karticu i restartujte"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Povežite se sa internetom"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedavni zahtevi za lokaciju"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokacija za poslovni profil"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Dozvole za lokaciju aplikacije"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može da prati interakcije sa aplikacijom ili senzorom hardvera i koristi aplikacije umesto vas."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dozvoli"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Nastavi"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Želite da isključite uslugu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nijedna usluga nije instalirana"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nijedna usluga nije izabrana"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nije naveden opis."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokiraj veze bez VPN-a"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Treba vam VPN veza?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nije bezbedno. Ažurirajte na IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Pokretanje nepodržanog VPN-a nije uspelo."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Izaberite VPN profil sa kojim ćete uvek biti povezani. Mrežni sadržaj će biti dozvoljen samo kada ste povezani sa ovim VPN-om."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Nijedan"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Stalno uključen VPN zahteva IP adresu za server i DNS."</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 68e2a9e..ad79f0b 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Наладжваецца прыватная вобласць…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Звесткі аб выкарыстанні прыватнай вобласці схаваны, калі яна заблакіравана"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Уваходзьце ў прыватную вобласць са спіса праграм"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Некаторыя сістэмныя праграмы ўжо ўсталяваны ў прыватнай вобласці"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Не ўдаецца наладзіць прыватную вобласць"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Паўтарыце спробу зараз або вярніцеся пазней"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Паўтарыць спробу"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Выкарыстоўваць блакіроўку экрана"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Выбраць новы спосаб блакіроўкі"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Гатова!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Доступ да прыватнай вобласці можна атрымаць са спіса праграм"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Гатова"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Каб увайсці ў прыватную вобласць, прагартайце ўніз"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Увайдзіце ва ўліковы запіс, каб наладзіць прыватную вобласць"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Заставацца ў сетцы Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Больш не паказваць"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Падключыцца"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi уключаны"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Падключана да сеткi <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Ідзе падключэнне да сеткі \"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\""</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Ідзе падключэнне…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Не атрымалася падключыцца да сеткі"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Сетка не ў зоне дасягальнасці"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Адаптыўны рэжым з дапамогай пярэдняй камеры вызначае, калі хто-небудзь глядзіць на экран. Функцыя працуе толькі на прыладзе: відарысы не захоўваюцца і не адпраўляюцца ў Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Уключыць адаптыўны рэжым"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Не дазваляць экрану выключацца, калі на яго глядзяць"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камера заблакіравана"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Каб выкарыстоўваць функцыю выяўлення твару, трэба разблакіраваць камеру"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Для адаптыўнага рэжыму трэба разблакіраваць камеру"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Для падключэння да інтэрнэту іншых прылад праз Wi-Fi ці мабільную перадачу даных выкарыстоўвайце хот-спот і рэжым мадэма. Для абагульвання змесціва з прыладамі паблізу праграмы таксама могуць ствараць хот-спот."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Даведка"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Мабільная сетка"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Тарыфны план"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Праграма для SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Змяніць праграму для SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Выкарыстоўваць праграму \"<xliff:g id="NEW_APP">%1$s</xliff:g>\" замест \"<xliff:g id="CURRENT_APP">%2$s</xliff:g>\" для SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Змяніць памочніка Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Выкарыстоўваць <xliff:g id="NEW_APP">%1$s</xliff:g> замест <xliff:g id="CURRENT_APP">%2$s</xliff:g> для кіравання сеткавымі падлучэннямі?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Выкарыстоўваць <xliff:g id="NEW_APP">%s</xliff:g> для кіравання вашымі падлучэннямі да сеткі?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Невядомы аператар SIM-карты"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"У <xliff:g id="OPERATOR">%1$s</xliff:g> няма вядомага вэб-сайта для забеспячэння паслуг"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Калі ласка, устаўце SIM-карту і перазагрузіце"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Калі ласка, падлучыцеся да Інтэрнэту"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Апошнія запыты геаданых"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Месца для рабочага профілю"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Дазволы на доступ да геаданых"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Гэта функцыя можа адсочваць вашы ўзаемадзеянні з праграмай ці датчыкам апаратнага забеспячэння і ўзаемадзейнічаць з праграмамі ад вашага імя."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дазволіць"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Адмовіць"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Выключыць"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Не выключаць"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Выключыць сэрвіс \"<xliff:g id="SERVICE">%1$s</xliff:g>\"?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Няма ўсталяваных службаў"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Служба не выбрана"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Няма апісання."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Блакіраваць злучэнні без VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Патрабуецца падключэнне VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Сетка VPN не абаронена. Перайдзіце на пратакол IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Не ўдалося падключыцца да сеткі VPN, якая не падтрымліваецца."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Дазволiць, каб VPN заўсёды заставаўся падключаным да сеткi, можна будзе толькi пасля падключэння да гэтага VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Няма"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Заўсёды ўключаны VPN патрабуе IP-адрас для сервера і DNS."</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 6ada2b3..b400d6e 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Личното пространство се настройва…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Информацията за използването на приложенията в личното пространство е скрита, когато то е заключено"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Достъп до личното пространство от списъка ви с приложения"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Някои системни приложения вече са инсталирани в личното пространство"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Настройването на личното пространство не бе успешно"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Опитайте отново сега или се върнете по-късно"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Нов опит"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Използване на опцията за заключване на екрана"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Избиране на нова опция за заключване"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Готово!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Можете да осъществите достъп до личното пространство от списъка с приложения"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Готово"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Превъртете надолу за достъп до личното пространство"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Влезте в профила си, за да настроите личното пространство"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Придържане към Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Повече да не се показва"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Свързване"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Функцията за Wi-Fi е включена"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Установена е връзка с(ъс) <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Свързване към <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Свързва се…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Свързването с мрежата не бе успешно"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Мрежата не е в обхват"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Функцията „Внимание към екрана“ използва предната камера, за да види дали някой гледа в екрана. Тя работи на устройството и изображенията не се съхраняват, нито се изпращат до Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Вкл. на функцията „Внимание към екрана“"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Екранът остава включен, докато гледате към него"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камерата е заключена"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Камерата трябва да е отключена за лицевото разпознаване"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Камерата трябва да е отключена за функцията „Внимание към екрана“"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Използвайте точка за достъп и тетъринг, за да предоставите достъп до интернет на други устройства чрез Wi-Fi или мобилната си връзка за данни. Приложенията могат също да създават точки за достъп, за да споделят съдържание с устройства в близост."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Помощ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Мобилна мрежа"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Мобилен план"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Приложение за SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Да се промени ли приложението за SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Да се използва ли <xliff:g id="NEW_APP">%1$s</xliff:g> вместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> като приложение за SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Да се промени ли асистентът за Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Да се използва ли <xliff:g id="NEW_APP">%1$s</xliff:g> вместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управление на мрежовите ви връзки?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Да се използва ли <xliff:g id="NEW_APP">%s</xliff:g> за управление на мрежовите ви връзки?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Неизвестен SIM оператор"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Няма известен администриращ уебсайт за <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Моля, поставете SIM карта и рестартирайте"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Моля, свържете се с интернет"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Скорошни заявки за местопол."</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Местоп. за служ. потр. профил"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Разрешения на приложенията за достъп до местоп."</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Услугата може да проследява взаимодействията ви с дадено приложение или хардуерен сензор, както и да взаимодейства с приложенията от ваше име."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Разрешаване"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Отказ"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Изключване"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Не"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Да се изключи ли <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Няма инсталирани услуги"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Няма избрана услуга"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Няма описание."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Блокиране на връзките без VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Да се изисква ли връзка с VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Няма защита. Актуализирайте до VPN от типа IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Неподдържаната VPN не бе стартирана."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Изберете потребителски профил за виртуална частна мрежа (VPN), за да останете винаги свързани с нея. Мрежовият трафик ще бъде разрешен само при връзка с тази VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Няма"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Винаги включената виртуална частна мрежа (VPN) изисква IP адрес както за сървъра, така и за DNS."</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index da0dfec..6e51ed0 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"\'ব্যক্তিগত স্পেস\' সেট-আপ করা হচ্ছে…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"\'ব্যক্তিগত স্পেস\' লক করা থাকলে এখানে থাকা অ্যাপ ব্যবহারের তথ্য লুকানো থাকবে"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"আপনার অ্যাপ তালিকা থেকে \'ব্যক্তিগত স্পেস\' অ্যাক্সেস করুন"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"কিছু সিস্টেম অ্যাপ আগে থেকেই \'ব্যক্তিগত স্পেস\'-এ ইনস্টল করা আছে"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"\'ব্যক্তিগত স্পেস\' সেট-আপ করা যায়নি"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"এখনই আবার চেষ্টা করুন বা পরে আবার চেষ্টা করে দেখুন"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"আবার চেষ্টা করুন"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"স্ক্রিন লক ব্যবহার করুন"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"নতুন লক বেছে নিন"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"হয়ে গেছে!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"আপনার অ্যাপ তালিকা থেকে \'ব্যক্তিগত স্পেস\' অ্যাক্সেস করতে পারবেন"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"হয়ে গেছে"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"\'ব্যক্তিগত স্পেস\' অ্যাক্সেস করতে নিচের দিকে স্ক্রল করুন"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"\'ব্যক্তিগত স্পেস\' সেট-আপ করতে সাইন-ইন করুন"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"ওয়াই-ফাই এ থাকুন"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"আর কখনও দেখাবেন না"</string>
<string name="wifi_connect" msgid="2481467560349907397">"কানেক্ট করুন"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"ওয়াই-ফাই চালু আছে"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-এ কানেক্ট আছে"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-এ কানেক্ট করা হচ্ছে"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"কানেক্ট করা হচ্ছে…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"নেটওয়ার্কের সাথে কানেক্ট করতে ব্যর্থ হয়েছে"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"নেটওয়ার্ক পরিষেবা সীমার মধ্যে নেই"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"স্ক্রিন অ্যাটেনশন ফিচারটি মোবাইলের সামনের ক্যামেরা ব্যবহার করে জানতে পারে যে কেউ স্ক্রিনের দিকে তাকিয়ে আছে কিনা। এটি ডিভাইসে কাজ করে এবং ছবি কখনই স্টোর করা বা Google-কে পাঠানো হয় না।"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"\'স্ক্রিন অ্যাটেনশন\' চালু করুন"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"স্ক্রিনের দিকে তাকিয়ে থাকলে সেটি বন্ধ হবে না"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ক্যামেরা লক করা আছে"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ফেস ডিটেকশনের জন্য ক্যামেরা অবশ্যই আনলক করা থাকতে হবে"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"স্ক্রিন অ্যাটেনশন ফিচারের জন্য ক্যামেরা আনলক থাকতে হবে"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"আপনার মোবাইল ডেটা কানেকশন অথবা ওয়াই-ফাই থেকে অন্যান্য ডিভাইসে ইন্টারনেট কানেকশন দিতে হটস্পট এবং টিথারিং ব্যবহার করুন। অ্যাপগুলিও আশেপাশের ডিভাইসের সাথে কন্টেন্ট শেয়ার করার জন্য হটস্পট তৈরি করে নিতে পারে।"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"সহায়তা"</string>
<string name="network_settings_title" msgid="4663717899931613176">"মোবাইল নেটওয়ার্ক"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"মোবাইল প্ল্যান"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS অ্যাপ"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS অ্যাপ্লিকেশান পরিবর্তন করবেন?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> এর পরিবর্তে <xliff:g id="NEW_APP">%1$s</xliff:g> কে SMS অ্যাপ্লিকেশান হিসেবে ব্যবহার করবেন?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ওয়াই-ফাই সহকারী পরিবর্তন করবেন?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"আপনার নেটওয়ার্ক কানেকশন পরিচালনা করার জন্য <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="680685773455072321">"আপনার নেটওয়ার্ক কানেকশন পরিচালনা করার জন্য <xliff:g id="NEW_APP">%s</xliff:g> ব্যবহার করবেন?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"সিম এর পরিষেবা প্রদানকারী অজানা"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> এর কোনো পরিচিত প্রভিশনিং ওয়েবসাইট নেই"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"দয়া করে সিম কার্ড ঢোকান এবং পুনর্সূচনা করুন"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"দয়া করে ইন্টারনেটের সঙ্গে কানেক্ট হোন"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"সাম্প্রতিক লোকেশন অনুরোধগুলি"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"অফিস প্রোফাইলের জন্য লোকেশন"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"অ্যাপের ক্ষেত্রে লোকেশনের অনুমতি"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"এটি কোনও একটি অ্যাপের সাথে অথবা হার্ডওয়্যার সেন্সরের সাথে আপনার ইন্টার্যাকশন ট্র্যাক করতে এবং আপনার হয়ে বিভিন্ন অ্যাপের সাথে ইন্টার্যাক্ট করতে পারে।"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"অনুমতি দিন"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"খারিজ করুন"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"বন্ধ করুন"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"চালু রাখুন"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> পরিষেবা বন্ধ করতে চান?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"কোনো পরিষেবা ইনস্টল করা নেই"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"কোনো সার্ভিস বেছে নেওয়া হয়নি"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"কোনো বিবরণ প্রদান করা নেই।"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN বিহীন সংযোগগুলি ব্লক করুন"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN কানেকশন প্রয়োজন?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"নিরাপদ নয়। IKEv2 VPN-এ আপডেট করুন"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"ব্যবহার করা যায় না সেই VPN চালু করা যায়নি।"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"সর্বদা কানেক্ট থাকতে একটি VPN প্রোফাইল বেছে নিন। এই VPN এ কানেক্ট থাকাকালীন শুধুমাত্র নেটওয়ার্ক ট্রাফিকের অনুমতি দেওয়া হবে।"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"কোনো কিছুই নয়"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"সর্বদা-চালু VPN এর সার্ভার্র এবং DNS উভয়েরই জন্য আইপি অ্যাড্রেস প্রয়োজন।"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index ef920eb..a101111 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Postavljanje privatnog prostora…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Informacije o korištenju aplikacija iz privatnog prostora su sakrivene kada je prostor zaključan"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Pristupite privatnom prostoru s liste aplikacija"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Određene sistemske aplikacije su već instalirane u privatnom prostoru"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Postavljanje privatnog prostora nije uspjelo"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Pokušajte ponovo sada ili se vratite kasnije"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Pokušaj ponovo"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Koristi zaključavanje ekrana"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Odaberite novi način zaključavanja"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Sve je spremno!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Možete pristupiti privatnom prostoru s liste aplikacija"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Gotovo"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Kliznite nadolje da pristupite privatnom prostoru"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Prijavite se da postavite privatni prostor"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Ostani na WiFi mreži"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Nemoj više prikazivati"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Poveži se"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"WiFi je uključen"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Povezano s mrežom <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Povezivanje s mrežom <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Povezivanje…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Povezivanje na mrežu nije uspjelo"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mreža nije u dometu"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Funkcija Svjesni ekran koristi prednju kameru da utvrdi gleda li neko u ekran. Funkcionira na uređaju, a slike se nikada ne arhiviraju niti šalju Googleu."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Uključite svjesni ekran"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Zadržava ekran uključenim dok gledate u njega"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera je zaključana"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera se mora otključati za Prepoznavanje lica"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Morate otključati kameru za Svjesni ekran"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Koristite pristupnu tačku i dijeljenje internetske veze da omogućite internet drugim uređajima putem WiFi-ja ili prijenosa podataka na mobilnoj mreži. Aplikacije također mogu kreirati pristupne tačke za dijeljenje sadržaja s uređajima u blizini."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Pomoć"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilna mreža"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Paket mobilne usluge"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplikacija za SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Promijeniti aplikaciju za SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Koristiti <xliff:g id="NEW_APP">%1$s</xliff:g> umjesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> kao aplikaciju za SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Promijeniti WiFi asistenta?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Ž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="680685773455072321">"Koristiti <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje vašim mrežnim vezama?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Nepoznati SIM operater"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznatu web lokaciju za omogućavanje upotrebe"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Umetnite SIM karticu i ponovo pokrenite uređaj"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Povežite se na Internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedavni zahtjevi za lokaciju"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokacija za radni profil"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Odobrenja lokacije za aplikacije"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može pratiti vaše interakcije s aplikacijom ili hardverskim senzorom te ostvariti interakciju s aplikacijama umjesto vas."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dozvoli"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ostavi uklj."</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Isključiti uslugu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nema instaliranih usluga"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nije odabrana usluga"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nije naveden opis."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokiraj veze bez VPN-a"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Treba li zahtijevati VPN vezu?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nije sigurno. Ažurirajte na IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Pokretanje nepodržanog VPN-a nije uspjelo."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Odaberite VPN profil s kojim će uvijek biti uspostavljena veza. Mrežni saobraćaj će biti dopušten samo kad je uspostavljena veza s tim VPN-om."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ništa"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Uvijek aktivni VPN zahtijeva IP adresu i za server i za DNS."</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 2c266b7..7bd9579 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"S\'està configurant Espai privat…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"La informació d\'ús de les aplicacions d\'Espai privat s\'amaga quan està bloquejat"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accedeix a Espai privat des de la llista d\'aplicacions"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Algunes aplicacions del sistema ja estan instal·lades a Espai privat"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"No s\'ha pogut configurar Espai privat"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Torna-ho a provar ara o torna més tard"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Torna-ho a provar"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Utilitza el bloqueig de pantalla"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Tria un bloqueig nou"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Tot a punt!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Pots accedir a Espai privat des de la llista d\'aplicacions"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Fet"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Desplaça\'t cap avall per accedir a Espai privat"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Inicia la sessió per configurar Espai privat"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Mantén la connexió a la Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"No ho mostris mai més"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Connecta"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"La xarxa Wi‑Fi està activada"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"T\'has connectat a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"S\'està connectant a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"S\'està connectant…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"No s\'ha pogut connectar a la xarxa"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"La xarxa està fora de l\'abast"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"La funció Atenció a la pantalla fa servir la càmera frontal per detectar si algú està mirant la pantalla. Només funciona al dispositiu, i les imatges mai no s\'emmagatzemen ni s\'envien a Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activa l\'atenció a la pantalla"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantén la pantalla activada mentre la mires"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"La càmera està bloquejada"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"La càmera ha d\'estar desbloquejada per a la detecció facial"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"La càmera ha d\'estar desbloquejada per accedir a la funció Atenció a la pantalla"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Utilitza el punt d\'accés Wi‑Fi i la compartició de xarxa per proporcionar Internet a altres dispositius amb la teva connexió Wi‑Fi o de dades mòbils. Les aplicacions també poden crear un punt d\'accés Wi‑Fi per compartir contingut amb els dispositius propers."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Ajuda"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Xarxa mòbil"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Pla mòbil"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplicació d\'SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vols canviar l\'aplicació d\'SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Vols fer servir <xliff:g id="NEW_APP">%1$s</xliff:g> en lloc de <xliff:g id="CURRENT_APP">%2$s</xliff:g> com a aplicació d\'SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vols canviar l\'assistent de Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"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="6650422533065760963">"Operador de SIM desconegut"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> no té cap lloc web d\'administració conegut"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Insereix la targeta SIM i reinicia"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Connecta a Internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Sol·licituds d\'ubicació recents"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ubicació per al perfil de treball"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Permisos d\'ubicació d\'aplicacions"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pot fer un seguiment de les teves interaccions amb una aplicació o un sensor de maquinari, i interaccionar amb aplicacions en nom teu."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permet"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denega"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactiva"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Mantén"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Vols desactivar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"No hi ha cap servei instal·lat"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"No s\'ha seleccionat cap servei"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No s\'ha proporcionat cap descripció."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloqueja les connexions sense VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"La connexió VPN ha de ser obligatòria?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"No és segura. Actualitza a una VPN IKEv2."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"No s\'ha pogut iniciar la VPN no admesa."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN per estar-hi sempre connectat. El trànsit de la xarxa només es permetrà quan estiguis connectat a aquesta VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Cap"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Per tenir la VPN sempre activada cal una adreça IP per al servidor i per al DNS."</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index e670c0f..1036c5f 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Nastavování soukromého prostoru…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Když je soukromý prostor uzamčen, informace o využití aplikací v soukromém prostoru jsou skryty"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Přístup k soukromému prostoru ze seznamu aplikací"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Některé systémové aplikace už jsou nainstalované v soukromém prostoru"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Soukromý prostor se nepodařilo nastavit"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Zkuste to teď znovu nebo se vraťte později"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Zkusit znovu"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Použít zámek obrazovky"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Zvolit nový zámek"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Hotovo!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Soukromý prostor můžete otevřít ze seznamu aplikací"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Hotovo"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Pokud chcete otevřít soukromý prostor, přejděte dolů"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Pokud chcete nastavit soukromý prostor, přihlaste se"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Zůstat na Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Již nikdy nezobrazovat"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Připojit"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Připojení Wi-Fi je zapnuto"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Připojeno k <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Připojování k síti <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Připojování…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Připojení k síti se nezdařilo."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Síť není v dosahu"</string>
@@ -1131,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Funkce vnímavá obrazovka dokáže pomocí přední kamery určit, zda se někdo na obrazovku dívá. Data se zpracovávají v zařízení a snímky se nikdy neukládají ani neodesílají do Googlu."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Zapnutí vnímavé obrazovky"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Nechat obrazovku zapnutou, když na ni koukáte"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Delší interval vypnutí obrazovky bude spotřebovávat víc baterie"</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Fotoaparát je uzamčený"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Při rozpoznávání obličeje musí být fotoaparát odemknutý"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Při použití vnímavé obrazovky musí být fotoaparát odemknutý"</string>
@@ -1471,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Hotspot a tethering umožňují poskytovat internet jiným zařízením prostřednictvím vašeho připojení Wi-Fi nebo vašeho mobilního datového připojení. Hotspot ke sdílení obsahu s okolními zařízeními mohou vytvářet i aplikace."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Nápověda"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilní síť"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilní tarif"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplikace pro SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Chcete změnit aplikaci SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Chcete pro zprávy SMS používat aplikaci <xliff:g id="NEW_APP">%1$s</xliff:g> místo aplikace <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1479,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Změnit asistenta pro Wi-Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Chcete spravovat síťová připojení pomocí aplikace <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operátor SIM karty není znám"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"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="3639245241283948038">"Vložte SIM kartu a restartujte zařízení."</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Připojte se prosím k internetu."</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedávné žádosti o určení polohy"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Umístění pracovního profilu"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Oprávnění aplikací pro přístup k poloze"</string>
@@ -2247,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Služba může sledovat vaše interakce s aplikací nebo hardwarovým senzorem a komunikovat s aplikacemi namísto vás."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Povolit"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zakázat"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vypnout"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Nevypínat"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Vypnout službu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Žádná služba není nainstalována"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Není vybrána žádná služba"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"K dispozici není žádný popis."</string>
@@ -2779,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokovat připojení bez VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Vyžadovat připojení VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nezabezpečeno. Proveďte aktualizaci na IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nepodporovanou VPN se nepodařilo spustit."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Vyberte profil VPN, ke kterému chcete zůstat trvale připojeni. Síťový provoz bude povolen pouze v případě, že budete připojeni k této síti VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Žádná"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Trvalá síť VPN vyžaduje IP adresu pro server i DNS."</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 3a0b11b..23c44ad 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Konfigurerer et privat rum…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Oplysninger om brug for apps i et privat rum er skjult, når det private rum er låst"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Få adgang til dit private rum via din liste over apps"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Nogle systemapps er allerede blevet installeret i det private rum"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Det private rum kunne ikke konfigureres"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Prøv igen nu, eller vend tilbage senere"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Prøv igen"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Brug skærmlås"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Vælg en ny lås"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Det var det hele."</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Du kan få adgang til det private rum via din liste over apps"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Udfør"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Rul ned for at få adgang til det private rum"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Log ind for at konfigurere Private Space"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Bliv på Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Vis aldrig igen"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Forbind"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi er slået til"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Forbundet til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Opretter forbindelse til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Tilslutter…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Der kunne ikke oprettes forbindelse til netværket"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netværket er ikke inden for rækkevidde"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Den opmærksomme skærm bruger frontkameraet til at tjekke, om der er nogen, der kigger på skærmen. Funktionen fungerer kun lokalt på enheden, og den gemmer ikke billeder eller sender billeder til Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aktivér opmærksom skærm"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Hold skærmen tændt, så længe du kigger på den"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kameraet er låst"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kameraet skal låses op, før du kan bruge ansigtsgenkendelse"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kameraet skal låses op, før du kan bruge opmærksom skærm"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Brug hotspot og netdeling til at give andre enheder adgang til internettet via din Wi-Fi- eller mobildataforbindelse. Apps kan også oprette et hotspot til at dele indhold med enheder i nærheden."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Hjælp"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilnetværk"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilabonnement"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Sms-app"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vil du skifte sms-app?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Vil du bruge <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> som din standardapp til sms?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vil du skifte Wi-Fi-assistent?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"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="6650422533065760963">"SIM fra ukendt mobilselskab"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> har intet kendt website til provisionering"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Indsæt SIM-kort, og genstart"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Opret forbindelse til internettet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Seneste lokationsanmodninger"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokation for arbejdsprofil"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Lokationstilladelse for apps"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan spore dine interaktioner med en app eller en hardwaresensor og interagere med apps på dine vegne."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillad"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Afvis"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slå fra"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Slå ikke fra"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Vil du slå <xliff:g id="SERVICE">%1$s</xliff:g> fra?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Der er ikke installeret nogen tjenester"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Der er ikke valgt nogen tjeneste"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ingen beskrivelse til rådighed."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloker forbindelser uden VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Vil du kræve VPN-forbindelse?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ikke sikkert. Opdater til et IKEv2 VPN-netværk"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Den ikke-understøttede VPN kunne ikke startes."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Vælg en VPN-profil, der altid skal være forbindelse til. Netværkstrafik tillades kun, når der er forbindelse til dette VPN-netværk."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ingen"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Et konstant VPN kræver en IP-adresse til både server og DNS."</string>
@@ -4886,10 +4875,10 @@
<string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Denne app genstartes, når du ændrer billedformatet. Du mister muligvis ændringer, der ikke er gemt. Visse apps er muligvis ikke optimeret til bestemte billedformater."</string>
<string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Billedformat (eksperimentel)"</string>
<string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Billedformat (eksperiment)"</string>
- <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Billedformat (prøvefunktioner)"</string>
+ <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Billedformat (labs)"</string>
<string name="aspect_ratio_experimental_label" msgid="6319009297672567578">"Eksperimentel"</string>
<string name="aspect_ratio_experiment_label" msgid="7861871612376167784">"Eksperiment"</string>
- <string name="aspect_ratio_labs_label" msgid="7008498116297651342">"Prøvefunktioner"</string>
+ <string name="aspect_ratio_labs_label" msgid="7008498116297651342">"Labs"</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingeraftrykssensor"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Lysnotifikationer"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Om lysnotifikationer"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index ad7efec..fff6304 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -543,13 +543,13 @@
<string name="work_profile_category_header" msgid="85707750968948517">"Arbeitsprofil"</string>
<string name="private_space_title" msgid="7078627930195569767">"Privater Bereich"</string>
<string name="private_space_summary" msgid="8237652417163408001">"Apps in privatem Ordner verstecken"</string>
- <string name="private_space_description" msgid="5494963647270826210">"Apps in privatem Ordner verstecken, auf den nur du zugreifen kannst"</string>
+ <string name="private_space_description" msgid="5494963647270826210">"Apps in einem privaten Ordner verstecken, auf den nur du zugreifen kannst"</string>
<string name="private_space_lock_title" msgid="3006539720164938296">"Sperre für privaten Bereich"</string>
- <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Du kannst den privaten Bereich auf dieselbe Weise entsperren wie dein Gerät oder eine andere Sperre auswählen"</string>
+ <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Du kannst zum Entsperren des privaten Bereichs dieselbe Methode wie für das Entsperren deines Geräts verwenden oder aber eine andere Sperrmethode einrichten"</string>
<string name="private_space_screen_lock_title" msgid="8679383894967823163">"Displaysperre des Geräts verwenden"</string>
<string name="private_space_biometric_title" msgid="3934339826674553174">"Entsperrung per Gesichtserkennung und Fingerabdruck"</string>
<string name="private_space_biometric_summary" msgid="4403837276018724581">"Zum Einrichten tippen"</string>
- <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Identisch mit Displaysperre des Geräts"</string>
+ <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Gleiche Methode wie für Displaysperre des Geräts verwenden"</string>
<string name="private_space_new_lock_title" msgid="7306873010565337671">"Neue Sperre für privaten Bereich festlegen?"</string>
<string name="private_space_hide_title" msgid="8687034008994037610">"Ausblenden, wenn gesperrt"</string>
<string name="privatespace_hide_page_title" msgid="972581369094289386">"„Privater Bereich“ ausblenden, wenn gesperrt"</string>
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Der private Bereich wird eingerichtet…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Informationen zur Nutzung von Apps im privaten Bereich sind verborgen, wenn dieser gesperrt ist"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Über die App-Liste auf den privaten Bereich zugreifen"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Einige System-Apps sind bereits im privaten Bereich installiert"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Der private Bereich konnte nicht eingerichtet werden"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Du kannst es jetzt oder später noch einmal versuchen"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Wiederholen"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Displaysperre verwenden"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Neue Sperre auswählen"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Fertig!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Du kannst über die App-Liste auf den privaten Bereich zugreifen"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Fertig"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Scrolle nach unten, um auf den privaten Bereich zuzugreifen"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Zum Einrichten des privaten Bereichs anmelden"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Weiterhin WLAN verwenden"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Nicht mehr anzeigen"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Verbinden"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"WLAN ist aktiviert"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Verbunden mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Verbindung zu <xliff:g id="NETWORK_NAME">%1$s</xliff:g> wird hergestellt"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Verbinden…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Netzwerkverbindung konnte nicht hergestellt werden."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netzwerk außer Reichweite"</string>
@@ -1131,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Die Funktion „Aufmerksamkeitserkennung“ verwendet die Frontkamera, um zu erkennen, ob jemand den Bildschirm ansieht. Es werden dabei keine Bilder gespeichert und auch nie an Google gesendet."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aufmerksamkeitserkennung aktivieren"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Display aktiviert lassen, solange du es ansiehst"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Wenn das Display länger eingeschaltet bleibt, wird die Akkulaufzeit verkürzt."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera ist gesperrt"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Für die Gesichtserkennung muss die Kamera entsperrt sein"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Für die Funktion „Aufmerksamkeitserkennung“ muss die Kamera entsperrt sein"</string>
@@ -1471,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Mithilfe der Hotspot- und Tethering-Funktion kannst du anderen Geräten erlauben, deine Internetverbindung (WLAN oder mobile Daten) mitzunutzen. Es gibt auch Apps für das Erstellen eines Hotspots, damit Inhalte mit Geräten in der Nähe geteilt werden können."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Hilfe"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilfunknetz"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilfunktarif"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS-App"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS-App wechseln?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="NEW_APP">%1$s</xliff:g> statt <xliff:g id="CURRENT_APP">%2$s</xliff:g> als SMS-App verwenden?"</string>
@@ -1479,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"WLAN-Assistenten ändern?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"<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="680685773455072321">"<xliff:g id="NEW_APP">%s</xliff:g> zur Verwaltung von Netzwerkverbindungen nutzen?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unbekannter SIM-Anbieter"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> hat keine bekannte Bereitstellungswebsite"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Lege die SIM ein und starte das Gerät neu."</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Bitte stelle eine Verbindung zum Internet her."</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Letzte Standortanfragen"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Standort für Arbeitsprofil"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Berechtigungen zur Standortermittlung"</string>
@@ -2247,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Die Funktion kann deine Interaktionen mit einer App oder einem Hardwaresensor verfolgen und in deinem Namen mit Apps interagieren."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Zulassen"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Ablehnen"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Aus"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ein lassen"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> deaktivieren?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Keine Dienste installiert"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Kein Dienst ausgewählt"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Es wurde keine Beschreibung bereitgestellt."</string>
@@ -2779,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Verbindungen ohne VPN blockieren"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN-Verbindung erforderlich?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Unsicher. Update auf IKEv2-VPN empfohlen."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nicht unterstütztes VPN konnte nicht gestartet werden."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Wähle ein VPN-Profil für eine durchgehende Verbindung aus. Netzwerkverkehr ist nur möglich, wenn eine Verbindung zu diesem VPN besteht."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Keines"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Für ein durchgehend aktives VPN ist eine IP-Adresse für den Server und für das DNS erforderlich."</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index a4ec270..e3a9dcf 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Παραμονή σε Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Να μην εμφανιστεί ξανά"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Σύνδεση"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Το Wi-Fi ενεργοποιήθηκε"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Σύνδεση σε <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Σύνδεση στο δίκτυο <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Σύνδεση…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Αποτυχία σύνδεσης στο δίκτυο"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Το δίκτυο δεν βρίσκεται εντός εμβέλειας"</string>
@@ -1129,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Η λειτουργία Παρακολούθηση οθόνης χρησιμοποιεί την μπροστινή κάμερα για να διαπιστώσει αν κάποιος χρήστης κοιτάζει την οθόνη. Λειτουργεί στη συσκευή και οι εικόνες δεν αποθηκεύονται ούτε αποστέλλονται στην Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ενεργοποίηση παρακολούθησης οθόνης"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Η οθόνη διατηρείται αναμμένη όταν την κοιτάτε"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Θα χρησιμοποιηθεί περισσότερη μπαταρία, εάν το χρονικό όριο κλεισίματος οθόνης είναι μεγαλύτερο."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Η κάμερα είναι κλειδωμένη"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Η κάμερα πρέπει να είναι ξεκλειδωμένη για την Ανίχνευση προσώπων"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Η κάμερα πρέπει να είναι ξεκλειδωμένη για την Παρακολούθηση οθόνης"</string>
@@ -1469,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Χρησιμοποιήστε το σημείο πρόσβασης Wi-Fi και τη σύνδεση, για να παρέχετε σύνδεση στο διαδίκτυο σε άλλες συσκευές, μέσω του δικτύου Wi-Fi ή της σύνδεσης δεδομένων κινητής τηλεφωνίας που χρησιμοποιείτε. Οι εφαρμογές μπορούν επίσης να δημιουργούν ένα σημείο πρόσβασης Wi-Fi, για να μοιράζονται περιεχόμενο με κοντινές συσκευές."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Βοήθεια"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Δίκτυο κινητής τηλεφωνίας"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Πρόγραμμα κινητής τηλεφωνίας"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Εφαρμογή SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Αλλαγή εφαρμογής SMS;"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Χρήση του <xliff:g id="NEW_APP">%1$s</xliff:g> αντί του <xliff:g id="CURRENT_APP">%2$s</xliff:g> ως εφαρμογή SMS;"</string>
@@ -1477,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Αλλαγή βοηθού Wi-Fi;"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Χρήση της εφαρμογής <xliff:g id="NEW_APP">%1$s</xliff:g> αντί για την εφαρμογή <xliff:g id="CURRENT_APP">%2$s</xliff:g> για τη διαχείριση των συνδέσεων δικτύου σας;"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Χρήση της εφαρμογής <xliff:g id="NEW_APP">%s</xliff:g> για τη διαχείριση των συνδέσεων δικτύου σας;"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Κάρτα SIM άγνωστης εταιρείας κινητής τηλεφωνίας"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Ο τελεστής <xliff:g id="OPERATOR">%1$s</xliff:g> δεν διαθέτει γνωστό ιστότοπο παροχής"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Εισαγάγετε την κάρτα SIM και κάντε επανεκκίνηση"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Συνδεθείτε στο διαδίκτυο"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Πρόσφατα αιτήματα τοποθεσίας"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Τοποθεσία για προφίλ εργασίας"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Άδειες τοποθεσίας εφαρμογών"</string>
@@ -2245,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Μπορεί να παρακολουθήσει τις αλληλεπιδράσεις σας με μια εφαρμογή ή έναν αισθητήρα εξοπλισμού και να αλληλεπιδράσει με εφαρμογές εκ μέρους σας."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ναι"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Όχι"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Απενεργοπ."</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ενεργό"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Απενεργοποίηση <xliff:g id="SERVICE">%1$s</xliff:g>;"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Δεν έχουν εγκατασταθεί υπηρεσίες"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Δεν έχει επιλεγεί κάποια υπηρεσία"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Δεν υπάρχει περιγραφή."</string>
@@ -2777,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Αποκλεισμός συνδέσεων χωρίς VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Να απαιτείται σύνδεση VPN;"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Μη ασφαλές. Ενημέρωση σε VPN IKEv2."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Απέτυχε η εκκίνηση του μη υποστηριζόμενου VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Επιλέξτε ένα προφίλ VPN στο οποίο θα παραμένετε πάντα συνδεδεμένοι. Η κίνηση δικτύου θα επιτρέπεται μόνο κατά τη σύνδεση σε αυτό το VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Κανένα"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Το VPN που έχει ρυθμιστεί να είναι ενεργοποιημένο πάντα απαιτεί μια διεύθυνση IP τόσο για τον διακομιστή όσο και για το DNS."</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 299c5c9..bec5d8b 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Stay on Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Never show again"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Connect"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi turned on"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Connected to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connecting to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Connecting…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Failed to connect to network"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Screen attention uses the front camera to see if someone is looking at the screen. It works on-device, and images are never stored or sent to Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Turn on screen attention"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Keep screen on when looking at it"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is locked"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera must be unlocked for face detection"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera must be unlocked for screen attention"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use hotspot and tethering to provide Internet to other devices through your Wi‑Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Help"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Change SMS app?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your SMS app?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Change Wi‑Fi assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unknown SIM operator"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Please insert SIM card and restart"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Please connect to the internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recent location requests"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Location for work profile"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"App location permissions"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Keep on"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Turn off <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"No services installed"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"No service selected"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Block connections without VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Require VPN connection?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Not secure. Update to an IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Failed to start unsupported VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Select a VPN profile to always remain connected to. Network traffic will only be allowed when connected to this VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"None"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Always-on VPN requires an IP address for both server and DNS."</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 1a139a4..7686078 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Stay on Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Never show again"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Connect"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi turned on"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Connected to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connecting to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Connecting…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Failed to connect to network"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
@@ -1129,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Screen attention uses the front camera to see if someone is looking at the screen. It works on device, and images are never stored or sent to Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Turn on screen attention"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Keep screen on when looking at it"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Longer screen timeout will use more battery."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is locked"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera must be unlocked for Face Detection"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera must be unlocked for Screen Attention"</string>
@@ -1469,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use hotspot and tethering to provide internet to other devices through your Wi‑Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Help"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Change SMS app?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your SMS app?"</string>
@@ -1477,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Change Wi‑Fi assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unknown SIM operator"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Please insert SIM card and restart"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Please connect to the internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recent location requests"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Location for work profile"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"App location permissions"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 9b7bf7d..05cb7f9 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Stay on Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Never show again"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Connect"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi turned on"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Connected to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connecting to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Connecting…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Failed to connect to network"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Screen attention uses the front camera to see if someone is looking at the screen. It works on-device, and images are never stored or sent to Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Turn on screen attention"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Keep screen on when looking at it"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is locked"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera must be unlocked for face detection"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera must be unlocked for screen attention"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use hotspot and tethering to provide Internet to other devices through your Wi‑Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Help"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Change SMS app?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your SMS app?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Change Wi‑Fi assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unknown SIM operator"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Please insert SIM card and restart"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Please connect to the internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recent location requests"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Location for work profile"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"App location permissions"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Keep on"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Turn off <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"No services installed"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"No service selected"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Block connections without VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Require VPN connection?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Not secure. Update to an IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Failed to start unsupported VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Select a VPN profile to always remain connected to. Network traffic will only be allowed when connected to this VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"None"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Always-on VPN requires an IP address for both server and DNS."</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 159cce8..512ea43 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Stay on Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Never show again"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Connect"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi turned on"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Connected to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connecting to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Connecting…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Failed to connect to network"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Screen attention uses the front camera to see if someone is looking at the screen. It works on device and images are never stored or sent to Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Turn on screen attention"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Keep screen on when looking at it"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is locked"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera must be unlocked for face detection"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera must be unlocked for screen attention"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use hotspot and tethering to provide Internet to other devices through your Wi‑Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Help"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Change SMS app?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your SMS app?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Change Wi‑Fi assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unknown SIM operator"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Please insert SIM card and restart"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Please connect to the internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recent location requests"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Location for work profile"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"App location permissions"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Keep on"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Turn off <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"No services installed"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"No service selected"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Block connections without VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Require VPN connection?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Not secure. Update to an IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Failed to start unsupported VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Select a VPN profile to always remain connected to. Network traffic will only be allowed when connected to this VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"None"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Always-on VPN requires an IP address for both server and DNS."</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 0192d73..c2b9c12 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Stay on Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Never show again"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Connect"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi turned on"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Connected to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connecting to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Connecting…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Failed to connect to network"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
@@ -1129,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Screen attention uses the front camera to see if someone is looking at the screen. It works on device, and images are never stored or sent to Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Turn on screen attention"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Keep screen on when looking at it"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Longer screen timeout will use more battery."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is locked"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera must be unlocked for Face Detection"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera must be unlocked for Screen Attention"</string>
@@ -1469,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use hotspot and tethering to provide internet to other devices through your Wi‑Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Help"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Change SMS app?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your SMS app?"</string>
@@ -1477,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Change Wi‑Fi assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unknown SIM operator"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Please insert SIM card and restart"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Please connect to the internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recent location requests"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Location for work profile"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"App location permissions"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 4ab5436..7060ddc 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurando Espacio privado…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Espacio privado no muestra la información de uso de las apps cuando está bloqueado"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accede a Espacio privado desde la lista de apps"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Ya hay apps del sistema instaladas en el Espacio privado"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"No se pudo configurar Espacio privado"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Vuelve a intentarlo ahora o regresa más tarde"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Reintentar"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueo de pantalla"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Elegir nuevo bloqueo"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Todo listo"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Puedes acceder al Espacio privado desde tu lista de apps"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Listo"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Desplázate hacia abajo para acceder a Espacio privado"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Accede para configurar el Espacio privado"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Seguir usando Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"No volver a mostrar"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Conectar"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi activado"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Conectado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Estableciendo conexión con <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Conectando…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"No se pudo establecer conexión con la red."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Red fuera de alcance"</string>
@@ -1131,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"La función de atención a la pantalla usa la cámara frontal para detectar si hay alguien mirando la pantalla. Funciona en el dispositivo, y las imágenes no se almacenan ni se envían a Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activar la atención a la pantalla"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantener la pantalla encendida cuando la miras"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Si se extiende tiempo de espera de la pantalla, se consumirá más batería."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"La cámara está bloqueada"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"La cámara debe estar desbloqueada para la detección de rostro"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"La cámara debe estar desbloqueada para la atención a la pantalla"</string>
@@ -1471,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Usa Hotspot y conexión mediante dispositivos móviles para brindar acceso a Internet a otros dispositivos a través de una conexión Wi-Fi o de datos móviles. Las apps también pueden crear un hotspot para compartir contenido con dispositivos cercanos."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Ayuda"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Red móvil"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plan móvil"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"¿Quieres cambiar la aplicación de SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"¿Quieres usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como la aplicación de SMS?"</string>
@@ -1479,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"¿Cambiar de asistente de Wi-Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"¿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="680685773455072321">"¿Deseas usar <xliff:g id="NEW_APP">%s</xliff:g> para administrar tus conexiones de red?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operador SIM desconocido"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> no tiene ningún sitio web de aprovisionamiento"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Inserta la tarjeta SIM y reinicia."</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Conéctate a Internet."</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitudes de ubicaciones recientes"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ubicación de perfil de trabajo"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Permisos de ubicación de apps"</string>
@@ -2247,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Puede realizar el seguimiento de tus interacciones con una app o un sensor de hardware, así como interactuar con las apps por ti."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rechazar"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Mantener"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"¿Quieres desactivar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"No se instaló ningún servicio."</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"No se seleccionó ningún servicio"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No se proporcionó ninguna descripción."</string>
@@ -2779,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear conexiones sin VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"¿Requerir una conexión VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"La VPN no es segura. Actualiza a una VPN IKEv2."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"No se pudo iniciar la VPN no compatible."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona el perfil de la VPN con la que deseas establecer una conexión ininterrumpida. El tráfico de red solo se permitirá cuando estés conectado a esta VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ninguna"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"La VPN siempre activada requiere una dirección IP tanto para el servidor como para el DNS."</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index edfb3d8..16e9134 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -409,7 +409,7 @@
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueo con Remote Authenticator"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch añadido"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar un reloj"</string>
- <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Desbloqueo con reloj es otra forma útil de desbloquear el teléfono, por ejemplo, cuando tus dedos están húmedos o no se reconoce tu cara.\n\nPuedes usar tu reloj para desbloquear este teléfono al realizar estas acciones:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Desbloqueo con reloj es otra forma útil de desbloquear el teléfono, como cuando tus dedos están húmedos o no se reconoce tu cara.\n\nPuedes usar tu reloj para desbloquear este teléfono al realizar estas acciones:"</string>
<string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ahora no"</string>
<string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
<string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Más"</string>
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurando espacio privado…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"La información de uso de las aplicaciones del espacio privado se oculta cuando está bloqueado"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Acceder al espacio privado desde la lista de aplicaciones"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Algunas aplicaciones del sistema ya están instaladas en el espacio privado"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"No se ha podido configurar el espacio privado"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Inténtalo de nuevo ahora o vuelve más tarde"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Reintentar"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueo de pantalla"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Elegir nuevo aspecto"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"¡Todo listo!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Puedes acceder al espacio privado desde tu lista de aplicaciones"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Hecho"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Desplázate hacia abajo para acceder al espacio privado"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Inicia sesión para configurar el espacio privado"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Mantener conexión Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"No volver a mostrar"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Conectar"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Red Wi‑Fi activada"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Conectado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Conectando a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Conectando…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Error al conectar a la red"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"La red está fuera de rango"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"La función Pantalla atenta usa la cámara frontal para detectar si hay alguien mirando la pantalla. Funciona solo en el propio dispositivo y las imágenes no se almacenan ni se envían a Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activa Pantalla atenta"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantiene la pantalla encendida al mirarla"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"La cámara está bloqueada"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"La cámara tiene que estar desbloqueada para usar Detección de caras"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"La cámara debe estar desbloqueada para activar la función de pantalla atenta"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Usa Compartir Internet para que otros dispositivos puedan conectarse a Internet a través de tu red Wi‑Fi o de datos móviles. Las aplicaciones también pueden crear un punto de acceso para compartir contenido con dispositivos cercanos."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Ayuda"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Red móvil"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plan móvil"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplicación de SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"¿Cambiar aplicación de SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"¿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>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"¿Cambiar asistente de Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"¿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="680685773455072321">"¿Usar <xliff:g id="NEW_APP">%s</xliff:g> para administrar tus conexiones de red?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operador de SIM desconocido"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> no tiene ningún sitio web de aprovisionamiento"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Inserta la tarjeta SIM y reinicia el dispositivo"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Debes conectarte a Internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitudes de ubicación recientes"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ubicación para el perfil de trabajo"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Permisos de ubicación de aplicaciones"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index eab7917..afb3680 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Kasuta edasi WiFi-t"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Ära näita enam kunagi"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Ühenda"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"WiFi on sisse lülitatud"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Ühendatud võrguga <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Ühendamine võrguga <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Ühendamine …"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Võrguga ühenduse loomine ebaõnnestus"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Te ei ole võrgu levialas"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Ekraanivaatamise tuvastuse funktsioon kontrollib esikaamera abil, kas keegi vaatab ekraani. See töötab ainult seadmes ja pilte ei salvestata kunagi ega saadeta Google\'ile."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Lülita ekraanivaatamise tuvastus sisse"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ekraan jääb vaatamise ajal sisselülitatuks"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kaamera on lukus"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Näotuvastuse kasutamiseks peab kaamera olema avatud"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kaamera peab ekraanivaatamise tuvastuse kasutamiseks olema avatud"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Teistele seadmetele WiFi- või mobiilse andmesidevõrgu kaudu internetiühenduse pakkumiseks kasutage kuumkohta ja ühenduse jagamist. Samuti saavad kuumkoha luua rakendused, et jagada sisu läheduses olevate seadmetega."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Abi"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobiilsidevõrk"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobiilipakett"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS-rakendus"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Kas muuta SMS-i rakendust?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Kas kasutada SMS-i rakendusena rakenduse <xliff:g id="NEW_APP">%1$s</xliff:g> asemel rakendust <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Kas muuta WiFi Assistanti?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Kas kasutada võrguühenduste haldamiseks rakendust <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Tundmatu SIM-kaardi operaator"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Operaatoril <xliff:g id="OPERATOR">%1$s</xliff:g> pole ettevalmistuse veebisaite"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Sisestage SIM-kaart ja taaskäivitage"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Looge Interneti-ühendus"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Hiljutised asukohapäringud"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Tööprofiili asukohaluba"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Asukohale juurdepääsu load"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"See saab jälgida teie suhtlust rakenduse või riistvaraanduriga ja teie eest rakendustega suhelda."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Luba"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Keela"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Lülita välja"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Hoia sees"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Kas lülitada <xliff:g id="SERVICE">%1$s</xliff:g> välja?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ühtki teenust pole installitud"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ükski teenus ei ole valitud"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Kirjeldust ei ole sisestatud."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN-ita ühenduste blokeerimine"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Kas vajate VPN-i ühendust?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Pole turvaline. Värskendage versioonile IKEv2 VPN."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Toetamata VPN-i käivitamine ebaõnnestus."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Valige VPN-i profiil, millega olla alati ühendatud. Võrguliiklus on lubatud ainult siis, kui olete ühendatud selle VPN-iga."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Puudub"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Alati sees VPN-i jaoks on vaja IP-aadressi nii serverile kui ka DNS-ile."</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 4596104..b87725d 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Eremu pribatua konfiguratzen…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Eremu pribatuko aplikazioei buruzko erabilera-informazioa ezkutatuta dago eremu pribatua blokeatuta dagoenean"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Atzitu eremu pribatua aplikazioen zerrendatik"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Sistemako aplikazio batzuk dagoeneko instalatuta daude eremu pribatuan"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Ezin izan da konfiguratu eremu pribatua"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Saiatu berriro edo itzuli geroago"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Saiatu berriro"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Erabili pantailaren blokeoa"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Aukeratu beste blokeo bat"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Dena prest!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Aplikazio-zerrendatik atzi dezakezu eremu pribatua"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Eginda"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Egin behera eremu pribatua atzitzeko"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Eremu pribatua konfiguratzeko, hasi saioa"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Jarraitu Wi‑Fi konexioa erabiltzen"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Ez erakutsi berriro"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Konektatu"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi konexioa aktibatu da"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> sarera konektatuta"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> sarera konektatzen"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Konektatzen…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Ezin izan da sarera konektatu"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Sarea ez dago barrutian"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Pantaila kontzientea eginbideak aurreko kamera erabiltzen du inor pantailari begira dagoen jakiteko. Gailuan funtzionatzen du, eta irudiak ez dira inoiz gordetzen, ez eta Google-ra bidaltzen ere."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aktibatu pantaila kontzientea"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantendu pantaila piztuta hari begira zaudenean"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera blokeatuta dago"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Aurpegi-hautematea eginbidea erabiltzeko, kamerak desblokeatuta egon behar du"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Pantaila kontzientea erabiltzeko, kamerak desblokeatuta egon behar du"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Erabili wifi-guneak eta konexioa partekatzeko aukera beste gailu batzuei Interneteko konexioa emateko wifi- edo datu-konexioaren bidez. Aplikazioek ere wifi-guneak sor ditzakete edukia inguruko gailuekin partekatzeko."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Laguntza"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Sare mugikorra"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mugikorretarako plana"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMSetarako aplikazioa"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMSetarako aplikazioa aldatu nahi duzu?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="NEW_APP">%1$s</xliff:g> aplikazioaren ordez, <xliff:g id="CURRENT_APP">%2$s</xliff:g> erabili nahi duzu SMSetarako aplikazio gisa?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wifi-laguntzailea aldatu nahi duzu?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"<xliff:g id="NEW_APP">%s</xliff:g> erabili nahi duzu sareko konexioak kudeatzeko?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"SIM operadore ezezaguna"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> operadoreak ez du hornikuntza-webgune ezagunik"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Sartu SIM txartela eta berrabiarazi"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Konektatu Internetera"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Azken kokapen-eskaerak"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Laneko profilaren kokapena"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Aplikazioen kokapen-baimenak"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Aplikazioekin edo hardware-sentsoreekin dituzun interakzioen jarraipena egin dezake, eta zure izenean beste aplikazio batzuekin interakzioan jardun."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Baimendu"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Ukatu"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desaktibatu"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Mantendu"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> desaktibatu nahi duzu?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ez dago zerbitzurik instalatuta"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ez da hautatu zerbitzurik"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ez da azalpenik eman."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokeatu VPNrik gabeko konexioak"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN konexioak erabiltzera derrigortu?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ez da segurua. Eguneratu IKEv2 motako VPN batera."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Ezin izan da abiarazi VPN bateraezina."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Hautatu beti konektatuta egoteko VPN profila. VPN horrekin konektatuta zaudenean soilik onartuko da sare-trafikoa."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Bat ere ez"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Beti aktibatutako VPNa izateko, IP helbidea izan behar dute zerbitzariak nahiz DNSak."</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 17845db..5b28a1c 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"به Wi‑Fi متصل بمانید"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"هرگز دوباره نشان داده نشود"</string>
<string name="wifi_connect" msgid="2481467560349907397">"اتصال"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi روشن شد"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"به <xliff:g id="NETWORK_NAME">%1$s</xliff:g> متصل شد"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"درحال اتصال به <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"درحال اتصال…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"اتصال به شبکه برقرار نشد"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"شبکه در محدوده نیست"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"«توجه به صفحه» با استفاده از دوربین جلو متوجه میشود که آیا فردی درحال تماشای صفحهنمایش است یا نه. این ویژگی در دستگاه کار میکند و تصاویر هرگز ذخیره نمیشوند و به Google فرستاده نمیشود."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"روشن کردن توجه به صفحه"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"وقتی به صفحهنمایش نگاه میکنید صفحه خاموش نشود"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"دوربین قفل است"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"برای «تشخیص چهره»، قفل دوربین باید باز باشد"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"قفل دوربین باید برای «توجه به صفحه» باز باشد"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"برای ارائه اینترنت به سایر دستگاهها ازطریق اتصال داده تلفن همراه یا Wi-Fi، از نقطه اتصال و اشتراکگذاری اینترنت استفاده کنید. برنامهها همچنین میتواند نقطه اتصالی ایجاد کند تا محتوا را با دستگاههای اطراف همرسانی کند."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"راهنمایی"</string>
<string name="network_settings_title" msgid="4663717899931613176">"شبکه تلفن همراه"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"طرح تلفن همراه"</string>
<string name="sms_application_title" msgid="4791107002724108809">"برنامه پیامک"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"برنامه پیامک تغییر داده شود؟"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"از <xliff:g id="NEW_APP">%1$s</xliff:g> بهجای <xliff:g id="CURRENT_APP">%2$s</xliff:g> بهعنوان برنامه پیامکتان استفاده میکنید؟"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"دستیار Wi‑Fi را تغییر میدهید؟"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"از <xliff:g id="NEW_APP">%1$s</xliff:g> بهجای <xliff:g id="CURRENT_APP">%2$s</xliff:g> استفاده میکنید تا ارتباطات شبکهتان را مدیریت کنید؟"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"برای مدیریت ارتباطات شبکهتان از <xliff:g id="NEW_APP">%s</xliff:g> استفاده میکنید؟"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"اپراتور سیمکارت ناشناس"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> وبسایت شناختهشدهای برای آمادهسازی ندارد"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"لطفاً سیم کارت را وارد کنید و دوباره راهاندازی کنید"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"لطفاً به اینترنت وصل شوید"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"درخواستهای اخیر موقعیت مکانی"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"محل نمایه کارتان"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"اجازههای مکان برنامه"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"این عملکرد میتواند با برنامه یا حسگری سختافزاری تعاملاتتان را ردیابی کند و ازطرف شما با برنامهها تعامل داشته باشد."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"اجازه دادن"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"مجاز نبودن"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"خاموش شود"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"روشن باشد"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> خاموش شود؟"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"سرویسی نصب نشده است"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"سرویسی انتخاب نشده است"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"شرحی ارائه نشده است."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"اتصالات مسدودشده بدون VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"به اتصال VPN نیاز است؟"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"امن نیست. به IKEv2 VPN بهروزرسانی کنید"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"VPN پشتیبانینشده راهاندازی نشد."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"یک نمایه VPN انتخاب کنید تا همیشه متصل بمانید. فقط درصورتیکه به این VPN متصل باشید ترافیک شبکه مجاز خواهد بود."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"خالی"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN همیشهفعال به نشانی IP برای DNS و سرور نیاز دارد."</string>
@@ -4075,7 +4066,7 @@
<string name="gesture_preference_title" msgid="8291899281322647187">"اشارهها"</string>
<string name="double_tap_power_for_camera_title" msgid="7982364144330923683">"باز کردن سریع دوربین"</string>
<string name="double_tap_power_for_camera_summary" msgid="1100926048598415509">"برای باز کردن سریع دوربین، دکمه روشن/خاموش را دو بار فشار دهید. در همه صفحهها کار میکند."</string>
- <string name="double_twist_for_camera_mode_title" msgid="472455236910935684">"خویشگرفت با چرخاندن دوربین"</string>
+ <string name="double_twist_for_camera_mode_title" msgid="472455236910935684">"سلفی با چرخاندن دوربین"</string>
<string name="double_twist_for_camera_mode_summary" msgid="592503740044744951"></string>
<string name="system_navigation_title" msgid="4890381153527184636">"حالت پیمایش"</string>
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"پیمایش ۲ دکمهای"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 88ab715..da3893d 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -152,7 +152,7 @@
<string name="proxy_error" msgid="3615905975598084126">"Huomio"</string>
<string name="proxy_error_dismiss" msgid="4207430265140873078">"OK"</string>
<string name="proxy_error_invalid_host" msgid="3814412792702059247">"Antamasi palvelimen nimi on virheellinen."</string>
- <string name="proxy_error_invalid_exclusion_list" msgid="6096353559936226599">"Antamasi poissulkemisluettelo on muotoiltu virheellisesti. Anna pilkuilla erotettu poissuljettujen verkkotunnuksien luettelo."</string>
+ <string name="proxy_error_invalid_exclusion_list" msgid="6096353559936226599">"Antamasi poissulkemislista on muotoiltu virheellisesti. Anna pilkuilla erotettu poissuljettujen verkkotunnuksien lista."</string>
<string name="proxy_error_empty_port" msgid="4250295137005082992">"Täytä porttikenttä."</string>
<string name="proxy_error_empty_host_set_port" msgid="8886572276450900049">"Portti-kentän täytyy olla tyhjä, jos isäntä-kenttä on tyhjä."</string>
<string name="proxy_error_invalid_port" msgid="2830054691770209166">"Antamasi portti on virheellinen."</string>
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Yksityistä tilaa otetaan käyttöön…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Yksityisen tilan sovellusten käyttötiedot piilotetaan, kun se on lukittu"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Yksityisen tilan käyttö sovelluslistalta"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Jotkin järjestelmäsovellukset on jo asennettu Yksityisessä tilassa"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Yksityisen tilan käyttöönotto epäonnistui"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Yritä uudelleen nyt tai palaa myöhemmin"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Yritä uudelleen"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Käytä näytön lukitusta"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Valitse uusi lukko"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Valmis"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Pääset Yksityiseen tilaan sovelluslistalta"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Valmis"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Vieritä alas käyttääksesi yksityistä tilaa"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Kirjaudu sisään, niin voit ottaa yksityisen tilan käyttöön"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Jatka Wi-Fi-yhteydellä"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Älä näytä uudelleen"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Yhdistä"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi on käytössä"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Yhdistetty verkkoon <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Yhdistetään: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Yhdistetään…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Yhteyden muodostaminen verkkoon epäonnistui."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Verkko ei ole kantoalueella"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Huomionäyttö näkee etukameralla, katsooko joku näyttöä. Ominaisuus toimii laitteella, eikä kuvia ikinä tallenneta tai lähetetä Googlelle."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Laita huomionäyttö päälle"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Pidä näyttö päällä, kun sitä katsotaan"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera on lukittu"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kameran lukitus on avattava kasvojentunnistusta varten"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kameran lukitus on avattava huomionäyttöä varten"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Jaa internetyhteys muille laitteille Wi-Fin tai mobiilidatan avulla hotspotilla tai käyttämällä puhelinta modeemina. Sovellukset voivat myös luoda hotspotin ja jakaa sisältöä lähellä oleville laitteille."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Ohjeet"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobiiliverkko"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobiilisopimus"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Tekstiviestisovellus"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vaihdetaanko tekstiviestisovellus?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Haluatko, että oletussovellus on <xliff:g id="NEW_APP">%1$s</xliff:g> eikä enää <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vaihdetaanko Wi‑Fi Assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Hallinnoidaanko verkkoyhteyksiä sovelluksella <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Tuntematon SIM-operaattori"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Ei tunnettua käyttäjien hallintasivustoa: <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Aseta SIM-kortti ja käynnistä uudelleen"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Muodosta yhteys internetiin"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Viimeisimmät sijaintipyynnöt"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Työprofiilin sijainti"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Sovellusten sijaintiluvat"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Se voi seurata toimintaasi sovelluksella tai laitteistoanturilla ja käyttää sovelluksia puolestasi."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Salli"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Estä"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Pois"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Päällä"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Laitetaanko <xliff:g id="SERVICE">%1$s</xliff:g> pois päältä?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ei asennettuja palveluita"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Palvelua ei ole valittuna"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ei kuvausta."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Estä yhteydet, jotka eivät käytä VPN:ää"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Vaaditaanko VPN-yhteyttä?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ei turvallinen. Päivitä IKEv2 VPN:ään"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Ei-tuettua VPN-yhteyttä ei voitu käynnistää."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Valitse VPN-profiili, johon muodostettu yhteys on aina käytössä. Verkkoliikenne sallitaan vain tämän VPN-yhteyden ollessa käytössä."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"-"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Aina käytössä oleva VPN edellyttää, että sekä palvelimella että DNS-palvelulla on IP-osoite."</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 09a1aaa..5c81c90 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configuration de l\'Espace privé en cours…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Les informations d\'utilisation des applications de l\'Espace privé sont masquées lorsque celui-ci est verrouillé"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accéder à l\'Espace privé à partir de votre liste d\'applis"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Certaines applications système sont déjà installées dans l\'Espace privé"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Impossible de configurer l\'Espace privé"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Réessayez maintenant ou revenez plus tard"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Réessayer"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Utiliser le Verrouillage d\'écran"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Sélectionner un nouveau verrou"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Tout est prêt!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Vous pouvez accéder à l\'Espace privé à partir de votre liste d\'applications"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Terminé"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Faire défiler vers le bas pour accéder à l\'Espace privé"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Se connecter pour créer un Espace privé"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Rester connecté au Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Ne plus afficher"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Connexion"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi activé"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Connecté à <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connexion à <xliff:g id="NETWORK_NAME">%1$s</xliff:g> en cours…"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Connexion en cours…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Échec de la connexion au réseau."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Réseau hors de portée"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"La fonctionnalité Écran attentif utilise l\'appareil photo avant pour détecter si quelqu\'un regarde l\'écran. Elle fonctionne sur l\'appareil, et les images ne sont jamais enregistrées ni envoyées à Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activer la fonctionnalité d\'écran attentif"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Empêchez l\'écran de s\'éteindre pendant que vous le regardez"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"L\'appareil photo est verrouillé"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"L\'appareil photo doit être déverrouillé pour utiliser la détection des visages"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"L\'appareil photo doit être déverrouillé pour utiliser la fonctionnalité d\'écran attentif"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Utilisez un point d\'accès sans fil et le partage de connexion pour fournir un accès Internet à d\'autres appareils par l\'intermédiaire de votre connexion Wi-Fi ou de données cellulaires. Les applications peuvent aussi créer un point d\'accès sans fil pour partager du contenu avec d\'autres appareils à proximité."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Aide"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Réseau cellulaire"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Forfait de données cellulaires"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Application de messagerie texte"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Modifier l\'application de messagerie texte?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Utiliser <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> comme application de messagerie texte?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Changer d\'assistant Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> pour gérer vos connexions réseau?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Fournisseur de la carte SIM inconnu"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Aucun site Web de configuration connu pour <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Insérez la carte SIM, puis redémarrez."</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Connectez-vous à Internet."</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Demandes de localisation récentes"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Position pour profil profess."</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Autor. localisation de l\'appli"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Cette fonctionnalité peut faire le suivi de vos interactions avec une application ou un capteur matériel et interagir avec des applications en votre nom."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Autoriser"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuser"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Désactiver"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Garder actif"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Désactiver <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Aucun service installé"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Aucun service sélectionné"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Aucune description fournie"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloquer les connexions sans RPV"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Exiger une connexion RPV?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Pas sécuritaire. Passez à un RPV de type IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Échec du démarrage d\'un RPV non pris en charge."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Sélectionnez un profil RPV auquel rester connecté en permanence. Le trafic réseau ne sera autorisé que lorsque vous serez connecté à ce RPV."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Aucun"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Le RPV permanent nécessite une adresse IP pour le serveur et le DNS."</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index c67c630..c76fabb 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configuration d\'Espace privé…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Les informations d\'utilisation des applis contenues dans Espace privé sont masquées lorsque l\'application est verrouillée"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accéder à Espace privé depuis votre liste d\'applications"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Certaines applications système sont déjà installées dans Espace privé"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Impossible de configurer Espace privé"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Réessayer maintenant ou revenir plus tard"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Réessayer"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Utiliser le verrouillage de l\'écran"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Choisir un nouveau verrouillage"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Tout est prêt !"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Vous pouvez accéder à Espace privé depuis votre liste d\'applications"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"OK"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Faites défiler vers le bas pour accéder à Espace privé"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Connectez-vous pour configurer Espace privé"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Rester en Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Ne plus afficher"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Se connecter"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi activé"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Connecté à <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connexion à <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Connexion…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Échec de la connexion au réseau."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Réseau hors de portée"</string>
@@ -1131,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Regard sur écran utilise la caméra frontale pour détecter si quelqu\'un regarde l\'écran. Il opère sur l\'appareil uniquement, et les images ne sont jamais enregistrées ni envoyées à Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activer Regard sur l\'écran"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Garde l\'écran allumé quand vous le regardez"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Un délai plus long de mise en veille de l\'écran sollicitera davantage la batterie."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"L\'appareil photo est verrouillé"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Vous devez déverrouiller l\'appareil photo pour la détection de visages"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"L\'appareil photo doit être déverrouillé pour utiliser Regard sur écran"</string>
@@ -1471,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Utilisez un point d\'accès et le partage de connexion pour fournir Internet à d\'autres appareils via votre connexion au Wi-Fi ou aux données mobiles. Les applis peuvent aussi créer un point d\'accès pour partager des contenus avec des appareils à proximité."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Aide"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Réseau mobile"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Forfait mobile"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Appli de SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Changer d\'application pour les SMS ?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Utiliser <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> comme application SMS ?"</string>
@@ -1479,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Changer d\'assistant Wi‑Fi ?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> pour gérer vos connexions réseau ?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Opérateur de carte SIM inconnu"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"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="3639245241283948038">"Insérez la carte SIM, puis redémarrez."</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Connectez-vous à Internet."</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Demandes de localisation récentes"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Position du profil pro"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Accès des applis à la position"</string>
@@ -2247,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Le service peut suivre vos interactions avec une application ou un capteur matériel, et interagir avec les applications en votre nom."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Autoriser"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuser"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Désactiver"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ne pas désactiver"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Désactiver <xliff:g id="SERVICE">%1$s</xliff:g> ?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Aucun service installé"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Aucun service sélectionné"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Aucune description fournie"</string>
@@ -2779,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloquer les connexions sans VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Exiger une connexion VPN ?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Non sécurisé. Passez à un VPN IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Échec du démarrage du VPN non pris en charge."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Sélectionnez un profil VPN auquel rester connecté en permanence. Le trafic réseau ne sera autorisé que lorsque vous serez connecté à ce VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Aucun"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Le VPN permanent nécessite une adresse IP pour le serveur et le DNS."</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 7e7f2d0..c49e6b3 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurando espazo privado…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"A información de uso das aplicacións do espazo privado ocúltase cando está bloqueado"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accede ao espazo privado desde a lista de aplicacións"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Algunhas aplicacións do sistema xa están instaladas no espazo privado"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Produciuse un erro ao configurar o espazo privado"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Téntao de novo agora ou volve máis tarde"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Tentar de novo"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueo de pantalla"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Elixir outro bloqueo"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Todo listo"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Podes acceder ao espazo privado desde a lista de aplicacións"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Feito"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Desprázate cara abaixo para acceder ao espazo privado"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Inicia sesión para configurar o espazo privado"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Permanecer na wifi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Non mostrar de novo"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Conectar"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"A wifi está activada"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Conectácheste á rede <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Conectando con <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Conectando…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Erro ao conectar á rede"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Estás fóra da zona de cobertura da rede"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"A función Atención á pantalla utiliza a cámara dianteira para ver se alguén está mirando a pantalla. Funciona no dispositivo e as imaxes nunca se almacenan nin envían a Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activar a atención á pantalla"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantén a pantalla activa cando mires para ela"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"A cámara está bloqueada"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Para usar a detección facial, a cámara debe estar desbloqueada"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"A cámara debe estar desbloqueada para usar Atención á pantalla"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Utiliza a zona wifi e a conexión compartida para ofrecer acceso a Internet a outros dispositivos mediante a túa wifi ou a túa conexión de datos móbiles. As aplicacións tamén poden crear unha zona wifi para compartir contido cos dispositivos que están cerca."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Axuda"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Rede de telefonía móbil"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plan móbil"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplicación de SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Queres cambiar a aplicación de SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Queres utilizar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como a túa aplicación de SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Queres cambiar o asistente de wifi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"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="6650422533065760963">"Operador da SIM descoñecido"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<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="3639245241283948038">"Introduce unha tarxeta SIM e reinicia"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Conéctate a Internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitudes de localización recentes"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Localización do perfil de traballo"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Permisos de localización das aplicacións"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode facer un seguimento das túas interaccións cunha aplicación ou cun sensor de hardware, así como interactuar por ti coas aplicacións."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denegar"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Deixar"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Queres desactivar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ningún servizo instalado"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Non hai ningún servizo seleccionado"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ningunha descrición fornecida."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear conexións sen VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Requirir conexión VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"O tipo de aplicación non é seguro. Actualiza a unha VPN IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Produciuse un erro ao iniciar unha VPN non compatible."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN ao que permanecer sempre conectado. Só se permitirá tráfico de rede cando esteas conectado a esta VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ningunha"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"As VPN que están sempre activadas requiren un enderezo IP para o servidor e o DNS."</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index f3d5a99..0418453 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"ખાનગી સ્પેસનું સેટઅપ કરી રહ્યાં છીએ…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"જ્યારે ખાનગી સ્પેસ લૉક કરવામાં આવી હોય, ત્યારે તેમાં રહેલી ઍપના વપરાશની માહિતી છુપાવવામાં આવે છે"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"તમારી ઍપની સૂચિમાંથી ખાનગી સ્પેસ ઍક્સેસ કરો"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"ખાનગી સ્પેસમાં અમુક સિસ્ટમ ઍપ પહેલેથી ઇન્સ્ટૉલ કરેલી છે"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"ખાનગી સ્પેસનું સેટઅપ કરી શકાતું નથી"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"હમણાં ફરીથી પ્રયાસ કરો અથવા થોડા સમય પછી પાછા આવો"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"ફરી પ્રયાસ કરો"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"સ્ક્રીન લૉકનો ઉપયોગ કરો"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"નવું લૉક પસંદ કરો"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"બધું સેટ થઈ ગયું!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"તમારી ઍપની સૂચિમાંથી તમે ખાનગી સ્પેસ ઍક્સેસ કરી શકો છો"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"થઈ ગયું"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"ખાનગી સ્પેસને ઍક્સેસ કરવા માટે નીચે સ્ક્રોલ કરો"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"ખાનગી સ્પેસનું સેટઅપ કરવા માટે સાઇન ઇન કરો"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"વાઇ-ફાઇ પર રહો"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"ફરી ક્યારેય બતાવશો નહીં"</string>
<string name="wifi_connect" msgid="2481467560349907397">"કનેક્ટ કરો"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi ચાલુ કર્યું"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>થી કનેક્ટ થયા"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> સાથે કનેક્ટ કરી રહ્યાં છીએ"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"કનેક્ટ થઈ રહ્યું છે…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"નેટવર્ક સાથે કનેક્ટ કરવામાં નિષ્ફળ થયાં"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"નેટવર્ક રેન્જમાં નથી"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"કોઈ સ્ક્રીન તરફ જોઈ રહ્યું છે કે નહીં તેની ખાતરી કરવા માટે સ્ક્રીન અટેન્શનની સુવિધા ફોનનો આગળનો કૅમેરા વાપરે છે. આ સુવિધા ડિવાઇસ પર કામ કરે છે, તેમજ છબીઓને ક્યારેય સ્ટોર કરવામાં અથવા Googleને મોકલવામાં આવતી નથી."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"સ્ક્રીન અટેન્શન ચાલુ કરો"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"સ્ક્રીનને જોતી વખતે તેને ચાલુ રાખો"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"કૅમેરા લૉક છે"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ચહેરાની ઓળખ માટે કૅમેરા અનલૉક કરવો આવશ્યક છે"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"સ્ક્રીન અટેન્શન માટે કૅમેરા અનલૉક કરવો આવશ્યક છે"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"તમારા વાઇ-ફાઇ અથવા મોબાઇલ ડેટા કનેક્શન મારફત અન્ય ડિવાઇસને ઇન્ટરનેટ પૂરું પાડવા માટે હૉટસ્પૉટ અને ઇન્ટરનેટ શેર કરવાની સુવિધાનો ઉપયોગ કરો. ઍપ નજીકના ડિવાઇસ સાથે કન્ટેન્ટ શેર કરવા માટે પણ હૉટસ્પૉટ બનાવી શકે છે."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"સહાય"</string>
<string name="network_settings_title" msgid="4663717899931613176">"મોબાઇલ નેટવર્ક"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"મોબાઇલ પ્લાન"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS ઍપ્લિકેશન"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ઍપ્લિકેશન બદલાવીએ?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"તમારી SMS ઍપ્લિકેશન તરીકે <xliff:g id="CURRENT_APP">%2$s</xliff:g> ના બદલે <xliff:g id="NEW_APP">%1$s</xliff:g> નો ઉપયોગ કરીએ?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"વાઇ-ફાઇ આસિસ્ટંટ બદલીએ?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"તમારા નેટવર્ક્સ કનેક્શન્સનું સંચાલન કરવા માટે <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="680685773455072321">"તમારા નેટવર્ક કનેક્શન્સનું સંચાલન કરવા માટે <xliff:g id="NEW_APP">%s</xliff:g> નો ઉપયોગ કરો?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"અજાણ્યો સિમ ઓપરેટર"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> પાસે કોઈ જાણીતી જોગવાઈ કરતી વેબસાઇટ નથી"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"કૃપા કરીને સિમ કાર્ડ શામેલ કરો અને પુનઃપ્રારંભ કરો"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"કૃપા કરીને ઇન્ટરનેટ સાથે કનેક્ટ કરો"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"તાજેતરની સ્થાન વિનંતિ"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ઑફિસની પ્રોફાઇલ માટે સ્થાન"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ઍપ માટે લોકેશનની પરવાનગીઓ"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"તે ઍપ અથવા હાર્ડવેર સેન્સર વડે તમારી ક્રિયાપ્રતિક્રિયાને ટ્રૅક કરી શકે છે અને તમારા વતી ઍપ સાથે ક્રિયાપ્રતિક્રિયા કરી શકે છે."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"મંજૂરી આપો"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"નકારો"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"બંધ કરો"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ચાલુ રાખો"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g>ને બંધ કરીએ?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"કોઈ સેવાઓ ઇન્સ્ટોલ કરેલી નથી"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"કોઈ સેવા પસંદ કરેલી નથી"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"કોઈ વર્ણન પ્રદાન કરવામાં આવેલ નથી."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN વિનાના કનેક્શનને બ્લૉક કરો"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN કનેક્શનની જરૂર છે?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"સુરક્ષિત નથી. IKEv2 VPN પર અપડેટ કરો"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"અનસપોર્ટેડ VPN શરૂ કરવામાં નિષ્ફળ રહ્યાં."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"હંમેશા તેની સાથે કનેક્ટ રહેવા માટે એક VPN પ્રોફાઇલ પસંદ કરો. આ VPN સાથે કનેક્ટ હશે માત્ર ત્યારે જ નેટવર્ક ટ્રાફિકને મંજૂરી આપવામાં આવશે."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"કોઈ નહીં"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"હંમેશા-ચાલુ VPNને સર્વર અને DNS બંને માટે એક IP ઍડ્રેસની જરૂર હોય છે."</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index dd7aab5..0e56ec4 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -180,7 +180,7 @@
<string name="desc_no_available_supported_locale" msgid="7883271726226947273">"सेटिंग में, इस ऐप्लिकेशन की भाषा चुनने का विकल्प मौजूद नहीं है."</string>
<string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"भाषा, ऐप्लिकेशन में उपलब्ध भाषाओं से अलग हो सकती है. हो सकता है कि कुछ ऐप्लिकेशन के साथ, भाषा की यह सेटिंग काम न करे."</string>
<string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"हर ऐप्लिकेशन के लिए भाषा सेट करें."</string>
- <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"आपके सिस्टम, ऐप्लिकेशन, और वेबसाइट में, आपकी पसंदीदा भाषाओं में से पहली उपलब्ध भाषा का इस्तेमाल होता है."</string>
+ <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"आपके डिवाइस का सिस्टम, उस पर मौजूद ऐप्लिकेशन और वेबसाइटें उस भाषा का इस्तेमाल करती हैं जिसे आपने अपनी पहली पसंदीदा भाषा के तौर पर सेट किया हो. इसके लिए ज़रूरी है कि चुनी गई भाषा, उस डिवाइस पर काम करती हो."</string>
<string name="desc_notice_of_language_picker" msgid="3449290526457925447">"अगर आपको हर ऐप्लिकेशन के लिए अलग भाषा चुननी है, तो ऐप्लिकेशन की भाषा सेटिंग पर जाएं."</string>
<string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ऐप्लिकेशन की भाषाओं के बारे में ज़्यादा जानें"</string>
<string name="title_change_system_locale" msgid="8589844586256566951">"क्या सिस्टम की भाषा बदलकर %s करनी है ?"</string>
@@ -240,7 +240,7 @@
<string name="settings_label" msgid="943294133671632976">"सेटिंग"</string>
<string name="settings_label_launcher" msgid="820982375501978609">"सेटिंग"</string>
<string name="settings_shortcut" msgid="8548239727871847171">"सेटिंग शॉर्टकट"</string>
- <string name="airplane_mode" msgid="3196085857882526817">"हवाई जहाज़ मोड"</string>
+ <string name="airplane_mode" msgid="3196085857882526817">"फ़्लाइट मोड"</string>
<string name="wireless_networks_settings_title" msgid="8557542379234105369">"वायरलेस और नेटवर्क"</string>
<string name="roaming" msgid="3055365654530847985">"रोमिंग"</string>
<string name="roaming_enable" msgid="7845716016861535340">"रोमिंग में डेटा चालू करें"</string>
@@ -417,7 +417,7 @@
<string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"आपकी स्मार्टवॉच अनलॉक होनी चाहिए, आपकी कलाई पर बंधी होनी चाहिए, और इस फ़ोन के आस-पास होनी चाहिए. स्मार्टवॉच कलाई पर बंधे होने पर, आपको इसे दोबारा अनलॉक करने की ज़रूरत नहीं होगी."</string>
<string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"इस फ़ोन के अनलॉक होने पर, स्मार्टवॉच पर आपको इसकी सूचना मिलेगी. अगर आपके न चाहने पर भी यह अनलॉक हो जाता है, तो सूचना पर टैप करके फ़ोन को दोबारा लॉक करें."</string>
<string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"आपकी स्मार्ट वॉच का कंट्रोल आपके पास है"</string>
- <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"\'सेटिंग\' में जाकर, स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा से अपनी स्मार्टवॉच को किसी भी समय हटाया जा सकता है"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा बंद करने के लिए, अपनी स्मार्टवॉच को किसी भी समय हटाया जा सकता है. इसके लिए सेटिंग में जाएं"</string>
<string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"सूचना पर टैप करें"</string>
<string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"लॉक स्क्रीन पर ऊपर की ओर स्वाइप करें"</string>
<string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"अपनी स्मार्टवॉच चुनें"</string>
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"प्राइवेट स्पेस सेट अप किया जा रहा है…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"लॉक होने पर, प्राइवेट स्पेस वाले ऐप्लिकेशन के इस्तेमाल से जुड़ी जानकारी छिपा दी जाती है"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ऐप्लिकेशन की सूची से प्राइवेट स्पेस को ऐक्सेस करें"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"कुछ सिस्टम ऐप्लिकेशन पहले से ही प्राइवेट स्पेस में इंस्टॉल हैं"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"प्राइवेट स्पेस को सेट अप नहीं किया जा सका"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"फिर से कोशिश करें या बाद में करके देखें"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"फिर से कोशिश करें"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"स्क्रीन लॉक का इस्तेमाल करें"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"नया लॉक चुनें"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"हो गया!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"अपनी ऐप्लिकेशन लिस्ट से प्राइवेट स्पेस को ऐक्सेस किया जा सकता है"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"हो गया"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"प्राइवेट स्पेस ऐक्सेस करने के लिए नीचे की ओर स्क्रोल करें"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"प्राइवेट स्पेस को सेट अप करने के लिए साइन इन करें"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"वाई-फ़ाई पर रहें"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"फिर कभी ना दिखाएं"</string>
<string name="wifi_connect" msgid="2481467560349907397">"कनेक्ट करें"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"वाई-फ़ाई चालू किया गया"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> से कनेक्ट किया गया"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> से कनेक्ट हो रहा है"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"कनेक्ट हो रहा है…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"नेटवर्क से कनेक्ट करने में विफल रहा"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"नेटवर्क पहुंच से बाहर है"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"स्क्रीन चालू रखने की सुविधा, सामने वाले कैमरे का इस्तेमाल करके यह पता लगाती है कि कोई स्क्रीन देख रहा है या नहीं. यह डिवाइस पर काम करती है. इसमें न तो इमेज सेव होती है और न ही Google को भेजी जाती है."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"स्क्रीन चालू रखने की सुविधा चालू करें"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"जब तक आप स्क्रीन देख रहें हैं, तब तक स्क्रीन चालू रखें"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"कैमरा लॉक है"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"चेहरे की पहचान करने के लिए कैमरा अनलॉक होना ज़रूरी है"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"स्क्रीन चालू रखने की सुविधा के लिए, कैमरा अनलॉक होना ज़रूरी है"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"दूसरे डिवाइसों के साथ अपना वाई-फ़ाई या मोबाइल डेटा कनेक्शन शेयर करने के लिए, हॉटस्पॉट और टेदरिंग का इस्तेमाल करें. आस-पास के डिवाइसों के साथ कॉन्टेंट शेयर करने के लिए, ऐप्लिकेशन भी हॉटस्पॉट बना सकते हैं."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"सहायता"</string>
<string name="network_settings_title" msgid="4663717899931613176">"मोबाइल नेटवर्क"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"मोबाइल प्लान"</string>
<string name="sms_application_title" msgid="4791107002724108809">"एसएमएस ऐप्लिकेशन"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"मैसेज (एसएमएस) ऐप बदलें?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> के बजाय <xliff:g id="NEW_APP">%1$s</xliff:g> को अपने मैसेज (एसएमएस) ऐप के तौर पर इस्तेमाल करें?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"वाई-फ़ाई सहायक बदलें?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"आपके नेटवर्क कनेक्शन प्रबंधित करने के लिए <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="680685773455072321">"आपके नेटवर्क कनेक्शन प्रबंधित करने के लिए <xliff:g id="NEW_APP">%s</xliff:g> का उपयोग करें?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"अज्ञात सिम ऑपरेटर"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> की कोई भी ज्ञात प्रावधान वेबसाइट नहीं है"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"कृपया सिम कार्ड डालें और फिर से शुरू करें"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"कृपया इंटरनेट से कनेक्ट करें"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"हाल में किए गए जगह के अनुरोध"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"वर्क प्रोफ़ाइल की जगह"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ऐप्लिकेशन के लिए जगह की जानकारी की अनुमतियां"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"यह आपके और किसी ऐप्लिकेशन या हार्डवेयर सेंसर के बीच होने वाले इंटरैक्शन को ट्रैक कर सकता है और आपकी तरफ़ से ऐप्लिकेशन के साथ इंटरैक्ट कर सकता है."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमति दें"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"अनुमति न दें"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"बंद करें"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"चालू रखें"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"क्या आपको <xliff:g id="SERVICE">%1$s</xliff:g> बंद करनी है?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"कोई सेवा इंस्टॉल नहीं है"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"कोई सेवा नहीं चुनी गई"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"कोई विवरण नहीं दिया गया."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"बिना वीपीएन वाले कनेक्शन ब्लॉक करें"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"वीपीएन कनेक्शन ज़रूरी है?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"यह वीपीएन सुरक्षित नहीं है. IKEv2 वीपीएन पर अपडेट करें"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"इस्तेमाल न किए जा सकने वाले वीपीएन को चालू नहीं किया जा सका."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"वह VPN प्रोफ़ाइल चुनें जिससे हमेशा कनेक्ट रहना है. नेटवर्क ट्रैफ़िक की अनुमति केवल इस VPN से कनेक्ट रहने पर ही दी जाएगी."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"कोई नहीं"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"हमेशा-चालू VPN के लिए, सर्वर और DNS दोनों के लिए आईपी पता होना ज़रूरी है."</string>
@@ -3382,7 +3371,7 @@
<string name="notification_channel_summary_low" msgid="5549662596677692000">"आवाज़ या वाइब्रेशन न हो"</string>
<string name="notification_conversation_summary_low" msgid="6352818857388412326">"इससे किसी तरह की आवाज़ या वाइब्रेशन नहीं होता और ये सूचनाएं, बातचीत सेक्शन में सबसे नीचे दिखती हैं"</string>
<string name="notification_channel_summary_default" msgid="1168420867670390611">"डिवाइस की सेटिंग के हिसाब से, सूचना आने पर घंटी बज सकती है या वाइब्रेशन हो सकता है"</string>
- <string name="notification_channel_summary_high" msgid="3411637309360617621">"जब डिवाइस अनलॉक हो, तो स्क्रीन के सबसे ऊपर बैनर के रूप में सूचनाएं दिखाएं"</string>
+ <string name="notification_channel_summary_high" msgid="3411637309360617621">"डिवाइस अनलॉक होने पर, सूचनाओं को स्क्रीन के सबसे ऊपर बैनर के रूप में दिखाएं"</string>
<string name="notification_switch_label" msgid="8029371325967501557">"\"<xliff:g id="APP_NAME">%1$s</xliff:g>\" की सभी सूचनाएं"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g> की सभी सूचनाएं"</string>
<string name="notifications_sent_daily" msgid="10274479224185437">"{count,plural, =1{हर दिन करीब # सूचना}one{हर दिन करीब # सूचना}other{हर दिन करीब # सूचनाएं}}"</string>
@@ -3450,8 +3439,8 @@
<string name="picture_in_picture_app_detail_switch" msgid="8544190716075624017">"पिक्चर में पिक्चर बनाने की अनुमति दें"</string>
<string name="picture_in_picture_app_detail_summary" msgid="2503211101305358849">"ऐप्लिकेशन के खुले होने पर या आपके उसे छोड़ देने के बाद, उस ऐप्लिकेशन को पिक्चर में पिक्चर बनाने की अनुमति दें (उदाहरण के लिए, कोई वीडियो देखते रहने के लिए). यह विंडो उन दूसरे ऐप्लिकेशन के ऊपर दिखती है जिनका इस्तेमाल किया जा रहा है."</string>
<string name="interact_across_profiles_title" msgid="7285906999927669971">"कनेक्ट किए गए निजी और वर्क ऐप्लिकेशन"</string>
- <string name="interact_across_profiles_summary_allowed" msgid="1365881452153799092">"कनेक्ट हो गए हैं"</string>
- <string name="interact_across_profiles_summary_not_allowed" msgid="5802674212788171790">"कनेक्ट नहीं हुए हैं"</string>
+ <string name="interact_across_profiles_summary_allowed" msgid="1365881452153799092">"कनेक्ट हो गया है"</string>
+ <string name="interact_across_profiles_summary_not_allowed" msgid="5802674212788171790">"कनेक्ट नहीं हुआ है"</string>
<string name="interact_across_profiles_empty_text" msgid="419061031064397168">"कोई ऐप्लिकेशन कनेक्ट नहीं किया गया है"</string>
<string name="interact_across_profiles_keywords" msgid="5996472773111665049">"क्रॉस प्रोफ़ाइल जुड़े हुए ऐप्लिकेशन ऐप्लिकेशन काम और निजी"</string>
<string name="interact_across_profiles_switch_enabled" msgid="7294719120282287495">"कनेक्ट किया गया"</string>
@@ -3726,7 +3715,7 @@
<string name="apps_storage" msgid="643866814746927111">"ऐप्लिकेशन मेमोरी"</string>
<string name="usage_access" msgid="5487993885373893282">"इस्तेमाल से जुड़े डेटा का ऐक्सेस"</string>
<string name="permit_usage_access" msgid="179630895262172674">"ऐप इस्तेमाल से जुड़े डेटा को ऐक्सेस करने दें"</string>
- <string name="time_spent_in_app_pref_title" msgid="25327097913383330">"डिवाइस के इस्तेमाल में बीता समय"</string>
+ <string name="time_spent_in_app_pref_title" msgid="25327097913383330">"ऐप्लिकेशन के इस्तेमाल में बीता समय"</string>
<string name="usage_access_description" msgid="8547716253713890707">"ऐप्लिकेशन के इस्तेमाल से जुड़े डेटा के ऐक्सेस की अनुमति से, कोई ऐप्लिकेशन इस बात पर नज़र रख पाता है कि आप किन ऐप्लिकेशन को चला रहे हैं और उन्हें कितनी बार इस्तेमाल करते हैं. साथ ही, ऐप्लिकेशन आपकी मोबाइल और इंटरनेट सेवा देने वाली कंपनी, भाषा सेटिंग, और दूसरी जानकारी देख पाता है."</string>
<string name="memory_settings_title" msgid="6582588646363308430">"स्टोरेज"</string>
<string name="always_running" msgid="9012705720688200252">"हमेशा चलने वाला (<xliff:g id="PERCENTAGE">%s</xliff:g>)"</string>
@@ -3855,7 +3844,7 @@
<string name="camera_gesture_title" msgid="5559439253128696180">"कैमरे के लिए दो बार मोड़ना"</string>
<string name="camera_gesture_desc" msgid="7557645057320805328">"अपनी कलाई को दो बार मोड़कर कैमरा ऐप खोलें"</string>
<string name="screen_zoom_title" msgid="6928045302654960559">"डिसप्ले साइज़"</string>
- <string name="screen_zoom_short_summary" msgid="756254364808639194">"स्क्रीन पर मौजूद सारे कॉन्टेंट को बड़ा या छोटा करें"</string>
+ <string name="screen_zoom_short_summary" msgid="756254364808639194">"स्क्रीन पर मौजूद पूरे कॉन्टेंट को बड़ा या छोटा करें"</string>
<string name="screen_zoom_keywords" msgid="5964023524422386592">"डिस्प्ले डेंसिटी (स्क्रीन के हर इंच में पिक्सेल की संख्या), स्क्रीन को ज़ूम करना, स्केल, स्केलिंग"</string>
<string name="screen_zoom_preview_title" msgid="5288355628444562735">"झलक"</string>
<string name="screen_zoom_make_smaller_desc" msgid="2628662648068995971">"छोटा करें"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 188d732..fc899de 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"U tijeku je postavljanje privatnog prostora…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Podaci o upotrebi za aplikacije privatnog prostora sakriveni su kad je privatni prostor zaključan"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Pristup privatnom prostoru s popisa aplikacija"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Neke aplikacije sustava već su instalirane u privatnom prostoru"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Postavljanje privatnog prostora nije uspjelo"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Pokušajte sada ili se vratite kasnije"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Pokušajte ponovno"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Upotreba zaključavanja zaslona"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Odaberite novi način otključavanja"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Sve je spremno!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Privatnom prostoru možete pristupiti s popisa aplikacija"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Gotovo"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Pomaknite se prema dolje za pristup privatnom prostoru"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Prijavite se za postavljanje privatnog prostora"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Ostani na Wi‑Fi-ju"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Nemoj više prikazivati"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Poveži"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi uključen"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Povezano s <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Povezivanje s mrežom <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Povezivanje…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Povezivanje s mrežom nije uspjelo"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mreža nije u dometu"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Značajka Pozornost na zaslonu pomoću prednje kamere otkriva gleda li osoba u zaslon. Funkcionira na uređaju i slike se nikad ne pohranjuju i ne šalju Googleu."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Uključivanje pozornosti na zaslonu"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Zaslon ostaje uključen sve dok ga gledate"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Fotoaparat je zaključan"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Fotoaparat mora biti otključan za prepoznavanje lica"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera mora biti otključana da bi pozornost na zaslonu funkcionirala"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Pomoću žarišne točke i modemskog povezivanja drugi se uređaji mogu povezati s internetom putem vašeg Wi-Fija ili podatkovne veze vašeg mobilnog uređaja. Žarišnu točku mogu izraditi i aplikacije radi dijeljenja sadržaja s uređajima u blizini."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Pomoć"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilna mreža"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilni paket"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS aplikacija"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Želite li promijeniti aplikaciju za SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Želite li upotrijebiti aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g> umjesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> kao svoju aplikaciju za SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Želite li zamijeniti Wi‑Fi assistanta?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Ž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="680685773455072321">"Ž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="6650422533065760963">"Nepoznati operater SIM kartice"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<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="3639245241283948038">"Umetnite SIM karticu i pokrenite ponovo"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Povežite se s internetom"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedavni zahtjevi za lokaciju"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokacija za poslovni profil"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Dopuštenja za pristup lokaciji"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može pratiti vaše interakcije s aplikacijama ili senzorom uređaja i stupati u interakciju s aplikacijama u vaše ime."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dopusti"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ostavi uključeno"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Želite li isključiti uslugu mobilnog operatera <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nema instaliranih usluga"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nije odabrana nijedna usluga"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nije dan opis."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokiraj veze bez VPN-a"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Zahtijevati VPN vezu?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nije sigurno. Ažurirajte na IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Pokretanje nepodržanog VPN-a nije uspjelo."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Odaberite VPN profil s kojim ćete uvijek biti povezani. Mrežni promet bit će dopušten samo kada ste povezani s tom VPN mrežom."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ništa"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Uvijek uključena VPN mreža zahtijeva IP adresu za poslužitelj i za DNS."</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index cbd24e7..f1b616b 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"A privát terület beállítása…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"A privát terület alkalmazásaihoz tartozó használati adatok rejtve vannak, amikor a privát terület le van zárva"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"A privát terület megnyitása az alkalmazáslistából"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Egyes rendszeralkalmazások már telepítve vannak a privát területre"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Nem sikerült a privát terület beállítása"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Próbálja újra most, vagy térjen vissza később."</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Újra"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Képernyőzár használata"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Új zárolás kiválasztása"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Kész is!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"A privát területhez az alkalmazáslistából férhet hozzá."</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Kész"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Görgessen le a privát terület megnyitásához"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Jelentkezzen be a privát terület beállításához"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Maradjon a Wi-Fi-hálózaton"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Ne jelenjen meg többé"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Kapcsolódás"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi bekapcsolva"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Kapcsolódva a(z) <xliff:g id="NETWORK_NAME">%1$s</xliff:g> hálózathoz"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Csatlakozás a következőhöz: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Csatlakozás…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Nem sikerült hálózathoz csatlakozni."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"A hálózat nincs hatókörön belül"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"A Képernyőfigyelő az előlapi kamerát használja annak ellenőrzésére, hogy nézi-e valaki a képernyőt. A funkció az eszközön működik, és a fotókat sosem tárolja vagy küldi tovább a Google-nak."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Képernyőfigyelő bekapcsolása"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ne kapcsoljon ki a képernyő, amíg nézem"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera zárolva"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Az arcfelismerés működéséhez a kamera zárolásának feloldása szükséges."</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"A kamerának feloldva kell lennie a képernyőfigyelő használatához"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"A hotspot és az internetmegosztás funkcióval más eszközöknek biztosíthat internet-hozzáférést saját Wi‑Fi- vagy mobiladat-kapcsolatán keresztül. Az alkalmazások szintén létrehozhatnak hotspotot, hogy tartalmat osszanak meg a közeli eszközökkel."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Súgó"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilhálózat"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilcsomag"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS-küldő"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Módosítja az SMS-alkalmazást?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"A(z) <xliff:g id="CURRENT_APP">%2$s</xliff:g> helyett a(z) <xliff:g id="NEW_APP">%1$s</xliff:g> kezelje az SMS-eket?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi-kezelő módosítása?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"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="6650422533065760963">"Ismeretlen szolgáltató"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nem rendelkezik hozzáférés-kezelő webhellyel"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Helyezze be a SIM-kártyát és indítsa újra"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Csatlakozzon az internethez"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Legutóbbi helylekérdezések"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"A munkahelyi profil helye"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Appok helyelérési engedélyei"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Követheti az alkalmazásokkal és hardveres érzékelőkkel való interakcióit, és műveleteket végezhet az alkalmazásokkal az Ön nevében."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Engedélyezés"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tiltás"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Igen"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Nem"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Kikapcsolja a következőt: <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nincs telepített szolgáltatás"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nincs kiválasztott szolgáltatás"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nincs leírás."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN nélküli csatlakozások letiltása"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Kötelezővé teszi a VPN-kapcsolatot?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nem biztonságos. Frissítsen IKEv2 VPN-re."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nem sikerült elindítani a nem támogatott VPN-t."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Válasszon ki egy VPN-profilt, amelyhez mindig csatlakozni szeretne. A hálózati forgalom csak akkor lesz engedélyezve, ha ehhez a VPN-hez csatlakozik."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Nincs"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"A mindig bekapcsolt VPN-hez a szerver és a DNS IP-címe is szükséges."</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 7d4c283..1855663 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Անձնական տարածքի ստեղծում…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Երբ անձնական տարածքը կողպված է, հավելվածների օգտագործման մասին տվյալները թաքցված են այնտեղ"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Անցեք անձնական տարածք հավելվածների ցանկից"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Որոշ համակարգային հավելվածներ արդեն տեղադրված են անձնական տարածքում"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Չհաջողվեց ստեղծել անձնական տարածք"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Փորձեք նորից կամ վերադարձեք ավելի ուշ"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Նորից փորձել"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Օգտագործել էկրանի կողպումը"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Ընտրել այլ եղանակ"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Պատրա՛ստ է"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Դուք կարող եք անցնել անձնական տարածք հավելվածների ցանկից"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Պատրաստ է"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Անձնական տարածք անցնելու համար ոլորեք ներքև"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Մտեք հաշիվ՝ անձնական տարածք կարգավորելու համար"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Մնալ Wi-Fi ցանցում"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Այլևս չցուցադրել"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Միանալ"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi-ը միացած է"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Միացած է <xliff:g id="NETWORK_NAME">%1$s</xliff:g> ցանցին"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Միացում <xliff:g id="NETWORK_NAME">%1$s</xliff:g> ցանցին"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Միացում…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Ցանցին միանալ չհաջողվեց"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ցանցն անհասանելի է"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Ադապտիվ քնի ռեժիմում սարքն առջևի տեսախցիկի միջոցով տեսնում է, երբ ինչ-որ մեկը նայում է էկրանին։ Այս գործառույթն աշխատում է միայն ձեր սարքում, պատկերները չեն պահվում և չեն ուղարկվում Google-ին։"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Միացնել «Ուշադիր էկրան» ռեժիմը"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Քանի դեռ նայում եք էկրանին, այն վառ կմնա"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Տեսախցիկը կողպված է"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Դիմաճանաչման համար տեսախցիկը պետք է ապակողպված լինի"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Էկրանի ուշադրության համար տեսախցիկը պետք է ապակողպված լինի"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Օգտագործեք թեժ կետն ու մոդեմի ռեժիմը՝ ձեր Wi-Fi-ի կամ բջջային ցանցի միջոցով մյուս սարքերին ինտերնետ կապ տրամադրելու համար։ Հավելվածները նույնպես կարող են թեժ կետ ստեղծել՝ մոտակա սարքերի հետ բովանդակությամբ կիսվելու համար։"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Օգնություն"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Բջջային ցանց"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Սակագնային պլան"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS-ների փոխանակման հավելված"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Փոխե՞լ SMS-ների փոխանակման հավելվածը"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Որպես SMS-ների փոխանակման հավելված <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ի փոխարեն օգտագործե՞լ <xliff:g id="NEW_APP">%1$s</xliff:g>-ը:"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Փոխե՞լ Wi-Fi օգնականին:"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Օգտագործե՞լ <xliff:g id="NEW_APP">%1$s</xliff:g> ծրագիրը <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ի փոխարեն՝ ձեր ցանցային կապերը կառավարելու համար:"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Օգտագործե՞լ <xliff:g id="NEW_APP">%s</xliff:g> ծրագիրը՝ ձեր ցանցային կապերը կառավարելու համար:"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Անհայտ SIM օպերատոր"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>-ը չունի ոչ մի ծանոթ նախակարգման վեբկայք"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Խնդրում ենք տեղադրել SIM քարտ և վերագործարկել"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Խնդրում ենք միանալ ինտերնետին"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Տեղորոշման վերջին հարցումները"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Տեղ աշխատանքային պրոֆիլի համար"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Տեղորոշման թույլտվություններ"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Կարող է հետագծել ձեր գործողությունները հավելվածներում և սարքակազմի սենսորների վրա, ինչպես նաև հավելվածներում կատարել գործողություններ ձեր անունից։"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Թույլատրել"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Մերժել"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Անջատել"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ոչ"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Անջատե՞լ <xliff:g id="SERVICE">%1$s</xliff:g> ծառայությունը"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Տեղադրված ծառայաթյուններ չկան"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ընտրված ծառայություն չկա"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Որևէ նկարագրություն չկա:"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Արգելափակել առանց VPN-ի միացումները"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN միացում պահանջե՞լ։"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Անվտանգ չէ․ անցեք IKEv2 VPN-ի"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Չհաջողվեց գործարկել չաջակցվող VPN-ը։"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Ընտրել VPN պրոֆիլ` այդ պրոֆիլին միշտ միացված լինելու համար: Ցանցային շրջանառությունը թույլատրված կլինի միայն VPN-ին միացված ժամանակ:"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ոչ մեկը"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Միշտ միացված VPN-ը պահանջում է IP հասցե սերվերի և DNS-ի համար:"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index d25a47c..3056aa3 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Menyiapkan Ruang Pribadi…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Info penggunaan aplikasi Ruang Pribadi disembunyikan saat Ruang Pribadi dikunci"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Akses Ruang Pribadi dari daftar aplikasi"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Beberapa aplikasi sistem sudah diinstal di Ruang Pribadi"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Tidak dapat menyiapkan Ruang Pribadi"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Coba lagi sekarang, atau kembali lagi nanti"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Coba Lagi"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Gunakan layar kunci"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Pilih kunci baru"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Semua siap."</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Anda dapat mengakses Ruang Pribadi dari daftar aplikasi"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Selesai"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Scroll ke bawah untuk mengakses Ruang Pribadi"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Login untuk menyiapkan Ruang Pribadi"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Tetap di Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Jangan tampilkan lagi"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Hubungkan"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi diaktifkan"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Terhubung ke <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Menghubungkan ke <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Menyambungkan…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Gagal menyambung ke jaringan"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Jaringan di luar jangkauan"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Fitur fokus ke layar menggunakan kamera depan untuk mengetahui apakah seseorang sedang melihat layar. Fitur ini berjalan di perangkat, dan gambar tidak pernah disimpan atau dikirim ke Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aktifkan fokus ke layar"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Buat layar tetap menyala saat dilihat"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera dikunci"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera harus dibuka kuncinya untuk Deteksi Wajah"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera harus dibuka kuncinya untuk Fokus ke Layar"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Gunakan hotspot dan tethering untuk menyediakan koneksi internet bagi perangkat lain melalui koneksi Wi‑Fi atau data seluler Anda. Aplikasi juga dapat membuat hotspot untuk berbagi konten dengan perangkat sekitar."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Bantuan"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Jaringan seluler"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Paket seluler"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplikasi SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Ubah aplikasi SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> dan bukan <xliff:g id="CURRENT_APP">%2$s</xliff:g> sebagai aplikasi SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Ubah Wi-Fi Assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> sebagai ganti <xliff:g id="CURRENT_APP">%2$s</xliff:g> untuk mengelola koneksi jaringan?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> untuk mengelola koneksi jaringan?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operator SIM tidak dikenal"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> tidak punya situs web penyediaanyang dikenal"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Masukkan kartu SIM dan mulai ulang"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Sambungkan ke internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Permintaan lokasi terbaru"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokasi untuk profil kerja"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Izin akses lokasi aplikasi"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Voice Access dapat melacak interaksi Anda dengan aplikasi atau sensor hardware, dan berinteraksi dengan aplikasi untuk Anda."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Izinkan"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tolak"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Nonaktifkan"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Tetap aktifkan"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Nonaktifkan <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Tidak ada layanan terpasang"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Layanan tidak dipilih"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Tidak tersedia deskripsi."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Memblokir koneksi tanpa VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Perlu sambungan VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Tidak aman. Update ke VPN IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Gagal memulai VPN yang tidak didukung."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Pilih profil VPN untuk tetap terhubung. Lalu lintas jaringan hanya akan diperbolehkan jika terhubung ke VPN ini."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Tidak ada"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN selalu aktif membutuhkan alamat IP baik untuk server serta DNS."</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index c01b31d..1d75040 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Halda áfram á Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Aldrei sýna aftur"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Tengjast"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Kveikt á Wi-Fi"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Tengt við <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Tengist <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Tengist…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Ekk tókst að tengjast neti"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ekkert samband við netkerfi"</string>
@@ -1129,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Skjáskynjun notar fremri myndavélina til að sjá hvort einhver sé að horfa á skjáinn. Skjáskynjun virkar í tækinu, en myndir eru aldrei geymdar eða sendar til Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Kveikja á skjáskynjun"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Hafðu kveikt á skjánum á meðan þú horfir á hann"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Langur tími þar til skjárinn slekkur á sér gengur hraðar á rafhlöðuna."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Myndavél er læst"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Taka þarf myndavél úr lás fyrir andlitsgreiningu"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Myndavélin verður að vera ólæst til að nota skjáskynjun"</string>
@@ -1469,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Notaðu heitan reit og tjóðrun til að tengja önnur tæki við internetið í gegnum Wi-Fi eða farsímagagnatenginguna þína. Forrit geta einnig búið til heitan reit til að deila efni með nálægum tækjum."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Hjálp"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Farsímakerfi"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Farsímaáskrift"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS-forrit"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Skipta um SMS-forrit?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Nota <xliff:g id="NEW_APP">%1$s</xliff:g> í stað <xliff:g id="CURRENT_APP">%2$s</xliff:g> sem SMS-forrit?"</string>
@@ -1477,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Skipta um Wi-Fi aðstoð?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Nota <xliff:g id="NEW_APP">%s</xliff:g> til að stjórna nettengingunum þínum?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Óþekkt símafyrirtæki SIM-korts"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> er ekki með neitt þekkt úthlutunarvefsvæði"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Settu SIM-kortið í og endurræstu"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Tengdu tækið við netið"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nýlegar staðsetningarbeiðnir"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Staðsetning vinnusniðs"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Staðsetningarheimildir forrits"</string>
@@ -2245,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Það getur fylgst með samskiptum þínum við forrit eða skynjara vélbúnaðar og haft samskipti við forrit fyrir þína hönd."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Leyfa"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Hafna"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slökkva"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Hafa kveikt"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Viltu slökkva á <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Engin þjónusta uppsett"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Engin þjónusta valin"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Engin lýsing til staðar."</string>
@@ -2777,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Loka á tengingar sem eru ekki með VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Krefjast VPN-tengingar?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ekki öruggt. Uppfæra í IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Ekki tókst að virkja óstutt VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Veldu VPN-snið sem alltaf á að vera tengt. Netumferð er aðeins leyfð þegar tenging við þetta VPN er virk."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ekkert"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN sem er alltaf virkt krefst IP-tölu þjóns og nafnaþjóns (DNS)."</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index bf650c6..c080ccc 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurazione dello Spazio privato in corso…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Le informazioni sull\'utilizzo delle app dello Spazio privato vengono nascoste quando quest\'ultimo è bloccato"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accedi allo Spazio privato dal tuo elenco di app"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Alcune app di sistema sono già installate nello Spazio privato"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Impossibile configurare lo Spazio privato"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Riprova adesso o in un secondo momento"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Riprova"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usa il blocco schermo"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Scegli un nuovo blocco"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Fatto."</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Puoi accedere allo Spazio privato dal tuo elenco di app"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Fine"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Scorri verso il basso per accedere allo Spazio privato"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Accedi per configurare lo Spazio privato"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Resta sulla rete Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Non mostrare più"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Connetti"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi attivato"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Connesso a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connessione a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Connessione…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Impossibile connettersi alla rete"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rete fuori portata"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"La funzionalità Schermo vigile usa la fotocamera anteriore per controllare se qualcuno sta guardando lo schermo. Funziona sul dispositivo e le immagini non vengono mai memorizzate o inviate a Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Attiva Schermo vigile"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantiene lo schermo attivo mentre lo guardi"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Fotocamera bloccata"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"È necessario sbloccare la fotocamera per poter procedere con il riconoscimento facciale"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"È necessario sbloccare la fotocamera per poter utilizzare Schermo vigile"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Utilizza hotspot e tethering per consentire ad altri dispositivi di accedere a Internet usando la tua connessione Wi-Fi o dati mobili. Le app possono inoltre creare un hotspot per condividere contenuti con i dispositivi nelle vicinanze."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Guida"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Rete mobile"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Piano dati mobile"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vuoi cambiare app per gli SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Utilizzare <xliff:g id="NEW_APP">%1$s</xliff:g> anziché <xliff:g id="CURRENT_APP">%2$s</xliff:g> come app per gli SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Cambiare assistente Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Utilizzare <xliff:g id="NEW_APP">%s</xliff:g> per gestire le connessioni di rete?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operatore SIM sconosciuto"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Nessun sito web di provisioning per <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Inserisci la scheda SIM e riavvia"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Connettiti a Internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Richieste di posizione recenti"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Posizione per profilo di lavoro"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Autorizzazioni per la posizione"</string>
@@ -1520,7 +1513,7 @@
<string name="about_settings_summary" msgid="4831942939227432513">"Visualizza informazioni legali, stato, versione del software"</string>
<string name="legal_information" msgid="7509900979811934843">"Informazioni legali"</string>
<string name="manual" msgid="3651593989906084868">"Manuale"</string>
- <string name="regulatory_labels" msgid="5960251403367154270">"Etichette normative"</string>
+ <string name="regulatory_labels" msgid="5960251403367154270">"Etichette di conformità"</string>
<string name="safety_and_regulatory_info" msgid="8285048080439298528">"Manuale su normative e sicurezza"</string>
<string name="copyright_title" msgid="83245306827757857">"Copyright"</string>
<string name="license_title" msgid="8745742085916617540">"Licenza"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Può tenere traccia delle tue interazioni con un\'app o un sensore hardware e interagire con app per tuo conto."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Consenti"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rifiuta"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Disattiva"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Tieni on"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Vuoi disattivare <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nessun servizio installato"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nessun servizio selezionato"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nessuna descrizione fornita."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blocca connessioni senza VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Connessione VPN obbligatoria?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Tipo non sicuro. Usa una VPN IKEv2."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Impossibile avviare la VPN non supportata."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Seleziona un profilo VPN a cui rimanere sempre connesso. Il traffico di rete sarà consentito solo quando sei connesso a questa VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Nessuna"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"La VPN sempre attiva richiede un indirizzo IP per server e DNS."</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index c605544..0212fbd 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"הגדרת המרחב הפרטי מתבצעת…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"פרטי השימוש של אפליקציות המרחב הפרטי מוסתרים כשהוא נעול"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"גישה למרחב הפרטי מרשימת האפליקציות שלך"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"אפליקציות מערכת מסוימות כבר מותקנות במרחב הפרטי"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"לא ניתן להגדיר את ה\'מרחב הפרטי\'"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"אפשר לנסות שוב עכשיו או מאוחר יותר"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"ניסיון נוסף"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"שימוש בשיטה לביטול נעילת המסך"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"בחירת נעילה חדשה"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"הכול מוכן!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"אפשר לגשת למרחב הפרטי מרשימת האפליקציות"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"סיום"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"גוללים למטה כדי לגשת למרחב הפרטי"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"צריך להיכנס לחשבון כדי להגדיר מרחב פרטי"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"הישאר ברשת Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"אל תציג שוב אף פעם"</string>
<string name="wifi_connect" msgid="2481467560349907397">"התחברות"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi הופעל"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"יש חיבור אל <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"מתבצעת התחברות אל <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"מתבצע חיבור…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"נכשל הניסיון להתחבר לרשת"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"הרשת לא בטווח"</string>
@@ -1131,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"התכונה \'המסך יישאר דלוק בזמן צפייה\' משתמשת במצלמה הקדמית כדי לזהות אם מישהו מביט במסך. התכונה פועלת במכשיר, והתמונות אף פעם לא נשמרות ולא נשלחות אל Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"המסך יישאר דלוק בזמן צפייה"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"כשמביטים במסך, הוא ממשיך לפעול"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"צריכת הסוללה עולה כשהזמן הקצוב לכיבוי המסך ארוך יותר."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"המצלמה נעולה"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"יש לבטל את הנעילה של המצלמה כדי להשתמש בתכונה לזיהוי הפנים"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"יש לבטל את הנעילה של המצלמה כדי להפעיל את התכונה \'המסך יישאר דלוק בזמן צפייה\'"</string>
@@ -1471,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"נקודה לשיתוף אינטרנט (Hotspot) ושיתוף אינטרנט בין מכשירים (tethering) מאפשרים למכשירים אחרים להתחבר לאינטרנט דרך חיבור ה-Wi-Fi או חבילת הגלישה שלך. יש גם אפליקציות שמאפשרות ליצור נקודה לשיתוף אינטרנט ולשתף תכנים עם מכשירים קרובים."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"עזרה"</string>
<string name="network_settings_title" msgid="4663717899931613176">"רשתות סלולריות"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"תוכנית לנייד"</string>
<string name="sms_application_title" msgid="4791107002724108809">"אפליקציית SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"לשנות את אפליקציית ה-SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"האם להשתמש ב-<xliff:g id="NEW_APP">%1$s</xliff:g> במקום ב-<xliff:g id="CURRENT_APP">%2$s</xliff:g> כאפליקציית ה-SMS?"</string>
@@ -1479,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"האם לשנות את אסיסטנט ה-Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"האם להשתמש ב-<xliff:g id="NEW_APP">%1$s</xliff:g> במקום ב-<xliff:g id="CURRENT_APP">%2$s</xliff:g> כדי לנהל את חיבורי הרשת שלך?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"האם להשתמש ב-<xliff:g id="NEW_APP">%s</xliff:g> כדי לנהל את חיבורי הרשת שלך?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"מפעיל SIM לא ידוע"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"ל-<xliff:g id="OPERATOR">%1$s</xliff:g> אין אתר ידוע לניהול תצורה"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"יש להכניס כרטיס SIM ולאתחל"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"יש להתחבר לאינטרנט"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"בקשות של מיקומים אחרונים"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"מיקום עבור פרופיל עבודה"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"הרשאות מיקום של אפליקציות"</string>
@@ -2247,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"אפשרות למעקב אחר האינטראקציה שלך עם אפליקציות או חיישני חומרה, וביצוע אינטראקציה בשמך."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"אישור"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"עדיף שלא"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"השבתה"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"להמשיך"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"להשבית את <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"אין שירותים מותקנים"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"לא נבחר שירות"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"לא סופק תיאור."</string>
@@ -2779,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"חסימת חיבורים ללא VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"תמיד לדרוש חיבור VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"לא מאובטחת. עדכון ל-VPN בפרוטוקול IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"הפעלת VPN לא נתמך נכשלה."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"בוחרים פרופיל VPN שנשארים מחוברים אליו תמיד. תנועת רשת תהיה מותרת רק כאשר יהיה חיבור ל-VPN זה."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"ללא"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN מופעל תמיד מחייב כתובת IP לשרת ול-DNS."</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 3539e56..ef51363 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"プライベート スペースを設定しています…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"プライベート スペースがロックされているときは、プライベート スペース アプリの使用状況に関する情報は表示されません"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"アプリのリストからプライベート スペースにアクセス"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"一部のシステムアプリはすでにプライベート スペースにインストールされています"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"プライベート スペースを設定できませんでした"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"今すぐもう一度試すか、後でやり直してください"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"再試行"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"画面ロックを使用"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"新しいロックを選択"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"設定完了"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"アプリのリストからプライベート スペースにアクセスできます"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"完了"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"プライベート スペースにアクセスするには下にスクロールします"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"プライベート スペースを設定するにはログインしてください"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi‑Fi を継続"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"次回から表示しない"</string>
<string name="wifi_connect" msgid="2481467560349907397">"接続"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi を有効にしました"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> に接続しました"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> に接続中"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"接続しています…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"ネットワークに接続できませんでした"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ネットワーク圏外です"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"スクリーン アテンションは前面カメラを使用して、ユーザーが画面を見ているかどうかを検出します。この検出はデバイスのみで行われます。画像が保存されたり、Google に送信されたりすることはありません。"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"スクリーン アテンションを ON にする"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"見ている間は画面が OFF になりません"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"カメラのロックを解除しました"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"顔検出を利用するにはカメラのロックを解除する必要があります"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"スクリーン アテンションを使用する場合は、カメラのロックを解除してください"</string>
@@ -1397,7 +1395,7 @@
<string name="menu_restore" msgid="4310539620115151551">"初期設定にリセット"</string>
<string name="restore_default_apn_completed" msgid="5167505087078340256">"APN設定をリセットしました。"</string>
<string name="reset_dashboard_title" msgid="7423200250697886918">"リセット オプション"</string>
- <string name="reset_mobile_network_settings_title" msgid="5616713931258506842">"モバイル ネットワークの設定をリセットする"</string>
+ <string name="reset_mobile_network_settings_title" msgid="5616713931258506842">"モバイルネットワークの設定をリセット"</string>
<string name="reset_mobile_network_settings_desc" msgid="7292636387692165727">"モバイル ネットワークのすべての設定をリセットします"</string>
<string name="reset_mobile_network_settings_confirm_title" msgid="7510965634669511241">"モバイル ネットワークの設定をリセットしますか?"</string>
<string name="reset_bluetooth_wifi_title" msgid="4113071322344697317">"Bluetooth と Wi-Fi のリセット"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"このデバイスをアクセス ポイントとして機能させてテザリングすることで、Wi-Fi またはモバイルデータ通信のインターネット接続を他のデバイスと共有できます。アプリでアクセス ポイントを作成し、近くのデバイスに接続することも可能です。"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"ヘルプ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"モバイル ネットワーク"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"モバイルプラン"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS アプリ"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMSアプリを変更しますか?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"SMSアプリとして<xliff:g id="CURRENT_APP">%2$s</xliff:g>の代わりに<xliff:g id="NEW_APP">%1$s</xliff:g>を使用しますか?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi-Fiアシスタントを変更しますか?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ネットワーク接続の管理に<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="680685773455072321">"ネットワーク接続の管理に<xliff:g id="NEW_APP">%s</xliff:g>を使用しますか?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"不明なSIM事業者"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> には既知のプロビジョニング ウェブサイトがありません"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIMカードを挿入して再起動してください"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"インターネットに接続してください"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"最近の位置情報リクエスト"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"仕事用プロファイルで位置情報を使用"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"アプリへの位置情報の利用許可"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"アプリやハードウェア センサーの操作を記録したり、自動的にアプリを操作したりできます。"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"許可"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"許可しない"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"OFF にする"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ON のまま"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> を OFF にしますか?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"インストールされているサービスはありません"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"サービスが選択されていません"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"説明はありません。"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN 以外の接続のブロック"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN 接続を要求しますか?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"安全ではありません。IKEv2 VPN に更新してください"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"サポート対象外の VPN を開始できませんでした。"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"常時接続するVPNプロファイルを選択します。このVPNに接続しているときのみネットワークにアクセスできます。"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"なし"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPNへの常時接続にはサーバーとDNSの両方のIPアドレスが必要です。"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 7940663..3850f3a 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"მიმდინარეობს პირადი სივრცის დაყენება…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"პირადი სივრცის აპების გამოყენების ინფორმაცია დამალულია, როცა ის ჩაკეტილია"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"მიიღეთ წვდომა პირად სივრცეზე თქვენი აპების გვერდიდან"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"ზოგიერთი სისტემური აპი უკვე დაინსტალირებულია პირად სივრცეში"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"პირადი სივრცის დაყენება ვერ მოხერხდა"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ცადეთ ხელახლა ახლა ან მოგვიანებით"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"ხელახლა ცდა"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"გამოიყენეთ ეკრანის დაბლოკვა"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"აირჩიეთ ახალი საკეტი"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"მზადაა!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"პირად სივრცეზე წვდომა თქვენი აპების გვერდიდან"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"მზადაა"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"პირად სივრცეზე წვდომისთვის გადაადგილდით ქვემოთ"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"შედით, რათა დააყენოთ პირადი სივრცე"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi‑Fi ქსელზე დარჩენა"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"აღარ გამოჩნდეს"</string>
<string name="wifi_connect" msgid="2481467560349907397">"დაკავშირება"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ჩართულია"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"დაკავშირებულია <xliff:g id="NETWORK_NAME">%1$s</xliff:g>-თან"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"მიმდინარეობს <xliff:g id="NETWORK_NAME">%1$s</xliff:g>-თან დაკავშირება"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"დაკავშირება…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"ქსელთან დაკავშირება ვერ ხერხდება"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ქსელი არეალში არ არის"</string>
@@ -1131,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"ეკრანისკენ მიმართული ყურადღება იყენებს წინა კამერას იმისთვის, რომ გაიგოს, უყურებს თუ არა ვინმე ეკრანს. ის მოწყობილობის დონეზე მუშაობს, სურათები არასოდეს ინახება და არც Google-ს ეგზავნება."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"ეკრანისკენ მიმართული ყურადღების ჩართვა"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ეკრანის ჩართულად დატოვება, როცა თქვენ მას უყურებთ"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"ეკრანის ავტომატურად გამორთვის ხანგრძლივი დრო ბატარეას მეტად ხარჯავს."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"კამერა ჩაკეტილია"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"სახის ამოცნობისთვის კამერა განბლოკილი უნდა იყოს"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"კამერა უნდა განიბლოკოს ეკრანისკენ მიმართული ყურადღების გამოსაყენებლად"</string>
@@ -1471,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"უსადენო ქსელი და ტეტერინგი საშუალებას მოგცემთ, გაუზიაროთ მობილური ინტერნეტი ან Wi‑Fi კავშირი სხვა მოწყობილობებს. უსადენო ქსელის შექმნა შეუძლია აპებსაც, კონტენტის გასაზიარებლად ახლომახლო მოწყობილობებთან."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"დახმარება"</string>
<string name="network_settings_title" msgid="4663717899931613176">"მობილური ქსელი"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"მობილური სატარიფო გეგმა"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS აპი"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"შეიცვალოს SMS-ის აპი?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"გსურთ, <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ის ნაცვლად გამოიყენოთ <xliff:g id="NEW_APP">%1$s</xliff:g> თქვენს SMS აპად?"</string>
@@ -1479,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"შეიცვალოს Wi‑Fi ასისტენტი?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"გსურთ ქსელის სამართავად <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="680685773455072321">"გსურთ ქსელის კავშირების სამართავად <xliff:g id="NEW_APP">%s</xliff:g>-ის გამოყენება?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"უცნობი SIM-ოპერატორი"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>-ს უზრუნველყოფის ნაცნობი ვებსაიტი არ გააჩნია"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"გთხოვთ, ჩადოთ SIM ბარათი და გადატვირთოთ"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"გთხოვთ, დააკავშიროთ ინტერნეტთან"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"მდებარეობის ბოლო მოთხოვნები"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ადგილმდებარეობა სამუშაო პროფილისათვის"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"აპის მდებარეობის ნებართვები"</string>
@@ -2247,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"მას შეუძლია თვალი მიადევნოს თქვენს ინტერაქციებს აპის ან აპარატურის სენსორის საშუალებით, ასევე, თქვენი სახელით აწარმოოს აპებთან ინტერაქცია."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"დაშვება"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"უარყოფა"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"გამორთვა"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"დარჩეს ჩართული"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"გამოირთოს <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"სერვისები დაყენებული არ არის"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"სერვისი არჩეულია არ არის"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"აღწერა არ არის მოწოდებული."</string>
@@ -2779,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN-ის გარეშე კავშირების დაბლოკვა"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"გსურთ VPN კავშირის მოთხოვნა?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"დაუცველია. განახლდეს შემდეგით: IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"მხარდაუჭერელი VPN-ის დაწყება ვერ მოხერხდა."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"მუდმივი კავშირისათვის აირჩიეთ VPN პროფილი. ქსელის ტრაფიკი დაიშვება მხოლოდ ამ VPN-თან კავშირის დროს."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"არც ერთი"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ყოველთვის ჩართული VPN ითხოვს IP მისამართს როგორც სერვერისთვის, ისე DNS-თვის."</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 5526e51..1384272 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Жеке бөлме реттеліп жатыр…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Жеке бөлме құлыптаулы кезде, оның қолданбаларын пайдалану туралы ақпарат жасырылады."</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Жеке бөлмеге қолданбалар тізімінен кіру"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Кейбір жүйе қолданбалары жеке бөлмеде әлдеқашан орнатылған"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Жеке бөлме реттелмеді."</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Қазір қайталап көріңіз немесе бір айналып келіңіз."</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Қайталап көру"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Экран құлпын пайдалану"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Жаңа құлып таңдау"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Бәрі дайын!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Жеке бөлмеге қолданбалар тізімінен кіре аласыз."</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Дайын"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Жеке бөлмеге кіру үшін төмен айналдырыңыз."</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Жеке бөлмені реттеу үшін аккаунтқа кіріңіз"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi желісінде қалу"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Қайта көрсетілмесін"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Жалғау"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi қосылды."</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> желісіне жалғанды."</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> желісіне қосылуда"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Жалғануда…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Желіге қосылу орындалмады"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Желі байланыс аясында емес."</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\"Зейінді экран\" функциясы алдыңғы камера арқылы адамның экранға қарап тұрғанын тани алады. Ол құрылғыда ғана жұмыс істейді. Суреттер еш уақытта Google-ға жіберілмейді."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"\"Зейінді экран\" функциясын қосу"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Экранға қарап тұрғанда, ол өшпейді"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камера құлыптаулы"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Бетті анықтау үшін камераның құлпы ашық болуы керек."</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Зейінді экран функциясы үшін камераның құлпын ашу керек."</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Wi‑Fi не мобильдік интернет байланысы арқылы басқа құрылғыларды интернетке қосу үшін хотспот және тетеринг функцияларын пайдаланыңыз. Қолданбалар маңайдағы құрылғылармен контентті бөлісу үшін де хотспот жасай алады."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Көмек"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Мобильдік желі"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Ұялы жоспар"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS қолданбасы"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS қолданбасы өзгертілсін бе?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="NEW_APP">%1$s</xliff:g> қолданбасы <xliff:g id="CURRENT_APP">%2$s</xliff:g> орнына SMS қолданбасы ретінде қолданылсын ба?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi көмек құралын ауыстыру керек пе?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Желілік байланыстарды басқару үшін <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="680685773455072321">"Желілік байланыстарды басқару үшін <xliff:g id="NEW_APP">%s</xliff:g> қолданбасын пайдалану керек пе?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Белгісіз SIM операторы"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> операторының қызмет көрсетуші вебсайты жоқ"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIM картасын енгізіп, қайта бастаңыз"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Интернетке қосылыңыз"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Соңғы орынды анықтау сұраулары"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Жұмыс профиліндегі локация"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Қолданбалардың локацияны пайдалануы"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ол қолданбамен немесе жабдық датчигімен істеген тапсырмаларыңызды бақылайды және қолданбаларды сіздің атыңыздан пайдаланады."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Рұқсат ету"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Тыйым салу"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Өшіру"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Қосулы қалдыру"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> өшірілсін бе?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ешқандай қызметтер орнатылмаған"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ешқандай қызмет таңдалмаған"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Сипаттама ұсынылмаған"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN желісінсіз байланыстарды бөгеу"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN байланысы қажет пе?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Қорғалмаған. Мынаған жаңартыңыз: IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Қолдау көрсетілмейтін VPN іске қосылмады."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Әрқашан жалғанып тұратын VPN профилін таңдаңыз. Желі трафигі осы VPN жалғанып тұрғанда ғана жүреді."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Жоқ"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Әрқашан қосулы ВЖЖ сервер және домен атауы жүйесінің IP мекенжайын қажет етеді."</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 8285478..d5ad6e0 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"បន្តប្រើ Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"កុំបង្ហាញម្ដងទៀត"</string>
<string name="wifi_connect" msgid="2481467560349907397">"តភ្ជាប់"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"បានបើក Wi‑Fi"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"បានភ្ជាប់ជាមួយ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"កំពុងភ្ជាប់ទៅ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"កំពុងភ្ជាប់…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"បានបរាជ័យក្នុងការតភ្ជាប់បណ្ដាញ"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"បណ្ដាញមិនមានសេវាទេ"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\"មុខងារដឹងថាកំពុងនៅប្រើ\" ប្រើកាមេរ៉ាខាងមុខ ដើម្បីមើលថាតើមាននរណាម្នាក់កំពុងមើលអេក្រង់ឬអត់។ វាដំណើរការនៅលើឧបករណ៍ ហើយរូបភាពមិនត្រូវបានរក្សាទុក ឬផ្ញើទៅ Google នោះទេ។"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"បើកការដឹងថាកំពុងនៅប្រើ"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"បន្តបើកអេក្រង់ នៅពេលមើលវា"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"កាមេរ៉ាត្រូវបានចាក់សោ"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ត្រូវតែដោះសោកាមេរ៉ាសម្រាប់ការសម្គាល់មុខ"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ត្រូវតែដោះសោកាមេរ៉ាសម្រាប់ការដឹងថាកំពុងនៅប្រើ"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ប្រើហតស្ប៉ត និងការភ្ជាប់ ដើម្បីផ្តល់អ៊ីនធឺណិតដល់ឧបករណ៍ផ្សេងទៀតតាមរយៈការតភ្ជាប់ Wi-Fi ឬទិន្នន័យទូរសព្ទចល័តរបស់អ្នក។ កម្មវិធីក៏អាចបង្កើតហតស្ប៉ត ដើម្បីចែករំលែកខ្លឹមសារជាមួយឧបករណ៍ដែលនៅជិតបានផងដែរ។"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"ជំនួយ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"បណ្ដាញទូរសព្ទចល័ត"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ផែនការទិន្នន័យចល័ត"</string>
<string name="sms_application_title" msgid="4791107002724108809">"កម្មវិធីផ្ញើសារ SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"ប្ដូរកម្មវិធីសារ SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ប្រើ <xliff:g id="NEW_APP">%1$s</xliff:g> ជំនួសឲ្យ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ជាកម្មវិធីសារ SMS របស់អ្នក?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ប្ដូរជំនួយការវ៉ាយហ្វាយ?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ប្រើ <xliff:g id="NEW_APP">%1$s</xliff:g> ជំនួសឲ្យ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ដើម្បីគ្រប់គ្រងការភ្ជាប់បណ្ដាញរបស់អ្នក?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ប្រើ <xliff:g id="NEW_APP">%s</xliff:g> ដើម្បីគ្រប់គ្រងការភ្ជាប់បណ្ដាញរបស់អ្នក?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"មិនស្គាល់ប្រតិបត្តិករស៊ីមកាត"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> មិនមានគេហទំព័រសម្រាប់ផ្តល់សិទ្ធិចូលប្រើដែលស្គាល់នោះទេ"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"សូមបញ្ចូលស៊ីមកាត និងចាប់ផ្ដើមឡើងវិញ"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"សូមភ្ជាប់អ៊ីនធឺណិត"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"សំណើទីតាំងថ្មី"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ទីតាំងសម្រាប់កម្រងព័ត៌មានការងារ"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ការអនុញ្ញាតទីតាំងកម្មវិធី"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"វាអាចតាមដានអន្តរកម្មរបស់អ្នកជាមួយនឹងកម្មវិធី ឬសេនស័រហាតវែរ និងធ្វើអន្តរកម្មជាមួយកម្មវិធីនានាជំនួសឱ្យអ្នក។"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"អនុញ្ញាត"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"បដិសេធ"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"បិទ"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"បន្តបើក"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"បិទ <xliff:g id="SERVICE">%1$s</xliff:g> ឬ?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"គ្មានសេវាកម្មបានដំឡើង"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"មិនបានជ្រើសរើសសេវាកម្មណាមួយឡើយ"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"គ្មានការពណ៌នាបានផ្ដល់។"</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"ទប់ស្កាត់ការតភ្ជាប់ដោយមិនចាំបាច់ប្រើ VPN ទេ"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"តម្រូវឲ្យមានការតភ្ជាប់ VPN ?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"គ្មានសុវត្ថិភាពទេ។ សូមដំឡើងកំណែទៅ IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"មិនអាចចាប់ផ្ដើម VPN ដែលមិនស្គាល់បានទេ។"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"ជ្រើសប្រវត្តិរូប VPN តភ្ជាប់ជានិច្ច។ ចរាចរណ៍បណ្ដាញនឹងត្រូវបានអនុញ្ញាត ពេលតភ្ជាប់ទៅ VPN នេះ។"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"គ្មាន"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"បើកជានិច្ច VPN ទាមទារអាសយដ្ឋាន IP សម្រាប់ទាំងម៉ាស៊ីនមេ និង DNS ។"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 708a9f2..02b1598 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -549,7 +549,7 @@
<string name="private_space_screen_lock_title" msgid="8679383894967823163">"ಸಾಧನದ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಅನ್ನು ಬಳಸಿ"</string>
<string name="private_space_biometric_title" msgid="3934339826674553174">"ಫೇಸ್ ಮತ್ತು ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ಲಾಕ್"</string>
<string name="private_space_biometric_summary" msgid="4403837276018724581">"ಸೆಟಪ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
- <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ಸಾಧನದ ಸ್ಕ್ರೀನ್ ಲಾಕ್ನಂತೆಯೇ"</string>
+ <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ಸಾಧನದ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಅನ್ನೇ ಬಳಸಲಾಗುತ್ತಿದೆ"</string>
<string name="private_space_new_lock_title" msgid="7306873010565337671">"ಖಾಸಗಿ ಸ್ಪೇಸ್ಗೆ ಹೊಸ ಲಾಕ್ ಆರಿಸಬೇಕೇ?"</string>
<string name="private_space_hide_title" msgid="8687034008994037610">"ಲಾಕ್ ಆಗಿರುವಾಗ ಮರೆಮಾಡಿ"</string>
<string name="privatespace_hide_page_title" msgid="972581369094289386">"ಲಾಕ್ ಆಗಿರುವಾಗ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಮರೆಮಾಡಿ"</string>
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"ವೈ-ಫೈ ನಲ್ಲಿಯೇ ಇರಿ"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ"</string>
<string name="wifi_connect" msgid="2481467560349907397">"ಕನೆಕ್ಟ್ ಮಾಡಿ"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"ವೈ-ಫೈ ಆನ್ ಮಾಡಲಾಗಿದೆ"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕಿಸಲು ವಿಫಲವಾಗಿದೆ"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ನೆಟ್ವರ್ಕ್ ವ್ಯಾಪ್ತಿಯಲ್ಲಿಲ್ಲ"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"ಯಾರಾದರೂ ಸ್ಕ್ರೀನ್ ಕಡೆಗೆ ನೋಡುತ್ತಿದ್ದಾರೆಯೇ ಎಂಬುದನ್ನು ವೀಕ್ಷಿಸಲು, ಸ್ಕ್ರೀನ್ ಆನ್ ಆಗಿರುವಿಕೆ ಮುಂಬದಿ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸುತ್ತದೆ. ಈ ವೈಶಿಷ್ಟ್ಯವು ಸಾಧನದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಚಿತ್ರಗಳನ್ನು ಎಂದಿಗೂ ಸಂಗ್ರಹಿಸುವುದಿಲ್ಲ ಅಥವಾ Google ಗೆ ಕಳುಹಿಸುವುದಿಲ್ಲ."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"ಸ್ಕ್ರೀನ್ ಆನ್ ಆಗಿರುವಿಕೆ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಆನ್ ಮಾಡಿ"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ಅದನ್ನು ನೋಡುವಾಗ, ಪರದೆಯನ್ನು ಆನ್ ಆಗಿರಿಸಿ"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ಕ್ಯಾಮರಾ ಲಾಕ್ ಆಗಿದೆ"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ಮುಖ ಪತ್ತೆಹಚ್ಚುವಿಕೆಗಾಗಿ ಕ್ಯಾಮರಾ ಅನ್ಲಾಕ್ ಮಾಡಿರಬೇಕು"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ಸ್ಕ್ರೀನ್ ಆನ್ ಆಗಿರುವಿಕೆಗಾಗಿ ಕ್ಯಾಮರಾವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಬೇಕು"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ನಿಮ್ಮ ವೈ-ಫೈ ಅಥವಾ ಮೊಬೈಲ್ ಡೇಟಾ ಕನೆಕ್ಷನ್ ಮೂಲಕ ಇತರ ಸಾಧನಗಳಿಗೆ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಒದಗಿಸಲು ಹಾಟ್ಸ್ಪಾಟ್ ಮತ್ತು ಟೆಥರಿಂಗ್ ಅನ್ನು ಬಳಸಿ. ಸಮೀಪದಲ್ಲಿರುವ ಸಾಧನಗಳ ಜೊತೆಗೆ ವಿಷಯಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಆ್ಯಪ್ಗಳು ಹಾಟ್ಸ್ಪಾಟ್ ಅನ್ನು ಸಹ ರಚಿಸಬಹುದು."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"ಸಹಾಯ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ಮೊಬೈಲ್ ಯೋಜನೆ"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS ಅಪ್ಲಿಕೇಶನ್"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ಅಪ್ಲಿಕೇಶನ್ ಬದಲಾಯಿಸುವುದೇ?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> ಬದಲಾಗಿ <xliff:g id="NEW_APP">%1$s</xliff:g> ಅನ್ನು ನಿಮ್ಮ SMS ಅಪ್ಲಿಕೇಶನ್ ಆಗಿ ಬಳಸುವುದೇ?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi ಸಹಾಯಕವನ್ನು ಬದಲಿಸುವುದೇ?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ವಹಿಸಲು <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="680685773455072321">"ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ವಹಿಸಲು <xliff:g id="NEW_APP">%s</xliff:g> ಬಳಸುವುದೇ?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ಅಪರಿಚಿತ ಸಿಮ್ ಆಪರೇಟರ್"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> ಯಾವುದೇ ತಿಳಿದಿರುವ ಪೂರೈಕೆಯ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಹೊಂದಿಲ್ಲ"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"ದಯವಿಟ್ಟು ಸಿಮ್ ಕಾರ್ಡ್ ಅನ್ನು ಸೇರಿಸಿ ಮತ್ತು ಮರುಪ್ರಾರಂಭಿಸಿ"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ದಯವಿಟ್ಟು ಇಂಟರ್ನೆಟ್ಗೆ ಸಂಪರ್ಕಿಸಿ"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"ಇತ್ತೀಚಿನ ಸ್ಥಳ ವಿನಂತಿಗಳು"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ನ ಸ್ಥಳ"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ಆ್ಯಪ್ ಸ್ಥಳದ ಅನುಮತಿಗಳು"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ಇದು ಆ್ಯಪ್ ಅಥವಾ ಹಾರ್ಡ್ವೇರ್ ಸೆನ್ಸರ್ನ ಜೊತೆಗಿನ ನಿಮ್ಮ ಸಂವಹನಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು, ಮತ್ತು ನಿಮ್ಮ ಪರವಾಗಿ ಆ್ಯಪ್ಗಳ ಜೊತೆ ಸಂವಹನ ನಡೆಸಬಹುದು."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ಅನುಮತಿಸಿ"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ನಿರಾಕರಿಸಿ"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ಆಫ್ ಮಾಡಿ"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ಆನ್ ಇರಿಸಿ"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ಆಫ್ ಮಾಡಬೇಕೆ?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"ಯಾವುದೇ ಸೇವೆಗಳನ್ನು ಸ್ಥಾಪಿಸಿಲ್ಲ"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"ಯಾವುದೇ ಸೇವೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿಲ್ಲ"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"ಯಾವುದೇ ವಿವರಣೆಯನ್ನು ಒದಗಿಸಿಲ್ಲ."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN ಇಲ್ಲದಿರುವ ಸಂಪರ್ಕಗಳನ್ನು ಬ್ಲಾಕ್ ಮಾಡಿ"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN ಸಂಪರ್ಕ ಅಗತ್ಯವಿದೆಯೇ?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ಸುರಕ್ಷಿತವಾಗಿಲ್ಲ. IKEv2 VPN ಗೆ ಅಪ್ಡೇಟ್ ಮಾಡಿ"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"ಬೆಂಬಲಿಸದ VPN ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"ಯಾವಾಗಲೂ ಸಂಪರ್ಕದಿಂದಿರಲು VPN ಪ್ರೊಫೈಲ್ ಆಯ್ಕೆಮಾಡಿ. ಈ VPN ಗೆ ಸಂಪರ್ಕಗೊಳಿಸಿದಾಗ ಮಾತ್ರ ನೆಟ್ವರ್ಕ್ ದಟ್ಟಣೆಯನ್ನು ಅನುಮತಿಸಲಾಗುವುದು."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"ಯಾವುದೂ ಇಲ್ಲ"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ಎರಡೂ ಸರ್ವರ್ ಮತ್ತು DNS ಗಾಗಿ VPN ನಲ್ಲಿ ಯಾವಾಗಲೂ IP ವಿಳಾಸದ ಅಗತ್ಯವಿರುತ್ತದೆ."</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 7c09e44..9cd5c50 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"비공개 스페이스 설정 중…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"잠긴 경우 비공개 스페이스 앱의 사용 정보가 숨겨짐"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"앱 목록에서 비공개 스페이스에 액세스"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"일부 시스템 앱은 비공개 스페이스에 이미 설치되어 있음"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"비공개 스페이스를 설정할 수 없음"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"지금 다시 시도하거나 나중에 다시 시도하세요."</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"다시 시도"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"화면 잠금 사용"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"새 잠금 방식 선택"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"처리가 완료되었습니다"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"앱 목록에서 비공개 스페이스에 액세스할 수 있습니다."</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"완료"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"비공개 스페이스에 액세스하려면 아래로 스크롤하세요."</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"비공개 스페이스를 설정하려면 로그인하세요"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi‑Fi 계속 사용"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"다시 표시하지 않음"</string>
<string name="wifi_connect" msgid="2481467560349907397">"연결"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi 사용 설정됨"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>에 연결됨"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>에 연결 중"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"연결 중…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"네트워크 연결 실패"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"범위 안에 네트워크가 없음"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"화면 시선 감지는 전면 카메라를 사용하여 화면을 보고 있는 사용자가 있는지 확인하는 기능입니다. 이 기능은 기기에서 작동하며 이미지는 Google에 전송되거나 저장되지 않습니다."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"화면 시선 감지 사용"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"화면을 보고 있는 동안 화면을 켜진 상태로 유지"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"카메라가 잠겨 있음"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"얼굴 인식을 위해 카메라를 잠금 해제해야 합니다."</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"화면 시선 감지를 위해 카메라를 잠금 해제해야 합니다."</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"핫스팟 및 테더링으로 다른 기기에서 내 Wi-Fi 또는 모바일 데이터 연결을 통해 인터넷을 사용할 수 있도록 합니다. 앱에서도 핫스팟을 만들어 주변 기기와 콘텐츠를 공유할 수 있습니다."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"고객센터"</string>
<string name="network_settings_title" msgid="4663717899931613176">"모바일 네트워크"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"모바일 요금제"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS 앱"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS 앱을 변경하시겠습니까?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"SMS 앱으로 <xliff:g id="CURRENT_APP">%2$s</xliff:g> 대신 <xliff:g id="NEW_APP">%1$s</xliff:g>을(를) 사용하시겠습니까?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi 도우미를 변경하시겠습니까?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"<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="680685773455072321">"<xliff:g id="NEW_APP">%s</xliff:g>을(를) 사용하여 네트워크 연결을 관리하시겠습니까?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"알 수 없는 SIM 연산자입니다."</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>에 알려진 프로비저닝 웹사이트가 없습니다."</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIM 카드를 삽입하고 다시 시작하세요."</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"인터넷에 연결하세요."</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"최근 위치 요청"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"직장 프로필 위치"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"앱 위치 정보 액세스 권한"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"앱 또는 하드웨어 센서와의 상호작용을 추적할 수 있으며 나를 대신해 앱과 상호작용할 수 있습니다."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"허용"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"거부"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"사용 중지"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"계속 사용"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g>을(를) 사용 중지하시겠습니까?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"설치된 서비스가 없습니다."</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"선택된 서비스 없음"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"제공된 설명이 없습니다."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN 없는 연결 차단"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN 연결이 필요한가요?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"안전하지 않습니다. IKEv2 VPN으로 업데이트하세요"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"지원되지 않는 VPN을 시작할 수 없습니다."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"VPN 프로필을 선택하여 연결된 상태를 유지하세요. 이 VPN에 연결된 상태에서만 네트워크 트래픽이 허용됩니다."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"없음"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN을 연결 상태로 유지하려면 서버와 DNS의 IP 주소가 필요합니다."</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 506a781..be8df5f 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Жеке чөйрө туураланууда…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Жеке чөйрө кулпуланганда, андагы колдонмолордун колдонулушу тууралуу маалымат жашырылат"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Колдонмолоруңуздун тизмесинен Жеке чөйрөнү ачыңыз"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Айрым системдик колдонмолор Жеке бөлмөгө буга чейин эле орнотулган"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Жеке чөйрө туураланган жок"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Азыр кайталап көрүңүз же кийинчерээк кайтып келиңиз"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Кайталоо"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Экран кулпусун колдонуу"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Жаңы кулпуну тандоо"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Дапдаяр!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Колдонмолоруңуздун тизмесинен Жеке чөйрөнү ачыңыз"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Бүттү"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Жеке чөйрөнү ачуу үчүн баракты ылдый сыдырыңыз"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Жеке чөйрөнү тууралоо үчүн аккаунтуңузга кириңиз"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi тармагында калуу"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Кайра көрүнбөсүн"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Туташуу"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi күйгүзүлдү"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> менен туташты"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> менен туташууда"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Туташууда…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Түйүндгө байланышкан жок"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Тармак тейлөө аймагында эмес"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\"Ыңгайлашуучу көшүү режими\" экранды кимдир-бирөө карап жатканын текшерүү үчүн маңдайкы камераны колдонот. Ал түзмөктө иштеп, сүрөттөрдү эч качан сактап калбайт жана Google\'га жөнөтпөйт."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ыңгайл. көшүү режимин күйгүзүү"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Экранды карап турганда, өчпөйт"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камера кулпуланган"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Жүздү аныктоо үчүн камеранын кулпусун ачуу керек"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Ыңгайлашуучу көшүү режимин колдонуу үчүн камеранын кулпусун ачуу керек"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Башка түзмөктөрдү Wi‑Fi же мобилдик Интернетке туташтыруу үчүн байланыш түйүнүн же модем режимин колдонуңуз. Ошондой эле, колдонмолор жакын жердеги түзмөктөр менен кандайдыр бир нерселерди бөлүшүү үчүн байланыш түйүндөрүн түзө алышат."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Жардам"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Мобилдик тармак"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Тарифтик план"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS колдонмосу"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS колдонмону алмаштырасызбы?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"SMS билдирүүлөрү менен жазышуу үчүн <xliff:g id="CURRENT_APP">%2$s</xliff:g> ордуна <xliff:g id="NEW_APP">%1$s</xliff:g> колдоносузбу?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi жардамчысын өзгөртөсүзбү?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Тармактык туташууларыңызды башкаруу үчүн, <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="680685773455072321">"Тармактык туташууларыңызды башкаруу үчүн <xliff:g id="NEW_APP">%s</xliff:g> колдоносузбу?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Белгисиз SIM оператору"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> операторунда белгилүү камсыздоочу вебсайт жок"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIM картаны салып, кайра иштетиңиз"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Интернетке кошулуңуз"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Жакында изделген жерлер"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Жумуш профилинин жери"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Жайгашкан жерди көргөн колдонмолор"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Кызмат колдонмодо жасаган аракеттериңизге же түзмөктүн сенсорлоруна көз салып, сиздин атыңыздан буйруктарды берет."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Уруксат берүү"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Жок"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Өчүрүү"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Күйгүзүү"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> өчүрүлсүнбү?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Эч кандай кызматтар орнотулган эмес"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Бир да кызмат тандалган жок"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Эч кандай сүрөттөө берилген эмес."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN\'сиз туташууларга тыюу салуу"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN туташуусу талап кылынсынбы?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Коопсуз эмес. IKEv2 VPN\'ге жаңыртыңыз."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Колдоого алынбаган VPN иштетилбей калды."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Дайым туташып туруучу VPN профайл тандаңыз. Бул VPN\'ге кошулганда гана желе трафигине уруксат берилет."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Эч бир"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Туруктуу VPN тармагы жана DNS сервери үчүн IP даректи көрсөтүңүз."</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index f579d71..951ea2c 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"ກຳລັງຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວ…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ຂໍ້ມູນການນຳໃຊ້ສຳລັບແອັບພື້ນທີ່ສ່ວນຕົວຖືກເຊື່ອງໄວ້ເມື່ອມັນຖືກລັອກໄວ້"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວຈາກລາຍຊື່ແອັບຂອງທ່ານ"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"ແອັບລະບົບບາງແອັບໄດ້ຖືກຕິດຕັ້ງໃນພື້ນທີ່ສ່ວນຕົວແລ້ວ"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"ບໍ່ສາມາດຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວໄດ້"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ລອງຕອນນີ້ ຫຼື ກັບຄືນມາພາຍຫຼັງ"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"ລອງໃໝ່"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ໃຊ້ການລັອກໜ້າຈໍ"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"ເລືອກລັອກໃໝ່"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"ຮຽບຮ້ອຍໝົດແລ້ວ!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"ທ່ານສາມາດເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວໄດ້ຈາກລາຍຊື່ແອັບຂອງທ່ານ"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"ແລ້ວໆ"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"ເລື່ອນລົງເພື່ອເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວ"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"ເຂົ້າສູ່ລະບົບເພື່ອຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວ"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"ໃຊ້ Wi‑Fi ຕໍ່ໄປ"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"ບໍ່ຕ້ອງສະແດງອີກ"</string>
<string name="wifi_connect" msgid="2481467560349907397">"ເຊື່ອມຕໍ່"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"ເປີດໃຊ້ Wi-Fi ແລ້ວ"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"ເຊື່ອມຕໍ່ຫາ <xliff:g id="NETWORK_NAME">%1$s</xliff:g> ແລ້ວ"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"ກຳລັງເຊື່ອມຕໍ່ຫາ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"ກຳລັງເຊື່ອມຕໍ່…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"ລົ້ມເຫລວໃນການເຊື່ອມຕໍ່ເຄືອຂ່າຍ"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ເຄືອຂ່າຍບໍ່ຢູ່ໃນໄລຍະ"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"ການເອົາໃຈໃສ່ໜ້າຈໍຈະໃຊ້ກ້ອງໜ້າເພື່ອເບິ່ງວ່າມີຄົນກຳລັງເບິ່ງໜ້າຈໍຢູ່ບໍ່. ມັນເຮັດວຽກຢູ່ອຸປະກອນ ແລະ ຈະບໍ່ມີການບັນທຶກຮູບພາບ ຫຼື ສົ່ງຮູບໄປໃຫ້ Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"ເປີດໃຊ້ການເອົາໃຈໃສ່ໜ້າຈໍ"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ເປີດໜ້າຈໍໄວ້ໃນເວລາເບິ່ງມັນ"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ກ້ອງຖ່າຍຮູບລັອກຢູ່"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ຕ້ອງປົດລັອກກ້ອງຖ່າຍຮູບເພື່ອໃຊ້ການກວດຫາໃບໜ້າ"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ຈະຕ້ອງປົດລັອກກ້ອງຖ່າຍຮູບເພື່ອໃຊ້ການເອົາໃຈໃສ່ໜ້າຈໍ"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ໃຊ້ຮັອດສະປອດ ແລະ ການປ່ອຍສັນຍານເພື່ອສະໜອງອິນເຕີເນັດໃຫ້ກັບອຸປະກອນອື່ນຜ່ານການເຊື່ອມຕໍ່ Wi‑Fi ຫຼື ອິນເຕີເນັດມືຖືຂອງທ່ານ. ແອັບສາມາດສ້າງຮັອດສະປອດເພື່ອແບ່ງປັນເນື້ອຫາກັບອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງໄດ້ນຳ."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"ຊ່ວຍເຫຼືອ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"ເຄືອຂ່າຍໂທລະສັບ"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ແພັກເກດມືຖື"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"ປ່ຽນແອັບສົ່ງ SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ໃຊ້ <xliff:g id="NEW_APP">%1$s</xliff:g> ເປັນແອັບສົ່ງ SMS ແທນ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ບໍ?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ປ່ຽນ Wi‑Fi Assistant ບໍ່?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ໃຊ້ <xliff:g id="NEW_APP">%1$s</xliff:g> ແທນ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ເພື່ອຈັດການການເຊື່ອມຕໍ່ເຄືອຂ່າຍຂອງທ່ານ?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ໃຊ້ <xliff:g id="NEW_APP">%s</xliff:g> ເພື່ອຈັດການການເຊື່ອມຕໍ່ເຄືອຂ່າຍຂອງທ່ານບໍ?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ຜູ່ໃຫ້ບໍລິການ SIM ທີ່ບໍ່ຮູ້ຈັກ"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"ກະລຸນາໃສ່ຊິມກາດ ແລະເປີດເຄື່ອງຄືນໃໝ່"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ກະລຸນາເຊື່ອມຕໍ່ກັບອິນເຕີເນັດ"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"ການຮ້ອງຂໍຂໍ້ມູນສະຖານທີ່ຫຼ້າສຸດ"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ສະຖານທີ່ສຳລັບໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ການອະນຸຍາດສະຖານທີ່ແອັບ"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ມັນສາມາດຕິດຕາມການໂຕ້ຕອບຂອງທ່ານກັບແອັບ ຫຼື ເຊັນເຊີຮາດແວໃດໜຶ່ງ ແລະ ໂຕ້ຕອບກັບແອັບໃນນາມຂອງທ່ານໄດ້."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ອະນຸຍາດ"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ປະຕິເສດ"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ປິດ"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ເປີດໄວ້"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"ປິດ <xliff:g id="SERVICE">%1$s</xliff:g> ໄວ້ບໍ?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"ບໍ່ມີບໍລິການຖືກຕິດຕັ້ງເທື່ອ"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"ບໍ່ໄດ້ເລືອກບໍລິການເທືື່ອ"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"ບໍ່ມີລາຍລະອຽດລະບຸໄວ້."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"ບລັອກການເຊື່ອມຕໍ່ໂດຍບໍ່ໃຊ້ VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"ຮ້ອງຂໍການເຊື່ອມຕໍ່ VPN ບໍ?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ບໍ່ປອດໄພ. ອັບເດດເປັນ IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"ເລີ່ມ VPN ທີ່ບໍ່ຮອງຮັບບໍ່ສຳເລັດ."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"ເລືອກໂປຣໄຟລ໌ VPN ເພື່ອໃຫ້ເຊື່ອມຕໍ່ຕະຫຼອດເວລາ. ການຈະລາຈອນໃນເຄືອຂ່າຍ ຈະໄດ້ຮັບອະນຸຍາດສະເພາະເມື່ອເຊື່ອມຕໍ່ຜ່ານ VPN ນີ້ເທົ່ານັ້ນ."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"ບໍ່ມີ"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN ທີ່ເປີດໃຊ້ຕະຫຼອດເວລາຕ້ອງມີທີ່ຢູ່ IP ສຳລັບທັງເຊີບເວີ ແລະ DNS."</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index e5ab378..de8311f 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Nustatoma privati erdvė…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Privačios erdvės programų naudojimo informacija paslėpta, kai užrakinta"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Prieiga prie privačios erdvės iš programų sąrašo"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Kai kurios sistemos programos jau įdiegtos privačioje erdvėje"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Nepavyko nustatyti privačios erdvės"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Bandykite dar kartą dabar arba grįžkite vėliau"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Bandyti dar kartą"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Naudoti ekrano užraktą"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Pasirinkti naują užraktą"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Viskas nustatyta!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Privačią erdvę galite pasiekti iš programų sąrašo"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Atlikta"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Slinkite žemyn, kad pasiektumėte privačią erdvę"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Privačios erdvės nustatymas prisijungus"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Toliau naudoti „Wi‑Fi“"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Daugiau niekada neberodyti"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Prijungti"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"„Wi-Fi“ įjungtas"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Prisijungta prie „<xliff:g id="NETWORK_NAME">%1$s</xliff:g>“"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Prisijungiama prie „<xliff:g id="NETWORK_NAME">%1$s</xliff:g>“"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Prijungiama…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Jungiantis prie tinklo įvyko klaida."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Tinklas ne diapazone"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Funkcija „Žiūrėjimas į ekraną“ naudoja priekinį fotoaparatą, kad nustatytų, ar kas nors žiūri į ekraną. Ši funkcija veikia pačiame įrenginyje, jokie vaizdai neišsaugomi ir nesiunčiami „Google“."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Žiūrėjimo į ekraną funkcijos įjungimas"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ekranas neišsijungs, kol į jį žiūrėsite"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Fotoaparatas užrakintas"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Fotoaparatas turi būti atrakintas, kad būtų galima naudoti veido aptikimo funkciją"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Fotoaparatas turi būti atrakintas, kad būtų galima naudoti žiūrėjimo į ekraną funkciją"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Naudodami viešosios interneto prieigos tašką ir įrenginį kaip modemą galite teikti internetą kitiems įrenginiams „Wi-Fi“ arba mobiliųjų duomenų ryšiu. Be to, programos gali sukurti viešosios interneto prieigos tašką ir bendrinti turinį su netoliese esančiais įrenginiais."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Pagalba"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobiliojo ryšio tinklas"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobiliojo ryšio planas"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS programa"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Pakeisti SMS programą?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Naudoti „<xliff:g id="NEW_APP">%1$s</xliff:g>“ kaip SMS programą vietoj „<xliff:g id="CURRENT_APP">%2$s</xliff:g>“?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Pakeisti „Wi-Fi“ pagelbiklį?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Naudoti <xliff:g id="NEW_APP">%s</xliff:g> tinklo ryšiams tvarkyti?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Nežinomas SIM operatorius"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"„<xliff:g id="OPERATOR">%1$s</xliff:g>“ neturi jokios žinomos aprūpinimo svetainės"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Įdėkite SIM kortelę ir paleiskite iš naujo"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Prisijunkite prie interneto"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Pastarosios vietovės užklausos"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Darbo profilio vieta"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Programų leidimai pasiekti vietovės duomenis"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Naudojant šią funkciją galima stebėti jūsų sąveiką su programa ar aparatinės įrangos jutikliu ir sąveikauti su programomis jūsų vardu."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Leisti"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Atmesti"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Išjungti"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Palikti įjungtą"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Išjungti „<xliff:g id="SERVICE">%1$s</xliff:g>“?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nėra įdiegta jokių paslaugų"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nepasirinkta jokia paslauga"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nepateikta jokių aprašų."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokuoti ryšius be VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Būtinas VPN ryšys?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nesaugu. Atnaujinkite į IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nepavyko paleisti nepalaikomo VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Pasirinkite VPN profilį, kad visada būtumėte prisijungę. Tinklo srautas bus leidžiamas tik prisijungus prie šio VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Joks"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Norint, kad VPN būtų visada įjungtas, reikalingas serverio ir DNS IP adresas."</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 2a3ae34..edc83b9 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Notiek privātās mapes iestatīšana…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Lietojuma informācija par privātās mapes lietotnēm tiek slēpta, kamēr mape ir bloķēta"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Varat piekļūt privātajai mapei lietotņu sarakstā"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Noteiktas sistēmas lietotnes jau ir instalētas privātajā mapē"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Nevarēja iestatīt privāto mapi"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Mēģiniet vēlreiz tūlīt vai atgriezieties vēlāk."</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Mēģināt vēlreiz"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Izmantot ekrāna bloķēšanas opciju"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Izvēlēties jaunu bloķēšanas metodi"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Gatavs!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Varat piekļūt privātajai mapei lietotņu sarakstā."</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Gatavs"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Lai piekļūtu privātajai mapei, ritiniet lejup."</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Pierakstieties, lai iestatītu privātu telpu"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Turpināt izmantot Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Vairs nerādīt"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Izveidot savienojumu"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ir ieslēgts"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Izveidots savienojums ar tīklu “<xliff:g id="NETWORK_NAME">%1$s</xliff:g>”"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Notiek savienojuma izveide ar tīklu <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Veido savienojumu…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Neizdevās izveidot savienojumu ar tīklu."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Neesat tīkla sasniedzamības zonā"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Atpazīšanai ekrānā tiek izmantota priekšējā kamera, lai noteiktu, vai kāds skatās uz ekrānu. Šī funkcija darbojas ierīcē, un attēli netiek ne saglabāti, ne nosūtīti uzņēmumam Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Atpazīšanas ekrānā ieslēgšana"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ekrāns netiek izslēgts, ja uz to skatāties."</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera ir bloķēta"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Lai varētu izmanto sejas noteikšanu, kamerai jābūt atbloķētai"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Lai varētu izmantot atpazīšanu ekrānā, kamerai jābūt atbloķētai"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Izmantojot tīklāju un piesaisti, jūsu ierīces Wi-Fi vai mobilo datu savienojums var nodrošināt interneta savienojumu citām ierīcēm. Lietotnes var arī izveidot tīklāju satura kopīgošanai ar tuvumā esošajām ierīcēm."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Palīdzība"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilais tīkls"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilo sakaru pakalpojumu plāns"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Īsziņu lietotne"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vai mainīt īsziņu lietotni?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Vai īsziņām izmantot lietotni <xliff:g id="NEW_APP">%1$s</xliff:g>, nevis <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vai mainīt Wi-Fi palīgu?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"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="6650422533065760963">"Nezināms SIM operators"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Operatoram <xliff:g id="OPERATOR">%1$s</xliff:g> nav zināmas nodrošināšanas vietnes."</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Lūdzu, ievietojiet SIM karti un restartējiet."</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Lūdzu, izveidojiet savienojumu ar internetu."</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Neseni vietu pieprasījumi"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Darba profila atrašanās vieta"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Lietotņu atraš. vietu atļaujas"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Tā var izsekot jūsu mijiedarbību ar lietotni vai aparatūras sensoru un mijiedarboties ar lietotnēm jūsu vārdā."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Atļaut"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Neatļaut"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Izslēgt"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Turpināt"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Vai izslēgt pakalpojumu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nav instalēts neviens pakalpojums."</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nav atlasīts neviens pakalpojums"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Apraksts nav sniegts."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloķēt savienojumus bez VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Vai nepieciešams VPN savienojums?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nav drošs. Atjauniniet uz IKEv2 VPN."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Neizdevās palaist neatbalstītu VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Izvēlieties VPN profilu, ar kuru izveidot pastāvīgu savienojumu. Tīkla datplūsma tiks atļauta, tikai esot izveidotam savienojumam ar šo VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Nav"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Vienmēr ieslēgtam VPN ir nepieciešama servera un DNS IP adrese."</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index eaaa329..b4d6c8c 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Се поставува „Приватен простор“…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Податоците за користењето за апликациите во „Приватниот простор“ се скриени кога е заклучен"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Пристапете до „Приватен простор“ од списокот со апликации"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Некои системски апликации се веќе инсталирани во „Приватен простор“"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Не можеше да се постави „Приватен простор“"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Обидете се повторно сега или вратете се подоцна"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Обиди се пак"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Користете заклучување екран"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Изберете нов начин на заклучување"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Готово!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Може да пристапите до „Приватен простор“ од списокот со апликации"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Готово"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Лизгајте надолу за да пристапите до „Приватен простор“"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Најавете се за да поставите „Приватен простор“"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Остани на Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Никогаш не прикажувај повторно"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Поврзи се"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi мрежата е вклучена"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Поврзано со <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Поврзување со <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Се поврзува…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Не успеа да се поврзе со мрежата"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Мрежата не е во опсег"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"„Вклучен екран“ ја користи предната камера за да види дали некој гледа во екранот. Функционира на самиот уред, а сликите никогаш не се складираат или испраќаат до Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Вклучете ја „Вклучен екран“"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Екранот нека биде вклучен кога гледам во него"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камерата е заклучена"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Камерата мора да биде отклучена за откривање лица"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Камерата мора да е отклучена за „Вклучен екран“"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Користете точка на пристап и врзување за да им обезбедите пристап до интернет на други уреди преку Wi‑Fi врската или врската за мобилен интернет. Апликациите исто така може да создаваат точки на пристап за да споделуваат содржини со уредите во близина."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Помош"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Мобилна мрежа"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Пакет за мобилен интернет"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Апликација за SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Избери апликација за SMS"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Да се користи <xliff:g id="NEW_APP">%1$s</xliff:g> наместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> како SMS-апликација?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Да се промени помошникот за Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Да се користи <xliff:g id="NEW_APP">%1$s</xliff:g> наместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управување со мрежните врски?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Да се користи <xliff:g id="NEW_APP">%s</xliff:g> за управување на вашите мрежни врски?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Непознат SIM-оператор"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> нема познато обезбедување веб-сајт"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Вметнете SIM картичката и рестартирајте"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Поврзете се на интернет"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Последни барања за локација"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Локација за работен профил"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Дозволи за локација за апликации"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Може да ја следи вашата интеракција со апликациите или со хардверските сензори и да врши интеракција со апликациите во ваше име."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволи"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Одбиј"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Исклучи"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Остави вклучено"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Да се исклучи <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Нема инсталирано услуги"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Нема избрана услуга"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Не е обезбеден опис."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Блокирај ги врските без VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Задолжително поврзување преку VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Небезбедна. Ажурирајте на IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Не можеше да се вклучи неподдржана VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Изберете VPN-профил со којшто секогаш ќе бидете поврзани. Мрежниот сообраќај ќе биде дозволен само кога сте поврзани на оваа VPN-мрежа."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ниедна"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN секогаш вклучена бара ИП адреса за серверот и за DNS."</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 2666e2c..20d8ac0 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കുന്നു…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"സ്വകാര്യ സ്പേസ് ലോക്ക് ചെയ്തിരിക്കുമ്പോൾ, അതിലെ ആപ്പുകളുടെ ഉപയോഗ വിവരങ്ങൾ മറച്ചിരിക്കും"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ആപ്പ് ലിസ്റ്റിൽ നിന്ന് സ്വകാര്യ സ്പേസ് ആക്സസ് ചെയ്യുക"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"ചില സിസ്റ്റം ആപ്പുകൾ ഇതിനകം തന്നെ Private Space-ൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കാനായില്ല"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ഇപ്പോൾ വീണ്ടും ശ്രമിക്കുക അല്ലെങ്കിൽ പിന്നീട് മടങ്ങി വരിക"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"വീണ്ടും ശ്രമിക്കുക"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"പുതിയ ലോക്ക് തിരഞ്ഞെടുക്കുക"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"എല്ലാം സജ്ജീകരിച്ചു!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"ആപ്പുകളുടെ ലിസ്റ്റിൽ നിന്ന് നിങ്ങൾക്ക് Private Space ആക്സസ് ചെയ്യാം"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"പൂർത്തിയായി"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"സ്വകാര്യ സ്പേസ് ആക്സസ് ചെയ്യാൻ താഴേക്ക് സ്ക്രോൾ ചെയ്യുക"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കാൻ സൈൻ ഇൻ ചെയ്യൂ"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"വൈഫൈയിൽ തുടരുക"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"ഒരിക്കലും വീണ്ടും കാണിക്കരുത്"</string>
<string name="wifi_connect" msgid="2481467560349907397">"കണക്റ്റ് ചെയ്യുക"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"വൈഫൈ ഓണാക്കി"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റ് ചെയ്തു"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റ് ചെയ്യുന്നു"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"കണക്റ്റ് ചെയ്യുന്നു…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"നെറ്റ്വർക്കിൽ കണക്റ്റുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"നെറ്റ്വർക്ക് പരിധിയിലില്ല"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"ആരെങ്കിലും സ്ക്രീനിൽ നോക്കുന്നുണ്ടോ എന്ന് കാണാൻ സ്ക്രീൻ ശ്രദ്ധ മുൻക്യാമറ ഉപയോഗിക്കുന്നു. ഇത് ഉപകരണത്തിലാണ് പ്രവർത്തിക്കുന്നത്, ചിത്രങ്ങൾ ഒരിക്കലും സംഭരിക്കുകയോ Google-ലേക്ക് അയയ്ക്കുകയോ ചെയ്യില്ല."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"സ്ക്രീൻ ശ്രദ്ധ ഓണാക്കുക"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"നിങ്ങൾ സ്ക്രീനിൽ നോക്കുമ്പോൾ അത് ഓണാക്കി നിലനിർത്തുക"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ക്യാമറ ലോക്ക് ആണ്"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"മുഖം തിരിച്ചറിയലിന് ക്യാമറ അൺലോക്ക് ചെയ്തിരിക്കണം"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"സ്ക്രീൻ ശ്രദ്ധയ്ക്ക് ക്യാമറ അൺലോക്ക് ചെയ്തിരിക്കണം"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"നിങ്ങളുടെ വൈഫൈ വഴിയോ മൊബൈൽ ഡാറ്റാ കണക്ഷൻ വഴിയോ മറ്റ് ഉപകരണങ്ങളിലേക്ക് ഇന്റർനെറ്റ് നൽകാൻ ഹോട്ട്സ്പോട്ടും ടെതറിംഗും ഉപയോഗിക്കുക. സമീപമുള്ള ഉപകരണങ്ങളുമായി ഉള്ളടക്കം പങ്കിടാൻ ആപ്പുകൾക്ക് ഹോട്ട്സ്പോട്ട് സൃഷ്ടിക്കാനുമാവും."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"സഹായം"</string>
<string name="network_settings_title" msgid="4663717899931613176">"മൊബൈൽ നെറ്റ്വർക്ക്"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"മൊബൈൽ പ്ലാൻ"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS ആപ്പ്"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS അപ്ലിക്കേഷൻ മാറ്റണോ?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"നിങ്ങളുടെ SMS അപ്ലിക്കേഷനായി <xliff:g id="CURRENT_APP">%2$s</xliff:g> എന്നതിനുപകരം <xliff:g id="NEW_APP">%1$s</xliff:g> ഉപയോഗിക്കണോ?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"വൈഫൈ അസിസ്റ്റന്റ് മാറ്റണോ?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"നിങ്ങളുടെ നെറ്റ്വർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കാൻ <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="680685773455072321">"നിങ്ങളുടെ നെറ്റ്വർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കാൻ <xliff:g id="NEW_APP">%s</xliff:g> ആണോ ഉപയോഗിക്കുന്നത്?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"അജ്ഞാത സിം ഓപ്പറേറ്റർ"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> എന്ന ഓപ്പറേറ്റർക്ക് അറിയപ്പെടുന്ന പ്രൊവിഷനിംഗ് വെബ്സൈറ്റ് ഒന്നുമില്ല"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"സിം കാർഡ് ചേർത്തതിനുശേഷം പുനരാരംഭിക്കുക"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ഇന്റർനെറ്റിൽ കണക്റ്റുചെയ്യുക"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"പുതിയ ലൊക്കേഷൻ അഭ്യർത്ഥനകൾ"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ഔദ്യോഗിക പ്രൊഫൈലിനായുള്ള ലൊക്കേഷൻ"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ആപ്പ് ലൊക്കേഷൻ അനുമതികൾ"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ഇതിന് ഒരു ആപ്പുമായോ ഹാർഡ്വെയർ സെൻസറുമായോ ഉള്ള നിങ്ങളുടെ ആശയവിനിമയങ്ങൾ ട്രാക്ക് ചെയ്യാനും നിങ്ങളുടെ പേരിൽ ആശയവിനിമയം നടത്താനും കഴിയും."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"അനുവദിക്കൂ"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"നിരസിക്കുക"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ഓഫാക്കുക"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ഓണാക്കിയിടൂ"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ഓഫാക്കണോ?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"സേവനങ്ങളൊന്നും ഇൻസ്റ്റാളുചെയ്തിട്ടില്ല"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"ഒരു സേവനവും തിരഞ്ഞെടുത്തിട്ടില്ല"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"വിവരണമൊന്നും നൽകിയിട്ടില്ല."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN ഇല്ലാത്ത കണക്ഷനുകൾ ബ്ലോക്കുചെയ്യുക"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN കണക്ഷൻ ആവശ്യമാണോ?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"സുരക്ഷിതമല്ല. ഒരു IKEv2 VPN-ലേക്ക് അപ്ഡേറ്റ് ചെയ്യുക"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"പിന്തുണയില്ലാത്ത VPN ആരംഭിക്കാനായില്ല."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"എല്ലായ്പ്പോഴും കണക്റ്റുചെയ്തതായി തുടരുന്ന ഒരു VPN പ്രൊഫൈൽ തിരഞ്ഞെടുക്കുക. ഈ VPN-ലേക്ക് കണക്റ്റുചെയ്തിരിക്കുമ്പോൾ മാത്രമേ നെറ്റ്വർക്ക് ട്രാഫിക്ക് അനുവദിക്കുകയുള്ളൂ."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"ഒന്നുമില്ല"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"എല്ലായ്പ്പോഴും ഓണായിരിക്കുന്ന VPN-ന് രണ്ട് സെർവറുകൾക്കും DNS-നുമായി ഒരു IP വിലാസം ആവശ്യമാണ്."</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 069e50b..b097251 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi-д хэвээр байх"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Дахиад үзүүлэхгүй байх"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Холбогдох"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi-г асаасан"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-д холбогдсон"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-д холбогдож байна"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Холбогдож байна…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Сүлжээнд холбогдож чадсангүй"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Сүлжээ хүрээнд алга"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Соргог дэлгэц нь хэн нэгнийг дэлгэц рүү харж байгаа эсэхийг харахын тулд урд талын камерыг ашигладаг. Энэ нь төхөөрөмж дээр ажилладаг бөгөөд зургийг хэзээ ч хадгалдаггүйгээс гадна Google-д илгээдэггүй."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Соргог дэлгэцийг асаах"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Дэлгэц рүү харж байгаа үед түүнийг асаалттай байлгах"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камер түгжээтэй байна"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Царай илрүүлэхийн тулд камерын түгжээг тайлах ёстой"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Соргог дэлгэцийг ашиглахын тулд камерын түгжээг тайлсан байх ёстой"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Wi-Fi эсвэл мобайл дата холболтоороо бусад төхөөрөмжид интернэт цацахын тулд сүлжээний цэг болон модем болгохыг ашиглана уу. Түүнчлэн, аппууд ойролцоох төхөөрөмжүүдтэй контент хуваалцахын тулд сүлжээний цэг үүсгэх боломжтой."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Тусламж"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Мобайл сүлжээ"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Мобайл төлбөрийн багц"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS апп"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS апп-г өөрчлөх үү?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Таны үндсэн SMS аппликейшнээр <xliff:g id="CURRENT_APP">%2$s</xliff:g>-н оронд <xliff:g id="NEW_APP">%1$s</xliff:g>-г ашиглах уу?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi-Fi туслагчийг өөрчлөх үү?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Өөрийн сүлжээнии холболтуудыг удирдахад <xliff:g id="NEW_APP">%1$s</xliff:g>-г <xliff:g id="CURRENT_APP">%2$s</xliff:g>-н оронд ашиглах уу?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Сүлжээний холболтуудыг удирдахад <xliff:g id="NEW_APP">%s</xliff:g>-г ашиглах уу?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Тодорхойгүй SIM оператор"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>-д мэдэгдэж буй хангалтын вебсайт алга"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIM карт оруулаад дахин эхлүүлнэ үү"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Интернэтэд холбогдоно уу"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Саяхны байршлын хүсэлтүүд"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ажлын профайлын байршил"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Аппын байршлын зөвшөөрлүүд"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Энэ нь таны апп болон техник хангамжийн мэдрэгчтэй хийх харилцан үйлдлийг хянах болон таны өмнөөс апптай харилцан үйлдэл хийх боломжтой."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Зөвшөөрөх"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Татгалзах"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Унтраах"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Асаалттай үлдээх"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g>-г унтраах уу?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Үйлчилгээ суулгагдаагүй байна"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Үйлчилгээ сонгоогүй байна"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Тайлбар байхгүй."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Холболтыг VPN-г ашиглахгүйгээр блоклох"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN холболт шаардлагатай юу?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Аюултай. IKEv2 VPN руу шинэчилнэ үү"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Дэмжигдээгүй VPN-г эхлүүлж чадсангүй."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Байнга холболттой байхын тулд VPN профайл сонгоно уу. Сүлжээний трафик зөвхөн энэ VPN-д холбогдсон үед зөвшөөрөгдөх болно."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Байхгүй"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Байнга асаалттай байх VPN нь сервер болон DNS-т хоёуланд нь IP хаяг шаардана."</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 646513c..6cedb33 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"खाजगी स्पेस सेट करत आहे…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"खाजगी स्पेस ॲप्सची वापर माहिती लॉक केल्यावर लपवली जाते"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"तुमच्या अॅप सूचीमधून खाजगी स्पेस अॅक्सेस करा"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"काही सिस्टीम ॲप्स आधीपासून खाजगी स्पेस मध्ये इंस्टॉल केलेली आहेत"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"खाजगी स्पेस सेट करता आली नाही"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"आता पुन्हा प्रयत्न करा किंवा नंतर परत या"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"पुन्हा प्रयत्न करा"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"स्क्रीन लॉक वापरा"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"नवीन लॉक निवडा"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"सर्व तयार आहे!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"तुम्ही तुमच्या अॅप्स सूचीमधून खाजगी स्पेस अॅक्सेस करू शकता"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"पूर्ण झाली"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"खाजगी स्पेस अॅक्सेस करण्यासाठी खाली स्क्रोल करा"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"खाजगी स्पेस सेट करण्यासाठी साइन इन करा"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"वाय‑फाय वर सुरू ठेवा"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"पुन्हा कधीही दर्शवू नका"</string>
<string name="wifi_connect" msgid="2481467560349907397">"कनेक्ट करा"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"वाय-फाय सुरू केले आहे"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> शी कनेक्ट केले आहे"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> शी कनेक्ट करत आहे"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"कनेक्ट करत आहे…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"नेटवर्कशी कनेक्ट करण्यात अयशस्वी"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"नेटवर्क रेंजमध्ये नाही"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"कोणी स्क्रीनकडे पाहत असल्यास स्क्रीन अटेंशन पुढील कॅमेरा वापरते. ते डिव्हाइसवर काम करते आणि इमेज कधीही स्टोअर केल्या जात नाहीत किंवा Google ला पाठवल्या जात नाहीत."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"स्क्रीन अटेंशन सुरू करा"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"स्क्रीनकडे पाहत ती सुरू ठेवा"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"कॅमेरा लॉक केलेला आहे"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"फेस डिटेक्शन साठी कॅमेरा अनलॉक करणे आवश्यक आहे"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"स्क्रीन अटेंशन साठी कॅमेरा अनलॉक केलेला असणे आवश्यक आहे"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"तुमच्या मोबाइल डेटा कनेक्शन किंवा वाय-फाय द्वारे इतर डिव्हाइसना इंटरनेट पुरवण्यासाठी हॉटस्पॉट आणि टेदरिंगचा वापर करा. जवळपासच्या डिव्हाइससह आशय शेअर करण्यासाठी अॅप्स हॉटस्पॉटदेखील तयार करू शकतात."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"मदत"</string>
<string name="network_settings_title" msgid="4663717899931613176">"मोबाइल नेटवर्क"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"मोबाइल प्लॅन"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS अॅप"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS अॅप बदलायचा?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> च्याऐवजी <xliff:g id="NEW_APP">%1$s</xliff:g> ला तुमचा SMS अॅप म्हणून वापराय?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"वाय-फाय साहाय्यक बदलायचा?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"तुमची नेटवर्क कनेक्शन व्यवस्थापित करण्यासाठी <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="680685773455072321">"तुमची नेटवर्क कनेक्शन व्यवस्थापित करण्यासाठी <xliff:g id="NEW_APP">%s</xliff:g> वापरायचा?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"अज्ञात सिम ऑपरेटर"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> मध्ये कोणतीही ज्ञात तरतूद वेबसाइट नाही"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"कृपया सिम कार्ड घाला आणि रीस्टार्ट करा"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"कृपया इंटरनेटशी कनेक्ट करा"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"अलीकडील स्थान विनंत्या"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"कार्य प्रोफाइलसाठी स्थान"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ॲपसाठी स्थानाच्या परवानग्या"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"हे तुमचा ॲप किंवा हार्डवेअर सेन्सरसोबतचा परस्परसंवाद ट्रॅक करू शकते आणि इतर ॲप्ससोबत तुमच्या वतीने संवाद साधू शकते."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमती द्या"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"नकार द्या"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"बंद करा"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"सुरू ठेवा"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> बंद करायचा आहे का?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"सेवा इंस्टॉल केल्या नाहीत"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"कोणतीही सेवा निवडलेली नाही"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"वर्णन प्रदान केले नाही."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN शिवायची कनेक्शन ब्लॉक करा"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN कनेक्शन आवश्यक आहे?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"सुरक्षित नाही. IKEv2 VPN वर अपडेट करा"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"सपोर्ट नसलेले VPN सुरू करता आले नाही."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"नेहमी कनेक्ट केलेले राहण्यासाठी एक VPN प्रोफाईल निवडा. केवळ या VPN शी कनेक्ट केलेले असताना नेटवर्क रहदारीला अनुमती दिली जाईल."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"काहीही नाही"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"नेहमी सुरू असलेल्या VPN ला सर्व्हर आणि DNS दोन्हीसाठी एका IP पत्त्याची आवश्यकता आहे."</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 41034b4..b179fd1 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Gunakan Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Jangan tunjukkan lagi"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Sambung"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi dihidupkan"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Disambungkan kepada <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Menyambung ke <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Menyambung…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Gagal menyambung ke rangkaian."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rangkaian di luar liputan"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Perhatian skrin menggunakan kamera depan untuk melihat sama ada seseorang sedang memandang skrin. Ciri ini berfungsi pada peranti dan imej tidak sekali-kali disimpan atau dihantar kepada Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Hidupkan perhatian skrin"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Pastikan skrin hidup semasa anda melihat skrin itu"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera dikunci"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera mesti dibuka kunci untuk Pengesanan Wajah"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera mesti dibuka kunci untuk Fokus Skrin"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Gunakan tempat liputan dan penambatan untuk menyediakan Internet kepada peranti lain melalui Wi-Fi atau sambungan data mudah alih anda. Apl juga boleh membuat tempat liputan untuk berkongsi kandungan dengan peranti berdekatan."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Bantuan"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Rangkaian mudah alih"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Pelan mudah alih"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Apl SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Tukar apl SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> bukannya <xliff:g id="CURRENT_APP">%2$s</xliff:g> sebagai apl SMS anda?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Tukar pembantu Wi-Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> untuk mengurus sambungan rangkaian anda?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Pengendali SIM yang tidak diketahui"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> tiada laman web peruntukan yang dikenali"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Sila masukkan kad SIM dan mulakan semula"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Sila sambung ke internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Permintaan lokasi terbaharu"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokasi untuk profil kerja"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Kebenaran lokasi apl"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ciri ini boleh menjejaki interaksi anda dengan apl atau penderia perkakasan dan berinteraksi dengan apl bagi pihak anda."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Benarkan"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tolak"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Matikan"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Biar hidup"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Matikan <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Tiada perkhidmatan dipasang"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Tiada perkhidmatan yang dipilih"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Tiada keterangan disediakan."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Sekat sambungan tanpa VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Perlukan sambungan VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Tidak selamat. Kemas kini kepada IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Gagal memulakan VPN yang tidak disokong."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Pilih profil VPN untuk sentiasa kekal tersambung. Trafik rangkaian hanya akan dibenarkan apabila bersambung ke VPN ini."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Tiada"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN yang sentiasa dihidupkan memerlukan alamat IP untuk kedua-dua pelayan dan DNS."</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 2d0a983..8c17205 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"‘သီးသန့်ချတ်ခန်း’ ကို စနစ်ထည့်သွင်းနေသည်…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"လော့ခ်ချထားသောအခါ ‘သီးသန့်ချတ်ခန်း’ အက်ပ်များအတွက် အသုံးပြုမှုအချက်အလက်ကို ဖျောက်ထားသည်"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"သင့်အက်ပ်စာရင်းမှ ‘သီးသန့်ချတ်ခန်း’ သုံးခြင်း"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"စနစ်အက်ပ်အချို့ကို ‘သီးသန့်ချတ်ခန်း’ တွင် ထည့်သွင်းပြီးဖြစ်သည်"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"‘သီးသန့်ချတ်ခန်း’ ကို စနစ်ထည့်သွင်း၍မရပါ"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ယခု ထပ်စမ်းကြည့်ပါ (သို့) နောက်မှပြန်လာပါ"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"ထပ်စမ်းရန်"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ဖန်သားပြင်လော့ခ် သုံးရန်"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"လော့ခ်အသစ် ရွေးရန်"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"အားလုံး အသင့်ပါ။"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"‘သီးသန့်ချတ်ခန်း’ ကို သင့်အက်ပ်စာရင်းမှ ဝင်နိုင်သည်"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"ပြီးပြီ"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"‘သီးသန့်ချတ်ခန်း’ သုံးရန် အောက်လှိမ့်ပါ"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"‘သီးသန့်ချတ်ခန်း’ ကိုစနစ်ထည့်သွင်းရန် လက်မှတ်ထိုးဝင်ပါ"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi ဆက်ချိတ်ထားရန်"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"လုံးဝ ထပ်မပြပါနှင့်"</string>
<string name="wifi_connect" msgid="2481467560349907397">"ချိတ်ဆက်ရန်"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ဖွင့်ထားသည်"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> သို့ ချိတ်ဆက်ထားသည်"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> သို့ ချိတ်ဆက်နေပါသည်"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"ချိတ်ဆက်နေသည်…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"ကွန်ရက်ကို ချိတ်ဆက်ရန် မအောင်မြင်ခဲ့ပါ"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ကွန်ရက်သည် ရနိုင်သောအကွာအဝေးတွင် မရှိပါ"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\'ဖန်သားပြင်ကို အာရုံစိုက်ခြင်း\' က တစ်ယောက်ယောက် ဖန်သားပြင်ကို ကြည့်နေခြင်းရှိမရှိ ရှေ့ကင်မရာ အသုံးပြု၍ စစ်ဆေးသည်။ ၎င်းသည် စက်ပစ္စည်းပေါ်တွင် လုပ်ဆောင်ခြင်းဖြစ်ပြီး ပုံများကို သိမ်းခြင်း သို့မဟုတ် Google သို့ပို့ခြင်းတို့ မပြုလုပ်ပါ။"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"\'ဖန်သားပြင်အာရုံစိုက်မှု\' ဖွင့်ခြင်း"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ကြည့်နေချိန်တွင် ဖန်သားပြင်ကို ဆက်ဖွင့်ထားသည်"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ကင်မရာကို လော့ခ်ချထားသည်"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"‘မျက်နှာကို မှတ်မိခြင်း’ အတွက် ကင်မရာကို လော့ခ်ဖွင့်ထားရမည်"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"‘ဖန်သားပြင်ကို အာရုံစိုက်ခြင်း’ အတွက် ကင်မရာကို လော့ခ်ဖွင့်ထားရမည်"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"သင်၏ Wi-Fi သို့မဟုတ် မိုဘိုင်းဒေတာ ချိတ်ဆက်မှုမှတစ်ဆင့် အခြားစက်ပစ္စည်းများသို့ အင်တာနက်လွှင့်ရန် ဟော့စပေါ့နှင့် မိုဘိုင်းမိုဒမ်ကို သုံးပါ။ အနီးရှိစက်ပစ္စည်းများသို့ အကြောင်းအရာ မျှဝေရန်အတွက် အက်ပ်များသည်လည်း ဟော့စပေါ့ပြုလုပ်နိုင်သည်။"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"အကူအညီ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"မိုဘိုင်းကွန်ရက်"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"မိုဘိုင်းလ်အစီအစဉ်"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS အက်ပ်"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"စာတိုပို့ရန် အက်ပ်ပြောင်းမလား။"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"သင့်စာတိုပို့ရန် အပလီကေးရှင်းအတွက် <xliff:g id="NEW_APP">%1$s</xliff:g> ကို <xliff:g id="CURRENT_APP">%2$s</xliff:g> အစား သုံးမည်လား?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ကြိုးမဲ့ ကူညီပေးသူကို ပြောင်းမလား?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"သင်၏ ကွန်ရက် ချိတ်ဆက်မှုများကို စီမံကွပ်ကဲရန် <xliff:g id="NEW_APP">%1$s</xliff:g>ကို <xliff:g id="CURRENT_APP">%2$s</xliff:g>၏အစား သုံးရမလား?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"သင်၏ ကွန်ရက် ချိတ်ဆက်မှုများကို စီမံကွပ်ကဲရန် <xliff:g id="NEW_APP">%s</xliff:g>ကို သုံးရမလား?{"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"မသိရ ဆင်းမ်ကတ် အော်ပရေတာ"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> တွင် မည်သည့်ဝဘ်ဆိုက်မျှ ပေးထားခြင်းမရှိပါ"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"ကျေးဇူးပြု၍ ဆင်းမ်ကတ်ထည့်၍ အစမှ ပြန်စပါ။"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ကျေးဇူးပြု၍ အင်တာနက်ဖြင့် ချိတ်ဆက်ပါ။"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"လတ်တလောတည်နေရာ တောင်းခံမှုများ"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"အလုပ်ပရိုဖိုင်အတွက် တည်နေရာ"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"အက်ပ်တည်နေရာ ခွင့်ပြုချက်များ"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"၎င်းသည် သင်နှင့် အက်ပ်တစ်ခု (သို့) အာရုံခံကိရိယာအကြား ပြန်လှန်တုံ့ပြန်မှုများကို မှတ်သားနိုင်ပြီး သင့်ကိုယ်စား အက်ပ်များနှင့် ပြန်လှန်တုံ့ပြန်နိုင်သည်။"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ခွင့်ပြု"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ပယ်ရန်"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ပိတ်ရန်"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ဖွင့်ထားပါ"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ပိတ်မလား။"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"မည်သည့်ဆားဗစ်မှမရှိပါ"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"မည်သည့် ဝန်ဆောင်မှုကိုမျှ ရွေးမထားပါ"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"မည်သည့်အကြောင်းအရာမှမရှိပါ"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN မပါသည့် ချိတ်ဆက်မှုများကို ပိတ်ဆို့ရန်"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN ချိတ်ဆက်မှု လိုအပ်ပါသလား။"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"လုံခြုံမှုမရှိပါ။ IKEv2 VPN သို့ အပ်ဒိတ်လုပ်ပါ"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"ပံ့ပိုးမထားသော VPN စတင်၍မရပါ။"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"VPN ကိုယ်ရေးအချက်အလက်ကို အမြဲတမ်းချိတ်ဆက်ထားလျက် ရှိနေရန် ရွေးပါ။ ၎င်းသည် VPN ကို ချိတ်ဆက်ထားသောအခါမှသာ ကွန်ရက်အသွားအလာကို ခွင့်ပြုလိမ့်မည်။"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"မရှိ"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"အမြဲပွင့်နေသော VPN အတွက် ဆာဗာနှင့်DNS.နှစ်ခုလုံးအတွက် IP လိပ်စာတစ်ခုလိုအပ်သည်။"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 70b1cb7..7022cdc 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Konfigurerer Private Space …"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Bruksinformasjon for Private Space-apper er skjult når den er låst"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Åpne Private Space fra applisten"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Noen systemapper er installert i Private Space allerede"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Kunne ikke konfigurere Private Space"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Prøv igjen nå, eller kom tilbake senere"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Prøv på nytt"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Bruk skjermlåsen"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Velg en ny lås"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Alt er klart!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Du kan gå til Private Space fra applisten"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Ferdig"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Rull ned for å åpne Private Space"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Logg på for å konfigurere Private Space"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Bli værende på Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Ikke vis igjen"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Koble til"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi er slått på"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Koblet til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Kobler til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Kobler til …"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Kan ikke koble til nettverket"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Nettverket er ikke innen rekkevidde"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Skjermoppmerksomhet bruker frontkameraet til å se om noen ser på skjermen. Funksjonen utføres på enheten, og bilder blir aldri lagret eller sendt til Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Slå på skjermoppmerksomhet"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Hold skjermen på når du ser på den"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera er låst"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera må låses opp for ansiktsgjenkjenning"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kameraet må låses opp for skjermoppmerksomhet"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Bruk wifi-sone og internettdeling for å gi andre enheter tilgang til internett via mobildataforbindelsen din. Apper kan også opprette en wifi-sone for å dele innhold med enheter i nærheten."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Hjelp"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilnettverk"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilabonnement"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS-app"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vil du bytte SMS-app?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Vil du bruke <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> for SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vil du endre wifi-assistent?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Vil du bruke <xliff:g id="NEW_APP">%s</xliff:g> til å administrere nettverkstilkoblingene?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Ukjent SIM-operatør"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> mangler kjent nettsted for identitetshåndtering"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Sett inn SIM-kortet og start enheten på nytt"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Koble deg til Internett"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nylige posisjonsforespørsler"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Sted for jobbprofil"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Apper med posisjonstillatelse"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan spore kommunikasjonen din med en app eller maskinvaresensor og kommunisere med apper på dine vegne."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillat"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Avvis"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slå av"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"La være på"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Vil du slå av <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ingen tjenester er installert"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ingen tjeneste er valgt"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Beskrivelse ble ikke oppgitt."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokkér tilkoblinger uten VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Vil du kreve VPN-tilkobling?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ikke sikker. Oppdater til IKEv2-VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Kunne ikke starte et VPN som ikke støttes."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Velg en VPN-profil du vil forbli tilkoblet til. Nettverkstrafikk blir bare tillatt når du er tilkoblet denne VPN-en."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ingen"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Alltid på-VPN krever en IP-adresse for både tjener og DNS."</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 521997f..a27bf97 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"निजी स्पेस सेटअप गरिँदै छ…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"लक गरिएका बेला निजी स्पेसका एपहरूको प्रयोगसम्बन्धी जानकारी लुकाइन्छ"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"एपहरूको सूचीबाट निजी स्पेस एक्सेस गर्नुहोस्"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"निजी स्पेसमा केही सिस्टम एपहरू इन्स्टल गरिसकिएका छन्"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"निजी स्पेस सेटअप गर्न सकिएन"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"अहिले नै फेरि प्रयास गर्नुहोस् वा पछि फेरि आउनुहोस्"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"फेरि प्रयास गर्नुहोस्"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"स्क्रिन लक प्रयोग गर्नुहोस्"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"नयाँ लक छनौट गर्नुहोस्"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"सबै तयार भयो!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"तपाईं आफ्ना एपहरूको सूचीबाट निजी स्पेस प्रयोग गर्न सक्नुहुन्छ"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"पूरा भयो"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"निजी स्पेस एक्सेस गर्न तलतिर स्क्रोल गर्नुहोस्"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"निजी स्पेस सेटअप गर्न साइन इन गर्नुहोस्"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi‑Fi मा कायम रहनुहोस्"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"फेरि कहिल्यै नदेखाउनुहोस्"</string>
<string name="wifi_connect" msgid="2481467560349907397">"कनेक्ट गर्नुहोस्"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi सक्रिय गरियो"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> मा कनेक्ट गरियो"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> मा कनेक्ट गरिँदै"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"जडान गर्दै…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"सञ्जालमा जडान गर्न विफल"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"नेटवर्क दायरामा छैन"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"कुनै व्यक्तिले स्क्रिनमा हेरिरहेको छ या छैन भन्ने कुरा पत्ता लगाउन \"स्क्रिनमा हेरिरहँदा\" नामक सेटिङले अगाडिको क्यामेरा प्रयोग गर्दछ। यसले यो डिभाइसभित्रै मात्र काम गर्छ र कहिल्यै पनि फोटो भण्डारण गर्ने वा Google मा पठाउने काम गर्दैन।"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"स्क्रिनमा हेरिरहँदा स्क्रिन सक्रिय राख्ने सुविधा अन गर्नुहोस्"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"स्क्रिनमा हेरिरहेका बेला स्क्रिन सक्रिय राखियोस्"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"क्यामेरा लक गरिएको छ"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"अनुहार पत्ता लगाउने सुविधा प्रयोग गर्न क्यामेरा अनिवार्य रूपमा अनलक गर्नु पर्छ"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"स्क्रिनमा हेरिरहेको पहिचान गर्ने सुविधा प्रयोग गर्न क्यामेरा अनलक गरिएको हुनु पर्छ"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"आफ्नो Wi‑Fi वा मोबाइल डेटा इन्टरनेटमार्फत अन्य डिभाइसमा इन्टरनेट उपलब्ध गराउन हटस्पट र टेदरिङ प्रयोग गर्नुहोस्। एपहरूले पनि वरपरका डिभाइसहरूसँग सामग्री सेयर गर्न हटस्पट सिर्जना गर्न सक्छन्।"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"मद्दत"</string>
<string name="network_settings_title" msgid="4663717899931613176">"मोबाइल नेटवर्क"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"मोबाईल योजना"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS एप"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS एप परिवर्तन गर्ने हो?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"तपाईँको <xliff:g id="CURRENT_APP">%2$s</xliff:g> SMS एपको सट्टामा <xliff:g id="NEW_APP">%1$s</xliff:g> प्रयोग गर्नुहुन्छ?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi-Fi सहायक परिवर्तन गर्नुहुन्छ?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"तपाईँको सञ्जाल जडानहरू व्यवस्थापन गर्न <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="680685773455072321">"तपाईँको सञ्जाल जडानहरू व्यवस्थापन गर्न <xliff:g id="NEW_APP">%s</xliff:g> प्रयोग गर्ने?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"अज्ञात SIM सञ्चालक"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> को प्रावधानीकरणको कुनै ज्ञात वेबसाइट छैन"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"कृपया SIM कार्ड भित्र राखेर पुनः स्टार्ट गर्नुहोस्"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"कृपया इन्टरनेटसँग जोड्नुहोस्"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"हालका स्थान अनुरोधहरू"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"काम प्रोफाइलका लागि स्थान"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"एपलाई दिइएको लोकेसन प्रयोग गर्ने अनुमति"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"यसले कुनै एप वा हार्डवेयर सेन्सरसँग तपाईंले गर्ने अन्तर्क्रिया ट्र्याक गर्न सक्छ र तपाईंका तर्फबाट एपहरूसँग अन्तर्क्रिया गर्न सक्छ।"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमति दिनुहोस्"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"नदिनुहोस्"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"अफ गर्नुहोस्"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"अन नै छाड्नुहोस्"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> अफ गर्ने हो?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"कुनै पनि सेवाहरू स्थापित छैनन्"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"कुनै पनि सेवा चयन गरिएको छैन"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"वर्णन प्रदान गरिएको छैन।"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN रहित जडानहरूमाथि रोक लगाउनुहोस्"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN जडान आवश्यक छ?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"सुरक्षित छैन। अपडेट गरी IKEv2 VPN बनाउनुहोस्"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"प्रयोग गर्न नमिल्ने VPN सुरु गर्न सकिएन।"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"सधैँ जडान भइरहन VPN प्रोफाइल चयन गर्नुहोस्। यस VPN जडान भएको बेला नेटवर्क ट्राफिकलाई मात्र अनुमति हुने छ।"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"कुनै पनि होइन"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"सधैँ चल्ने VPN लाई IP एड्रेस दुबै सर्भर र DNS का लागि चाहिन्छ।"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 52429f2..c77f9ae 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wifi blijven gebruiken"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Nooit meer tonen"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Verbinden"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi staat aan"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Verbonden met <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Verbinding maken met <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Verbinden…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Kan geen verbinding maken met het netwerk"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netwerk is niet binnen bereik"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Schermaandacht gebruikt de camera aan de voorzijde om te zien of er iemand naar het scherm kijkt. Deze functie werkt op het apparaat zelf: de afbeeldingen worden nooit opgeslagen of naar Google verzonden."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Schermaandacht aanzetten"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Houd het scherm aan als je ernaar kijkt"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is vergrendeld"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"De camera moet zijn ontgrendeld voor gezichtsherkenning"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera moet zijn ontgrendeld voor schermaandacht"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Gebruik hotspot en tethering om internet aan andere apparaten te leveren via je wifi- of mobiele dataverbinding. Apps kunnen ook hotspots maken om content te delen met apparaten in de buurt."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Hulp"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobiel netwerk"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobiel abonnement"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Sms-app"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Sms-app wijzigen?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Wil je <xliff:g id="NEW_APP">%1$s</xliff:g> als je sms-app gebruiken in plaats van <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wifi-assistent wijzigen?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"<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="680685773455072321">"<xliff:g id="NEW_APP">%s</xliff:g> gebruiken om je netwerkverbindingen te beheren?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Onbekende simkaartprovider"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> heeft geen bekende registratiewebsite"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Plaats een simkaart en start het apparaat opnieuw"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Maak verbinding met internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recente locatieverzoeken"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Locatie voor werkprofiel"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Locatierechten voor apps"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"De functie kan je interacties met een app of een hardwaresensor bijhouden en namens jou met apps communiceren."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Toestaan"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Weigeren"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Uitzetten"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Aan laten"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> uitzetten?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Geen services geïnstalleerd"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Geen service geselecteerd"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Geen beschrijving opgegeven."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Verbindingen zonder VPN blokkeren"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN-verbinding vereisen?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Niet beveiligd. Update naar een IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Kan niet-ondersteund VPN niet starten."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecteer een VPN-profiel waarmee je altijd verbonden wilt blijven. Netwerkverkeer wordt alleen toegestaan bij verbinding met dit VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Geen"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Voor Always-on VPN is een IP-adres voor zowel de server als DNS vereist."</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 96c9841..e70e046 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Private Space ସେଟ ଅପ କରାଯାଉଛି…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Private Space ଆପ୍ସ ଲକ ଥିବା ବେଳେ ଏହାର ବ୍ୟବହାର ସୂଚନା ଲୁକ୍କାୟିତ ରହିଥାଏ"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ଆପଣଙ୍କ ଆପ୍ସ ତାଲିକାରୁ Private Spaceକୁ ଆକ୍ସେସ କରନ୍ତୁ"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"କିଛି ସିଷ୍ଟମ ଆପ୍ସକୁ ପୂର୍ବରୁ ପ୍ରାଇଭେଟ ସ୍ପେସରେ ଇନଷ୍ଟଲ କରାଯାଇଛି"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Private Space ସେଟ ଅପ କରାଯାଇପାରିବ ନାହିଁ"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ବର୍ତ୍ତମାନ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ୱା ପରେ ଫେରନ୍ତୁ"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରନ୍ତୁ"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"ନୂଆ ଲକ ବାଛନ୍ତୁ"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"ସମ୍ପୂର୍ଣ୍ଣ ଭାବେ ପ୍ରସ୍ତୁତ!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"ଆପଣ ଆପଣଙ୍କ ଆପ୍ସ ତାଲିକାରୁ ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଆକ୍ସେସ କରିପାରିବେ"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"ହୋଇଗଲା"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Private Spaceକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ତଳକୁ ସ୍କ୍ରୋଲ କରନ୍ତୁ"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"ପ୍ରାଇଭେଟ ସ୍ପେସ ସେଟ ଅପ କରିବା ପାଇଁ ସାଇନ ଇନ କରନ୍ତୁ"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"ୱାଇ-ଫାଇରେ ରୁହନ୍ତୁ"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"ଆଉ ଆଦୌ ଦେଖାଅ ନାହିଁ"</string>
<string name="wifi_connect" msgid="2481467560349907397">"କନେକ୍ଟ କରନ୍ତୁ"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"ୱାଇ-ଫାଇ ଅନ୍ ଅଛି"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ସହ ସଂଯୁକ୍ତ ହୋଇଛି"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ସହ ସଂଯୋଗ ହେଉଛି"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"ସଂଯୋଗ ହେଉଛି…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"ନେଟ୍ୱର୍କକୁ ସଂଯୋଗ କରିପାରିଲା ନାହିଁ।"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ନେଟ୍ୱର୍କ ପରିସୀମା ମଧ୍ୟରେ ନାହିଁ"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"ସ୍କ୍ରିନ୍କୁ କେହି ଦେଖୁଛନ୍ତି ନା ନାହିଁ ତାହା ଦେଖିବା ପାଇଁ \'ସ୍କ୍ରିନ୍ ଆଟେନ୍ସନ୍\' ସାମ୍ନା କ୍ୟାମେରା ବ୍ୟବହାର କରେ। ଏହା ଡିଭାଇସ୍ରେ କାର୍ଯ୍ୟ କରିଥାଏ ଏବଂ ଛବିଗୁଡ଼ିକୁ କେବେ ବି ଷ୍ଟୋର୍ କରାଯାଇ ନଥାଏ କିମ୍ବା Googleକୁ ପଠାଯାଇ ନଥାଏ।"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"ସ୍କ୍ରିନ୍ ଆଟେନସନ୍ ଚାଲୁ କରନ୍ତୁ"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ସ୍କ୍ରିନକୁ ଦେଖିବା ସମୟରେ ଏହାକୁ ଚାଲୁ ରଖନ୍ତୁ"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"କ୍ୟାମେରା ଲକ୍ କରାଯାଇଛି"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"\'ଫେସ୍ ଚିହ୍ନଟକରଣ\' ପାଇଁ କ୍ୟାମେରାକୁ ଅନଲକ୍ କରାଯିବା ଆବଶ୍ୟକ"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ସ୍କ୍ରିନ୍ ଆଟେନସନ୍ ପାଇଁ କ୍ୟାମେରାକୁ ଅନଲକ୍ କରାଯିବା ଆବଶ୍ୟକ"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ଆପଣଙ୍କ ୱାଇ-ଫାଇ ବା ମୋବାଇଲ ଡାଟା କନେକ୍ସନ ମାଧ୍ୟମରେ ଅନ୍ୟ ଡିଭାଇସଗୁଡ଼ିକୁ ଇଣ୍ଟରନେଟ ପ୍ରଦାନ କରିବାକୁ ହଟସ୍ପଟ ଏବଂ ଟିଥରିଂ ବ୍ୟବହାର କରନ୍ତୁ। ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ ସହ ବିଷୟବସ୍ତୁ ସେୟାର କରିବାକୁ ଆପ୍ସ ଏକ ହଟସ୍ପଟ ମଧ୍ୟ ତିଆରି କରିପାରିବ।"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"ସାହାଯ୍ୟ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"ମୋବାଇଲ୍ ନେଟ୍ୱାର୍କ"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ମୋବାଇଲ୍ ପ୍ଲାନ୍"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS ଆପ୍"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ଆପ୍ ବଦଳାଇବେ?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> ବଦଳରେ <xliff:g id="NEW_APP">%1$s</xliff:g> କୁ ଆପଣଙ୍କ SMS ଆପ୍ ପରି ବ୍ୟବହାର କରିବେ?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi ସହାଯକ ପରିବର୍ତ୍ତନ କରିବେ?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ନିଜ ନେଟ୍ୱର୍କ ସଂଯୋଗ ପରିଚାଳନା କରିବା ପାଇଁ <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="680685773455072321">"ନିଜର ନେଟ୍ୱର୍କ ସଂଯୋଗ ପରିଚାଳନା କରିବା ପାଇଁ <xliff:g id="NEW_APP">%s</xliff:g>ର ବ୍ୟବହାର କରିବେ?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ଅଜଣା ସିମ୍ ଅପରେଟର୍"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> ଙ୍କର କୌଣସି ଜ୍ଞାତ ପ୍ରାବଧାନୀକରଣ ୱେବସାଇଟ୍ ନାହିଁ"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"ଦୟାକରି SIM କାର୍ଡ ଭର୍ତ୍ତି କରି ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ଇଣ୍ଟର୍ନେଟ୍ ସହ ସଂଯୋଗ କରନ୍ତୁ"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"ବର୍ତ୍ତମାନର ଲୋକେସନ୍ ଅନୁରୋଧ"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ୱାର୍କ ପ୍ରୋଫାଇଲ୍ ପାଇଁ ଲୋକେସନ୍"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ଆପର ଲୋକେସନ ଅନୁମତିଗୁଡ଼ିକ"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ଏହା କୌଣସି ଆପ କିମ୍ବା ହାର୍ଡୱେର ସେନ୍ସର ସହ ଆପଣଙ୍କର ଇଣ୍ଟେରାକ୍ସନକୁ ଟ୍ରାକ କରିପାରେ ଏବଂ ଆପଣଙ୍କ ତରଫରୁ ଆପ୍ସ ସହ ଇଣ୍ଟରାକ୍ଟ କରିପାରେ।"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ଅନୁମତି"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ଅଗ୍ରାହ୍ୟ"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ବନ୍ଦ କରନ୍ତୁ"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ଚାଲୁ ରଖ"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ବନ୍ଦ କରିବେ?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"କୌଣସି ସେବା ସଂସ୍ଥାପିତ ହୋଇନାହିଁ"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"କୌଣସି ସେବାର ଚୟନ କରାଯାଇନାହିଁ"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"କୌଣସି ବ୍ୟାଖ୍ୟା ଦିଆଯାଇ ନାହିଁ।"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"ବିନା VPNରେ ସଂଯୋଗଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରନ୍ତୁ"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN ସଂଯୋଗ ଦରକାର?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ସୁରକ୍ଷିତ ନୁହେଁ। କୌଣସି IKEv2 VPNକୁ ଅପଡେଟ୍ କରନ୍ତୁ"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"ଅସମର୍ଥିତ VPNକୁ ଆରମ୍ଭ କରିବାରେ ବିଫଳ ହୋଇଛି।"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"ସର୍ବଦା ସଂଯୁକ୍ତ ରହିବାକୁ ଏକ VPN ପ୍ରୋଫାଇଲ୍ ଚୟନ କରନ୍ତୁ। ନେଟ୍ୱର୍କ ଟ୍ରାଫିକ୍ ଏହି VPN ସହ ସଂଯୁକ୍ତ ଥିବବେଳେ ହିଁ ଅନୁମତି ମିଳିବ।"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"କିଛି ନାହିଁ"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ଉଭୟ ସର୍ଭର୍ ଓ DNS ପାଇଁ ସର୍ବଦା-ଅନ୍ ଥିବା VPN ଗୋଟିଏ IP ଠିକଣା ଆବଶ୍ୟକ କରେ।"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 2545660..b5fb587 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ਨਿੱਜੀ ਸਪੇਸ ਦੇ ਲਾਕ ਹੋਣ \'ਤੇ, ਨਿੱਜੀ ਸਪੇਸ ਐਪਾਂ ਦੀ ਵਰਤੋਂ ਸੰਬੰਧੀ ਜਾਣਕਾਰੀ ਲੁਕੀ ਹੁੰਦੀ ਹੈ"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ਆਪਣੀ ਐਪ ਸੂਚੀ ਤੋਂ ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"ਕੁਝ ਸਿਸਟਮ ਐਪਾਂ ਨਿੱਜੀ ਸਪੇਸ ਵਿੱਚ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਸਥਾਪਤ ਹਨ"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ਹੁਣੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜਾਂ ਬਾਅਦ ਵਿੱਚ ਵਾਪਸ ਆਓ"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਤੋ"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"ਨਵਾਂ ਲਾਕ ਚੁਣੋ"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"ਸਭ ਹੋ ਗਿਆ!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"ਤੁਸੀਂ ਆਪਣੀ ਐਪਾਂ ਦੀ ਸੂਚੀ ਤੋਂ ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੇ ਹੋ"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"ਹੋ ਗਿਆ"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਹੇਠਾਂ ਵੱਲ ਸਕ੍ਰੋਲ ਕਰੋ"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਸਾਈਨ-ਇਨ ਕਰੋ"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"ਵਾਈ‑ਫਾਈ \'ਤੇ ਬਣੇ ਰਹੋ"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"ਕਦੇ ਦੁਬਾਰਾ ਨਾ ਦਿਖਾਓ"</string>
<string name="wifi_connect" msgid="2481467560349907397">"ਕਨੈਕਟ ਕਰੋ"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"ਵਾਈ‑ਫਾਈ ਚਾਲੂ ਕੀਤਾ ਗਿਆ"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੈ"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"ਕਨੈਕਟ ਹੋ ਰਿਹਾ ਹੈ…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"ਨੈੱਟਵਰਕ ਕਨੈਕਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲ"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ਨੈੱਟਵਰਕ ਰੇਂਜ ਵਿੱਚ ਨਹੀਂ ਹੈ"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\'ਸਕ੍ਰੀਨ ਦਾ ਚੌਕੰਨਾਪਣ\' ਵਿਸ਼ੇਸ਼ਤਾ ਅਗਲੇ ਕੈਮਰੇ ਦੀ ਵਰਤੋਂ ਨਾਲ ਪਤਾ ਲਗਾਉਂਦੀ ਹੈ ਕਿ ਕੋਈ ਸਕ੍ਰੀਨ ਵੱਲ ਦੇਖ ਰਿਹਾ ਹੈ ਜਾਂ ਨਹੀਂ। ਇਹ ਡੀਵਾਈਸ \'ਤੇ ਕੰਮ ਕਰਦੀ ਹੈ ਅਤੇ ਚਿੱਤਰ ਕਦੇ ਸਟੋਰ ਨਹੀਂ ਕੀਤੇ ਜਾਂਦੇ ਜਾਂ Google ਨੂੰ ਭੇਜੇ ਨਹੀਂ ਜਾਂਦੇ।"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"ਸਕ੍ਰੀਨ ਦਾ ਚੌਕੰਨਾਪਣ ਚਾਲੂ ਕਰੋ"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ਸਕ੍ਰੀਨ ਵੱਲ ਦੇਖਦੇ ਸਮੇਂ ਇਸਨੂੰ ਚਾਲੂ ਰੱਖੋ"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ਕੈਮਰਾ ਲਾਕ ਹੈ"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ਚਿਹਰਾ ਪਛਾਣ ਲਈ ਕੈਮਰੇ ਨੂੰ ਅਣਲਾਕ ਕੀਤਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ਸਕ੍ਰੀਨ ਦੇ ਚੌਕੰਨੇਪਣ ਦੇ ਲਈ ਕੈਮਰੇ ਨੂੰ ਲਾਜ਼ਮੀ ਤੌਰ \'ਤੇ ਅਣਲਾਕ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ਹੋਰਾਂ ਡੀਵਾਈਸਾਂ ਨੂੰ ਆਪਣੇ ਵਾਈ-ਫਾਈ ਜਾਂ ਮੋਬਾਈਲ ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਰਾਹੀਂ ਇੰਟਰਨੈੱਟ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਲਈ ਹੌਟਸਪੌਟ ਅਤੇ ਟੈਦਰਿੰਗ ਵਰਤੋ। ਐਪਾਂ ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਨਾਲ ਸਮੱਗਰੀ ਸਾਂਝੀ ਕਰਨ ਲਈ ਇੱਕ ਹੌਟਸਪੌਟ ਵੀ ਬਣਾ ਸਕਦੀਆਂ ਹਨ।"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"ਮਦਦ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ਮੋਬਾਈਲ ਪਲਾਨ"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS ਐਪ"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"ਕੀ SMS ਐਪ ਬਦਲਣੀ ਹੈ?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ਕੀ ਆਪਣੇ SMS ਐਪ ਦੇ ਤੌਰ ਤੇ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ਦੀ ਬਜਾਏ <xliff:g id="NEW_APP">%1$s</xliff:g> ਨੂੰ ਵਰਤਣਾ ਹੈ?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ਕੀ ਵਾਈ‑ਫਾਈ ਸਹਾਇਕ ਬਦਲਣਾ ਹੈ?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ਕੀ ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ <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="680685773455072321">"ਕੀ ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ <xliff:g id="NEW_APP">%s</xliff:g> ਵਰਤਣਾ ਹੈ?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ਅਗਿਆਤ ਸਿਮ ਓਪਰੇਟਰ"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> ਦੀ ਕੋਈ ਗਿਆਤ ਵਿਵਸਥਾਕਰਨ ਵੈੱਬਸਾਈਟ ਨਹੀਂ ਹੈ"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"ਕਿਰਪਾ ਕਰਕੇ SIM ਕਾਰਡ ਪਾਓ ਅਤੇ ਰੀਸਟਾਰਟ ਕਰੋ"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ਕਿਰਪਾ ਕਰਕੇ ਇੰਟਰਨੈੱਟ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"ਹਾਲੀਆ ਟਿਕਾਣਾ ਬੇਨਤੀਆਂ"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਲਈ ਟਿਕਾਣਾ"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ਐਪ ਦੀਆਂ ਟਿਕਾਣੇ ਸੰਬੰਧੀ ਇਜਾਜ਼ਤਾਂ"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ਇਹ ਕਿਸੇ ਐਪ ਜਾਂ ਹਾਰਡਵੇਅਰ ਸੈਂਸਰ ਦੇ ਨਾਲ ਤੁਹਾਡੀਆਂ ਅੰਤਰਕਿਰਿਆਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰ ਸਕਦੀ ਹੈ, ਅਤੇ ਤੁਹਾਡੀ ਤਰਫ਼ੋਂ ਐਪਾਂ ਦੇ ਨਾਲ ਅੰਤਰਕਿਰਿਆ ਕਰ ਸਕਦੀ ਹੈ।"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ਕਰਨ ਦਿਓ"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ਨਾ ਕਰਨ ਦਿਓ"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ਬੰਦ ਕਰੋ"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ਚਾਲੂ ਰੱਖੋ"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"ਕੀ <xliff:g id="SERVICE">%1$s</xliff:g> ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"ਕੋਈ ਸੇਵਾਵਾਂ ਇੰਸਟੌਲ ਨਹੀਂ ਕੀਤੀਆਂ"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"ਕਿਸੇ ਸੇਵਾ ਨੂੰ ਨਹੀਂ ਚੁਣਿਆ ਗਿਆ"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"ਕੋਈ ਵਰਣਨ ਮੁਹੱਈਆ ਨਹੀਂ ਕੀਤਾ ਗਿਆ।"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"ਬਿਨਾਂ VPN ਤੋਂ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਬਲਾਕ ਕਰੋ"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"ਕੀ VPN ਕਨੈਕਸ਼ਨ ਦੀ ਲੋੜ ਹੈ?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ਸੁਰੱਖਿਅਤ ਨਹੀਂ। IKEv2 VPN \'ਤੇ ਅੱਪਡੇਟ ਕਰੋ"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"ਅਸਮਰਥਿਤ VPN ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ।"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"ਹਮੇਸ਼ਾਂ ਉਸ ਨਾਲ ਕਨੈਕਟ ਰਹਿਣ ਲਈ ਇੱਕ VPN ਪ੍ਰੋਫਾਈਲ ਚੁਣੋ। ਨੈੱਟਵਰਕ ਟ੍ਰੈਫਿਕ ਦੀ ਆਗਿਆ ਕੇਵਲ ਇਸ VPN ਨਾਲ ਕਨੈਕਟ ਕੀਤੇ ਜਾਣ ਤੇ ਹੀ ਦਿੱਤੀ ਜਾਏਗੀ।"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"ਕੋਈ ਨਹੀਂ"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ਸਰਵਰ ਅਤੇ DNS ਦੋਵਾਂ ਲਈ ਹਮੇਸ਼ਾਂ-ਚਾਲੂ VPN ਲਈ ਇੱਕ IP ਪਤਾ ਲੋੜੀਂਦਾ ਹੈ।"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index f8e02a4..62f16a5 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Pozostań przy Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Nie pokazuj już nigdy"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Połącz"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi włączone"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Połączono z siecią <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Łączę z: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Łączę…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Nie można nawiązać połączenia z siecią"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Poza zasięgiem sieci"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Aktywność ekranu sprawdza za pomocą przedniego aparatu, czy ktoś patrzy na ekran. Działa na urządzeniu, a obrazy nie są zapisywane ani wysyłane do Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Włącz aktywność ekranu"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Utrzymuj ekran włączony, gdy na niego patrzysz"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Aparat jest zablokowany"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Wykrywanie twarzy wymaga odblokowania aparatu"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Aktywność ekranu wymaga odblokowania aparatu"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Funkcje hotspotu i tetheringu pozwalają zapewnić połączenie z internetem innym urządzeniom za pomocą Wi-Fi lub komórkowego połączenia transmisji danych. Aplikacje mogą też utworzyć hotspot, by udostępniać treści urządzeniom w pobliżu."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Pomoc"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Sieć komórkowa"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Taryfa komórkowa"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplikacja do SMS-ów"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Zmienić aplikację do SMS-ów?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Chcesz używać aplikacji <xliff:g id="NEW_APP">%1$s</xliff:g> zamiast <xliff:g id="CURRENT_APP">%2$s</xliff:g> do wysyłania i otrzymywania SMS-ów?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Zmienić asystenta Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Używać <xliff:g id="NEW_APP">%s</xliff:g> do zarządzania połączeniami sieciowymi?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Nieznany operator karty SIM"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nie ma znanej witryny obsługi administracyjnej"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Włóż kartę SIM i zrestartuj urządzenie"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Połącz się z internetem"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Ostatnie prośby o lokalizację"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokalizacja dla profilu służbowego"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Dostęp do lokalizacji"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Może śledzić Twoje interakcje z aplikacjami lub czujnikiem sprzętowym, a także obsługiwać aplikacje za Ciebie."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Zezwól"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odmów"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Wyłącz"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Nie wyłączaj"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Wyłączyć usługę <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Brak zainstalowanych usług"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nie wybrano usługi"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Brak opisu"</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokuj połączenia bez VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Wymagać połączenia VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Niezabezpieczona. Zaktualizuj do VPN IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nie udało się uruchomić nieobsługiwanej konfiguracji VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Wybierz stały profil VPN. Ruch w sieci będzie możliwy tylko po połączeniu z tą siecią VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Brak"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"W przypadku stałej sieci VPN wymagany jest adres IP zarówno dla serwera, jak i dla DNS."</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 85864a4..73d4d26 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurando Espaço particular…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"As informações de uso de apps do Espaço particular ficam ocultas quando ele está bloqueado"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Acessar o Espaço particular da sua lista de apps"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Alguns apps do sistema já estão instalados no Espaço particular"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Não foi possível configurar o Espaço particular"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Tente de novo ou volte mais tarde"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Tentar de novo"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueio de tela"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Escolher novo bloqueio"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Tudo pronto!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Você pode acessar o Espaço particular pela sua lista de apps"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Concluído"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Role a tela para baixo para acessar o Espaço particular"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Faça login para configurar o Espaço particular"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Continuar no Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Não mostrar de novo"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Conectar"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ativado"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Conectado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Conectando a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Conectando…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Falha ao conectar à rede"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rede fora do alcance"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Usando a câmera frontal, o \"Reconhecimento de tela em uso\" detecta se alguém está olhando para a tela. Ele funciona no dispositivo, e as imagens nunca são armazenadas nem enviadas ao Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ativar o \"reconhecimento de tela em uso\""</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantenha a tela ligada enquanto estiver olhando para ela"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"A câmera está bloqueada"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Desbloqueie a câmera para usar a detecção facial"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"A câmera precisa ser desbloqueada para usar o reconhecimento de tela em uso"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use o ponto de acesso e tethering para que outros dispositivos possam usar a Internet pela sua conexão de dados móveis. Os apps também podem criar um ponto de acesso para compartilhar conteúdo com dispositivos por perto."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Ajuda"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Rede móvel"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plano de serviço móvel"</string>
<string name="sms_application_title" msgid="4791107002724108809">"App de SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Alterar app de SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Usar o <xliff:g id="NEW_APP">%1$s</xliff:g> em vez do <xliff:g id="CURRENT_APP">%2$s</xliff:g> como app de SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Alterar o Assistente de Wi-Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Usar <xliff:g id="NEW_APP">%s</xliff:g> para gerenciar suas conexões de rede?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operadora do chip desconhecida"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> não tem um website de provisionamento conhecido"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Insira o chip e reinicie"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Conecte-se à Internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitações recentes"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Local do perfil de trabalho"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Permissões de acesso ao local"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Negar"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Manter ativado"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Desativar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nenhum serviço foi instalado"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nenhum serviço selecionado"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nenhuma descrição foi fornecida."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear conexões sem VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Conexão VPN necessária?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Não seguro. Atualize para uma VPN IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Falha ao iniciar a VPN sem suporte."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecione um perfil de VPN para permanecer sempre conectado. O tráfego de rede somente será permitido quando conectado a esta VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Nenhuma"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"A VPN sempre ativa requer um endereço IP para o servidor e o DNS."</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index e804ed5..8867d30 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"A configurar o espaço privado…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Quando o espaço privado estiver bloqueado, as informações de utilização das respetivas apps são ocultadas"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Aceda ao espaço privado a partir da sua lista de apps"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Algumas apps do sistema já estão instaladas no espaço privado"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Não foi possível configurar o espaço privado"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Tente novamente agora ou volte mais tarde"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Tentar novamente"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueio de ecrã"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Escolher novo bloqueio"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Tudo pronto!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Pode aceder ao espaço privado a partir da sua lista de apps"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Concluir"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Desloque o ecrã para baixo para aceder ao espaço privado"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Inicie sessão para configurar o espaço privado"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Permanecer em Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Não mostrar novamente"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Ligar"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ativado"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Ligado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"A ligar a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"A ligar…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Não foi possível estabelecer ligação à rede"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"A rede não está ao alcance"</string>
@@ -1131,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"A Atenção ao ecrã utiliza a câmara frontal para ver se alguém está a olhar para o ecrã. Funciona no dispositivo e as imagens nunca são armazenadas nem enviadas para a Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ative a atenção ao ecrã"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantenha o ecrã ligado enquanto estiver a olhar para ele."</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Um limite de tempo do ecrã mais longo vai aumentar a utilização da bateria."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"A câmara está bloqueada"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"A câmara tem de ser desbloqueada para a deteção facial"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"A câmara tem de estar desbloqueada para utilizar a atenção ao ecrã"</string>
@@ -1471,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use uma zona Wi-Fi e uma ligação (à Internet) via telemóvel para disponibilizar Internet a outros dispositivos através de Wi-Fi ou da sua ligação móvel de dados. As apps também podem criar uma zona Wi-Fi para partilhar conteúdo com dispositivos próximos."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Ajuda"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Rede móvel"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plano de telemóvel"</string>
<string name="sms_application_title" msgid="4791107002724108809">"App de SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Alterar aplicação de SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Usar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como a aplicação de SMS predefinida?"</string>
@@ -1479,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Alterar assistente Wi-Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Usar <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="680685773455072321">"Usar <xliff:g id="NEW_APP">%s</xliff:g> para gerir as ligações de rede?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operador SIM desconhecido"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"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="3639245241283948038">"Insira o cartão SIM e reinicie"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Ligue-se à Internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Pedidos de localização recentes"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Local. para perfil de trabalho"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Autorizações de localização das apps"</string>
@@ -2247,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorizar as suas interações com uma app ou um sensor de hardware e interagir com apps em seu nome."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Recusar"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Manter"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Desativar o serviço <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nenhum serviço instalado"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nenhum serviço selecionado"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nenhuma descrição fornecida."</string>
@@ -2779,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear ligações sem VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Quer exigir uma ligação VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Insegura. Atualize para uma VPN IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Falha ao iniciar a VPN não suportada."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecione um perfil de VPN para permanecer sempre ligado. O tráfego de rede só será permitido quando ligado a esta VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Nenhuma"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"A VPN sempre ativa requer um endereço IP de servidor e DNS."</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 85864a4..73d4d26 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurando Espaço particular…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"As informações de uso de apps do Espaço particular ficam ocultas quando ele está bloqueado"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Acessar o Espaço particular da sua lista de apps"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Alguns apps do sistema já estão instalados no Espaço particular"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Não foi possível configurar o Espaço particular"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Tente de novo ou volte mais tarde"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Tentar de novo"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueio de tela"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Escolher novo bloqueio"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Tudo pronto!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Você pode acessar o Espaço particular pela sua lista de apps"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Concluído"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Role a tela para baixo para acessar o Espaço particular"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Faça login para configurar o Espaço particular"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Continuar no Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Não mostrar de novo"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Conectar"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ativado"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Conectado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Conectando a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Conectando…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Falha ao conectar à rede"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rede fora do alcance"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Usando a câmera frontal, o \"Reconhecimento de tela em uso\" detecta se alguém está olhando para a tela. Ele funciona no dispositivo, e as imagens nunca são armazenadas nem enviadas ao Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ativar o \"reconhecimento de tela em uso\""</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantenha a tela ligada enquanto estiver olhando para ela"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"A câmera está bloqueada"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Desbloqueie a câmera para usar a detecção facial"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"A câmera precisa ser desbloqueada para usar o reconhecimento de tela em uso"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use o ponto de acesso e tethering para que outros dispositivos possam usar a Internet pela sua conexão de dados móveis. Os apps também podem criar um ponto de acesso para compartilhar conteúdo com dispositivos por perto."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Ajuda"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Rede móvel"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plano de serviço móvel"</string>
<string name="sms_application_title" msgid="4791107002724108809">"App de SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Alterar app de SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Usar o <xliff:g id="NEW_APP">%1$s</xliff:g> em vez do <xliff:g id="CURRENT_APP">%2$s</xliff:g> como app de SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Alterar o Assistente de Wi-Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Usar <xliff:g id="NEW_APP">%s</xliff:g> para gerenciar suas conexões de rede?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operadora do chip desconhecida"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> não tem um website de provisionamento conhecido"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Insira o chip e reinicie"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Conecte-se à Internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitações recentes"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Local do perfil de trabalho"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Permissões de acesso ao local"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Negar"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Manter ativado"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Desativar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nenhum serviço foi instalado"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nenhum serviço selecionado"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nenhuma descrição foi fornecida."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear conexões sem VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Conexão VPN necessária?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Não seguro. Atualize para uma VPN IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Falha ao iniciar a VPN sem suporte."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecione um perfil de VPN para permanecer sempre conectado. O tráfego de rede somente será permitido quando conectado a esta VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Nenhuma"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"A VPN sempre ativa requer um endereço IP para o servidor e o DNS."</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index af14e81..85615c1 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Se configurează Spațiul privat…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Informațiile despre utilizarea aplicațiilor din Spațiul privat sunt ascunse atunci când este blocat"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accesează Spațiul privat din lista de aplicații"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Unele aplicații de sistem sunt deja instalate în Spațiul privat"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Nu s-a putut configura Spațiul privat"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Încearcă din nou acum sau revino mai târziu"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Încearcă din nou"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Folosește blocarea ecranului"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Alege o nouă blocare"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Gata!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Poți accesa Spațiul privat din lista de aplicații"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Gata"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Derulează în jos pentru a accesa Spațiul privat"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Conectează-te pentru a configura Spațiul privat"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Rămâi pe Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Nu afișa din nou"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Conectează-te"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Conexiunea prin Wi-Fi este activată"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Te-ai conectat la <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Se conectează la <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Se conectează…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Nu s-a putut stabili conexiunea la rețea"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rețeaua este în afara ariei de acoperire"</string>
@@ -1131,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Funcția Atenție la ecran folosește camera frontală pentru a detecta dacă se uită cineva la ecran. Funcționează pe dispozitiv, iar imaginile nu sunt niciodată stocate sau trimise la Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activați „Atenție la ecran”"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Menține activat ecranul când îl privești"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Durata mai lungă până la dezactivarea ecranului va folosi mai multă baterie."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera foto este blocată"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera foto trebuie deblocată pentru detectarea facială"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera trebuie să fie deblocată pentru funcția Atenție la ecran"</string>
@@ -1471,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Folosește hotspotul și tetheringul pentru a oferi o conexiune de internet altor dispozitive prin conexiunea ta Wi-Fi sau de date mobile. Aplicațiile pot crea și un hotspot pentru a trimite conținut dispozitivelor din apropiere."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Ajutor"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Rețea mobilă"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plan de date mobile"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplicația SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Schimbi aplicația SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Folosești <xliff:g id="NEW_APP">%1$s</xliff:g> în loc de <xliff:g id="CURRENT_APP">%2$s</xliff:g> ca aplicație SMS?"</string>
@@ -1479,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Schimbi asistentul Wi-Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Folosești <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="680685773455072321">"Folosești <xliff:g id="NEW_APP">%s</xliff:g> pentru a gestiona conexiunile la rețea?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operator SIM necunoscut"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nu are niciun site de provizionare cunoscut"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Introdu cardul SIM și repornește"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Conectează-te la internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitări recente ale locației"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Locație pt. profil de serviciu"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Permisiuni pentru locație"</string>
@@ -2247,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Poate urmări interacțiunile tale cu o aplicație sau cu un senzor hardware și poate interacționa cu aplicații în numele tău."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permite"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuză"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Dezactivează"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Menține activată"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Dezactivezi <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nu există servicii instalate"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Niciun serviciu selectat"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nu a fost furnizată o descriere."</string>
@@ -2779,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blochează conexiunile fără VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Este necesară conexiunea VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nesecurizată. Treci la o rețea VPN IKEv2."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nu s-a putut activa rețeaua VPN neacceptată."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selectează un profil VPN pentru a rămâne conectat întotdeauna la rețea. Traficul de rețea va fi permis numai atunci când ești conectat(ă) la această rețea VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Niciuna"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Activarea permanentă a rețelei VPN necesită o adresă IP, atât pentru server, cât și pentru DNS."</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 2d3b1f2..419ad85 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Настройка личного пространства…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Когда личное пространство заблокировано, информация об использовании приложений в нем скрыта"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Открывайте личное пространство из списка приложений"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Некоторые системные приложения уже установлены в личном пространстве"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Не удалось создать личное пространство"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Повторите попытку или вернитесь позже."</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Повторить"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Использовать блокировку экрана"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Выбрать другой способ"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Готово!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Открывайте личное пространство из списка приложений"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Готово"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Чтобы перейти в личное пространство, прокрутите экран вниз."</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Войдите в аккаунт, чтобы настроить личное пространство"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Не отключаться от сети Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Больше не показывать"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Подключить"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi включен"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Устройство подключено к сети <xliff:g id="NETWORK_NAME">%1$s</xliff:g>."</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Подключение к сети \"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\"…"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Подключение…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Не удалось подключиться к сети."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Вы не находитесь в зоне действия сети."</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Когда адаптивный спящий режим включен, устройство определяет через фронтальную камеру, смотрит ли кто-то на экран. Эта функция работает на уровне устройства – изображения не сохраняются и не отправляются в Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Включить адаптивный спящий режим"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Не отключать экран, пока вы смотрите на него"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камера заблокирована"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Для работы функции \"Распознавание лиц\" нужно разблокировать камеру."</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Чтобы адаптивный спящий режим работал, камера должна быть разблокирована"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Точка доступа и режим модема позволяют подключать другие устройства к интернету через Wi-Fi или мобильную сеть. Приложения также могут создавать точки доступа, чтобы вы могли делиться контентом с устройствами поблизости."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Справка"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Мобильная сеть"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Тарифный план"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Приложение для SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Приложение для обмена SMS"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Использовать <xliff:g id="NEW_APP">%1$s</xliff:g> вместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> для обмена SMS-сообщениями?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Сменить ассистента Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Использовать приложение \"<xliff:g id="NEW_APP">%1$s</xliff:g>\" вместо приложения \"<xliff:g id="CURRENT_APP">%2$s</xliff:g>\" для управления сетевыми подключениями?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Использовать приложение \"<xliff:g id="NEW_APP">%s</xliff:g>\" для управления сетевыми подключениями?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Неизвестный оператор связи"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"У оператора \"<xliff:g id="OPERATOR">%1$s</xliff:g>\" нет веб-сайта для синхронизации"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Вставьте SIM-карту и перезагрузите устройство"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Подключитесь к Интернету"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Последние запросы местоположения"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Геоданные для рабочего профиля"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Доступ приложений к геоданным"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Сервис может отслеживать ваше взаимодействие с приложениями и датчиками устройства и давать приложениям команды от вашего имени"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Разрешить"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Отклонить"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Отключить"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Оставить"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Отключить <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Службы не установлены"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Сервис не выбран"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Нет описания"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Блокировать соединения без VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Использовать сеть VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Эта сеть VPN не защищена. Перейдите на IKEv2 VPN."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Не удалось подключиться к неподдерживаемой VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Выберите постоянную сеть VPN: трафик будет разрешен только при подключении к этой сети."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Не использовать"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Укажите IP-адрес для сервера и DNS."</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 48f1a40..f1438d0 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"පෞද්ගලික අවකාශය පිහිටුවමින්…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"පෞද්ගලික අවකාශ යෙදුම් සඳහා භාවිත තොරතුරු එය අගුළු දමා ඇති විට සඟවා ඇත"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ඔබේ යෙදුම් ලැයිස්තුවෙන් පෞද්ගලික අවකාශය වෙත ප්රවේශ වන්න"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"සමහර පද්ධති යෙදුම් දැනටමත් පෞද්ගලික අවකාශයේ ස්ථාපනය කර ඇත"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"පෞද්ගලික අවකාශය පිහිටුවීමට නොහැකි විය"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"දැන් නැවත උත්සාහ කරන්න, නැතහොත් පසුව ආපසු එන්න"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"නැවත උත්සාහ කරන්න"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"තිර අගුල භාවිතා කරන්න"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"නව අගුලක් තෝරා ගන්න"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"සියල්ල සූදානම්!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"ඔබට ඔබේ යෙදුම් ලැයිස්තුවෙන් පෞද්ගලික අවකාශය වෙත ප්රවේශ විය හැක"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"නිමයි"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"පෞද්ගලික අවකාශයට ප්රවේශ වීමට පහළට අනුචලනය කරන්න"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"පෞද්ගලික ඉඩ සැකසීමට පුරන්න"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi හි සිටින්න"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"කවදාවත් නැවත වරක් නොපෙන්වන්න"</string>
<string name="wifi_connect" msgid="2481467560349907397">"සම්බන්ධ කරන්න"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi සක්රීයයි"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> වෙත සබැඳිණි"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> වෙත සබැඳෙමින්"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"සබැඳෙමින්…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"ජාලය වෙත සම්බන්ධ වීම අසාර්ථක විය"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ජාලය පරාසය තුළ නැත"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"යමෙක් තිරය දිහා බලන්නේ ද යන්න බැලීමට තිර අවධානය ඉදිරිපස කැමරාව භාවිතා කරයි. එය උපාංගයෙහි ක්රියා කරන අතර, රූප කිසි විටෙක ගබඩා කිරීම හෝ Google වෙත යැවීම සිදු නොවේ."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"තිර අවධානය ක්රියාත්මක කරන්න"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"එය දෙස බලන විට තිරය ක්රියාත්මකව තබා ගන්න"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"කැමරාව අගුලු දමා ඇත"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"මුහුණ හඳුනා ගැනීම සඳහා කැමරාව අගුලු හැරිය යුතුය"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"තිර අවධානය සඳහා කැමරාව අගුලු හැරිය යුතුය"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ඔබේ Wi-Fi හෝ ජංගම දත්ත සම්බන්ධතාව හරහා අනෙක් උපාංගවලට අන්තර්ජාලය ලබා දීමට හොට්ස්පොට් සහ ටෙදරින් භාවිත කරන්න. අවට උපාංග සමඟ අන්තර්ගත බෙදා ගැනීමට හොට්ස්පොට් එකක් තැනීමට ද යෙදුම්වලට හැකිය."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"උදවු"</string>
<string name="network_settings_title" msgid="4663717899931613176">"ජංගම ජාලය"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ජංගම සැලසුම"</string>
<string name="sms_application_title" msgid="4791107002724108809">"කෙටි පණිවුඩ යෙදුම"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS යෙදුම වෙනස් කරන්නද?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ඔබගේ SMS යෙදුම ලෙස <xliff:g id="CURRENT_APP">%2$s</xliff:g> වෙනුවට <xliff:g id="NEW_APP">%1$s</xliff:g> භාවිතා කරන්නද?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi සහායක වෙනස් කරන්නද?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ඔබගේ ජාල සම්බන්ධතා කළමනාකරණය කිරීමට <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="680685773455072321">"ඔබගේ ජාල සම්බන්ධතා කළමනාකරණය කිරීමට <xliff:g id="NEW_APP">%s</xliff:g> භාවිතා කරන්නද?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"නොදන්නා SIM වාහකයෙක්"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> සතුව දන්නා ප්රතිපාදන වෙබ් අඩවි නොමැත"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"කරුණාකර SIM කාඩ් පතක් ඇතුල් කරන්න සහ නැවත අරඹන්න"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"කරුණාකර අන්තර්ජාලය වෙත සම්බන්ධ වන්න"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"මෑත කාලීන ස්ථාන ඉල්ලීම්"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"කාර්යාල පැතිකඩ සඳහා ස්ථානය"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"යෙදුම් ස්ථාන අවසර"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"මෙයට යෙදුමක් හෝ දෘඪාංග සංවේදකයක් සමඟ ඔබේ අන්තර්ක්රියා හඹා යෑමට, සහ ඔබ වෙනුවෙන් යෙදුම් සමඟ අන්තර්ක්රියාවේ යෙදීමට හැකි ය."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ඉඩ දෙන්න"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ප්රතික්ෂේප කරන්න"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ක්රියාවිරහිත කරන්න"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ක්රියාත්මකව තබන්න"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ක්රියාවිරහිත කරන්න ද?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"සේවා ස්ථාපනය කර නැත"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"සේවාවක් තෝරාගෙන නැත"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"කිසිඳු විස්තරයක් සපයා නොමැත."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN නොමැතිව සම්බන්ධතා අවහිර කිරීම"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN සම්බන්ධතාව අවශ්යද?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"සුරක්ෂිත නැත. IKEv2 VPN කට යාවත්කාලීන කරන්න"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"සහාය නොදක්වන VPN ආරම්භ කිරීමට අසමත් විය."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"සෑම විටම සම්බන්ධ වී පැවතීමට VPN පැතිකඩක් තෝරන්න. මෙම VPN හා සම්බන්ධවී ඇතිවිට පමණක් ජාල ගමනාගමනයට අවසර ඇත."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"කිසිවක් නැත"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"සේවාදායක සහ DNS සඳහා සෑම විටම සක්රිය VPN සඳහා IP ලිපිනයක් අවශ්ය වේ."</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 66304ac..95de368 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Nastavuje sa súkromný priestor…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Keď je súkromný priestor uzamknutý, informácie o využití jeho aplikácií sú skryté"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Prístup k súkromnému priestoru v zozname aplikácií"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"V súkromnom priestore sú už nainštalované niektoré systémové aplikácie"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Súkromný priestor sa nepodarilo nastaviť"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Skúste to znova alebo sa vráťte neskôr"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Skúsiť znova"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Používať zámku obrazovky"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Vybrať novú zámku"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Hotovo!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Prístup k súkromnému priestoru získate v zozname aplikácií"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Hotovo"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Posunutím nadol získajte prístup k súkromnému priestoru"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Prihláste sa a nastavte súkromný priestor"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Ďalej používať Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Viac už nezobrazovať"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Pripojiť"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Pripojenie Wi‑Fi je zapnuté"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Pripojené k sieti <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Pripája sa k sieti <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Pripája sa…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Nepodarilo sa pripojiť k sieti"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Sieť nie je v dosahu"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Vnímavá obrazovka pomocou prednej kamery zistí, či sa používateľ pozerá na obrazovku. Spúšťa sa v zariadení a snímky sa nikdy neukladajú ani neodosielajú Googlu."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Zapnúť vnímavú obrazovku"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Nechať obrazovku zapnutú, keď ju pozeráte"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera je uzamknutá"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Ak chcete používať rozpoznávanie tváre, kamera musí byť odomknutá"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Vnímavá obrazovka vyžaduje odomknutý fotoaparát"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Hotspot a tethering umožňujú poskytovať internet iným zariadeniam prostredníctvom vášho pripojenia Wi‑Fi alebo mobilného dátového pripojenia. Aplikácie tiež môžu vytvárať hostpot na zdieľanie obsahu so zariadeniami v okolí."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Pomocník"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilná sieť"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilný plán"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplikácia na SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Zmeniť aplikáciu na SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Použiť aplikáciu <xliff:g id="NEW_APP">%1$s</xliff:g> namiesto <xliff:g id="CURRENT_APP">%2$s</xliff:g> ako aplikáciu na SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Zmeniť aplikáciu asistent pripojenia Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Chcete spravovať sieťové pripojenia pomocou aplikácie <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Neznámy operátor SIM karty"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nemá žiadne provízne webové stránky"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Vložte SIM kartu a reštartujte"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Pripojte sa k internetu"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedávne žiadosti o polohu"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Poloha pre pracovný profil"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Prístup aplikácií k polohe"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Môže sledovať vaše interakcie s aplikáciou alebo hardvérovým senzorom a interagovať s aplikáciami za vás."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Povoliť"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zamietnuť"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vypnúť"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Nevypínať"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Chcete službu <xliff:g id="SERVICE">%1$s</xliff:g> vypnúť?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nie sú nainštalované žiadne služby"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nie je vybratá žiadna služba"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"K dispozícii nie je žiadny popis."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokovať pripojenia bez siete VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Vyžadovať pripojenie VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nezabezpečené. Aktualizujte na IKEv2 VPN."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nepodporovanú sieť VPN sa nepodarilo spustiť."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Vyberte profil VPN, ku ktorému chcete mať vždy pripojenie. Sieťová premávka bude povolená len v prípade pripojenia k tejto sieti VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Žiadna"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Vždy zapnutá sieť VPN vyžaduje adresu IP pre server aj DNS."</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index dc5c3a2..5a6c942 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Nastavljanje zasebnega prostora …"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Podatki o uporabi aplikacij v zasebnem prostoru so skriti, kadar je zasebni prostor zaklenjen"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Dostop do zasebnega prostora s seznama aplikacij"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Nekatere sistemske aplikacije so že nameščene v zasebnem prostoru"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Zasebnega prostora ni bilo mogoče nastaviti"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Poskusite znova zdaj ali se vrnite pozneje"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Poskusi znova"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Uporabi način za odklepanje zaslona"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Izberite nov način zaklepanja"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Končano"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Do zasebnega prostora lahko dostopate s seznama aplikacij"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Končano"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Za dostop do zasebnega prostora se pomaknite navzdol"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Če želite nastaviti zasebni prostor, se prijavite"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Ostani v omrežju Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Tega ne prikaži nikoli več"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Vzpostavi povezavo"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi je vklopljen"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Povezano z omrežjem <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Vzpostavljanje povezave z omrežjem <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Povezovanje …"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Vzpostavljanje povezave z omrežjem ni uspelo"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Omrežje ni v dosegu"</string>
@@ -1131,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Funkcija zaznavanja pogleda na zaslon uporablja sprednji fotoaparat, da zazna, ali kdo gleda zaslon. Funkcija se izvaja v napravi, slike pa se v nobenem primeru ne shranijo in ne pošiljajo Googlu."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Vklop zaznavanja pogleda na zaslon"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ko gledate zaslon, naj ostane vklopljen"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Daljša časovna omejitev za zaslon poveča porabo energije baterije."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Fotoaparat je zaklenjen."</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Za zaznavanje obraza mora biti fotoaparat odklenjen."</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Za zaznavanje pogleda na zaslon mora biti fotoaparat odklenjen."</string>
@@ -1471,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Uporabite dostopno točko in povezavo z internetom prek mobilnega telefona, da zagotovite internet drugim napravam prek Wi-Fi-ja ali mobilne podatkovne povezave. Tudi aplikacije lahko ustvarijo dostopno točko za deljenje vsebin z napravami v bližini."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Pomoč"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilno omrežje"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Naročniški paket za mobilno napravo"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplikacija za SMS-je"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Ali želite zamenjati aplikacijo za sporočila SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Ali želite za SMS-e namesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> uporabljati aplikacijo <xliff:g id="NEW_APP">%1$s</xliff:g>?"</string>
@@ -1479,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Želite zamenjati Pomočnika za Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Ž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="680685773455072321">"Želite za upravljanje omrežnih povezav uporabljati aplikacijo <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Neznan ponudnik kartice SIM"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nima znanega splet. mesta za omogočanje uporabe"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Vstavite SIM in znova zaženite"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Vzpostavite internetno povezavo"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedavne zahteve za lokacijo"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokacija za delovni profil"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Dovoljenja aplikacij za lokacijo"</string>
@@ -2247,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Spremlja lahko vaše interakcije z aplikacijo ali tipalom strojne opreme ter komunicira z aplikacijami v vašem imenu."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dovoli"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zavrni"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Izklopi"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Pusti vklopljeno"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Želite izklopiti storitev za dostopnost »<xliff:g id="SERVICE">%1$s</xliff:g>«?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nameščena ni nobena storitev"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nobena storitev ni izbrana"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ni opisa."</string>
@@ -2779,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blokiraj povezave brez omrežja VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Ali zahtevate povezavo VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ni varno. Posodobite na VPN različice IKEv2."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nepodprtega omrežja VPN ni bilo mogoče zagnati."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Izberite profil za navidezno zasebno omrežje (VPN), s katerim boste vedno povezani. Omrežni promet bo dovoljen samo prek tega omrežja VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Brez"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Za stalno vklopljeno navidezno zasebno omrežje je potreben naslov IP tako za strežnik kot za DNS."</string>
@@ -4827,7 +4815,7 @@
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Znova zaženi pozneje"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorski zvok"</string>
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvok iz združljivih predstavnosti dobi prostornejšo razsežnost."</string>
- <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Spremljanje premikov glave"</string>
+ <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Spremljanje položaja glave"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvok se med premikanjem glave spreminja za naravnejšo izkušnjo."</string>
<string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sinhroniziranje dovoljenj iz telefona"</string>
<string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Uri dodelite enaka dovoljenja za aplikacije, kot ste jih dodelili v tem telefonu"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index f745a45..65e1bf7 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"\"Hapësira private\" po konfigurohet…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Informacionet e përdorimit për aplikacionet e \"Hapësirës private\" janë të fshehura kur ajo është e kyçur"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Qasu te \"Hapësira private\" nga lista jote e aplikacioneve"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Disa aplikacione të sistemit janë instaluar tashmë në \"Hapësirën private\""</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"\"Hapësira private\" nuk mund të konfigurohej"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Provo përsëri tani ose kthehu më vonë"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Provo përsëri"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Përdor kyçjen e ekranit"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Zgjidh një kyçje të re"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Plotësisht gati!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Mund të qasesh te \"Hapësira private\" nga lista jote e aplikacioneve"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"U krye"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Lëviz poshtë për t\'u qasur te \"Hapësira private\""</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Identifikohu për të konfiguruar \"Hapësirën private\""</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Qëndro në Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Kurrë mos e trego përsëri"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Lidh"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi është i aktivizuar"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Lidhur me <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Po lidhet me <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Po lidhet…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Lidhja me rrjetin dështoi"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rrjeti nuk është brenda rrezes"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\"Vëmendja ndaj ekranit\" përdor kamerën e përparme për të parë nëse dikush po shikon tek ekrani. Funksionon në pajisje dhe imazhet nuk ruhen apo dërgohen asnjëherë te Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aktivizo vëmendjen ndaj ekranit"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mbaje ekranin aktiv kur e shikon"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera është e kyçur"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera duhet të jetë e shkyçur për \"Zbulimin e fytyrës\""</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera duhet të jetë e shkyçur për \"Vëmendjen ndaj ekranit\""</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Përdor zonën e qasjes dhe ndarjen e internetit për t\'u ofruar internet pajisjeve të tjera nëpërmjet lidhjes sate Wi-Fi ose të të dhënave celulare. Aplikacionet mund të krijojnë po ashtu një zonë qasjeje të internetit për të ndarë përmbajtje me pajisjet në afërsi."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Ndihma"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Rrjeti celular"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plani celular"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Aplikacioni për SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Të ndryshohet aplikacioni i SMS-ve?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Të përdoret <xliff:g id="NEW_APP">%1$s</xliff:g> në vend të <xliff:g id="CURRENT_APP">%2$s</xliff:g> si aplikacioni për SMS?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Të ndryshohet ndihmësi i Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"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="6650422533065760963">"Operatori i kartës SIM është i panjohur"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nuk ka faqe të sigurt e të njohur"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Vendos kartën SIM dhe rinise"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Lidhu me internetin"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Kërkesat e vendndodhjeve të fundit"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Vend. për profilin e punës"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Lejet e vendndodhjes për aplikacionet"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Mund të monitorojë ndërveprimet me një aplikacion ose një sensor hardueri dhe të ndërveprojë me aplikacionet në emrin tënd."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Lejo"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuzo"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Çaktivizo"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Mbaj aktiv"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Të çaktivizohet <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nuk është instaluar asnjë shërbim"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nuk është zgjedhur asnjë shërbim"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nuk është dhënë asnjë përshkrim."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blloko lidhjet pa rrjetin VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Të kërkohet lidhja e VPN-së?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Jo e sigurt. Përditësoje me një VPN IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nisja e VPN-së së pambështetur dështoi."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Zgjidh një profil VPN-je për të qëndruar gjithmonë i lidhur. Trafiku i rrjetit do të lejohet vetëm kur të lidhet me këtë VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Asnjë"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN-ja gjithnjë e aktivizuar kërkon një adresë IP-je për serverin dhe DNS-në."</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 072dc26..3e4649e 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Остани на Wi‑Fi-ју"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Не приказуј поново"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Повежи"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"WiFi је укључен"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Повезано је на мрежу <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Повезујете се на <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Повезује се…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Повезивање са мрежом није успело"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Мрежа није у домету"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Пажња екрана користи предњу камеру да би утврдила да ли неко гледа у екран. Ради на уређају, а слике се никада не чувају нити шаљу Google-у."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Укључите пажњу екрана"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Спречите искључивање екрана док га гледате"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камера је закључана"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Камера мора да буде откључана ради препознавања лица"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Камера мора да буде откључана ради пажње екрана"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Користите хотспот и привезивање да бисте омогућили интернет на другим уређајима помоћу WiFi везе или везе за пренос података преко мобилног оператера. Апликације могу и да праве хотспотове за дељење садржаја са уређајима у близини."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Помоћ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Мобилна мрежа"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Тарифни пакет за мобилни уређај"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Апликација за SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Желите ли да промените апликацију за SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Желите ли да користите <xliff:g id="NEW_APP">%1$s</xliff:g> уместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> као апликацију за SMS?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Желите да промените Wi‑Fi помоћник?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%1$s</xliff:g> уместо апликације <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управљање мрежним везама?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%s</xliff:g> за управљање мрежним везама?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Непознати SIM оператер"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> нема познат веб-сајт за доделу"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Убаците SIM картицу и рестартујте"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Повежите се са интернетом"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Недавни захтеви за локацију"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Локација за пословни профил"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Дозволе за локацију апликације"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Може да прати интеракције са апликацијом или сензором хардвера и користи апликације уместо вас."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволи"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Одбиј"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Искључи"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Настави"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Желите да искључите услугу <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ниједна услуга није инсталирана"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ниједна услуга није изабрана"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Није наведен опис."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Блокирај везе без VPN-а"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Треба вам VPN веза?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Није безбедно. Ажурирајте на IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Покретање неподржаног VPN-а није успело."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Изаберите VPN профил са којим ћете увек бити повезани. Мрежни садржај ће бити дозвољен само када сте повезани са овим VPN-ом."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ниједан"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Стално укључен VPN захтева IP адресу за сервер и DNS."</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 915cf97..ea568e6 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Fortsätt på Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Visa aldrig igen"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Anslut"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi har aktiverats"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Ansluten till <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Ansluter till <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Ansluter …"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Det gick inte att ansluta till nätverket."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Nätverket är inte inom räckvidd"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Den främre kameran används i Blickavkänning för att avgöra om någon tittar på skärmen. Funktionen finns på enheten och bilderna varken lagras eller skickas till Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aktivera blickavkänning"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Låt skärmen vara på så länge du tittar på den"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kameran är låst"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kameran måste låsas upp för ansiktsigenkänning"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kameran måste låsas upp för blickavkänning"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Med hjälp av surfzoner och internetdelning kan andra enheter anslutas till internet via den här enhetens wifi- eller mobildataanslutning. Surfzoner kan även skapas i appar för att dela innehåll med enheter i närheten."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Hjälp"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobilnätverk"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilplan"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Sms-app"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vill du byta sms-app?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Vill du använda <xliff:g id="NEW_APP">%1$s</xliff:g> som sms-app i stället för <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vill du byta wifi-assistentapp?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Vill du hantera nätverksanslutningarna med <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Okänd SIM-operatör"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> har ingen känd administrationswebbplats"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"För in SIM-kortet och starta om"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Anslut till internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nya platsförfrågningar"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Plats för jobbprofil"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Appars platsbehörighet"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan registrera din användning av en app eller maskinvarusensor och interagera med appar åt dig."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillåt"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Neka"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Inaktivera"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Behåll på"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Vill du inaktivera <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Inga tjänster är installerade"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ingen tjänst har valts"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ingen beskrivning har angetts."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Blockera anslutningar utan VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Ska VPN krävas vid anslutning?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Inte säker. Uppdatera till ett VPN med IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Detta VPN stöds inte och gick inte att starta."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Välj en VPN-profil som du alltid vill vara ansluten till. Nätverkstrafik tillåts bara när du är ansluten till detta VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Inga"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Funktionen Always-on VPN kräver en IP-adress för både server och DNS."</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 9510c76..8c1305a 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Endelea kutumia Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Usionyeshe tena"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Unganisha"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Umewasha Wi‑Fi"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Imeunganishwa kwenye <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Inaunganisha kwenye <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Inaunganisha…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Imeshindwa kuunganisha kwa mtandao"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mtandao hauko karibu"</string>
@@ -1129,6 +1127,7 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Kipengele cha utashi wa skrini hutumia kamera ya mbele ili kuona ikiwa kuna mtu anayeangalia skrini. Kipengele hiki hufanya kazi kwenye kifaa na picha hazihifadhiwi wala kutumwa kwa Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Washa utashi wa skrini"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Skrini isizime wakati ninaiangalia"</string>
+ <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Muda mrefu wa skrini kujizima hutumia nishati zaidi ya betri."</string>
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera imefungwa"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Unahitaji kufungua Kamera ili utumie kipengele cha Utambuzi wa Nyuso"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Unahitaji kufungua Kamera ili utumie kipengele cha Utashi wa Skrini"</string>
@@ -1469,7 +1468,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Tumia mtandaopepe na huduma ya kusambaza mtandao ili uvisambazie vifaa vingine intaneti kupitia muunganisho wa data wa simu au Wi-Fi. Programu pia zinaweza kuunda mtandaopepe ili kushiriki maudhui na vifaa vilivyo karibu."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Usaidizi"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mtandao wa simu"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mpango wa vifaa vya mkononi"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Programu ya SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Ungependa kubadilisha programu ya SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Ungependa kutumia <xliff:g id="NEW_APP">%1$s</xliff:g> badala ya <xliff:g id="CURRENT_APP">%2$s</xliff:g> kama programu yako ya SMS?"</string>
@@ -1477,10 +1475,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Ungependa kubadili kisaidizi cha Wi-Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Ungependa kutumia <xliff:g id="NEW_APP">%s</xliff:g> kusimamia miunganisho yako ya mtandao?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Mtoa huduma wa SIM asiyejulikana"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> hana tovuti ya utoaji inayojulikana"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Tafadhali weka SIM kadi kisha uzime na uwashe"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Tafadhali unganisha kwenye Intaneti"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Maombi ya hivi karibuni ya kutambua mahali"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Wasifu wa kazi kutambua mahali"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Ruhusa za programu kufikia mahali"</string>
@@ -2245,12 +2239,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Inaweza kufuatilia mawasiliano yako na programu au kitambuzi cha maunzi na kuwasiliana na programu zingine kwa niaba yako."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ruhusu"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Kataa"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Zima"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Usizime"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Ungependa kuzima <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Hakuna huduma zilizosanidiwa"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Hakuna huduma iliyochaguliwa"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Hakuna maelezo yaliyotolewa."</string>
@@ -2777,8 +2768,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Zuia miunganisho isiyotumia VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Je, unahitaji muunganisho wa VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Si salama. Sasisha utumie VPN toleo la IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Imeshindwa kuwasha VPN isiyotumika."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Chagua wasifu wa VPN ambapo utakuwa umeunganishwa kila mara. Shughuli kwenye mtandao zitaruhusiwa tu wakati umeunganishwa kwenye VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Hamna"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Kila mara VPN iliyowashwa inahitaji anwani ya Itifaki Wavuti za seva na DNS."</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index b4b34a8..d7746da 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"தனிப்பட்ட சேமிப்பிடத்தை அமைக்கிறது…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"தனிப்பட்ட சேமிப்பிடம் பூட்டப்பட்டிருக்கும்போது அதிலுள்ள ஆப்ஸின் உபயோகத் தகவல்கள் மறைக்கப்படும்"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ஆப்ஸ் பட்டியலில் உள்ள தனிப்பட்ட சேமிப்பிடத்தை அணுகுதல்"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"தனிப்பட்ட சேமிப்பிடத்தில் சில சிஸ்டம் ஆப்ஸ் ஏற்கெனவே நிறுவப்பட்டுள்ளன"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"தனிப்பட்ட சேமிப்பிடத்தை அமைக்க முடியவில்லை"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"இப்போது முயலவும் அல்லது பிறகு வந்து பார்க்கவும்"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"மீண்டும் முயல்க"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"திரைப் பூட்டைப் பயன்படுத்து"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"புதிய பூட்டைத் தேர்ந்தெடு"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"எல்லாம் தயார்!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"உங்கள் ஆப்ஸ் பட்டியலில் இருந்து தனிப்பட்ட சேமிப்பிடத்தை அணுகலாம்"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"முடிந்தது"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"தனிப்பட்ட சேமிப்பிடத்தை அணுக கீழே செல்லவும்"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"தனிப்பட்ட சேமிப்பிடத்தை அமைக்க உள்நுழையுங்கள்"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"வைஃபையில் தொடர்க"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"இனி ஒருபோதும் காட்டாதே"</string>
<string name="wifi_connect" msgid="2481467560349907397">"இணை"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"வைஃபை ஆன் செய்யப்பட்டது"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> உடன் இணைக்கப்பட்டது"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> உடன் இணைக்கிறது"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"இணைக்கிறது…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"நெட்வொர்க்குடன் இணைக்க முடியவில்லை"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"நெட்வொர்க் தொடர்பு எல்லையில் இல்லை"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"முன்பக்கக் கேமராவைப் பயன்படுத்தி திரையை யாராவது பார்க்கிறார்களா என்பதை \'திரை மீது கவனம்\' எனும் அம்சம் அறியும். இது சாதன அளவிலேயே இயங்கும், படங்கள் சேமிக்கப்படவோ Googleளுக்கு அனுப்பப்படவோ மாட்டாது."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"\'திரை மீது கவனத்தை\' ஆன் செய்தல்"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"பார்க்கும்போது திரையை ஆனில் வைத்திருக்கும்"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"கேமரா பூட்டப்பட்டுள்ளது"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"முகம் கண்டறிதலைப் பயன்படுத்த, கேமரா அன்லாக் செய்யப்பட வேண்டும்"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"திரை மீது கவனம் அம்சத்தைப் பயன்படுத்த, கேமரா அன்லாக் செய்யப்பட வேண்டும்"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"உங்கள் வைஃபை அல்லது மொபைல் டேட்டா மூலம் வேறு சாதனங்களுக்கு இணைய இணைப்பை வழங்க ஹாட்ஸ்பாட்டையும் டெதரிங் இணைப்பு முறையையும் பயன்படுத்தும். மேலும், அருகிலுள்ள சாதனங்களுடன் உள்ளடக்கத்தைப் பகிர, தனியாக ஒரு ஹாட்ஸ்பாட்டையும் ஆப்ஸ் உருவாக்கலாம்."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"உதவி"</string>
<string name="network_settings_title" msgid="4663717899931613176">"நெட்வொர்க்"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"மொபைல் திட்டம்"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ஆப்ஸை மாற்றவா?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g>க்குப் பதிலாக <xliff:g id="NEW_APP">%1$s</xliff:g>ஐ உங்கள் SMS பயன்பாடாகப் பயன்படுத்தவா?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"வைஃபை அசிஸ்டண்டை மாற்றவா?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"நெட்வொர்க் இணைப்புகளை நிர்வகிக்க, <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="680685773455072321">"நெட்வொர்க் இணைப்புகளை நிர்வகிக்க <xliff:g id="NEW_APP">%s</xliff:g>ஐப் பயன்படுத்தவா?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"அறியப்படாத சிம் மொபைல் நிறுவனம்"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> இடம், தெரிந்த புரொவிஷனிங் இணைதளம் இல்லை"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"சிம் கார்டைச் செருகி மீண்டும் தொடங்கவும்"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"இணையத்துடன் இணைக்கவும்"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"சமீபத்திய இருப்பிடக் கோரிக்கைகள்"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"பணி சுயவிவரத்திற்கான இருப்பிடம்"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ஆப்ஸுக்கான இருப்பிட அனுமதிகள்"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ஏதேனும் ஆப்ஸ் அல்லது வன்பொருள் சென்சாரின் உதவியுடன் உரையாடல்களைக் கண்காணித்து உங்கள் சார்பாக ஆப்ஸுடன் உரையாட இச்சேவையால் இயலும்."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"அனுமதி"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"நிராகரி"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"முடக்கு"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"இயக்கு"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ஐ முடக்கவா?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"சேவைகள் எதுவும் நிறுவப்படவில்லை"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"சேவை எதையும் தேர்ந்தெடுக்கவில்லை"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"விளக்கம் எதுவும் வழங்கப்படவில்லை."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN இல்லாமல் இணைப்புகளைத் தடு"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN இணைப்பு வேண்டுமா?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"பாதுகாப்பற்றது. IKEv2 VPNனுக்குப் புதுப்பிக்கவும்"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"ஆதரிக்கப்படாத VPNனைத் தொடங்க முடியவில்லை."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"எப்போதும் இணைந்திருக்க வேண்டிய VPN சுயவிவரத்தைத் தேர்ந்தெடுக்கவும். இந்த VPN உடன் இணைந்திருக்கும்போது மட்டுமே நெட்வொர்க்கின் டிராஃபிக் அனுமதிக்கப்படும்."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"ஏதுமில்லை"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"எப்போதும் இயக்கத்தில் இருக்கும் VPN க்கு சேவையகங்கள் மற்றும் DNS ஆகியவற்றின் IP முகவரி தேவைப்படுகிறது."</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 23f9c09..84e5d5f 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"ప్రైవేట్ స్పేస్ సెటప్ ప్రోగ్రెస్లో ఉంది…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ప్రైవేట్ స్పేస్ లాక్ అయ్యి ఉన్నప్పుడు, అందులోని యాప్లకు సంబంధించిన వినియోగ సమాచారం దాచబడి ఉంటుంది"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"మీ యాప్ల లిస్ట్ నుండి ప్రైవేట్ స్పేస్ను యాక్సెస్ చేయండి"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"కొన్ని సిస్టమ్ యాప్లు ఇప్పటికే ప్రైవేట్ స్పేస్లో ఇన్స్టాల్ చేయబడ్డాయి"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"ప్రైవేట్ స్పేస్ను సెటప్ చేయడం సాధ్యపడలేదు"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ఇప్పుడే మళ్లీ ట్రై చేయండి, లేదా తర్వాత తిరిగి రండి"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"మళ్లీ ట్రై చేయండి"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"స్క్రీన్ లాక్ను ఉపయోగించండి"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"కొత్త లాక్ను ఎంచుకోండి"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"సెటప్ పూర్తయింది!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"మీ యాప్ల లిస్ట్ నుండి ప్రైవేట్ స్పేస్ను మీరు యాక్సెస్ చేయవచ్చు"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"పూర్తయింది"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"ప్రైవేట్ స్పేస్ యాక్సెస్ చేయడానికి కిందికి స్క్రోల్ చేయండి"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"ప్రైవేట్ స్పేస్ను సెటప్ చేయడానికి సైన్ ఇన్ చేయండి"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"అలాగే Wi‑Fiలో ఉంచు"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"మళ్లీ ఎప్పటికి చూపవద్దు"</string>
<string name="wifi_connect" msgid="2481467560349907397">"కనెక్ట్ చేయండి"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi ఆన్ చేయబడింది"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>కు కనెక్ట్ అయ్యింది"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>కు కనెక్ట్ చేయబడుతోంది"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"కనెక్ట్ అవుతోంది…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"నెట్వర్క్కు కనెక్ట్ చేయడం విఫలమైంది"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"నెట్వర్క్ పరిధిలో లేదు"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"స్క్రీన్ వైపు ఎవరైనా చూస్తున్నారా అన్నది తెలుసుకునేందుకు స్క్రీన్ అటెన్షన్, ముందు వైపు ఉన్న కెమెరాను ఉపయోగిస్తుంది. ఇది పరికరంలో పని చేస్తుంది. ఇమేజ్లు స్టోర్ చేయబడవు లేదా Googleకు పంపబడవు."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"స్క్రీన్ అటెన్షన్ను ఆన్ చేయి"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"స్క్రీన్ను చూస్తున్నప్పుడు దానిని ఆన్లో ఉంచగలుగుతారు"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"కెమెరా లాక్ చేయబడింది"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ముఖ గుర్తింపు కోసం కెమెరాను అన్లాక్ చేయాలి"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"స్క్రీన్ అటెన్షన్ కోసం కెమెరాను అన్లాక్ చేయాలి"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"మీ Wi‑Fi లేదా మొబైల్ డేటా కనెక్షన్ ద్వారా ఇతర పరికరాలకు ఇంటర్నెట్ను అందించడం కోసం హాట్స్పాట్ అలాగే టెథరింగ్ను ఉపయోగించండి. సమీప పరికరాలతో కంటెంట్ను షేర్ చేయడం కోసం యాప్లు కూడా హాట్స్పాట్ను క్రియేట్ చేయవచ్చు."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"సహాయం"</string>
<string name="network_settings_title" msgid="4663717899931613176">"మొబైల్ నెట్వర్క్"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"మొబైల్ ప్లాన్"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS యాప్"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS యాప్ను మార్చాలా?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"మీ SMS అనువర్తనంగా <xliff:g id="CURRENT_APP">%2$s</xliff:g>కి బదులుగా <xliff:g id="NEW_APP">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi అసిస్టెంట్ను మార్చాలా?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"మీ నెట్వర్క్ కనెక్షన్లను మేనేజ్ చేయడానికి <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="680685773455072321">"మీ నెట్వర్క్ కనెక్షన్లను మేనేజ్ చేయడానికి <xliff:g id="NEW_APP">%s</xliff:g>ని ఉపయోగించాలా?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"సిమ్ ఆపరేటర్ తెలియదు"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>కి తెలిసిన కేటాయింపు వెబ్సైట్ ఏదీ లేదు"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"దయచేసి సిమ్ కార్డును చొప్పించి, పునఃప్రారంభించండి"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"దయచేసి ఇంటర్నెట్కు కనెక్ట్ చేయండి"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"లొకేషన్ను ఇటీవల రిక్వెస్ట్ చేసినవి"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ఆఫీస్ ప్రొఫైల్ కోసం లొకేషన్"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"యాప్ లొకేషన్ అనుమతులు"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"మీరు ఒక యాప్తో చేసే ఇంటరాక్షన్లను లేదా హార్డ్వేర్ సెన్సార్ను ట్రాక్ చేస్తూ మీ తరఫున యాప్లతో ఇంటరాక్ట్ చేయగలదు."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"అనుమతించండి"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"వద్దు"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ఆఫ్ చేయండి"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ఆన్లోనే"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g>ను ఆఫ్ చేయాలా?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"సేవలు ఇన్స్టాల్ చేయబడలేదు"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"ఏ సేవను ఎంచుకోలేదు"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"వివరణ ఏదీ అందించబడలేదు."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN లేని కనెక్షన్లను బ్లాక్ చేయండి"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN కనెక్షన్ అవసరమా?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"సురక్షితం కాదు. IKEv2 VPNకు అప్డేట్ చేయండి"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"సపోర్ట్ చేయని VPNను ప్రారంభించడం సాధ్యపడలేదు."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"ఎల్లప్పుడూ కనెక్ట్ చేయబడి ఉండటానికి VPN ప్రొఫైల్ను ఎంచుకోండి. ఈ VPNకి కనెక్ట్ అయి ఉన్నప్పుడు మాత్రమే నెట్వర్క్ ట్రాఫిక్ అనుమతించబడుతుంది."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"ఏదీ వద్దు"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ఎల్లప్పుడూ-ఆన్లో ఉండే VPNకి సర్వర్ మరియు DNS రెండింటి IP అడ్రస్ అవసరం."</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 7dbdd30..75a39bc 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"กำลังตั้งค่าพื้นที่ส่วนตัว…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ข้อมูลการใช้งานสำหรับแอปพื้นที่ส่วนตัวจะถูกซ่อนเมื่อมีการล็อกไว้"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"เข้าถึงพื้นที่ส่วนตัวจากรายชื่อแอป"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"แอปของระบบบางแอปได้รับการติดตั้งในพื้นที่ส่วนตัวอยู่แล้ว"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"ตั้งค่าพื้นที่ส่วนตัวไม่ได้"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ลองอีกครั้งตอนนี้ หรือกลับมาภายหลัง"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"ลองอีกครั้ง"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ใช้การล็อกหน้าจอ"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"เลือกการล็อกใหม่"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"เรียบร้อยแล้ว"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"คุณเข้าถึงพื้นที่ส่วนตัวได้จากรายชื่อแอป"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"เสร็จสิ้น"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"เลื่อนลงเพื่อเข้าถึงพื้นที่ส่วนตัว"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"ลงชื่อเข้าใช้เพื่อตั้งค่าพื้นที่ส่วนตัว"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"ใช้ Wi-Fi ต่อไป"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"ไม่ต้องแสดงอีก"</string>
<string name="wifi_connect" msgid="2481467560349907397">"เชื่อมต่อ"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"เปิด Wi-Fi แล้ว"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"เชื่อมต่อกับ <xliff:g id="NETWORK_NAME">%1$s</xliff:g> แล้ว"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"กำลังเชื่อมต่อกับ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"กำลังเชื่อมต่อ…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"ไม่สามารถเชื่อมต่อกับเครือข่าย"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"เครือข่ายไม่อยู่ในพื้นที่ให้บริการ"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"การจดจ่อที่หน้าจอใช้กล้องหน้าเพื่อดูว่ามีใครกำลังดูหน้าจออยู่ไหม ฟีเจอร์นี้จะทำงานในอุปกรณ์และจะไม่มีการเก็บหรือส่งรูปภาพไปให้ Google"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"เปิดฟีเจอร์การจดจ่อที่หน้าจอ"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"เปิดหน้าจอค้างไว้เมื่อดูหน้าจออยู่"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"กล้องถ่ายรูปล็อกอยู่"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ต้องปลดล็อกกล้องถ่ายรูปเพื่อใช้การตรวจจับใบหน้า"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ต้องปลดล็อกกล้องถ่ายรูปเพื่อใช้ฟีเจอร์การจดจ่อที่หน้าจอ"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ใช้ฮอตสปอตและการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือเพื่อให้อุปกรณ์อื่นๆ ใช้อินเทอร์เน็ตจาก Wi-Fi หรือการเชื่อมต่ออินเทอร์เน็ตมือถือของคุณได้ แอปยังสร้างฮอตสปอตเพื่อแชร์เนื้อหากับอุปกรณ์ที่อยู่ใกล้เคียงได้อีกด้วย"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"ความช่วยเหลือ"</string>
<string name="network_settings_title" msgid="4663717899931613176">"เครือข่ายมือถือ"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"แพ็กเกจอินเทอร์เน็ต"</string>
<string name="sms_application_title" msgid="4791107002724108809">"แอป SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"เปลี่ยนแอป SMS ไหม"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ใช้ <xliff:g id="NEW_APP">%1$s</xliff:g> เป็นแอป SMS ของคุณแทน <xliff:g id="CURRENT_APP">%2$s</xliff:g> ไหม"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"เปลี่ยน Wi‑Fi Assistant ใช่ไหม"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ต้องการใช้ <xliff:g id="NEW_APP">%1$s</xliff:g> แทน <xliff:g id="CURRENT_APP">%2$s</xliff:g> ในการจัดการการเชื่อมต่อเครือข่ายใช่ไหม"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ใช้ <xliff:g id="NEW_APP">%s</xliff:g> ในการจัดการการเชื่อมต่อเครือข่ายใช่ไหม"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ไม่รู้จักผู้ให้บริการซิม"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> ไม่มีเว็บไซต์การจัดสรรที่รู้จัก"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"โปรดใส่ซิมการ์ดและรีสตาร์ท"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"โปรดเชื่อมต่ออินเทอร์เน็ต"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"คำขอตำแหน่งล่าสุด"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ตำแหน่งสำหรับโปรไฟล์งาน"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"สิทธิ์เข้าถึงตำแหน่งสำหรับแอป"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"การควบคุมนี้สามารถติดตามการโต้ตอบของคุณกับแอปหรือกับเซ็นเซอร์ของฮาร์ดแวร์ และโต้ตอบกับแอปต่างๆ แทนคุณ"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"อนุญาต"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ปฏิเสธ"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ปิด"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"เปิดไว้"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"ปิด <xliff:g id="SERVICE">%1$s</xliff:g> ใช่ไหม"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"ไม่ได้ติดตั้งบริการใดไว้"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"ไม่ได้เลือกบริการ"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"ไม่มีคำอธิบาย"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"บล็อกการเชื่อมต่อโดยไม่ใช้ VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"ต้องใช้การเชื่อมต่อ VPN ไหม"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ไม่ปลอดภัย อัปเดตเป็น IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"เริ่มใช้ VPN ที่ไม่รองรับไม่สำเร็จ"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"เลือกโปรไฟล์ VPN เพื่อคงการเชื่อมต่อเอาไว้ตลอดเวลา การเข้าใช้เครือข่ายจะได้รับอนุญาตเฉพาะเมื่อมีการเชื่อมต่อกับ VPN นี้เท่านั้น"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"ไม่มี"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN แบบเปิดตลอดเวลาจำเป็นต้องใช้ที่อยู่ IP ทั้งสำหรับเซิร์ฟเวอร์และ DNS"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 9812f5a..5bbf2e3 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Manatili sa Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Huwag kailanman ipakitang muli"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Kumonekta"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Na-on ang Wi‑Fi"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Nakakonekta sa <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Kumokonekta sa <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Kumokonekta…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Nabigong kumonekta sa network."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Walang signal ang network"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Ginagamit ng atensyon sa screen ang camera sa harap para makita kung may taong tumitingin sa screen. Gumagana ito sa device, at hindi kailanman sino-store o ipinapadala sa Google ang mga larawan."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"I-on ang atensyon sa screen"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Panatilihing naka-on ang screen habang tinitingnan mo ito"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Naka-lock ang camera"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Dapat ma-unlock ang camera para sa Pag-detect ng Mukha"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Naka-unlock dapat ang Camera para sa Atensyon sa Screen"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Gamitin ang hotspot at pag-tether para magbigay ng internet sa iba pang device sa pamamagitan ng iyong koneksyon sa Wi‑Fi o mobile data. Puwede ring gumawa ng hotspot ang mga app para magbahagi ng content sa mga kalapit na device."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Tulong"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Palitan ang SMS app?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Gamitin ang <xliff:g id="NEW_APP">%1$s</xliff:g> sa halip na ang <xliff:g id="CURRENT_APP">%2$s</xliff:g> bilang iyong SMS app?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Baguhin ang Wi‑Fi assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"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="6650422533065760963">"Hindi kilalang SIM operator"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Walang kilalang provisioning website ang <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Mangyaring magpasok ng SIM card at mag-restart"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Mangyaring kumonekta sa Internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Kamakailang hiling sa lokasyon"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokayon ng profile sa trabaho"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Pahintulot sa lokasyon ng app"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Masusubaybayan nito ang iyong mga pakikipag-ugayan sa isang app o hardware na sensor, at puwede itong makipag-ugnayan sa mga app para sa iyo."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Payagan"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tanggihan"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"I-off"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"I-on lang"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"I-off ang <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Walang mga serbisyong naka-install"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Walang serbisyong napili"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Walang ibinigay na paglalarawan."</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"I-block ang mga koneksyong walang VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Gawing mandatoryo ang pagkonekta sa VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Hindi secure. Mag-update sa IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Hindi nasimulan ang hindi sinusuportahang VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Pumili ng VPN profile kung saan palaging mananatiling nakakonekta. Papayagan lang ang trapiko ng network kapag nakakonekta sa VPN na ito."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Wala"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Nangangailangan ang Always-on VPN ng IP address para sa parehong server at DNS."</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index cc23f68..89e0379 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Gizli alan kuruluyor…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Kilitli olduğunda gizli alan uygulamalarıyla ilgili kullanım bilgileri gizlenir"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Gizli alana, uygulama listenizden erişin"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Bazı sistem uygulamaları, gizli alana daha önce yüklenmiştir"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Gizli alan kurulamadı"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Şimdi tekrar deneyin veya daha sonra tekrar gelin"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Tekrar Dene"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Ekran kilidi kullan"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Yeni kilit seç"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"İşlem tamam!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Gizli alana, uygulama listenizden erişebilirsiniz"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Bitti"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Gizli alana erişmek için aşağı kaydırın"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Gizli alan kurmak için oturum açın"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Kablosuz bağlantıda kal"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Bir daha gösterme"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Bağlan"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Kablosuz bağlantı açık"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ağına bağlandı"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> cihazına bağlanıyor"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Bağlanıyor…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Ağa bağlanılamadı"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ağ, kapsama alanında değil"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Ekrana dikkat verme seçeneğinde, ekrana bakan birisi olup olmadığını görmek için ön kamera kullanılır. Tüm işlemler cihazda gerçekleşir ve görüntüler hiçbir zaman saklanmaz ya da Google\'a gönderilmez."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ekrana dikkat vermeyi açın"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Baktığınız sürece ekranı açık tutar"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera kilitli"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Yüz Algılama için kamera kilidi açık olmalıdır"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Ekrana Dikkat Verme özelliği için kamera açık olmalıdır"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Kablosuz veya mobil veri bağlantınızdan başka cihazlara internet bağlantısı sağlamak için hotspot ve tethering\'i kullanın. Yakınlardaki cihazlarla içerik paylaşmak için uygulamalar da hotspot oluşturabilir."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Yardım"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobil ağ"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobil plan"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS uygulaması"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS uygulaması değiştirilsin mi?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="NEW_APP">%1$s</xliff:g>, SMS uygulamanız olarak <xliff:g id="CURRENT_APP">%2$s</xliff:g> yerine kullanılsın mı?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Kablosuz bağlantı yardımcısı değiştirilsin mi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"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="6650422533065760963">"Bilinmeyen SIM operatörü"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<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="3639245241283948038">"Lütfen SIM kartı takın ve yeniden başlatın"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Lütfen İnternet\'e bağlanın"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Son konum istekleri"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"İş profili konumu"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Uygulama konum izinleri"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Bir uygulama veya donanım sensörüyle etkileşimlerinizi takip edebilir ve sizin adınıza uygulamalarla etkileşimde bulunabilir."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"İzin ver"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Reddet"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Kapat"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Açık bırak"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> kapatılsın mı?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Hiçbir hizmet yüklenmedi"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Hizmet seçilmedi"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Hiçbir açıklama sağlanmadı."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN\'si olmayan bağlantıları engelle"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN bağlantısı gerekiyor mu?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Güvenli değil. IKEv2 VPN\'e güncelle"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Desteklenmeyen VPN başlatılamadı."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Her zaman bağlı kalacak bir VPN profili seçin. Ağ trafiğine yalnızca bu VPN\'ye bağlanıldığında izin verilir."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Yok"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Her zaman açık VPN seçeneğinde hem sunucu hem de DNS için bir IP adresi gerekir."</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index c53e553..7771654 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Налаштування приватного простору…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Коли приватний простір заблоковано, дані про використання його додатків приховуються"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Доступ до приватного простору зі списку додатків"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Деякі системні додатки вже встановлено в приватному просторі"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Не вдалося налаштувати приватний простір"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Повторіть спробу зараз або поверніться пізніше"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Повторити"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Використовувати спосіб розблокування екрана"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Вибрати новий спосіб розблокування"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Готово."</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Ви можете отримати доступ до приватного простору зі списку додатків"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Готово"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Прокрутіть униз, щоб увійти в приватний простір"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Щоб налаштувати приватний простір, виконайте вхід"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Використовувати Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Більше не показувати"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Підключити"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi увімкнено"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Підключено до мережі \"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\""</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Підключення до мережі \"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\""</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Підключення…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Помилка під’єднання до мережі."</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ви знаходитеся поза зоною покриття мережі"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Адаптивний сплячий режим за допомогою передньої камери визначає, чи дивиться користувач на екран. Ця функція працює лише на пристрої, не зберігає зображень і не надсилає їх у Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Увімкнути адаптивний сплячий режим"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Не вимикати екран, поки ви на нього дивитеся"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камеру заблоковано"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Щоб розпізнавання облич працювало, потрібно розблокувати камеру"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Для роботи адаптивного сплячого режиму потрібно розблокувати камеру"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Надавайте іншим пристроям доступ до Інтернету через Wi-Fi або мобільне передавання даних за допомогою точки доступу й режиму модема. Додатки також можуть створювати точку доступу, щоб ділитися контентом із пристроями поруч."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Довідка"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Мобільна мережа"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Тарифний план"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Додаток для SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Змінити додаток для SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Використовувати для SMS додаток <xliff:g id="NEW_APP">%1$s</xliff:g> замість <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Змінити Wi‑Fi Assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Використовувати <xliff:g id="NEW_APP">%1$s</xliff:g> замість додатка <xliff:g id="CURRENT_APP">%2$s</xliff:g> для керування з’єднаннями?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Використовувати <xliff:g id="NEW_APP">%s</xliff:g> для керування з’єднаннями?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Невідомий оператор SIM-карти"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Оператор <xliff:g id="OPERATOR">%1$s</xliff:g> не має веб-сайту про надання послуг"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Вставте SIM-карту та перезапустіть"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Під’єднайтеся до Інтернету"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Останні запити на геодані"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Геодані для робочого профілю"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Доступ додатків до геоданих"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Цей сервіс може відстежувати вашу взаємодію з додатком чи апаратним датчиком, а також взаємодіяти з додатками від вашого імені."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволити"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Заборонити"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Вимкнути"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Продовжити"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Вимкнути сервіс <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Не встановлено жодної служби"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Службу не вибрано"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Немає опису."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Блокувати підключення не через VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Вимагати з’єднання VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ненадійна мережа. Перейдіть на VPN-підключення за протоколом IKEv2."</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Не вдалося запустити непідтримувану мережу VPN."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Виберіть профіль мережі VPN і не від’єднуйтесь від неї. Мережевий трафік дозволятиметься лише за умови під’єднання до цієї VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Не використовувати"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Для постійної мережі VPN потрібна IP-адреса як для сервера, так і для DNS."</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 56a776e..ebd81a3 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"نجی اسپیس سیٹ اپ کی جا رہی ہے…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"نجی اسپیس ایپس کے استعمال کی معلومات اس وقت پوشیدہ ہوتی ہے جب یہ مقفل ہوتی ہے"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"اپنی ایپس کی فہرست سے نجی اسپیس تک رسائی حاصل کریں"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"کچھ سسٹم ایپس پہلے سے نجی اسپیس میں انسٹال ہیں"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"نجی اسپیس سیٹ اپ نہیں کی جا سکی"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ابھی دوبارہ کوشش کریں یا بعد میں واپس آئیں"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"دوبارہ کوشش کریں"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"اسکرین لاک استعمال کریں"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"نیا قفل منتخب کریں"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"سب کچھ تیار ہے!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"آپ اپنی ایپس کی فہرست سے نجی اسپیس تک رسائی حاصل کر سکتے ہیں"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"ہو گیا"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"نجی اسپیس تک رسائی حاصل کرنے کے لیے نیچے اسکرول کریں"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"نجی اسپیس سیٹ اپ کرنے کے لیے سائن ان کریں"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi پر رہیں"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"دوبارہ کبھی نہ دکھائیں"</string>
<string name="wifi_connect" msgid="2481467560349907397">"منسلک کریں"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi کو آن کر دیا گیا"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> سے منسلک کردہ"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> سے منسلک ہو رہا ہے"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"منسلک ہو رہا ہے…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"نیٹ ورک سے مربوط ہونے میں ناکام رہا"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"نیٹ ورک رینج میں نہیں ہے"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"اسکرین پر توجہ کی خصوصیت یہ دیکھنے کے لیے سامنے والے کیمرے کا استعمال کرتی ہے کہ آیا کوئی اسکرین کو دیکھ تو نہیں رہا ہے۔ یہ آلہ پر کام کرتی ہے اور تصاویر کبھی بھی اسٹور نہیں کی جاتی ہیں اور نہ ہی Google کو بھیجی جاتی ہیں۔"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"اسکرین پر توجہ آن کریں"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"دیکھتے وقت اسکرین کو آن رکھیں"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"کیمرا مقفل ہے"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"چہرے کی شناخت کیلئے کیمرا غیر مقفل ہونا ضروری ہے"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"اسکرین پر توجہ کے لیے کیمرا کو غیر مقفل کرنا ضروری ہے"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"اپنے Wi‑Fi یا موبائل ڈیٹا کنکشن کے ذریعے دیگر آلات کو انٹرنیٹ فراہم کرنے کے لیے ہاٹ اسپاٹ اور ٹیدرنگ کا استعمال کریں۔ ایپس بھی قریبی آلات کے ساتھ مواد کا اشتراک کرنے کے لیے ایک ہاٹ اسپاٹ تخلیق کر سکتی ہیں۔"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"مدد"</string>
<string name="network_settings_title" msgid="4663717899931613176">"موبائل نیٹ ورک"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"موبائل پلان"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS ایپ"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ایپ تبدیل کریں؟"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"اپنے SMS ایپ بطور <xliff:g id="CURRENT_APP">%2$s</xliff:g> کے بجائے <xliff:g id="NEW_APP">%1$s</xliff:g> کو استعمال کریں؟"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi اسسٹنٹ تبدیل کریں؟"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"اپنے نیٹ ورک کنکشنز کا نظم کرنے کیلئے <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="680685773455072321">"اپنے نیٹ ورک کنکشنز کا نظم کرنے کیلئے <xliff:g id="NEW_APP">%s</xliff:g> کا استعمال کریں؟"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"نامعلوم SIM آپریٹر"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> کے پاس کوئی معلوم پرووژننگ ویب سائٹ نہیں ہے"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"براہ کرم SIM کارڈ داخل کرکے دوبارہ شروع کریں"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"براہ کرم انٹرنیٹ سے مربوط کریں"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"حالیہ مقام کی درخواستیں"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"دفتری پروفائل کیلئے مقام"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"ایپ کے لیے مقام کی اجازتیں"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"یہ کسی ایپ یا ہارڈویئر سینسر کے ساتھ آپ کے تعاملات کو ٹریک کر سکتا ہے، اور آپ کی طرف سے ایپس کے ساتھ تعامل کر سکتا ہے۔"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"اجازت دیں"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"مسترد کریں"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"آف کریں"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"آن رکھیں"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> آف کریں؟"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"کوئی سروسز انسٹال کردہ نہيں ہیں"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"کوئی سروس منتخب نہیں ہے"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"کوئی تفصیل فراہم نہيں کی گئی۔"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"بنا VPN والے کنکشنز کو مسدود کریں"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN کنکشن درکار ہے؟"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"محفوظ نہیں ہے۔ IKEv2 VPN میں اپ ڈیٹ کریں"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"غیر تعاون یافتہ VPN شروع کرنے میں ناکام۔"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"ہمیشہ مربوط رہنے کیلئے ایک VPN پروفائل منتخب کریں۔ صرف اس VPN سے مربوط ہونے پر ہی نیٹ ورک ٹریفک کی اجازت ہو گی۔"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"کوئی نہیں"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ہمیشہ آن VPN کو سرور اور DNS دونوں کیلئے ایک IP پتہ کی ضرورت ہے۔"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index d84f76f..86dc68e 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Maxfiy joy sozlanmoqda…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Maxfiy joy ilovalari uchun foydalanish axboroti qulflanganida berkitiladi"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Ilovalar roʻyxatidan shaxsiy joy oching"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Ayrim tizim ilovalari oldindan Maxfiy joyga oʻrnatilgan"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Maxfiy joy sozlanmadi"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Hozir qaytadan urining yoki keyinroq qaytadan keling"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Qayta urinish"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Ekran qulfi"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Yangi qulf tanlash"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Hammasi tayyor!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Maxfiy joyga ilovalar roʻyxatidan kirish mumkin"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Tayyor"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Maxfiy joyga kirish uchun pastga aylantiring"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Maxfiy joyni sozlash uchun hisobingizga kiring"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi tarmog‘ida qoling"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Boshqa ko‘rsatilmasin"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Ulanish"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi yoqildi"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Bunga ulandi: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Ulanmoqda: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Ulanmoqda…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Tarmoqqa ulanmadi"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Tarmoq xizmat doirasidan tashqarida"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Moslashuvchan kutish rejimi kimdir old kameraga qaraganini aniqlashda ishlatiladi U faqat qurilmada ishlatiladi va rasmlar hech qachon Google serverlariga yuborilmaydi."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Moslashuvchan kutish rejimini yoqish"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ekranga qarab turilganida u yoniq turadi"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera qulflangan"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Yuzni aniqlash funksiyasi ishlashi uchun kamera qulfdan chiqarilishi kerak"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Moslashuvchan kutish rejimi uchun kamera qulflanmagan boʻlishi kerak"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Boshqa qurilmalarga Wi-Fi yoki mobil internet orqali internetni tarqatish uchun hotspot va modem rejimlaridan foydalaning. Ilovalar ham yaqin-atrofdagi qurilmalarga kontent ulashish uchun hotspot yarata oladi."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Yordam"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mobil tarmoq"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Uyali tarmoq paketlari"</string>
<string name="sms_application_title" msgid="4791107002724108809">"SMS ilovasi"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ilovasi almashtirilsinmi?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"SMS xabarlar uchun <xliff:g id="CURRENT_APP">%2$s</xliff:g> emas, <xliff:g id="NEW_APP">%1$s</xliff:g> ishlatilsinmi?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi yordamchisi o‘zgartirilsinmi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Tarmoq ulanishlarini boshqarish uchun “<xliff:g id="NEW_APP">%s</xliff:g>” ilovasidan foydalanilsinmi?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Noma’lum uyali aloqa operatori"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> operatorida sinxronlash uchun sayti yo‘q"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIM karta solib, qurilmani qayta ishga tushiring"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Iltimos, Internetga ulaning"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Joylashuv axboroti so‘rovlari"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ish profili uchun geolokatsiya"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Ilovalar uchun joylashuv ruxsati"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ilova yoki qurilma sensori bilan munosabatlaringizni kuzatishi hamda sizning nomingizdan ilovalar bilan ishlashi mumkin."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ruxsat"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rad etish"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Faolsizlantirish"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Kerak emas"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> faolsizlantirilsinmi?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Hech qanday xizmat o‘rnatilmagan"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Hech qanday xizmat tanlanmagan"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Hech qanday tavsif berilmagan."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"VPN tarmoqsiz ulanishlarni bloklash"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN aloqasi talab qilinsinmi?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Xavfsiz emas. IKEv2 VPN tarmoqqa yangilang"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Mos kelmaydigan VPN ishga tushmadi."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Doimiy VPN tarmog‘ini tanlang: faqat ushbu tarmoqqa ulanganda trafik sarflanishiga ruxsat beriladi."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ishlatilmasin"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Server va DNS uchun IP manzilini ko‘rsating."</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index f8e0574..54aba1f 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Đang thiết lập Không gian riêng tư…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Thông tin về mức độ sử dụng của các ứng dụng trong Không gian riêng tư sẽ ẩn khi tính năng này đang khoá"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Truy cập Không gian riêng tư từ danh sách ứng dụng"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Một số ứng dụng hệ thống đã được cài đặt trong Không gian riêng tư"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Không thiết lập được Không gian riêng tư"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Thử lại ngay bây giờ, hoặc để khi khác."</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Thử lại"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Dùng phương thức khoá màn hình"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Chọn phương thức khoá mới"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Đã hoàn tất!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Bạn có thể truy cập vào Không gian riêng tư từ danh sách ứng dụng của mình"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Xong"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Di chuyển xuống để truy cập Không gian riêng tư"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Đăng nhập để thiết lập Không gian riêng tư"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Luôn sử dụng Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Không bao giờ hiển thị lại"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Kết nối"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Đã bật Wi-Fi"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Đã kết nối với <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Đang kết nối với <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Đang kết nối…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Không thể kết nối với mạng"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Đang nằm ngoài vùng phủ sóng của mạng"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Tính năng phát hiện ánh mắt sử dụng máy ảnh trước để xem liệu có ai đang nhìn vào màn hình hay không. Tính năng này hoạt động trên thiết bị nên sẽ không bao giờ lưu trữ hoặc gửi hình ảnh cho Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Bật tính năng phát hiện ánh mắt"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Giữ màn hình luôn bật khi bạn nhìn vào"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Máy ảnh bị khóa"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Bạn phải mở khóa máy ảnh để sử dụng tính năng Phát hiện khuôn mặt"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Bạn phải mở khóa máy ảnh để dùng tính năng Phát hiện ánh mắt"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Dùng tính năng điểm phát sóng và chia sẻ Internet để cho phép các thiết bị khác kết nối với Internet thông qua dữ liệu di động hoặc Wi-Fi của bạn. Các ứng dụng cũng có thể tạo điểm phát sóng để chia sẻ nội dung với thiết bị ở gần."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Trợ giúp"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Mạng di động"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Gói dịch vụ di động"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Ứng dụng SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Thay đổi ứng dụng SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Sử dụng <xliff:g id="NEW_APP">%1$s</xliff:g> thay vì <xliff:g id="CURRENT_APP">%2$s</xliff:g> làm ứng dụng SMS của bạn?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Thay đổi trình hỗ trợ Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"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="6650422533065760963">"Nhà cung cấp dịch vụ SIM không xác định"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<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="3639245241283948038">"Vui lòng lắp thẻ SIM và khởi động lại"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Vui lòng kết nối internet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Các yêu cầu gần đây về vị trí"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Vị trí của hồ sơ công việc"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Quyền truy cập thông tin vị trí cho ứng dụng"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Dịch vụ này có thể theo dõi các hoạt động tương tác của bạn với một ứng dụng hoặc bộ cảm biến phần cứng, cũng như có thể thay mặt bạn tương tác với các ứng dụng."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Cho phép"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Từ chối"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Tắt"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Tiếp tục"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Tắt <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Chưa có dịch vụ nào được cài đặt"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Không có dịch vụ nào được chọn"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Không có mô tả nào được cung cấp."</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Chặn các đường kết nối không qua VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Yêu cầu kết nối VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Không an toàn. Hãy cập nhật lên VPN IKEv2"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Không khởi động được VPN không được hỗ trợ"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Chọn một cấu hình VPN để luôn giữ kết nối. Lưu lượng truy cập mạng sẽ chỉ được cho phép khi kết nối với VPN này."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Không có"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN luôn bật yêu cầu có địa chỉ IP cho cả máy chủ và DNS."</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 51679dd..780b50a 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"设置私密空间…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"私密空间应用锁定后,其使用情况信息处于隐藏状态"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"从应用列表访问私密空间"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"某些系统应用已安装在私密空间中"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"无法设置私密空间"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"立即重试,或稍后重试"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"重试"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"使用屏锁"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"选择新的锁定方式"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"一切就绪!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"您可以从应用列表访问私密空间"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"完成"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"向下滚动,访问私密空间"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"登录账号才能设置私密空间"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"让 WLAN 保持开启状态"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"不再显示"</string>
<string name="wifi_connect" msgid="2481467560349907397">"连接"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"WLAN 已开启"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"已连接到“<xliff:g id="NETWORK_NAME">%1$s</xliff:g>”"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"正在连接到“<xliff:g id="NETWORK_NAME">%1$s</xliff:g>”"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"正在连接…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"无法连接网络"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"网络不在范围内"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"屏幕感知功能会通过前置摄像头来确定是否有人正在看屏幕。这个功能只会在设备上运行,系统绝对不会存储图片或将图片发送给 Google。"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"开启屏幕感知功能"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"直视屏幕时让屏幕保持开启"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"相机已锁定"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"必须解锁相机才能使用人脸检测功能"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"必须解锁相机才能使用屏幕感知功能"</string>
@@ -1471,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"使用热点和网络共享功能,让其他设备能通过您的 WLAN 或移动数据网络连接到互联网。应用还可以通过创建热点,与附近的设备共享内容。"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"帮助"</string>
<string name="network_settings_title" msgid="4663717899931613176">"移动网络"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"手机套餐"</string>
<string name="sms_application_title" msgid="4791107002724108809">"短信应用"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"要更改短信应用吗?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"要使用“<xliff:g id="NEW_APP">%1$s</xliff:g>”取代“<xliff:g id="CURRENT_APP">%2$s</xliff:g>”作为您的短信应用吗?"</string>
@@ -1479,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"要更改WLAN助手吗?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"不再使用<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="680685773455072321">"要使用<xliff:g id="NEW_APP">%s</xliff:g>管理您的网络连接吗?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"未知的SIM卡运营商"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>没有任何已知的配置网站"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"请插入SIM卡,然后重新启动"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"请连接到互联网"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"近期位置信息请求"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"工作资料位置信息"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"应用位置信息权限"</string>
@@ -2247,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"此功能可以跟踪您与应用或硬件传感器的互动,并代表您与应用互动。"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允许"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒绝"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"关闭"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"保持开启状态"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"要关闭“<xliff:g id="SERVICE">%1$s</xliff:g>”吗?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"未安装任何服务"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"未选择任何服务"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"没有提供说明。"</string>
@@ -2779,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"屏蔽未使用 VPN 的所有连接"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"需要连接 VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"不安全。请更新为 IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"未能启动不支持的 VPN。"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"选择要始终保持连接的VPN配置文件。只有在连接到此VPN之后才可以使用网络。"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"无"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"始终开启的 VPN 需要服务器和 DNS 的 IP 地址。"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 2e28789..bc57822 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -580,7 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"正在設定「私人空間」…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"「私人空間」處於鎖定狀態時,系統會隱藏當中的應用程式使用情況資料"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"從應用程式清單存取「私人空間」"</string>
- <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"部分系統應用程式已安裝在私人空間中"</string>
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"部分系統應用程式已在「私人空間」中安裝"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"無法設定「私人空間」"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"請立即重試,或稍後再返回查看"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"再試一次"</string>
@@ -589,7 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"使用螢幕鎖定方式"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"選擇新的鎖定設定"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"大功告成!"</string>
- <string name="privatespace_access_text" msgid="1253541577173303723">"你可以從應用程式清單存取私人空間"</string>
+ <string name="privatespace_access_text" msgid="1253541577173303723">"你可以從應用程式清單存取「私人空間」"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"完成"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"向下捲動即可存取「私人空間」"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"登入即可設定「私人空間」"</string>
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"繼續使用 Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"不要再顯示"</string>
<string name="wifi_connect" msgid="2481467560349907397">"連線"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"已開啟 Wi-Fi"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"已連線至「<xliff:g id="NETWORK_NAME">%1$s</xliff:g>」"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"正在連接至「<xliff:g id="NETWORK_NAME">%1$s</xliff:g>」"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"連接中…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"無法連接網絡"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"網絡不在覆蓋範圍內"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"「螢幕感知」功能利用前置鏡頭偵測使用者是否看著螢幕。此功能只會在裝置上運作,圖片亦不會被儲存或傳送至 Google。"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"開啟「保持螢幕亮起」"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"看著螢幕時讓螢幕保持開啟"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"「相機」已鎖定"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"必須解鎖相機才能使用「面孔偵測」功能"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"必須解鎖相機才能使用「保持螢幕亮起」功能"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"使用熱點和網絡共享功能,讓其他裝置透過 Wi‑Fi 或流動數據連接到互聯網。應用程式亦可以建立熱點,與附近的裝置分享內容。"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"說明"</string>
<string name="network_settings_title" msgid="4663717899931613176">"流動網絡"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"流動數據計劃"</string>
<string name="sms_application_title" msgid="4791107002724108809">"短訊應用程式"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"變更短訊應用程式?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"將 <xliff:g id="NEW_APP">%1$s</xliff:g> 設為你的短訊應用程式,而不使用 <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"變更 Wi‑Fi Assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"使用「<xliff:g id="NEW_APP">%1$s</xliff:g>」(取代「<xliff:g id="CURRENT_APP">%2$s</xliff:g>」) 管理你的網絡連線?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"使用「<xliff:g id="NEW_APP">%s</xliff:g>」管理你的網絡連線?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"未知的 SIM 流動網絡供應商"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> 沒有已知的佈建網站"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"請插入 SIM 卡,並重新啟動裝置"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"請連接互聯網"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"最近的位置資訊要求"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"工作設定檔的位置"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"應用程式位置權限"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"這項功能會追蹤你與應用程式或硬件感應器的互動,並代表你直接與應用程式互動。"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允許"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒絕"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"關閉"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"保持開啟"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"要停用「<xliff:g id="SERVICE">%1$s</xliff:g>」嗎?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"未安裝任何服務"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"未選取任何服務"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"未提供說明。"</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"封鎖沒有使用 VPN 的所有連線"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"需要 VPN 連線嗎?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"此 VPN 不安全,請更新至 IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"無法啟動不支援的 VPN。"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"選取要永久保持連線的 VPN 設定檔。只在連線至這個 VPN 時才允許網絡流量。"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"無"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"永久連線的 VPN 需要同時具備伺服器和 DNS 的 IP 位址。"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 3c6f2c0..d79f2a2 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -46,7 +46,7 @@
<string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"裝置摺疊時開啟封面螢幕"</string>
<string name="selective_stay_awake_title" msgid="7887645333447645168">"僅限遊戲、影片等等"</string>
<string name="selective_stay_awake_summary" msgid="9055967322921984543">"如果應用程式不讓螢幕進入閒置狀態,封面螢幕就會開啟"</string>
- <string name="sleep_on_fold_title" msgid="7626123024330501411">"從未"</string>
+ <string name="sleep_on_fold_title" msgid="7626123024330501411">"永不"</string>
<string name="sleep_on_fold_summary" msgid="7737992842459588846">"裝置摺疊時鎖定封面螢幕"</string>
<string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"使用自動旋轉"</string>
<string name="smart_rotate_text_headline" msgid="5878008933992951904">"臉部偵測技術會使用前置鏡頭提高「自動旋轉」功能的準確度。系統不會儲存相關圖像,也不會將這類圖像傳送給 Google。"</string>
@@ -951,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"保持開啟 Wi‑Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"不要再顯示"</string>
<string name="wifi_connect" msgid="2481467560349907397">"連線"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi 已開啟"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"已連線到「<xliff:g id="NETWORK_NAME">%1$s</xliff:g>」"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"正在連線到「<xliff:g id="NETWORK_NAME">%1$s</xliff:g>」"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"連線中…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"無法連線至網路"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"不在網路有效範圍內"</string>
@@ -1116,7 +1114,7 @@
<string name="auto_brightness_summary_off" msgid="8077066192887677956">"關閉"</string>
<string name="display_white_balance_title" msgid="2624544323029364713">"螢幕白平衡"</string>
<string name="display_white_balance_summary" msgid="7625456704950209050"></string>
- <string name="fold_lock_behavior_title" msgid="786228803694268449">"在摺疊狀態下繼續使用應用程式"</string>
+ <string name="fold_lock_behavior_title" msgid="786228803694268449">"折疊時繼續使用應用程式"</string>
<string name="peak_refresh_rate_title" msgid="1878771412897140903">"流暢顯示"</string>
<string name="peak_refresh_rate_summary" msgid="3212309985294885790">"自動將某些內容的刷新率調高到 <xliff:g id="ID_1">%1$d</xliff:g> Hz。請注意,開啟這項設定會增加電池用量。"</string>
<string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"強制使用最高重新整理頻率"</string>
@@ -1129,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"螢幕感知功能會使用前置鏡頭判斷是否有人正在看著螢幕。這項功能只會在裝置上執行,系統不會儲存相關圖片或將其傳送給 Google。"</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"開啟螢幕感知功能"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"看著螢幕時讓螢幕保持開啟"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"相機已解鎖"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"必須解鎖相機才能使用臉部偵測功能"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"必須解鎖相機才能使用螢幕感知功能"</string>
@@ -1469,7 +1469,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"使用無線基地台和網路共用功能,讓其他裝置能夠透過你的 Wi-Fi 或行動數據連線連上網際網路。應用程式也可以建立無線基地台,以便與鄰近的裝置分享內容。"</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"說明"</string>
<string name="network_settings_title" msgid="4663717899931613176">"行動網路"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"行動數據傳輸資費方案"</string>
<string name="sms_application_title" msgid="4791107002724108809">"簡訊應用程式"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"變更簡訊應用程式?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"你要改用「<xliff:g id="NEW_APP">%1$s</xliff:g>」而不再使用「<xliff:g id="CURRENT_APP">%2$s</xliff:g>」做為簡訊應用程式嗎?"</string>
@@ -1477,10 +1476,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"變更 Wi‑Fi Assistant?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"改以「<xliff:g id="NEW_APP">%1$s</xliff:g>」取代「<xliff:g id="CURRENT_APP">%2$s</xliff:g>」管理你的網路連線?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"使用「<xliff:g id="NEW_APP">%s</xliff:g>」管理你的網路連線?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"未知的 SIM 卡電信業者"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"「<xliff:g id="OPERATOR">%1$s</xliff:g>」沒有任何已知的佈建網站"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"請插入 SIM 卡,並重新啟動裝置"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"請連線至網際網路"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"最近的定位要求"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"工作資料夾位置資訊"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"應用程式位置存取權"</string>
@@ -2245,12 +2240,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"可追蹤你與應用程式或硬體感應器的互動,並代表你與應用程式進行互動。"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允許"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒絕"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"停用"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"保持啟用"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"要停用「<xliff:g id="SERVICE">%1$s</xliff:g>」嗎?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"未安裝任何服務"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"未選取任何服務"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"未提供說明。"</string>
@@ -2777,8 +2769,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"封鎖沒有 VPN 的連線"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"需要 VPN 連線嗎?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"這個 VPN 不安全,請更新為 IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"無法啟動不支援的 VPN。"</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"選取要永久連線的 VPN 設定檔。只有在連線到這個 VPN 後才能使用網路。"</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"無"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"永久連線的 VPN 需要同時具備伺服器和 DNS 的 IP 位址。"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 6dc3ccb..3bf228c 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -580,8 +580,7 @@
<string name="privatespace_setting_up_text" msgid="8532777749891406509">"Isetha Isikhala Esiyimfihlo…"</string>
<string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Ulwazi lokusetshenziswa lwama-app e-Private Space luyafihlwa uma lukhiyiwe"</string>
<string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Finyelela ku-Private Space ohlwini lwakho lwama-app"</string>
- <!-- no translation found for privatespace_system_apps_installed_title (4782295812052574626) -->
- <skip />
+ <string name="privatespace_system_apps_installed_title" msgid="4782295812052574626">"Amanye ama-app esistimu afakiwe kakade ku-Private Space"</string>
<string name="privatespace_error_screen_title" msgid="8658511165913662275">"Ayikwazanga ukumisa i-Private Space"</string>
<string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Zama futhi manje, noma ubuye kamuva"</string>
<string name="privatespace_tryagain_label" msgid="4091466165724929876">"Zama Futhi"</string>
@@ -590,8 +589,7 @@
<string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Sebenzisa ukukhiya isikrini"</string>
<string name="privatespace_set_lock_label" msgid="6277529807188602545">"Khetha isikhiya esisha"</string>
<string name="privatespace_success_title" msgid="4854425684898602993">"Usulungile!"</string>
- <!-- no translation found for privatespace_access_text (1253541577173303723) -->
- <skip />
+ <string name="privatespace_access_text" msgid="1253541577173303723">"Ungafinyelela i-Private Space kuhlu lwama-app lwakho"</string>
<string name="privatespace_done_label" msgid="5534818213879562387">"Kwenziwe"</string>
<string name="scrolldown_to_access" msgid="5160743933093369151">"Skrolela phansi ukuze ufinyelele Indawo Eyimfihlo"</string>
<string name="privatespace_retry_signin_title" msgid="495054309243289223">"Ngena ngemvume ukuze usethe Isikhala Esigodliwe"</string>
@@ -953,9 +951,7 @@
<string name="lost_internet_access_cancel" msgid="1981171269794585284">"Hlala ku-Wi-Fi"</string>
<string name="lost_internet_access_persist" msgid="6813604557672782197">"Ungaphinde uveze"</string>
<string name="wifi_connect" msgid="2481467560349907397">"Xhuma kwi-inthanethi"</string>
- <string name="wifi_turned_on_message" msgid="8069855406962662881">"I-Wi-Fi ivuliwe"</string>
<string name="wifi_connected_to_message" msgid="8976048616505112896">"Ixhumeke ku-<xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
- <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Ixhuma ku-<xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="wifi_connecting" msgid="7450277833386859724">"Iyaxhuma…"</string>
<string name="wifi_failed_connect_message" msgid="8538000546604347894">"Yehlulekile ukuxhuma kunethiwekhi"</string>
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Inethiwekhi ayikho kubanga"</string>
@@ -1131,6 +1127,8 @@
<string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Ukunaka isikrini kusebenzisa ikhamera engaphambili ukuze kwazi uma umuntu othile abheka isikrini. Kusebenza kudivayisi, futhi izithombe azilokothi zilondolozwe noma zithunyelwe ku-Google."</string>
<string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Vula ukunaka isikrini"</string>
<string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Gcina isikrini sivuliwe lapho usibhekile"</string>
+ <!-- no translation found for power_consumption_footer_summary (4901490700555257237) -->
+ <skip />
<string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Ikhamera ivaliwe"</string>
<string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Ikhamera kumele ivulelwe Ukutholwa Kobuso"</string>
<string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Ikhamera kufanele ivulelwe Ukunaka Kwesikrini"</string>
@@ -1472,7 +1470,6 @@
<string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Sebenzisa i-hotspot nokusebenzisa ifoni njengemodemu ukuze unikeze i-inthanethi kumanye amadivayisi nge-Wi-Fi yakho noma ukuxhumeka kwedatha kweselula. Izinhlelo zokusebenza zingaphinda zidale i-hotspot ukuze zabelane ngokuqukethwe namadivayisi aseduze."</string>
<string name="tethering_help_button_text" msgid="2823655011510912001">"Usizo"</string>
<string name="network_settings_title" msgid="4663717899931613176">"Inethiwekhi yeselula"</string>
- <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Uhlelo lweselula"</string>
<string name="sms_application_title" msgid="4791107002724108809">"Uhlelo lokusebenza lwe-SMS"</string>
<string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Shintsha uhlelo lokusebenza le-SMS?"</string>
<string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Sebenzisa i-<xliff:g id="NEW_APP">%1$s</xliff:g> kunokusebenzisa i-<xliff:g id="CURRENT_APP">%2$s</xliff:g> njengohlelo lwakho lokusebenza le-SMS?"</string>
@@ -1480,10 +1477,6 @@
<string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Shintsha umsizi we-Wi‑Fi?"</string>
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"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="680685773455072321">"Sebenzisa i-<xliff:g id="NEW_APP">%s</xliff:g> ukuze uphathe uxhumo lwakho lenethiwekhi?"</string>
- <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"I-opharetha ye-SIM engaziwa"</string>
- <string name="mobile_no_provisioning_url" msgid="609462719893503773">"I-<xliff:g id="OPERATOR">%1$s</xliff:g> ayinayo iwebhusayithi eyaziwayo enikezayo"</string>
- <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Sicela ufake ikhadi le-SIM bese uqala kabusha"</string>
- <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Sicela uxhume ku-inthanethi"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Izicelo zendawo zakamuva"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Indawo yephrofayela yokusebenza"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Izimvume zendawo ye-app"</string>
@@ -2248,12 +2241,9 @@
<string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ingalandela ukusebenzisana kwakho nohlelo lokusebenza noma inzwa yehadiwe, nokusebenzisana nezinhlelo zokusebenza engxenyeni yakho."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Vumela"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Phika"</string>
- <!-- no translation found for accessibility_dialog_button_stop (7584815613743292151) -->
- <skip />
- <!-- no translation found for accessibility_dialog_button_cancel (8625997437316659966) -->
- <skip />
- <!-- no translation found for disable_service_title (8178020230162342801) -->
- <skip />
+ <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vala"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Qhubeka"</string>
+ <string name="disable_service_title" msgid="8178020230162342801">"Vala i-<xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ayikho isevisi efakiwe"</string>
<string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ayikho isevisi ekhethiwe"</string>
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Akukho ncazelo enikeziwe."</string>
@@ -2780,8 +2770,7 @@
<string name="vpn_require_connection" msgid="1027347404470060998">"Vimbela uxhumo ngaphandle kwe-VPN"</string>
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Kudingeka uxhumo lwe-VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Akuphephile. Buyekezela ku-IKEv2 VPN"</string>
- <!-- no translation found for vpn_start_unsupported (7139925503292269904) -->
- <skip />
+ <string name="vpn_start_unsupported" msgid="7139925503292269904">"Yehlulekile ukuqalisa i-VPN engasekelwa."</string>
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Khetha iphrofayela ye-VPN ukuhlala uxhumekile. I-traffic yenethiwekhi izovunyelwa kuphela uma ixhunyiwe kule-VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Akunalutho"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"I-VPN ehlala ikhanya idinga ikheli le-IP kwisiphakeli ne-DNS."</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9cd57ad..6ccfbb7 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -881,11 +881,11 @@
<!-- Title shown for menu item that launches watch unlock settings. [CHAR LIMIT=40] -->
<string name ="security_settings_activeunlock_preference_title">Watch Unlock</string>
<!-- Introduction shown in face and fingerprint page to introduce the biometric feature. [CHAR LIMIT=NONE]-->
- <string name="biometric_settings_intro_with_activeunlock">When you set up Face Unlock and Fingerprint Unlock, your phone will ask for your fingerprint when you wear a mask or are in a dark area.\n\nYou can unlock with your watch when your face or fingerprint isn\u2019t recognized.</string>
+ <string name="biometric_settings_intro_with_activeunlock">When you set up Face Unlock and Fingerprint Unlock, your phone will ask for your fingerprint when you wear a mask or are in a dark area.\n\nWatch Unlock is another convenient way to unlock your phone, for example, when your fingers are wet or face isn\u2019t recognized.</string>
<!-- Introduction shown in fingerprint page to explain that watch unlock can be used if fingerprint isn't recognized. [CHAR LIMIT=NONE]-->
- <string name="biometric_settings_intro_with_fingerprint">You can unlock with your watch when your fingerprint isn\u2019t recognized.</string>
+ <string name="biometric_settings_intro_with_fingerprint">Watch Unlock is another convenient way to unlock your phone, for example, when your fingerprint isn\u2019t recognized.</string>
<!-- Introduction shown in face page to explain that watch unlock can be used if face isn't recognized. [CHAR LIMIT=NONE]-->
- <string name="biometric_settings_intro_with_face">You can unlock with your watch when your face isn\u2019t recognized.</string>
+ <string name="biometric_settings_intro_with_face">Watch Unlock is another convenient way to unlock your phone, for example, when your face isn\u2019t recognized.</string>
<string name="biometric_settings_use_fingerprint_or_watch_for"> Use fingerprint or watch to</string>
<string name="biometric_settings_use_face_or_watch_for"> Use face or watch to</string>
<string name="biometric_settings_use_face_fingerprint_or_watch_for"> Use face, fingerprint, or watch to</string>
@@ -2308,8 +2308,6 @@
<string name="wifi_hotspot_name_title">Hotspot name</string>
<!-- Label for Wifi hotspot password. -->
<string name="wifi_hotspot_password_title">Hotspot password</string>
- <!-- Label for Wifi hotspot AP Band. -->
- <string name="wifi_hotspot_ap_band_title">AP Band</string>
<!-- Title for the toggle to turn off hotspot automatically [CHAR LIMIT=NONE]-->
<string name="wifi_hotspot_auto_off_title">Turn off hotspot automatically</string>
@@ -2948,9 +2946,9 @@
<string name="imei_multi_sim_primary">IMEI (sim slot <xliff:g id="imei_slot_id_primary">%1$d</xliff:g>) (primary)</string>
<!-- About phone screen, summary of the MAC address [CHAR LIMIT=80] -->
<string name="view_saved_network">To view, choose saved network</string>
- <!-- Do not translate. About phone, status item title -->
+ <!-- About phone, status item title. This translation is for specific language only. Like: fr-CA -->
<string name="status_imei">IMEI</string>
- <!-- Do not translate. About phone, status item title -->
+ <!-- About phone, status item title. This translation is for specific language only. Like: fr-CA -->
<string name="status_imei_sv">IMEI SV</string>
<!-- Do not translate. About phone, status item title -->
<string name="status_iccid">ICCID</string>
@@ -3409,29 +3407,8 @@
<!-- Tethering preference summary when hotspot and tethering are off [CHAR LIMIT=NONE]-->
<string name="tether_preference_summary_off">Off</string>
- <!-- Tethering interface options [CHAR LIMIT=NONE]-->
- <string name="tethering_interface_options">Tethering</string>
-
- <!-- Disable Wifi Hotspot option-->
- <!-- Don't use Wi-Fi hotspot title [CHAR LIMIT=NONE]-->
- <string name="disable_wifi_hotspot_title">Don\u2019t use Wi\u2011Fi hotspot</string>
- <!-- Don't use Wi-Fi hotspot summary when USB tethering is chosen [CHAR LIMIT=NONE]-->
- <string name="disable_wifi_hotspot_when_usb_on">Only share internet via USB</string>
- <!-- Don't use Wi-Fi hotspot summary when Bluetooth tethering is chosen [CHAR LIMIT=NONE]-->
- <string name="disable_wifi_hotspot_when_bluetooth_on">Only share internet via Bluetooth</string>
- <!-- Don't use Wi-Fi hotspot summary when Ethernet tethering is chosen [CHAR LIMIT=NONE]-->
- <string name="disable_wifi_hotspot_when_ethernet_on">Only share internet via Ethernet</string>
- <!-- Don't use Wi-Fi hotspot summary when USB tethering and Bluetooth tethering are chosen [CHAR LIMIT=NONE]-->
- <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on">Only share internet via USB and Bluetooth</string>
- <!-- Don't use Wi-Fi hotspot summary when USB tethering and Ethernet tethering are chosen [CHAR LIMIT=NONE]-->
- <string name="disable_wifi_hotspot_when_usb_and_ethernet_on">Only share internet via USB and Ethernet</string>
- <!-- Don't use Wi-Fi hotspot summary when Bluetooth tethering and Ethernet tethering are chosen [CHAR LIMIT=NONE]-->
- <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on">Only share internet via Bluetooth and Ethernet</string>
- <!-- Don't use Wi-Fi hotspot summary when USB, Bluetooth and Ethernet tethering are chosen [CHAR LIMIT=NONE]-->
- <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on">Only share internet via USB, Bluetooth and Ethernet</string>
-
<!-- USB Tethering options -->
- <string name="usb_title">USB</string>
+ <!-- Label for USB tethering switch [CHAR LIMIT=NONE]-->
<string name="usb_tethering_button_text">USB tethering</string>
<!-- Bluetooth Tethering settings-->
@@ -10946,6 +10923,9 @@
<!-- Title with application label for media output settings. [CHAR LIMIT=NONE] -->
<string name="media_output_label_title">Play <xliff:g id="label" example="Music Player">%s</xliff:g> on</string>
+ <!-- Title for media output settings without media is playing -->
+ <string name="media_output_title_without_playing">Audio will play on</string>
+
<!-- Summary for media output default settings. (this device) [CHAR LIMIT=30] -->
<string name="media_output_default_summary">This device</string>
diff --git a/res/xml/all_tether_prefs.xml b/res/xml/all_tether_prefs.xml
deleted file mode 100644
index 8673d31..0000000
--- a/res/xml/all_tether_prefs.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2020 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-
-<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:key="all_tether_prefs_screen"
- android:title="@string/tether_settings_title_all"
- settings:searchable="false">
-
- <PreferenceCategory
- android:key="wifi_tether_settings_group"
- android:title="@string/wifi_hotspot_checkbox_text"
- settings:searchable="false">
- <com.android.settings.wifi.tether.WifiTetherSsidPreference
- android:key="wifi_tether_network_name_2"
- android:title="@string/wifi_hotspot_name_title"
- android:summary="@string/summary_placeholder"/>
-
- <com.android.settings.widget.ValidatedEditTextPreference
- android:key="wifi_tether_network_password_2"
- android:persistent="false"
- android:title="@string/wifi_hotspot_password_title"/>
-
- <SwitchPreferenceCompat
- android:key="wifi_tether_auto_turn_off_2"
- android:title="@string/wifi_hotspot_auto_off_title"
- android:summary="@string/wifi_hotspot_auto_off_summary"/>
-
- <ListPreference
- android:key="wifi_tether_network_ap_band_2"
- android:title="@string/wifi_hotspot_ap_band_title"/>
-
- <ListPreference
- android:key="wifi_tether_security_2"
- android:title="@string/wifi_security"
- android:summary="@string/summary_placeholder"
- android:entries="@array/wifi_tether_security"
- android:entryValues="@array/wifi_tether_security_values"/>
- </PreferenceCategory>
-
- <PreferenceCategory
- android:key="tethering_options_group"
- android:title="@string/tethering_interface_options"
- settings:searchable="false">
- <SwitchPreferenceCompat
- android:key="enable_usb_tethering"
- android:title="@string/usb_tethering_button_text"
- android:summary="@string/usb_tethering_subtext"
- settings:controller="com.android.settings.network.UsbTetherPreferenceController"
- settings:keywords="@string/keywords_hotspot_tethering" />
-
- <SwitchPreferenceCompat
- android:key="enable_bluetooth_tethering_2"
- android:title="@string/bluetooth_tether_checkbox_text"
- android:summary="@string/bluetooth_tethering_subtext"
- settings:controller="com.android.settings.network.BluetoothTetherPreferenceController"
- settings:keywords="@string/keywords_hotspot_tethering" />
-
- <SwitchPreferenceCompat
- android:key="enable_ethernet_tethering_2"
- android:title="@string/ethernet_tether_checkbox_text"
- android:summary="@string/ethernet_tethering_subtext"
- settings:controller="com.android.settings.network.EthernetTetherPreferenceController"
- settings:keywords="@string/keywords_hotspot_tethering"/>
-
- <SwitchPreferenceCompat
- android:key="disable_wifi_tethering"
- android:title="@string/disable_wifi_hotspot_title"
- android:summary="@string/summary_placeholder"
- settings:controller="com.android.settings.network.WifiTetherDisablePreferenceController"
- settings:keywords="@string/keywords_hotspot_tethering" />
- </PreferenceCategory>
-
- <Preference
- android:key="disabled_on_data_saver_2"
- android:summary="@string/tether_settings_disabled_on_data_saver"
- android:selectable="false"
- settings:searchable="false"
- settings:allowDividerAbove="true" />
-
- <com.android.settingslib.widget.FooterPreference
- android:key="tether_prefs_footer_2"
- android:selectable="false"
- settings:searchable="false"/>
-</PreferenceScreen>
diff --git a/res/xml/bluetooth_audio_streams.xml b/res/xml/bluetooth_audio_streams.xml
index 206fb34..b419eaa 100644
--- a/res/xml/bluetooth_audio_streams.xml
+++ b/res/xml/bluetooth_audio_streams.xml
@@ -24,7 +24,8 @@
android:key="audio_streams_scan_qr_code"
android:title="@string/bluetooth_find_broadcast_button_scan"
android:icon="@drawable/ic_add_24dp"
- android:summary="@string/audio_streams_qr_code_summary" />
+ android:summary="@string/audio_streams_qr_code_summary"
+ settings:controller="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsScanQrCodeController" />
<Preference
android:key="audio_streams_active_device"
diff --git a/res/xml/date_time_prefs.xml b/res/xml/date_time_prefs.xml
index e7170ca..f1c62bb 100644
--- a/res/xml/date_time_prefs.xml
+++ b/res/xml/date_time_prefs.xml
@@ -24,19 +24,22 @@
android:key="auto_time"
android:title="@string/date_time_auto"
settings:useAdditionalSummary="true"
- settings:userRestriction="no_config_date_time"/>
+ settings:userRestriction="no_config_date_time"
+ settings:controller="com.android.settings.datetime.AutoTimePreferenceController" />
<com.android.settingslib.RestrictedPreference
android:key="date"
android:title="@string/date_time_set_date_title"
android:summary="@string/summary_placeholder"
- settings:userRestriction="no_config_date_time"/>
+ settings:userRestriction="no_config_date_time"
+ settings:controller="com.android.settings.datetime.DatePreferenceController" />
<com.android.settingslib.RestrictedPreference
android:key="time"
android:title="@string/date_time_set_time_title"
android:summary="@string/summary_placeholder"
- settings:userRestriction="no_config_date_time"/>
+ settings:userRestriction="no_config_date_time"
+ settings:controller="com.android.settings.datetime.TimePreferenceController" />
<PreferenceCategory
android:key="timezone_preference_category"
@@ -45,7 +48,8 @@
<com.android.settingslib.RestrictedSwitchPreference
android:key="auto_zone"
android:title="@string/zone_auto_title"
- settings:userRestriction="no_config_date_time"/>
+ settings:userRestriction="no_config_date_time"
+ settings:controller="com.android.settings.datetime.AutoTimeZonePreferenceController" />
<com.android.settingslib.widget.BannerMessagePreference
android:key="location_time_zone_detection_status"
@@ -53,7 +57,7 @@
settings:controller="com.android.settings.datetime.LocationProviderStatusPreferenceController"/>
<!-- This preference gets removed if location-based time zone detection is not supported -->
- <SwitchPreferenceCompat
+ <SwitchPreference
android:key="location_time_zone_detection"
android:title="@string/location_time_zone_detection_toggle_title"
settings:controller="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceController"/>
@@ -64,7 +68,8 @@
android:summary="@string/summary_placeholder"
android:fragment="com.android.settings.datetime.timezone.TimeZoneSettings"
settings:userRestriction="no_config_date_time"
- settings:keywords="@string/keywords_time_zone"/>
+ settings:keywords="@string/keywords_time_zone"
+ settings:controller="com.android.settings.datetime.TimeZonePreferenceController" />
</PreferenceCategory>
@@ -72,13 +77,15 @@
android:key="time_format_preference_category"
android:title="@string/time_format_category_title"
settings:keywords="@string/keywords_time_format">
- <SwitchPreferenceCompat
+ <SwitchPreference
android:key="auto_24hour"
- android:title="@string/date_time_24hour_auto"/>
+ android:title="@string/date_time_24hour_auto"
+ settings:controller="com.android.settings.datetime.AutoTimeFormatPreferenceController" />
- <SwitchPreferenceCompat
+ <SwitchPreference
android:key="24 hour"
- android:title="@string/date_time_24hour" />
+ android:title="@string/date_time_24hour"
+ settings:controller="com.android.settings.datetime.TimeFormatPreferenceController" />
</PreferenceCategory>
</PreferenceScreen>
diff --git a/res/xml/development_app_picker.xml b/res/xml/development_app_picker.xml
new file mode 100644
index 0000000..15e4ce0
--- /dev/null
+++ b/res/xml/development_app_picker.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<PreferenceScreen/>
diff --git a/res/xml/network_provider_internet.xml b/res/xml/network_provider_internet.xml
index 8e9d45d..cd44ab1 100644
--- a/res/xml/network_provider_internet.xml
+++ b/res/xml/network_provider_internet.xml
@@ -65,18 +65,7 @@
android:icon="@drawable/ic_wifi_tethering"
android:order="5"
android:summary="@string/summary_placeholder"
- settings:keywords="@string/keywords_hotspot_tethering"
- settings:userRestriction="no_config_tethering"
- settings:useAdminDisabledSummary="true" />
-
- <com.android.settingslib.PrimarySwitchPreference
- android:fragment="com.android.settings.AllInOneTetherSettings"
- android:key="all_tether_settings"
- android:title="@string/tether_settings_title_all"
- android:icon="@drawable/ic_wifi_tethering"
- android:order="6"
- android:summary="@string/summary_placeholder"
- settings:controller="com.android.settings.network.AllInOneTetherPreferenceController"
+ settings:controller="com.android.settings.network.TetherPreferenceController"
settings:keywords="@string/keywords_hotspot_tethering"
settings:userRestriction="no_config_tethering"
settings:useAdminDisabledSummary="true" />
diff --git a/src/com/android/settings/AllInOneTetherSettings.java b/src/com/android/settings/AllInOneTetherSettings.java
deleted file mode 100644
index b3644f8..0000000
--- a/src/com/android/settings/AllInOneTetherSettings.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings;
-
-import static android.net.ConnectivityManager.TETHERING_WIFI;
-import static android.net.TetheringManager.ACTION_TETHER_STATE_CHANGED;
-import static android.net.wifi.WifiManager.WIFI_AP_STATE_CHANGED_ACTION;
-
-import android.app.settings.SettingsEnums;
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothPan;
-import android.bluetooth.BluetoothProfile;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.wifi.SoftApConfiguration;
-import android.net.wifi.WifiManager;
-import android.os.Bundle;
-import android.os.UserManager;
-import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
-
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.dashboard.RestrictedDashboardFragment;
-import com.android.settings.datausage.DataSaverBackend;
-import com.android.settings.network.BluetoothTetherPreferenceController;
-import com.android.settings.network.EthernetTetherPreferenceController;
-import com.android.settings.network.TetherEnabler;
-import com.android.settings.network.UsbTetherPreferenceController;
-import com.android.settings.network.WifiTetherDisablePreferenceController;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.widget.MainSwitchBarController;
-import com.android.settings.widget.SettingsMainSwitchBar;
-import com.android.settings.wifi.tether.WifiTetherApBandPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherAutoOffPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherBasePreferenceController;
-import com.android.settings.wifi.tether.WifiTetherFooterPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherPasswordPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherSSIDPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherSecurityPreferenceController;
-import com.android.settingslib.TetherUtil;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * Displays preferences for all Tethering options.
- */
-@SearchIndexable
-public class AllInOneTetherSettings extends RestrictedDashboardFragment
- implements DataSaverBackend.Listener,
- WifiTetherBasePreferenceController.OnTetherConfigUpdateListener {
-
- // TODO(b/148622133): Should clean up the postfix once this fragment replaced TetherSettings.
- public static final String DEDUP_POSTFIX = "_2";
-
- @VisibleForTesting
- static final String KEY_WIFI_TETHER_NETWORK_NAME = "wifi_tether_network_name" + DEDUP_POSTFIX;
- @VisibleForTesting
- static final String KEY_WIFI_TETHER_NETWORK_PASSWORD =
- "wifi_tether_network_password" + DEDUP_POSTFIX;
- @VisibleForTesting
- static final String KEY_WIFI_TETHER_AUTO_OFF = "wifi_tether_auto_turn_off" + DEDUP_POSTFIX;
- @VisibleForTesting
- static final String KEY_WIFI_TETHER_NETWORK_AP_BAND =
- "wifi_tether_network_ap_band" + DEDUP_POSTFIX;
- @VisibleForTesting
- static final String KEY_WIFI_TETHER_SECURITY = "wifi_tether_security" + DEDUP_POSTFIX;
-
- private static final String KEY_DATA_SAVER_FOOTER = "disabled_on_data_saver" + DEDUP_POSTFIX;
- private static final String KEY_WIFI_TETHER_GROUP = "wifi_tether_settings_group";
- public static final String WIFI_TETHER_DISABLE_KEY = "disable_wifi_tethering";
- public static final String USB_TETHER_KEY = "enable_usb_tethering";
- public static final String BLUETOOTH_TETHER_KEY = "enable_bluetooth_tethering" + DEDUP_POSTFIX;
- public static final String ETHERNET_TETHER_KEY = "enable_ethernet_tethering" + DEDUP_POSTFIX;
-
- @VisibleForTesting
- static final int EXPANDED_CHILD_COUNT_DEFAULT = 4;
- @VisibleForTesting
- static final int EXPANDED_CHILD_COUNT_WITH_SECURITY_NON = 3;
- @VisibleForTesting
- static final int EXPANDED_CHILD_COUNT_MAX = Integer.MAX_VALUE;
- private static final String TAG = "AllInOneTetherSettings";
-
- private boolean mUnavailable;
-
- private DataSaverBackend mDataSaverBackend;
- private boolean mDataSaverEnabled;
- private Preference mDataSaverFooter;
-
- private WifiManager mWifiManager;
- private boolean mRestartWifiApAfterConfigChange;
- private final AtomicReference<BluetoothPan> mBluetoothPan = new AtomicReference<>();
-
- private WifiTetherSSIDPreferenceController mSSIDPreferenceController;
- private WifiTetherPasswordPreferenceController mPasswordPreferenceController;
- private WifiTetherApBandPreferenceController mApBandPreferenceController;
- private WifiTetherSecurityPreferenceController mSecurityPreferenceController;
- private PreferenceGroup mWifiTetherGroup;
- private boolean mShouldShowWifiConfig = true;
- private boolean mHasShownAdvance;
- private TetherEnabler mTetherEnabler;
- @VisibleForTesting
- final TetherEnabler.OnTetherStateUpdateListener mStateUpdateListener =
- state -> {
- mShouldShowWifiConfig = TetherEnabler.isTethering(state, TETHERING_WIFI)
- || state == TetherEnabler.TETHERING_OFF;
- getPreferenceScreen().setInitialExpandedChildrenCount(
- getInitialExpandedChildCount());
- mWifiTetherGroup.setVisible(mShouldShowWifiConfig);
- };
-
- private final BroadcastReceiver mTetherChangeReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context content, Intent intent) {
- String action = intent.getAction();
- if (Log.isLoggable(TAG, Log.DEBUG)) {
- Log.d(TAG,
- "updating display config due to receiving broadcast action " + action);
- }
- updateDisplayWithNewConfig();
- if (TextUtils.equals(action, ACTION_TETHER_STATE_CHANGED)) {
- restartWifiTetherIfNeed(mWifiManager.getWifiApState());
- } else if (TextUtils.equals(action, WIFI_AP_STATE_CHANGED_ACTION)) {
- restartWifiTetherIfNeed(intent.getIntExtra(WifiManager.EXTRA_WIFI_AP_STATE, 0));
- }
- }
-
- private void restartWifiTetherIfNeed(int state) {
- if (state == WifiManager.WIFI_AP_STATE_DISABLED
- && mRestartWifiApAfterConfigChange) {
- mRestartWifiApAfterConfigChange = false;
- mTetherEnabler.startTethering(TETHERING_WIFI);
- }
- }
- };
-
- private final BluetoothProfile.ServiceListener mProfileServiceListener =
- new BluetoothProfile.ServiceListener() {
- public void onServiceConnected(int profile, BluetoothProfile proxy) {
- mBluetoothPan.set((BluetoothPan) proxy);
- }
-
- public void onServiceDisconnected(int profile) {
- mBluetoothPan.set(null);
- }
- };
-
- @Override
- public int getMetricsCategory() {
- return SettingsEnums.TETHER;
- }
-
- public AllInOneTetherSettings() {
- super(UserManager.DISALLOW_CONFIG_TETHERING);
- }
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
- mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
-
- mSSIDPreferenceController = use(WifiTetherSSIDPreferenceController.class);
- mSecurityPreferenceController = use(WifiTetherSecurityPreferenceController.class);
- mPasswordPreferenceController = use(WifiTetherPasswordPreferenceController.class);
- mApBandPreferenceController = use(WifiTetherApBandPreferenceController.class);
- getSettingsLifecycle().addObserver(use(UsbTetherPreferenceController.class));
- getSettingsLifecycle().addObserver(use(BluetoothTetherPreferenceController.class));
- getSettingsLifecycle().addObserver(use(EthernetTetherPreferenceController.class));
- getSettingsLifecycle().addObserver(use(WifiTetherDisablePreferenceController.class));
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- mDataSaverBackend = new DataSaverBackend(getContext());
- mDataSaverEnabled = mDataSaverBackend.isDataSaverEnabled();
- mDataSaverFooter = findPreference(KEY_DATA_SAVER_FOOTER);
- mWifiTetherGroup = findPreference(KEY_WIFI_TETHER_GROUP);
-
- setIfOnlyAvailableForAdmins(true);
- if (isUiRestricted()) {
- mUnavailable = true;
- return;
- }
-
- mDataSaverBackend.addListener(this);
-
- // Set initial state based on Data Saver mode.
- onDataSaverChanged(mDataSaverBackend.isDataSaverEnabled());
- }
-
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- if (mUnavailable) {
- return;
- }
- // Assume we are in a SettingsActivity. This is only safe because we currently use
- // SettingsActivity as base for all preference fragments.
- final SettingsActivity activity = (SettingsActivity) getActivity();
- final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
- if (adapter != null) {
- adapter.getProfileProxy(activity.getApplicationContext(), mProfileServiceListener,
- BluetoothProfile.PAN);
- }
- final SettingsMainSwitchBar mainSwitch = activity.getSwitchBar();
- mTetherEnabler = new TetherEnabler(activity,
- new MainSwitchBarController(mainSwitch), mBluetoothPan);
- getSettingsLifecycle().addObserver(mTetherEnabler);
- use(UsbTetherPreferenceController.class).setTetherEnabler(mTetherEnabler);
- use(BluetoothTetherPreferenceController.class).setTetherEnabler(mTetherEnabler);
- use(EthernetTetherPreferenceController.class).setTetherEnabler(mTetherEnabler);
- use(WifiTetherDisablePreferenceController.class).setTetherEnabler(mTetherEnabler);
- mainSwitch.show();
- }
-
- @Override
- public void onStart() {
- super.onStart();
-
- if (mUnavailable) {
- if (!isUiRestrictedByOnlyAdmin()) {
- getEmptyTextView().setText(
- com.android.settingslib.R.string.tethering_settings_not_available);
- }
- getPreferenceScreen().removeAll();
- return;
- }
- final Context context = getContext();
- if (context != null) {
- // The intent WIFI_AP_STATE_CHANGED_ACTION is not sticky intent after SC-V2
- // But ACTION_TETHER_STATE_CHANGED is still sticky intent. So no need to handle
- // initial state for WIFI_AP_STATE_CHANGED_ACTION
- IntentFilter filter = new IntentFilter(ACTION_TETHER_STATE_CHANGED);
- filter.addAction(WIFI_AP_STATE_CHANGED_ACTION);
- context.registerReceiver(mTetherChangeReceiver, filter);
- }
- }
-
- @Override
- public void onResume() {
- super.onResume();
- if (mUnavailable) {
- return;
- }
- if (mTetherEnabler != null) {
- mTetherEnabler.addListener(mStateUpdateListener);
- }
- }
-
- @Override
- public void onPause() {
- super.onPause();
- if (mUnavailable) {
- return;
- }
- if (mTetherEnabler != null) {
- mTetherEnabler.removeListener(mStateUpdateListener);
- }
- }
-
- @Override
- public void onStop() {
- super.onStop();
- if (mUnavailable) {
- return;
- }
- final Context context = getContext();
- if (context != null) {
- context.unregisterReceiver(mTetherChangeReceiver);
- }
- }
-
- @Override
- public void onDestroy() {
- mDataSaverBackend.remListener(this);
- super.onDestroy();
- }
-
- @Override
- public void onDataSaverChanged(boolean isDataSaving) {
- mDataSaverEnabled = isDataSaving;
- mDataSaverFooter.setVisible(mDataSaverEnabled);
- }
-
- @Override
- public void onAllowlistStatusChanged(int uid, boolean isAllowlisted) {
- // Do nothing
- }
-
- @Override
- public void onDenylistStatusChanged(int uid, boolean isDenylisted) {
- // Do nothing
- }
-
- @Override
- protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, this);
- }
-
- private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
- WifiTetherBasePreferenceController.OnTetherConfigUpdateListener listener) {
- final List<AbstractPreferenceController> controllers = new ArrayList<>();
- controllers.add(
- new WifiTetherSSIDPreferenceController(context, listener));
- controllers.add(
- new WifiTetherPasswordPreferenceController(context, listener));
- controllers.add(
- new WifiTetherApBandPreferenceController(context, listener));
- controllers.add(
- new WifiTetherSecurityPreferenceController(context, listener));
- controllers.add(
- new WifiTetherAutoOffPreferenceController(context, KEY_WIFI_TETHER_AUTO_OFF));
- controllers.add(
- new WifiTetherFooterPreferenceController(context));
-
- return controllers;
- }
-
- @Override
- protected int getPreferenceScreenResId() {
- return R.xml.all_tether_prefs;
- }
-
- @Override
- protected String getLogTag() {
- return TAG;
- }
-
- @Override
- public int getHelpResource() {
- return R.string.help_url_tether;
- }
-
- @Override
- public void onTetherConfigUpdated(AbstractPreferenceController controller) {
- final SoftApConfiguration config = buildNewConfig();
- mPasswordPreferenceController.setSecurityType(config.getSecurityType());
- mWifiManager.setSoftApConfiguration(config);
-
- if (mWifiManager.getWifiApState() == WifiManager.WIFI_AP_STATE_ENABLED) {
- if (Log.isLoggable(TAG, Log.DEBUG)) {
- Log.d(TAG, "Wifi AP config changed while enabled, stop and restart");
- }
- mRestartWifiApAfterConfigChange = true;
- mTetherEnabler.stopTethering(TETHERING_WIFI);
- }
- }
-
- private SoftApConfiguration buildNewConfig() {
- final SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder();
- final int securityType = mSecurityPreferenceController.getSecurityType();
- configBuilder.setSsid(mSSIDPreferenceController.getSSID());
- if (securityType == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK) {
- configBuilder.setPassphrase(
- mPasswordPreferenceController.getPasswordValidated(securityType),
- SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
- }
- configBuilder.setBand(mApBandPreferenceController.getBandIndex());
- return configBuilder.build();
- }
-
- private void updateDisplayWithNewConfig() {
- mSSIDPreferenceController.updateDisplay();
- mSecurityPreferenceController.updateDisplay();
- mPasswordPreferenceController.updateDisplay();
- mApBandPreferenceController.updateDisplay();
- }
-
- @Override
- public int getInitialExpandedChildCount() {
- if (mHasShownAdvance || !mShouldShowWifiConfig) {
- mHasShownAdvance = true;
- return EXPANDED_CHILD_COUNT_MAX;
- }
-
- if (mSecurityPreferenceController == null) {
- return EXPANDED_CHILD_COUNT_DEFAULT;
- }
-
- return (mSecurityPreferenceController.getSecurityType()
- == SoftApConfiguration.SECURITY_TYPE_OPEN)
- ? EXPANDED_CHILD_COUNT_WITH_SECURITY_NON : EXPANDED_CHILD_COUNT_DEFAULT;
- }
-
- @Override
- public void onExpandButtonClick() {
- super.onExpandButtonClick();
- mHasShownAdvance = true;
- }
-
- public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider(R.xml.all_tether_prefs) {
-
- @Override
- public List<String> getNonIndexableKeys(Context context) {
- final List<String> keys = super.getNonIndexableKeys(context);
-
- if (!TetherUtil.isTetherAvailable(context)) {
- keys.add(KEY_WIFI_TETHER_NETWORK_NAME);
- keys.add(KEY_WIFI_TETHER_NETWORK_PASSWORD);
- keys.add(KEY_WIFI_TETHER_AUTO_OFF);
- keys.add(KEY_WIFI_TETHER_NETWORK_AP_BAND);
- keys.add(KEY_WIFI_TETHER_SECURITY);
- }
- return keys;
- }
-
- @Override
- protected boolean isPageSearchEnabled(Context context) {
- return FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE);
- }
-
- @Override
- public List<AbstractPreferenceController> createPreferenceControllers(
- Context context) {
- return buildPreferenceControllers(context, null /*listener*/);
- }
- };
-}
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 64e3244..68ae0ae 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -19,18 +19,15 @@
import static android.provider.Settings.ACTION_PRIVACY_SETTINGS;
import android.content.ActivityNotFoundException;
-import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.ims.ImsRcsManager;
import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.biometrics.face.FaceSettings;
import com.android.settings.communal.CommunalPreferenceController;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.enterprise.EnterprisePrivacySettings;
import com.android.settings.network.MobileNetworkIntentConverter;
import com.android.settings.overlay.FeatureFactory;
@@ -58,42 +55,8 @@
public static class FingerprintSettingsActivityV2 extends SettingsActivity { /* empty */ }
public static class CombinedBiometricSettingsActivity extends SettingsActivity { /* empty */ }
public static class CombinedBiometricProfileSettingsActivity extends SettingsActivity { /* empty */ }
- public static class TetherSettingsActivity extends SettingsActivity {
- // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently.
- @Override
- public Intent getIntent() {
- return wrapIntentWithAllInOneTetherSettingsIfNeeded(
- getApplicationContext(), super.getIntent());
- }
- }
- public static class WifiTetherSettingsActivity extends SettingsActivity {
- // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently.
- @Override
- public Intent getIntent() {
- return wrapIntentWithAllInOneTetherSettingsIfNeeded(
- getApplicationContext(), super.getIntent());
- }
- }
-
- private static Intent wrapIntentWithAllInOneTetherSettingsIfNeeded(
- Context context, Intent superIntent) {
- if (!FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE)) {
- return superIntent;
- }
-
- final Intent modIntent = new Intent(superIntent);
- modIntent.putExtra(EXTRA_SHOW_FRAGMENT,
- AllInOneTetherSettings.class.getCanonicalName());
- Bundle args = superIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
- if (args != null) {
- args = new Bundle(args);
- } else {
- args = new Bundle();
- }
- args.putParcelable("intent", superIntent);
- modIntent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
- return modIntent;
- }
+ public static class TetherSettingsActivity extends SettingsActivity { /* empty */ }
+ public static class WifiTetherSettingsActivity extends SettingsActivity { /* empty */ }
public static class VpnSettingsActivity extends SettingsActivity { /* empty */ }
/** Activity for Data saver settings. */
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index f7e341b..25fd3a2 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -409,6 +409,22 @@
return null;
}
+ /**
+ * Returns true if a profile of specified userType exists. Note that it considers all profiles,
+ * including the disabled profiles and the parent user itself.
+ */
+ public static boolean doesProfileOfTypeExists(
+ @NonNull UserManager userManager, @ProfileType int userType) {
+ final List<UserInfo> userProfiles = userManager.getProfiles(UserHandle.myUserId());
+ String umUserType = getUmUserType(userType);
+ for (UserInfo profile : userProfiles) {
+ if (Objects.equals(umUserType, profile.userType)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private static String getUmUserType(@ProfileType int userType) throws IllegalArgumentException {
if (userType == ProfileType.WORK) {
return USER_TYPE_PROFILE_MANAGED;
diff --git a/src/com/android/settings/applications/credentials/CombinedProviderInfo.java b/src/com/android/settings/applications/credentials/CombinedProviderInfo.java
index 074fb7b..e8541389 100644
--- a/src/com/android/settings/applications/credentials/CombinedProviderInfo.java
+++ b/src/com/android/settings/applications/credentials/CombinedProviderInfo.java
@@ -82,6 +82,37 @@
return mAutofillServiceInfo.getServiceInfo().applicationInfo;
}
+ /** Returns the package name. */
+ public @Nullable String getPackageName() {
+ ApplicationInfo ai = getApplicationInfo();
+ if (ai != null) {
+ return ai.packageName;
+ }
+
+ return null;
+ }
+
+ /** Returns the settings activity. */
+ public @Nullable String getSettingsActivity() {
+ // This logic is not used by the top entry but rather what activity should
+ // be launched from the settings screen.
+ for (CredentialProviderInfo cpi : mCredentialProviderInfos) {
+ final CharSequence settingsActivity = cpi.getSettingsActivity();
+ if (!TextUtils.isEmpty(settingsActivity)) {
+ return String.valueOf(settingsActivity);
+ }
+ }
+
+ if (mAutofillServiceInfo != null) {
+ final String settingsActivity = mAutofillServiceInfo.getSettingsActivity();
+ if (!TextUtils.isEmpty(settingsActivity)) {
+ return settingsActivity;
+ }
+ }
+
+ return null;
+ }
+
/** Returns the app icon. */
@Nullable
public Drawable getAppIcon(@NonNull Context context, int userId) {
diff --git a/src/com/android/settings/applications/credentials/CredentialsPickerActivity.java b/src/com/android/settings/applications/credentials/CredentialsPickerActivity.java
new file mode 100644
index 0000000..495c104
--- /dev/null
+++ b/src/com/android/settings/applications/credentials/CredentialsPickerActivity.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications.credentials;
+
+
+import com.android.settings.SettingsActivity;
+
+/** Standalone activity used to launch a {@link DefaultCombinedPicker} fragment. */
+public class CredentialsPickerActivity extends SettingsActivity {
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ return super.isValidFragment(fragmentName)
+ || DefaultCombinedPicker.class.getName().equals(fragmentName);
+ }
+}
diff --git a/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java b/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java
index 59c33b2..47a89ec 100644
--- a/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java
+++ b/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java
@@ -16,11 +16,10 @@
package com.android.settings.applications.credentials;
+import android.annotation.Nullable;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.credentials.CredentialManager;
import android.credentials.CredentialProviderInfo;
@@ -29,16 +28,19 @@
import android.service.autofill.AutofillService;
import android.service.autofill.AutofillServiceInfo;
import android.text.TextUtils;
-import android.util.Log;
import android.view.autofill.AutofillManager;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
import com.android.settings.applications.defaultapps.DefaultAppPreferenceController;
import com.android.settingslib.applications.DefaultAppInfo;
import java.util.ArrayList;
import java.util.List;
-public class DefaultCombinedPreferenceController extends DefaultAppPreferenceController {
+public class DefaultCombinedPreferenceController extends DefaultAppPreferenceController
+ implements Preference.OnPreferenceClickListener {
private static final Intent AUTOFILL_PROBE = new Intent(AutofillService.SERVICE_INTERFACE);
private static final String TAG = "DefaultCombinedPreferenceController";
@@ -73,18 +75,55 @@
@Override
protected Intent getSettingIntent(DefaultAppInfo info) {
- if (info == null) {
- return null;
+ // Despite this method being called getSettingIntent this intent actually
+ // opens the primary picker. This is so that we can swap the cog and the left
+ // hand side presses to align the UX.
+ return new Intent(mContext, CredentialsPickerActivity.class);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+
+ final String prefKey = getPreferenceKey();
+ final Preference preference = screen.findPreference(prefKey);
+ if (preference != null) {
+ preference.setOnPreferenceClickListener((Preference.OnPreferenceClickListener) this);
}
- final AutofillSettingIntentProvider intentProvider =
- new AutofillSettingIntentProvider(mContext, getUser(), info.getKey());
- return intentProvider.getIntent();
+ }
+
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ // Get the selected provider.
+ final CombinedProviderInfo topProvider = getTopProvider();
+ if (topProvider == null) {
+ return false;
+ }
+
+ // If the top provider has a defined Credential Manager settings
+ // provider then we should open that up.
+ final String settingsActivity = topProvider.getSettingsActivity();
+ if (!TextUtils.isEmpty(settingsActivity)) {
+ final Intent intent =
+ new Intent(Intent.ACTION_MAIN)
+ .setComponent(
+ new ComponentName(
+ topProvider.getPackageName(), settingsActivity));
+ startActivity(intent);
+ return true;
+ }
+
+ return false;
+ }
+
+ private @Nullable CombinedProviderInfo getTopProvider() {
+ List<CombinedProviderInfo> providers = getAllProviders(getUser());
+ return CombinedProviderInfo.getTopProvider(providers);
}
@Override
protected DefaultAppInfo getDefaultAppInfo() {
- List<CombinedProviderInfo> providers = getAllProviders(getUser());
- CombinedProviderInfo topProvider = CombinedProviderInfo.getTopProvider(providers);
+ CombinedProviderInfo topProvider = getTopProvider();
if (topProvider != null) {
ServiceInfo brandingService = topProvider.getBrandingService();
if (brandingService == null) {
@@ -138,53 +177,6 @@
return true;
}
- /** Provides Intent to setting activity for the specified autofill service. */
- static final class AutofillSettingIntentProvider {
-
- private final String mKey;
- private final Context mContext;
- private final int mUserId;
-
- public AutofillSettingIntentProvider(Context context, int userId, String key) {
- mKey = key;
- mContext = context;
- mUserId = userId;
- }
-
- public Intent getIntent() {
- final List<ResolveInfo> resolveInfos =
- mContext.getPackageManager()
- .queryIntentServicesAsUser(
- AUTOFILL_PROBE, PackageManager.GET_META_DATA, mUserId);
-
- for (ResolveInfo resolveInfo : resolveInfos) {
- final ServiceInfo serviceInfo = resolveInfo.serviceInfo;
-
- // If there are multiple autofill services then pick the first one.
- if (mKey != null && mKey.startsWith(serviceInfo.packageName)) {
- final String settingsActivity;
- try {
- settingsActivity =
- new AutofillServiceInfo(mContext, serviceInfo)
- .getSettingsActivity();
- } catch (SecurityException e) {
- // Service does not declare the proper permission, ignore it.
- Log.e(TAG, "Error getting info for " + serviceInfo + ": " + e);
- return null;
- }
- if (TextUtils.isEmpty(settingsActivity)) {
- return null;
- }
- return new Intent(Intent.ACTION_MAIN)
- .setComponent(
- new ComponentName(serviceInfo.packageName, settingsActivity));
- }
- }
-
- return null;
- }
- }
-
protected int getUser() {
return UserHandle.myUserId();
}
diff --git a/src/com/android/settings/applications/credentials/DefaultPrivateCombinedPreferenceController.kt b/src/com/android/settings/applications/credentials/DefaultPrivateCombinedPreferenceController.kt
index d606f3c..990e221 100644
--- a/src/com/android/settings/applications/credentials/DefaultPrivateCombinedPreferenceController.kt
+++ b/src/com/android/settings/applications/credentials/DefaultPrivateCombinedPreferenceController.kt
@@ -36,15 +36,6 @@
return "default_credman_autofill_private"
}
- override fun getSettingIntent(info: DefaultAppInfo ?): Intent ? {
- if (info == null) {
- return null
- }
- return userHandle?.let { handle ->
- AutofillSettingIntentProvider(mContext, handle.identifier, info.key).intent
- } ?: null
- }
-
override fun startActivity(intent: Intent) {
userHandle?.let { handle ->
mContext.startActivityAsUser(intent, handle)
diff --git a/src/com/android/settings/applications/credentials/DefaultWorkCombinedPreferenceController.java b/src/com/android/settings/applications/credentials/DefaultWorkCombinedPreferenceController.java
index eb0aa7a..f7ca204 100644
--- a/src/com/android/settings/applications/credentials/DefaultWorkCombinedPreferenceController.java
+++ b/src/com/android/settings/applications/credentials/DefaultWorkCombinedPreferenceController.java
@@ -21,7 +21,6 @@
import android.os.UserHandle;
import com.android.settings.Utils;
-import com.android.settingslib.applications.DefaultAppInfo;
public class DefaultWorkCombinedPreferenceController extends DefaultCombinedPreferenceController {
private final UserHandle mUserHandle;
@@ -45,17 +44,6 @@
}
@Override
- protected Intent getSettingIntent(DefaultAppInfo info) {
- if (info == null) {
- return null;
- }
- final AutofillSettingIntentProvider intentProvider =
- new AutofillSettingIntentProvider(
- mContext, mUserHandle.getIdentifier(), info.getKey());
- return intentProvider.getIntent();
- }
-
- @Override
protected void startActivity(Intent intent) {
mContext.startActivityAsUser(intent, mUserHandle);
}
diff --git a/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java b/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
index e378eb3..b95da80 100644
--- a/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
+++ b/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
@@ -17,7 +17,6 @@
package com.android.settings.applications.specialaccess;
import android.content.Context;
-import android.nfc.Flags;
import android.nfc.NfcAdapter;
import android.nfc.cardemulation.CardEmulation;
import android.os.UserHandle;
@@ -67,12 +66,8 @@
}
private boolean hasAnyServices() {
- if (Flags.enableNfcMainline()) {
- return mCardEmuManager.getServices(
- CardEmulation.CATEGORY_PAYMENT, UserHandle.myUserId()).isEmpty();
- } else {
- return mCardEmuManager.getServices(CardEmulation.CATEGORY_PAYMENT).isEmpty();
- }
+ return mCardEmuManager.getServices(
+ CardEmulation.CATEGORY_PAYMENT, UserHandle.myUserId()).isEmpty();
}
@Override
diff --git a/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtils.java b/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtils.java
index 4d92598..2eee9df 100644
--- a/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtils.java
+++ b/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtils.java
@@ -191,13 +191,10 @@
public String getIntroForActiveUnlock() {
final boolean faceAllowed = Utils.hasFaceHardware(mContext);
final boolean fingerprintAllowed = Utils.hasFingerprintHardware(mContext);
- if (useBiometricFailureLayout()) {
+ if (isAvailable()) {
int introRes = getIntroRes(faceAllowed, fingerprintAllowed);
return introRes == 0 ? "" : mContext.getString(introRes);
}
- if (useUnlockIntentLayout() && (!faceAllowed || !fingerprintAllowed)) {
- return "";
- }
return mContext.getString(R.string.biometric_settings_intro);
}
diff --git a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java
index 0bfb87d..d3bc977 100644
--- a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java
+++ b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java
@@ -182,7 +182,7 @@
* Called when a fingerprint image has been acquired, but wasn't processed yet.
*/
public void onAcquired(boolean isAcquiredGood) {
- if (mListener != null && mTotalSteps != -1) {
+ if (mListener != null) {
mListener.onAcquired(isAcquiredGood && animateIfLastStep());
}
}
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java b/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
index 9571767..d62543b 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
@@ -23,6 +23,7 @@
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_OTHER;
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN;
+import static android.media.audio.Flags.automaticBtDeviceType;
import android.content.Context;
import android.media.AudioManager;
@@ -106,9 +107,15 @@
final int index = pref.findIndexOfValue(value);
if (index >= 0) {
pref.setSummary(pref.getEntries()[index]);
- mAudioManager.setBluetoothAudioDeviceCategory(mCachedDevice.getAddress(),
- mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE,
- Integer.parseInt(value));
+ if (automaticBtDeviceType()) {
+ mAudioManager.setBluetoothAudioDeviceCategory(
+ mCachedDevice.getAddress(), Integer.parseInt(value));
+ } else {
+ mAudioManager.setBluetoothAudioDeviceCategory_legacy(
+ mCachedDevice.getAddress(),
+ mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE,
+ Integer.parseInt(value));
+ }
mCachedDevice.onAudioDeviceCategoryChanged();
}
}
@@ -163,9 +170,15 @@
Integer.toString(AUDIO_DEVICE_CATEGORY_OTHER),
});
- @AudioDeviceCategory final int deviceCategory =
- mAudioManager.getBluetoothAudioDeviceCategory(mCachedDevice.getAddress(),
- mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE);
+ @AudioDeviceCategory int deviceCategory;
+ if (automaticBtDeviceType()) {
+ deviceCategory = mAudioManager.getBluetoothAudioDeviceCategory(
+ mCachedDevice.getAddress());
+ } else {
+ deviceCategory = mAudioManager.getBluetoothAudioDeviceCategory_legacy(
+ mCachedDevice.getAddress(),
+ mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE);
+ }
if (DEBUG) {
Log.v(TAG, "getBluetoothAudioDeviceCategory() device: "
+ mCachedDevice.getDevice().getAnonymizedAddress()
@@ -173,6 +186,12 @@
}
mAudioDeviceTypePreference.setValue(Integer.toString(deviceCategory));
+ if (automaticBtDeviceType()) {
+ if (mAudioManager.isBluetoothAudioDeviceCategoryFixed(mCachedDevice.getAddress())) {
+ mAudioDeviceTypePreference.setEnabled(false);
+ }
+ }
+
mAudioDeviceTypePreference.setSummary(mAudioDeviceTypePreference.getEntry());
mAudioDeviceTypePreference.setOnPreferenceChangeListener(this);
}
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index 630acbb..27001d6 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -28,9 +28,9 @@
import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
import com.android.settings.connecteddevice.audiosharing.AudioSharingDevicePreferenceController;
+import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
import com.android.settings.core.SettingsUIDeviceConfig;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.flags.Flags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SurveyFeatureProvider;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -87,7 +87,7 @@
+ ", action : "
+ action);
}
- if (Flags.enableLeAudioSharing()) {
+ if (AudioSharingUtils.isFeatureEnabled()) {
use(AudioSharingDevicePreferenceController.class).init(this);
}
use(AvailableMediaDeviceGroupController.class).init(this);
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
index 21f1c0e..8497c9d 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
@@ -16,24 +16,31 @@
package com.android.settings.connecteddevice.audiosharing;
+import android.bluetooth.BluetoothAdapter;
import android.content.Context;
+import androidx.annotation.NonNull;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.flags.Flags;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
-public abstract class AudioSharingBasePreferenceController extends BasePreferenceController {
+public abstract class AudioSharingBasePreferenceController extends BasePreferenceController
+ implements DefaultLifecycleObserver {
+ private final BluetoothAdapter mBluetoothAdapter;
private final LocalBluetoothManager mBtManager;
protected final LocalBluetoothLeBroadcast mBroadcast;
protected Preference mPreference;
public AudioSharingBasePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
+ mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mBtManager = Utils.getLocalBtManager(context);
mBroadcast =
mBtManager == null
@@ -43,28 +50,40 @@
@Override
public int getAvailabilityStatus() {
- return mBtManager != null && Flags.enableLeAudioSharing()
- ? AVAILABLE
- : UNSUPPORTED_ON_DEVICE;
+ return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mPreference = screen.findPreference(getPreferenceKey());
- updateVisibility(isBroadcasting());
}
- /**
- * Update the visibility of the preference.
- *
- * @param isVisible the latest visibility state for the preference.
- */
- public void updateVisibility(boolean isVisible) {
- mPreference.setVisible(isVisible);
+ @Override
+ public void onStart(@NonNull LifecycleOwner owner) {
+ if (isAvailable()) {
+ updateVisibility();
+ }
+ }
+
+ /** Update the visibility of the preference. */
+ protected void updateVisibility() {
+ if (mPreference != null) {
+ var unused =
+ ThreadUtils.postOnBackgroundThread(
+ () -> {
+ boolean isVisible = isBroadcasting() && isBluetoothStateOn();
+ ThreadUtils.postOnMainThread(
+ () -> mPreference.setVisible(isVisible));
+ });
+ }
}
protected boolean isBroadcasting() {
return mBroadcast != null && mBroadcast.isEnabled(null);
}
+
+ protected boolean isBluetoothStateOn() {
+ return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled();
+ }
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java
index 7f90ceb..52a8f18 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java
@@ -93,14 +93,14 @@
}
@Override
- public void onSwitchBarChanged(boolean newState) {
- updateVisibilityForAttachedPreferences(newState);
+ public void onSwitchBarChanged() {
+ updateVisibilityForAttachedPreferences();
}
- private void updateVisibilityForAttachedPreferences(boolean isVisible) {
- mAudioSharingDeviceVolumeGroupController.updateVisibility(isVisible);
- mCallsAndAlarmsPreferenceController.updateVisibility(isVisible);
- mAudioSharingNamePreferenceController.updateVisibility(isVisible);
- mAudioStreamsCategoryController.updateVisibility(isVisible);
+ private void updateVisibilityForAttachedPreferences() {
+ mAudioSharingDeviceVolumeGroupController.updateVisibility();
+ mCallsAndAlarmsPreferenceController.updateVisibility();
+ mAudioSharingNamePreferenceController.updateVisibility();
+ mAudioStreamsCategoryController.updateVisibility();
}
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
index 7a2f26f..483a74b 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
@@ -24,7 +24,6 @@
import android.bluetooth.BluetoothLeBroadcastReceiveState;
import android.bluetooth.BluetoothProfile;
import android.content.Context;
-import android.content.pm.PackageManager;
import android.util.Log;
import androidx.annotation.NonNull;
@@ -39,7 +38,6 @@
import com.android.settings.connecteddevice.DevicePreferenceCallback;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.flags.Flags;
import com.android.settingslib.bluetooth.BluetoothCallback;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LeAudioProfile;
@@ -309,9 +307,7 @@
@Override
public int getAvailabilityStatus() {
- return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)
- && Flags.enableLeAudioSharing()
- && mBluetoothDeviceUpdater != null
+ return AudioSharingUtils.isFeatureEnabled() && mBluetoothDeviceUpdater != null
? AVAILABLE_UNSEARCHABLE
: UNSUPPORTED_ON_DEVICE;
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
index 0668f50..e60eabd 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
@@ -102,7 +102,9 @@
}
};
AudioSharingDeviceVolumePreference vPreference =
- new AudioSharingDeviceVolumePreference(mPrefContext, cachedDevice, listener);
+ new AudioSharingDeviceVolumePreference(mPrefContext, cachedDevice);
+ vPreference.initialize();
+ vPreference.setOnSeekBarChangeListener(listener);
vPreference.setKey(getPreferenceKey());
vPreference.setIcon(com.android.settingslib.R.drawable.ic_bt_untethered_earbuds);
vPreference.setTitle(cachedDevice.getName());
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
index 90054d4..f075048 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
@@ -23,11 +23,11 @@
import android.bluetooth.BluetoothLeBroadcastReceiveState;
import android.bluetooth.BluetoothVolumeControl;
import android.content.Context;
+import android.media.AudioManager;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentManager;
-import androidx.lifecycle.DefaultLifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import androidx.preference.PreferenceGroup;
@@ -37,10 +37,12 @@
import com.android.settings.bluetooth.Utils;
import com.android.settings.connecteddevice.DevicePreferenceCallback;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.VolumeControlProfile;
+import com.android.settingslib.utils.ThreadUtils;
import java.util.HashMap;
import java.util.Map;
@@ -48,7 +50,8 @@
import java.util.concurrent.Executors;
public class AudioSharingDeviceVolumeGroupController extends AudioSharingBasePreferenceController
- implements DefaultLifecycleObserver, DevicePreferenceCallback {
+ implements DevicePreferenceCallback {
+ private static final boolean DEBUG = BluetoothUtils.D;
private static final String TAG = "AudioSharingDeviceVolumeGroupController";
private static final String KEY = "audio_sharing_device_volume_group";
@@ -162,6 +165,7 @@
@Override
public void onStart(@NonNull LifecycleOwner owner) {
+ super.onStart(owner);
if (mAssistant == null) {
Log.d(TAG, "onStart() Broadcast or assistant is not supported on this device");
return;
@@ -176,6 +180,7 @@
@Override
public void onStop(@NonNull LifecycleOwner owner) {
+ super.onStop(owner);
if (mAssistant == null) {
Log.d(TAG, "onStop() Broadcast or assistant is not supported on this device");
return;
@@ -189,6 +194,17 @@
}
@Override
+ public void onDestroy(@NonNull LifecycleOwner owner) {
+ for (var entry : mCallbackMap.entrySet()) {
+ if (DEBUG) {
+ Log.d(TAG, "onDestroy: unregister callback for " + entry.getKey());
+ }
+ mVolumeControl.unregisterCallback(entry.getValue());
+ }
+ mCallbackMap.clear();
+ }
+
+ @Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
@@ -216,6 +232,9 @@
BluetoothVolumeControl.Callback callback =
buildVcCallback((AudioSharingDeviceVolumePreference) preference);
mCallbackMap.put(preference, callback);
+ if (DEBUG) {
+ Log.d(TAG, "onDeviceAdded: register callback for " + preference);
+ }
mVolumeControl.registerCallback(mExecutor, callback);
}
}
@@ -227,16 +246,21 @@
mPreferenceGroup.setVisible(false);
}
if (mVolumeControl != null && mCallbackMap.containsKey(preference)) {
+ if (DEBUG) {
+ Log.d(TAG, "onDeviceRemoved: unregister callback for " + preference);
+ }
mVolumeControl.unregisterCallback(mCallbackMap.get(preference));
mCallbackMap.remove(preference);
}
}
@Override
- public void updateVisibility(boolean isVisible) {
- super.updateVisibility(isVisible);
+ public void updateVisibility() {
if (mPreferenceGroup != null) {
- mPreferenceGroup.setVisible(mPreferenceGroup.getPreferenceCount() > 0);
+ mPreferenceGroup.setVisible(false);
+ if (mPreferenceGroup.getPreferenceCount() > 0) {
+ super.updateVisibility();
+ }
}
}
@@ -263,16 +287,41 @@
@Override
public void onDeviceVolumeChanged(
@android.annotation.NonNull BluetoothDevice device,
- @IntRange(from = 0, to = 255) int volume) {
- Log.d(TAG, "onDeviceVolumeChanged changed " + device.getAnonymizedAddress());
+ @IntRange(from = -255, to = 255) int volume) {
CachedBluetoothDevice cachedDevice =
mLocalBtManager.getCachedDeviceManager().findDevice(device);
if (cachedDevice == null) return;
if (preference.getCachedDevice() != null
&& preference.getCachedDevice().getGroupId() == cachedDevice.getGroupId()) {
- preference.setProgress(volume);
+ // If the callback return invalid volume, try to get the volume from
+ // AudioManager.STREAM_MUSIC
+ int finalVolume = getAudioVolumeIfNeeded(volume);
+ Log.d(
+ TAG,
+ "onDeviceVolumeChanged: set volume to "
+ + finalVolume
+ + " for "
+ + device.getAnonymizedAddress());
+ ThreadUtils.postOnMainThread(
+ () -> {
+ preference.setProgress(finalVolume);
+ });
}
}
};
}
+
+ private int getAudioVolumeIfNeeded(int volume) {
+ if (volume >= 0) return volume;
+ try {
+ AudioManager audioManager = mContext.getSystemService(AudioManager.class);
+ int max = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
+ int min = audioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC);
+ return Math.round(
+ audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) * 255f / (max - min));
+ } catch (RuntimeException e) {
+ Log.e(TAG, "Fail to fetch current music stream volume, error = " + e);
+ return volume;
+ }
+ }
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
index 3808b60..9dd9fb0 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
@@ -21,33 +21,23 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
-import com.android.settings.bluetooth.Utils;
import com.android.settings.widget.SeekBarPreference;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
-import com.android.settingslib.bluetooth.LocalBluetoothManager;
public class AudioSharingDeviceVolumePreference extends SeekBarPreference {
- private static final String TAG = "AudioSharingDeviceVolumePreference";
public static final int MIN_VOLUME = 0;
public static final int MAX_VOLUME = 255;
protected SeekBar mSeekBar;
- private final LocalBluetoothManager mLocalBtManager;
private final CachedBluetoothDevice mCachedDevice;
- private final SeekBar.OnSeekBarChangeListener mListener;
public AudioSharingDeviceVolumePreference(
- Context context,
- @NonNull CachedBluetoothDevice device,
- SeekBar.OnSeekBarChangeListener listener) {
+ Context context, @NonNull CachedBluetoothDevice device) {
super(context);
setLayoutResource(R.layout.preference_volume_slider);
- mLocalBtManager = Utils.getLocalBtManager(context);
mCachedDevice = device;
- mListener = listener;
}
@Nullable
@@ -55,19 +45,12 @@
return mCachedDevice;
}
- @Override
- public void onBindViewHolder(PreferenceViewHolder view) {
- super.onBindViewHolder(view);
- mSeekBar = (SeekBar) view.findViewById(com.android.internal.R.id.seekbar);
- mSeekBar.setMax(MAX_VOLUME);
- mSeekBar.setMin(MIN_VOLUME);
- mSeekBar.setOnSeekBarChangeListener(mListener);
- }
-
- /** Set the progress bar to target progress */
- public void setProgress(int progress) {
- if (mSeekBar != null) {
- mSeekBar.setProgress(progress);
- }
+ /**
+ * Initialize {@link AudioSharingDeviceVolumePreference}.
+ * Need to be called after creating the preference.
+ */
+ public void initialize() {
+ setMax(MAX_VOLUME);
+ setMin(MIN_VOLUME);
}
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
index bdf7f03..5cd86b4 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
@@ -32,7 +32,6 @@
import com.android.internal.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.flags.Flags;
import java.util.ArrayList;
import java.util.Locale;
@@ -73,7 +72,7 @@
Fragment host,
ArrayList<AudioSharingDeviceItem> deviceItems,
DialogEventListener listener) {
- if (!Flags.enableLeAudioSharing()) return;
+ if (!AudioSharingUtils.isFeatureEnabled()) return;
final FragmentManager manager = host.getChildFragmentManager();
sListener = listener;
if (manager.findFragmentByTag(TAG) == null) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
index 1840f58..365aed5 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
@@ -32,7 +32,6 @@
import com.android.internal.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.flags.Flags;
import java.util.ArrayList;
@@ -66,13 +65,16 @@
* Display the {@link AudioSharingDisconnectDialogFragment} dialog.
*
* @param host The Fragment this dialog will be hosted.
+ * @param deviceItems The existing connected device items in audio sharing session.
+ * @param newDeviceName The name of the latest connected device triggered this dialog.
+ * @param listener The callback to handle the user action on this dialog.
*/
public static void show(
Fragment host,
ArrayList<AudioSharingDeviceItem> deviceItems,
String newDeviceName,
DialogEventListener listener) {
- if (!Flags.enableLeAudioSharing()) return;
+ if (!AudioSharingUtils.isFeatureEnabled()) return;
final FragmentManager manager = host.getChildFragmentManager();
sListener = listener;
if (manager.findFragmentByTag(TAG) == null) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
index b9646ac..589c955 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
@@ -30,7 +30,6 @@
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.flags.Flags;
import java.util.ArrayList;
import java.util.Locale;
@@ -69,7 +68,7 @@
ArrayList<AudioSharingDeviceItem> deviceItems,
String newDeviceName,
DialogEventListener listener) {
- if (!Flags.enableLeAudioSharing()) return;
+ if (!AudioSharingUtils.isFeatureEnabled()) return;
final FragmentManager manager = host.getChildFragmentManager();
sListener = listener;
if (manager.findFragmentByTag(TAG) == null) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
index 8336691..36f66ff 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
@@ -19,16 +19,13 @@
import android.content.Context;
import androidx.annotation.NonNull;
-import androidx.lifecycle.DefaultLifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import com.android.settings.widget.ValidatedEditTextPreference;
public class AudioSharingNamePreferenceController extends AudioSharingBasePreferenceController
- implements ValidatedEditTextPreference.Validator,
- Preference.OnPreferenceChangeListener,
- DefaultLifecycleObserver {
+ implements ValidatedEditTextPreference.Validator, Preference.OnPreferenceChangeListener {
private static final String TAG = "AudioSharingNamePreferenceController";
@@ -59,11 +56,13 @@
@Override
public void onStart(@NonNull LifecycleOwner owner) {
+ super.onStart(owner);
// TODO
}
@Override
public void onStop(@NonNull LifecycleOwner owner) {
+ super.onStop(owner);
// TODO
}
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
index b6b4568..294e8b2 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
@@ -19,7 +19,6 @@
import android.content.Context;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.flags.Flags;
public class AudioSharingPreferenceController extends BasePreferenceController {
private static final String TAG = "AudioSharingPreferenceController";
@@ -33,6 +32,6 @@
@Override
public int getAvailabilityStatus() {
- return Flags.enableLeAudioSharing() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
index 495fad3..13416aa 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
@@ -25,7 +25,6 @@
import androidx.fragment.app.FragmentManager;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.flags.Flags;
public class AudioSharingStopDialogFragment extends InstrumentedDialogFragment {
private static final String TAG = "AudioSharingStopDialog";
@@ -50,9 +49,11 @@
* Display the {@link AudioSharingStopDialogFragment} dialog.
*
* @param host The Fragment this dialog will be hosted.
+ * @param newDeviceName The name of the latest connected device triggered this dialog.
+ * @param listener The callback to handle the user action on this dialog.
*/
public static void show(Fragment host, String newDeviceName, DialogEventListener listener) {
- if (!Flags.enableLeAudioSharing()) return;
+ if (!AudioSharingUtils.isFeatureEnabled()) return;
final FragmentManager manager = host.getChildFragmentManager();
sListener = listener;
if (manager.findFragmentByTag(TAG) == null) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
index be02519..69a18e8 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
@@ -16,24 +16,28 @@
package com.android.settings.connecteddevice.audiosharing;
+import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothLeBroadcast;
import android.bluetooth.BluetoothLeBroadcastAssistant;
import android.bluetooth.BluetoothLeBroadcastMetadata;
import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.content.BroadcastReceiver;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.util.Log;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.DefaultLifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.flags.Flags;
import com.android.settings.widget.SettingsMainSwitchBar;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
@@ -41,12 +45,16 @@
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.utils.ThreadUtils;
+import com.google.common.collect.ImmutableList;
+
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
+import java.util.stream.Collectors;
public class AudioSharingSwitchBarController extends BasePreferenceController
implements DefaultLifecycleObserver, OnCheckedChangeListener {
@@ -54,16 +62,35 @@
private static final String PREF_KEY = "audio_sharing_main_switch";
interface OnSwitchBarChangedListener {
- void onSwitchBarChanged(boolean newState);
+ void onSwitchBarChanged();
}
private final SettingsMainSwitchBar mSwitchBar;
+ private final BluetoothAdapter mBluetoothAdapter;
private final LocalBluetoothManager mBtManager;
private final LocalBluetoothLeBroadcast mBroadcast;
private final LocalBluetoothLeBroadcastAssistant mAssistant;
private final Executor mExecutor;
private final OnSwitchBarChangedListener mListener;
private DashboardFragment mFragment;
+ private Map<Integer, List<CachedBluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
+ private List<BluetoothDevice> mTargetActiveSinks = new ArrayList<>();
+ private ArrayList<AudioSharingDeviceItem> mDeviceItemsForSharing = new ArrayList<>();
+ @VisibleForTesting IntentFilter mIntentFilter;
+
+ @VisibleForTesting
+ BroadcastReceiver mReceiver =
+ new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (!BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) return;
+ int adapterState =
+ intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothDevice.ERROR);
+ mSwitchBar.setChecked(isBroadcasting());
+ mSwitchBar.setEnabled(adapterState == BluetoothAdapter.STATE_ON);
+ mListener.onSwitchBarChanged();
+ }
+ };
private final BluetoothLeBroadcast.Callback mBroadcastCallback =
new BluetoothLeBroadcast.Callback() {
@@ -94,24 +121,7 @@
+ broadcastId
+ ", metadata = "
+ metadata.getBroadcastName());
- Map<Integer, List<CachedBluetoothDevice>> groupedConnectedDevices =
- AudioSharingUtils.fetchConnectedDevicesByGroupId(mBtManager);
- ArrayList<AudioSharingDeviceItem> deviceItems =
- AudioSharingUtils.buildOrderedConnectedLeadAudioSharingDeviceItem(
- mBtManager,
- groupedConnectedDevices,
- /* filterByInSharing= */ false);
- // deviceItems is ordered. The active device is the first place if exits.
- ArrayList<AudioSharingDeviceItem> deviceItemsForSharing = deviceItems;
- if (!deviceItems.isEmpty() && deviceItems.get(0).isActive()) {
- for (CachedBluetoothDevice device :
- groupedConnectedDevices.get(deviceItems.get(0).getGroupId())) {
- // If active device exists for audio sharing, share to it
- // automatically once the broadcast is started.
- addSourceToSink(device.getDevice());
- }
- deviceItemsForSharing.remove(0);
- }
+ addSourceToTargetSinks(mTargetActiveSinks);
if (mFragment == null) {
Log.w(TAG, "Dialog fail to show due to null fragment.");
return;
@@ -120,16 +130,16 @@
() -> {
AudioSharingDialogFragment.show(
mFragment,
- deviceItemsForSharing,
+ mDeviceItemsForSharing,
item -> {
- if (groupedConnectedDevices.containsKey(
- item.getGroupId())) {
- for (CachedBluetoothDevice device :
- groupedConnectedDevices.get(
- item.getGroupId())) {
- addSourceToSink(device.getDevice());
- }
- }
+ addSourceToTargetSinks(
+ mGroupedConnectedDevices
+ .getOrDefault(
+ item.getGroupId(),
+ ImmutableList.of())
+ .stream()
+ .map(CachedBluetoothDevice::getDevice)
+ .collect(Collectors.toList()));
});
});
}
@@ -245,27 +255,34 @@
super(context, PREF_KEY);
mSwitchBar = switchBar;
mListener = listener;
+ mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+ mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
mBtManager = Utils.getLocalBtManager(context);
mBroadcast = mBtManager.getProfileManager().getLeAudioBroadcastProfile();
mAssistant = mBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
mExecutor = Executors.newSingleThreadExecutor();
- mSwitchBar.setChecked(isBroadcasting());
}
@Override
public void onStart(@NonNull LifecycleOwner owner) {
mSwitchBar.addOnSwitchChangeListener(this);
+ mContext.registerReceiver(mReceiver, mIntentFilter, Context.RECEIVER_EXPORTED_UNAUDITED);
if (mBroadcast != null) {
mBroadcast.registerServiceCallBack(mExecutor, mBroadcastCallback);
}
if (mAssistant != null) {
mAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
}
+ if (isAvailable()) {
+ mSwitchBar.setChecked(isBroadcasting());
+ mSwitchBar.setEnabled(mBluetoothAdapter != null && mBluetoothAdapter.isEnabled());
+ }
}
@Override
public void onStop(@NonNull LifecycleOwner owner) {
mSwitchBar.removeOnSwitchChangeListener(this);
+ mContext.unregisterReceiver(mReceiver);
if (mBroadcast != null) {
mBroadcast.unregisterServiceCallBack(mBroadcastCallback);
}
@@ -287,7 +304,7 @@
@Override
public int getAvailabilityStatus() {
- return Flags.enableLeAudioSharing() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
/**
@@ -306,6 +323,22 @@
mSwitchBar.setEnabled(true);
return;
}
+ mGroupedConnectedDevices = AudioSharingUtils.fetchConnectedDevicesByGroupId(mBtManager);
+ ArrayList<AudioSharingDeviceItem> deviceItems =
+ AudioSharingUtils.buildOrderedConnectedLeadAudioSharingDeviceItem(
+ mBtManager, mGroupedConnectedDevices, /* filterByInSharing= */ false);
+ // deviceItems is ordered. The active device is the first place if exits.
+ mDeviceItemsForSharing = new ArrayList<>(deviceItems);
+ if (!deviceItems.isEmpty() && deviceItems.get(0).isActive()) {
+ for (CachedBluetoothDevice device :
+ mGroupedConnectedDevices.getOrDefault(
+ deviceItems.get(0).getGroupId(), ImmutableList.of())) {
+ // If active device exists for audio sharing, share to it
+ // automatically once the broadcast is started.
+ mTargetActiveSinks.add(device.getDevice());
+ }
+ mDeviceItemsForSharing.remove(0);
+ }
// TODO: start broadcast with new API
mBroadcast.startBroadcast("test", null);
}
@@ -321,23 +354,27 @@
}
private void updateSwitch() {
- ThreadUtils.postOnMainThread(
- () -> {
- boolean isBroadcasting = isBroadcasting();
- if (mSwitchBar.isChecked() != isBroadcasting) {
- mSwitchBar.setChecked(isBroadcasting);
- }
- mSwitchBar.setEnabled(true);
- mListener.onSwitchBarChanged(isBroadcasting);
- });
+ var unused =
+ ThreadUtils.postOnBackgroundThread(
+ () -> {
+ boolean isBroadcasting = isBroadcasting();
+ ThreadUtils.postOnMainThread(
+ () -> {
+ if (mSwitchBar.isChecked() != isBroadcasting) {
+ mSwitchBar.setChecked(isBroadcasting);
+ }
+ mSwitchBar.setEnabled(true);
+ mListener.onSwitchBarChanged();
+ });
+ });
}
private boolean isBroadcasting() {
return mBroadcast != null && mBroadcast.isEnabled(null);
}
- private void addSourceToSink(BluetoothDevice sink) {
- if (mBroadcast == null || mAssistant == null) {
+ private void addSourceToTargetSinks(List<BluetoothDevice> sinks) {
+ if (sinks.isEmpty() || mBroadcast == null || mAssistant == null) {
Log.d(TAG, "Skip adding source to target.");
return;
}
@@ -347,12 +384,14 @@
Log.e(TAG, "Error: There is no broadcastMetadata.");
return;
}
- Log.d(
- TAG,
- "Add broadcast with broadcastId: "
- + broadcastMetadata.getBroadcastId()
- + "to the device: "
- + sink.getAnonymizedAddress());
- mAssistant.addSource(sink, broadcastMetadata, /* isGroupOp= */ false);
+ for (BluetoothDevice sink : sinks) {
+ Log.d(
+ TAG,
+ "Add broadcast with broadcastId: "
+ + broadcastMetadata.getBroadcastId()
+ + "to the device: "
+ + sink.getAnonymizedAddress());
+ mAssistant.addSource(sink, broadcastMetadata, /* isGroupOp= */ false);
+ }
}
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
index a43e098..10cac42 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
@@ -20,10 +20,12 @@
import android.bluetooth.BluetoothCsipSetCoordinator;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.bluetooth.BluetoothStatusCodes;
import android.content.Context;
import android.util.Log;
import android.widget.Toast;
+import com.android.settings.flags.Flags;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
@@ -244,9 +246,8 @@
Log.w(TAG, "getActiveSinksOnAssistant(): LocalBluetoothManager is null!");
return Optional.empty();
}
- var groupedDevices = AudioSharingUtils.fetchConnectedDevicesByGroupId(manager);
- var leadDevices =
- AudioSharingUtils.buildOrderedConnectedLeadDevices(manager, groupedDevices, false);
+ var groupedDevices = fetchConnectedDevicesByGroupId(manager);
+ var leadDevices = buildOrderedConnectedLeadDevices(manager, groupedDevices, false);
if (!leadDevices.isEmpty() && AudioSharingUtils.isActiveLeAudioDevice(leadDevices.get(0))) {
return Optional.of(leadDevices.get(0));
@@ -262,6 +263,16 @@
() -> Toast.makeText(context, message, Toast.LENGTH_LONG).show());
}
+ /** Returns if the le audio sharing is enabled. */
+ public static boolean isFeatureEnabled() {
+ BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+ return Flags.enableLeAudioSharing()
+ && adapter.isLeAudioBroadcastSourceSupported()
+ == BluetoothStatusCodes.FEATURE_SUPPORTED
+ && adapter.isLeAudioBroadcastAssistantSupported()
+ == BluetoothStatusCodes.FEATURE_SUPPORTED;
+ }
+
/** Automatically update active device if needed. */
public static void updateActiveDeviceIfNeeded(LocalBluetoothManager localBtManager) {
if (localBtManager == null) return;
diff --git a/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragment.java
index 47f70c7..e47e141 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragment.java
@@ -26,7 +26,6 @@
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.flags.Flags;
import java.util.ArrayList;
@@ -64,7 +63,7 @@
Fragment host,
ArrayList<AudioSharingDeviceItem> deviceItems,
DialogEventListener listener) {
- if (!Flags.enableLeAudioSharing()) return;
+ if (!AudioSharingUtils.isFeatureEnabled()) return;
final FragmentManager manager = host.getChildFragmentManager();
sListener = listener;
if (manager.findFragmentByTag(TAG) == null) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceController.java
index a6adf8a..b3d676c 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceController.java
@@ -22,7 +22,6 @@
import android.util.Log;
import androidx.annotation.NonNull;
-import androidx.lifecycle.DefaultLifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
import androidx.preference.PreferenceScreen;
@@ -31,6 +30,7 @@
import com.android.settingslib.bluetooth.BluetoothCallback;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
import java.util.HashMap;
@@ -39,7 +39,7 @@
/** PreferenceController to control the dialog to choose the active device for calls and alarms */
public class CallsAndAlarmsPreferenceController extends AudioSharingBasePreferenceController
- implements BluetoothCallback, DefaultLifecycleObserver {
+ implements BluetoothCallback {
private static final String TAG = "CallsAndAlarmsPreferenceController";
private static final String PREF_KEY = "calls_and_alarms";
@@ -86,6 +86,7 @@
@Override
public void onStart(@NonNull LifecycleOwner owner) {
+ super.onStart(owner);
if (mLocalBtManager != null) {
mLocalBtManager.getEventManager().registerCallback(this);
}
@@ -93,25 +94,46 @@
@Override
public void onStop(@NonNull LifecycleOwner owner) {
+ super.onStop(owner);
if (mLocalBtManager != null) {
mLocalBtManager.getEventManager().unregisterCallback(this);
}
}
@Override
- public void updateVisibility(boolean isVisible) {
- super.updateVisibility(isVisible);
- if (isVisible && mPreference != null) {
- updateDeviceItemsInSharingSession();
- // mDeviceItemsInSharingSession is ordered. The active device is the first place if
- // exits.
- if (!mDeviceItemsInSharingSession.isEmpty()
- && mDeviceItemsInSharingSession.get(0).isActive()) {
- mPreference.setSummary(mDeviceItemsInSharingSession.get(0).getName());
- } else {
- mPreference.setSummary("");
- }
- }
+ public void updateVisibility() {
+ if (mPreference == null) return;
+ var unused =
+ ThreadUtils.postOnBackgroundThread(
+ () -> {
+ boolean isVisible = isBroadcasting() && isBluetoothStateOn();
+ if (!isVisible) {
+ ThreadUtils.postOnMainThread(() -> mPreference.setVisible(false));
+ } else {
+ updateDeviceItemsInSharingSession();
+ // mDeviceItemsInSharingSession is ordered. The active device is the
+ // first
+ // place if exits.
+ if (!mDeviceItemsInSharingSession.isEmpty()
+ && mDeviceItemsInSharingSession.get(0).isActive()) {
+ ThreadUtils.postOnMainThread(
+ () -> {
+ mPreference.setVisible(true);
+ mPreference.setSummary(
+ mDeviceItemsInSharingSession
+ .get(0)
+ .getName());
+ });
+ } else {
+ ThreadUtils.postOnMainThread(
+ () -> {
+ mPreference.setVisible(true);
+ mPreference.setSummary(
+ "No active device in sharing");
+ });
+ }
+ }
+ });
}
@Override
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java
index f80fdab..f47526f 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java
@@ -22,7 +22,6 @@
import android.util.Log;
import androidx.annotation.NonNull;
-import androidx.lifecycle.DefaultLifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
import com.android.settings.bluetooth.Utils;
@@ -38,8 +37,7 @@
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
-public class AudioStreamsCategoryController extends AudioSharingBasePreferenceController
- implements DefaultLifecycleObserver {
+public class AudioStreamsCategoryController extends AudioSharingBasePreferenceController {
private static final String TAG = "AudioStreamsCategoryController";
private static final boolean DEBUG = BluetoothUtils.D;
private final LocalBluetoothManager mLocalBtManager;
@@ -50,7 +48,7 @@
public void onActiveDeviceChanged(
@Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
if (bluetoothProfile == BluetoothProfile.LE_AUDIO) {
- updateVisibility(isBroadcasting());
+ updateVisibility();
}
}
};
@@ -63,14 +61,15 @@
@Override
public void onStart(@NonNull LifecycleOwner owner) {
+ super.onStart(owner);
if (mLocalBtManager != null) {
mLocalBtManager.getEventManager().registerCallback(mBluetoothCallback);
}
- updateVisibility(isBroadcasting());
}
@Override
public void onStop(@NonNull LifecycleOwner owner) {
+ super.onStop(owner);
if (mLocalBtManager != null) {
mLocalBtManager.getEventManager().unregisterCallback(mBluetoothCallback);
}
@@ -84,21 +83,28 @@
}
@Override
- public void updateVisibility(boolean isBroadcasting) {
+ public void updateVisibility() {
+ if (mPreference == null) return;
mExecutor.execute(
() -> {
boolean hasActiveLe =
AudioSharingUtils.getActiveSinkOnAssistant(mLocalBtManager).isPresent();
+ boolean isBroadcasting = isBroadcasting();
+ boolean isBluetoothOn = isBluetoothStateOn();
if (DEBUG) {
Log.d(
TAG,
"updateVisibility() isBroadcasting : "
+ isBroadcasting
+ " hasActiveLe : "
- + hasActiveLe);
+ + hasActiveLe
+ + " is BT on : "
+ + isBluetoothOn);
}
ThreadUtils.postOnMainThread(
- () -> super.updateVisibility(hasActiveLe && !isBroadcasting));
+ () ->
+ mPreference.setVisible(
+ isBluetoothOn && hasActiveLe && !isBroadcasting));
});
}
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
index 562427f..a673cb4 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
@@ -17,6 +17,7 @@
package com.android.settings.connecteddevice.audiosharing.audiostreams;
import android.content.Context;
+import android.content.Intent;
import android.os.Bundle;
import com.android.settings.R;
@@ -58,10 +59,17 @@
@Override
public void onAttach(Context context) {
super.onAttach(context);
+ use(AudioStreamsScanQrCodeController.class).setFragment(this);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
+
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ // TODO(chelseahao): implementation.
+ }
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeController.java
new file mode 100644
index 0000000..12b46e5
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeController.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing.audiostreams;
+
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.qrcode.QrCodeScanModeActivity;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.bluetooth.BluetoothBroadcastUtils;
+import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
+
+public class AudioStreamsScanQrCodeController extends BasePreferenceController
+ implements DefaultLifecycleObserver {
+ private static final String TAG = "AudioStreamsProgressCategoryController";
+ private static final boolean DEBUG = BluetoothUtils.D;
+ private static final String KEY = "audio_streams_scan_qr_code";
+ private static final int REQUEST_SCAN_BT_BROADCAST_QR_CODE = 0;
+ private final BluetoothCallback mBluetoothCallback =
+ new BluetoothCallback() {
+ @Override
+ public void onActiveDeviceChanged(
+ @Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
+ if (bluetoothProfile == BluetoothProfile.LE_AUDIO) {
+ updateVisibility();
+ }
+ }
+ };
+
+ private final LocalBluetoothManager mLocalBtManager;
+ private AudioStreamsDashboardFragment mFragment;
+ private Preference mPreference;
+
+ public AudioStreamsScanQrCodeController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ mLocalBtManager = Utils.getLocalBtManager(mContext);
+ }
+
+ public void setFragment(AudioStreamsDashboardFragment fragment) {
+ mFragment = fragment;
+ }
+
+ @Override
+ public void onStart(@NonNull LifecycleOwner owner) {
+ if (mLocalBtManager != null) {
+ mLocalBtManager.getEventManager().registerCallback(mBluetoothCallback);
+ }
+ }
+
+ @Override
+ public void onStop(@NonNull LifecycleOwner owner) {
+ if (mLocalBtManager != null) {
+ mLocalBtManager.getEventManager().unregisterCallback(mBluetoothCallback);
+ }
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ if (mPreference == null) {
+ Log.w(TAG, "displayPreference() mPreference is null!");
+ return;
+ }
+ mPreference.setOnPreferenceClickListener(
+ preference -> {
+ if (mFragment == null) {
+ Log.w(TAG, "displayPreference() mFragment is null!");
+ return false;
+ }
+ if (preference.getKey().equals(KEY)) {
+ Intent intent = new Intent(mContext, QrCodeScanModeActivity.class);
+ intent.setAction(
+ BluetoothBroadcastUtils.ACTION_BLUETOOTH_LE_AUDIO_QR_CODE_SCANNER);
+ mFragment.startActivityForResult(intent, REQUEST_SCAN_BT_BROADCAST_QR_CODE);
+ if (DEBUG) {
+ Log.w(TAG, "displayPreference() sent intent : " + intent);
+ }
+ return true;
+ }
+ return false;
+ });
+ }
+
+ private void updateVisibility() {
+ ThreadUtils.postOnBackgroundThread(
+ () -> {
+ boolean hasActiveLe =
+ AudioSharingUtils.getActiveSinkOnAssistant(mLocalBtManager).isPresent();
+ ThreadUtils.postOnMainThread(() -> mPreference.setVisible(hasActiveLe));
+ });
+ }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeActivity.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeActivity.java
index d6d0634..091ebcb 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeActivity.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeActivity.java
@@ -16,10 +16,6 @@
package com.android.settings.connecteddevice.audiosharing.audiostreams.qrcode;
-import static com.android.settingslib.bluetooth.BluetoothBroadcastUtils.EXTRA_BLUETOOTH_DEVICE_SINK;
-import static com.android.settingslib.bluetooth.BluetoothBroadcastUtils.EXTRA_BLUETOOTH_SINK_IS_GROUP;
-
-import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
@@ -44,9 +40,6 @@
private static final boolean DEBUG = BluetoothUtils.D;
private static final String TAG = "QrCodeScanModeActivity";
- private boolean mIsGroupOp;
- private BluetoothDevice mSink;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -88,8 +81,6 @@
Log.d(TAG, "showQrCodeScannerFragment");
}
- mSink = intent.getParcelableExtra(EXTRA_BLUETOOTH_DEVICE_SINK);
- mIsGroupOp = intent.getBooleanExtra(EXTRA_BLUETOOTH_SINK_IS_GROUP, false);
if (DEBUG) {
Log.d(TAG, "get extra from intent");
}
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 554d23e..6d1d4e8 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -16,7 +16,6 @@
package com.android.settings.core.gateway;
-import com.android.settings.AllInOneTetherSettings;
import com.android.settings.DisplaySettings;
import com.android.settings.IccLockSettings;
import com.android.settings.MainClear;
@@ -205,7 +204,6 @@
WifiNetworkDetailsFragment.class.getName(),
ConfigureWifiSettings.class.getName(),
SavedAccessPointsWifiSettings2.class.getName(),
- AllInOneTetherSettings.class.getName(),
TetherSettings.class.getName(),
SmartAutoRotatePreferenceFragment.class.getName(),
WifiP2pSettings.class.getName(),
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
index dc1b792..a70d7d8 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
@@ -322,7 +322,7 @@
personalFragment.setArguments(personalOnly);
fragments.add(personalFragment);
- if (managedProfileInfoProvider.getManagedProfile(context) != null) {
+ if (managedProfileInfoProvider.isManagedProfilePresent(context)) {
final Bundle workOnly = bundle != null ? bundle.deepCopy() : new Bundle();
workOnly.putInt(EXTRA_PROFILE, ProfileType.WORK);
final Fragment workFragment =
@@ -361,8 +361,9 @@
}
interface ManagedProfileInfoProvider {
- default UserHandle getManagedProfile(Context context) {
- return Utils.getManagedProfile(context.getSystemService(UserManager.class));
+ default boolean isManagedProfilePresent(Context context) {
+ return Utils.doesProfileOfTypeExists(
+ context.getSystemService(UserManager.class), ProfileType.WORK);
}
}
diff --git a/src/com/android/settings/datetime/AutoTimeFormatPreferenceController.java b/src/com/android/settings/datetime/AutoTimeFormatPreferenceController.java
index 59f7f72..44e7cc6 100644
--- a/src/com/android/settings/datetime/AutoTimeFormatPreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimeFormatPreferenceController.java
@@ -19,53 +19,33 @@
import android.content.Context;
import android.provider.Settings;
import android.provider.Settings.System;
-import android.text.TextUtils;
import android.text.format.DateFormat;
-import androidx.preference.Preference;
-import androidx.preference.TwoStatePreference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
import java.util.Locale;
-public class AutoTimeFormatPreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin {
+public class AutoTimeFormatPreferenceController extends TogglePreferenceController {
- private static final String KEY_AUTO_24_HOUR = "auto_24hour";
-
- public AutoTimeFormatPreferenceController(Context context, UpdateTimeAndDateCallback callback) {
- super(context);
+ public AutoTimeFormatPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
}
@Override
- public boolean isAvailable() {
- return true;
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
}
@Override
- public String getPreferenceKey() {
- return KEY_AUTO_24_HOUR;
+ public boolean isChecked() {
+ return isAutoTimeFormatSelection(mContext);
}
@Override
- public void updateState(Preference preference) {
- if (!(preference instanceof TwoStatePreference)) {
- return;
- }
- ((TwoStatePreference) preference).setChecked(isAutoTimeFormatSelection(mContext));
- }
-
- @Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- if (!(preference instanceof TwoStatePreference)
- || !TextUtils.equals(KEY_AUTO_24_HOUR, preference.getKey())) {
- return false;
- }
- boolean auto24HourEnabled = ((TwoStatePreference) preference).isChecked();
+ public boolean setChecked(boolean isChecked) {
Boolean is24Hour;
- if (auto24HourEnabled) {
+ if (isChecked) {
is24Hour = null;
} else {
is24Hour = is24HourLocale(mContext.getResources().getConfiguration().locale);
@@ -74,6 +54,11 @@
return true;
}
+ @Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_system;
+ }
+
boolean is24HourLocale(Locale locale) {
return DateFormat.is24HourLocale(locale);
}
diff --git a/src/com/android/settings/datetime/AutoTimePreferenceController.java b/src/com/android/settings/datetime/AutoTimePreferenceController.java
index ca1d4ae..434eba9 100644
--- a/src/com/android/settings/datetime/AutoTimePreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimePreferenceController.java
@@ -27,28 +27,26 @@
import android.app.time.TimeManager;
import android.content.Context;
-import androidx.preference.Preference;
-import androidx.preference.TwoStatePreference;
-
import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
-public class AutoTimePreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+public class AutoTimePreferenceController extends TogglePreferenceController {
- private static final String KEY_AUTO_TIME = "auto_time";
- private final UpdateTimeAndDateCallback mCallback;
+ private UpdateTimeAndDateCallback mCallback;
private final TimeManager mTimeManager;
- public AutoTimePreferenceController(Context context, UpdateTimeAndDateCallback callback) {
- super(context);
+ public AutoTimePreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
mTimeManager = context.getSystemService(TimeManager.class);
+ }
+
+ public void setDateAndTimeCallback(UpdateTimeAndDateCallback callback) {
mCallback = callback;
}
@Override
- public boolean isAvailable() {
+ public int getAvailabilityStatus() {
TimeCapabilities timeCapabilities =
getTimeCapabilitiesAndConfig().getCapabilities();
int capability = timeCapabilities.getConfigureAutoDetectionEnabledCapability();
@@ -57,43 +55,31 @@
// This method handles the "is visible?" check.
switch (capability) {
case CAPABILITY_NOT_SUPPORTED:
- return false;
+ return DISABLED_DEPENDENT_SETTING;
case CAPABILITY_POSSESSED:
- return true;
case CAPABILITY_NOT_ALLOWED:
// This case is expected for enterprise restrictions, where the toggle should be
// present but disabled. Disabling is handled declaratively via the
// settings:userRestriction attribute in .xml. The client-side logic is expected to
// concur with the capabilities logic in the system server.
- return true;
case CAPABILITY_NOT_APPLICABLE:
// CAPABILITY_NOT_APPLICABLE is not currently expected, so this is return value is
// arbitrary.
- return true;
+ return AVAILABLE;
default:
throw new IllegalStateException("Unknown capability=" + capability);
}
}
@Override
- public void updateState(Preference preference) {
- if (!(preference instanceof TwoStatePreference)) {
- return;
- }
-
- ((TwoStatePreference) preference).setChecked(isEnabled());
+ public boolean isChecked() {
+ return isEnabled();
}
@Override
- public String getPreferenceKey() {
- return KEY_AUTO_TIME;
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- boolean autoTimeEnabled = (Boolean) newValue;
+ public boolean setChecked(boolean isChecked) {
TimeConfiguration configuration = new TimeConfiguration.Builder()
- .setAutoDetectionEnabled(autoTimeEnabled)
+ .setAutoDetectionEnabled(isChecked)
.build();
boolean result = mTimeManager.updateTimeConfiguration(configuration);
@@ -101,6 +87,11 @@
return result;
}
+ @Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_system;
+ }
+
/** Returns whether the preference should be "checked", i.e. set to the "on" position. */
@VisibleForTesting
public boolean isEnabled() {
diff --git a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
index c821ad4..011cc97 100644
--- a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
@@ -27,36 +27,42 @@
import android.app.time.TimeZoneConfiguration;
import android.content.Context;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.TwoStatePreference;
-
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.core.TogglePreferenceController;
-public class AutoTimeZonePreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+public class AutoTimeZonePreferenceController extends TogglePreferenceController {
- private static final String KEY_AUTO_TIME_ZONE = "auto_zone";
-
- private final boolean mIsFromSUW;
- private final UpdateTimeAndDateCallback mCallback;
+ private boolean mIsFromSUW;
+ private UpdateTimeAndDateCallback mCallback;
private final TimeManager mTimeManager;
- public AutoTimeZonePreferenceController(Context context, UpdateTimeAndDateCallback callback,
- boolean isFromSUW) {
- super(context);
+ public AutoTimeZonePreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
mTimeManager = context.getSystemService(TimeManager.class);
+ }
+
+ /**
+ * Set the Time and Date callback
+ */
+ public AutoTimeZonePreferenceController setTimeAndDateCallback(
+ UpdateTimeAndDateCallback callback) {
mCallback = callback;
+ return this;
+ }
+
+ /**
+ * Set if current fragment is launched via SUW
+ */
+ public AutoTimeZonePreferenceController setFromSUW(boolean isFromSUW) {
mIsFromSUW = isFromSUW;
+ return this;
}
@Override
- public boolean isAvailable() {
+ public int getAvailabilityStatus() {
if (mIsFromSUW) {
- return false;
+ return DISABLED_DEPENDENT_SETTING;
}
TimeZoneCapabilities timeZoneCapabilities =
@@ -67,43 +73,31 @@
// This method handles the "is visible?" check.
switch (capability) {
case CAPABILITY_NOT_SUPPORTED:
- return false;
+ return DISABLED_DEPENDENT_SETTING;
case CAPABILITY_POSSESSED:
- return true;
case CAPABILITY_NOT_ALLOWED:
// This case is expected for enterprise restrictions, where the toggle should be
// present but disabled. Disabling is handled declaratively via the
// settings:userRestriction attribute in .xml. The client-side logic is expected to
// concur with the capabilities logic in the system server.
- return true;
case CAPABILITY_NOT_APPLICABLE:
// CAPABILITY_NOT_APPLICABLE is not currently expected, so this is return value is
// arbitrary.
- return true;
+ return AVAILABLE;
default:
throw new IllegalStateException("Unknown capability=" + capability);
}
}
@Override
- public String getPreferenceKey() {
- return KEY_AUTO_TIME_ZONE;
+ public boolean isChecked() {
+ return isEnabled();
}
@Override
- public void updateState(Preference preference) {
- if (!(preference instanceof TwoStatePreference)) {
- return;
- }
-
- ((TwoStatePreference) preference).setChecked(isEnabled());
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- boolean autoZoneEnabled = (Boolean) newValue;
+ public boolean setChecked(boolean isChecked) {
TimeZoneConfiguration configuration = new TimeZoneConfiguration.Builder()
- .setAutoDetectionEnabled(autoZoneEnabled)
+ .setAutoDetectionEnabled(isChecked)
.build();
boolean result = mTimeManager.updateTimeZoneConfiguration(configuration);
@@ -112,6 +106,11 @@
}
@Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_system;
+ }
+
+ @Override
public CharSequence getSummary() {
// If auto time zone cannot enable telephony fallback and is capable of location, then auto
// time zone must use location.
@@ -124,12 +123,6 @@
return "";
}
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- refreshSummary(screen.findPreference(getPreferenceKey()));
- }
-
@VisibleForTesting
boolean isEnabled() {
TimeZoneConfiguration config = getTimeZoneCapabilitiesAndConfig().getConfiguration();
diff --git a/src/com/android/settings/datetime/DatePreferenceController.java b/src/com/android/settings/datetime/DatePreferenceController.java
index eef5526..02aba6e 100644
--- a/src/com/android/settings/datetime/DatePreferenceController.java
+++ b/src/com/android/settings/datetime/DatePreferenceController.java
@@ -33,14 +33,12 @@
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.core.BasePreferenceController;
import java.util.Calendar;
-public class DatePreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin, DatePickerDialog.OnDateSetListener {
+public class DatePreferenceController extends BasePreferenceController
+ implements DatePickerDialog.OnDateSetListener {
public interface DatePreferenceHost extends UpdateTimeAndDateCallback {
void showDatePicker();
@@ -49,38 +47,39 @@
public static final int DIALOG_DATEPICKER = 0;
private static final String TAG = "DatePreferenceController";
- private static final String KEY_DATE = "date";
- private final DatePreferenceHost mHost;
+ private DatePreferenceHost mHost;
private final TimeManager mTimeManager;
- public DatePreferenceController(Context context, DatePreferenceHost host) {
- super(context);
- mHost = host;
+ public DatePreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
mTimeManager = context.getSystemService(TimeManager.class);
}
+ public void setHost(DatePreferenceHost host) {
+ mHost = host;
+ }
+
@Override
- public boolean isAvailable() {
- return true;
+ public int getAvailabilityStatus() {
+ return isEnabled() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
}
@Override
public void updateState(Preference preference) {
- if (!(preference instanceof RestrictedPreference)) {
- return;
- }
- final Calendar now = Calendar.getInstance();
- preference.setSummary(DateFormat.getLongDateFormat(mContext).format(now.getTime()));
- if (!((RestrictedPreference) preference).isDisabledByAdmin()) {
- boolean enableManualDateSelection = isEnabled();
- preference.setEnabled(enableManualDateSelection);
- }
+ super.updateState(preference);
+ preference.setEnabled(isEnabled());
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ Calendar now = Calendar.getInstance();
+ return DateFormat.getLongDateFormat(mContext).format(now.getTime());
}
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
- if (!TextUtils.equals(preference.getKey(), KEY_DATE)) {
+ if (!TextUtils.equals(getPreferenceKey(), preference.getKey())) {
return false;
}
mHost.showDatePicker();
@@ -88,11 +87,6 @@
}
@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);
diff --git a/src/com/android/settings/datetime/DateTimeSettings.java b/src/com/android/settings/datetime/DateTimeSettings.java
index 367146b..fb1dd19 100644
--- a/src/com/android/settings/datetime/DateTimeSettings.java
+++ b/src/com/android/settings/datetime/DateTimeSettings.java
@@ -16,21 +16,17 @@
package com.android.settings.datetime;
-import android.app.Activity;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.app.timedetector.TimeDetectorHelper;
import android.content.Context;
-import android.content.Intent;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.search.SearchIndexable;
-import java.util.ArrayList;
-import java.util.List;
+import com.google.android.setupcompat.util.WizardManagerHelper;
@SearchIndexable
public class DateTimeSettings extends DashboardFragment implements
@@ -59,40 +55,19 @@
@Override
public void onAttach(Context context) {
super.onAttach(context);
+ boolean isFromSUW = WizardManagerHelper.isAnySetupWizard(getIntent());
getSettingsLifecycle().addObserver(new TimeChangeListenerMixin(context, this));
use(LocationTimeZoneDetectionPreferenceController.class).setFragment(this);
- }
+ use(AutoTimePreferenceController.class).setDateAndTimeCallback(this);
+ use(DatePreferenceController.class).setHost(this);
+ use(TimePreferenceController.class).setHost(this);
+ use(AutoTimeZonePreferenceController.class)
+ .setTimeAndDateCallback(this)
+ .setFromSUW(isFromSUW);
+ use(TimeFormatPreferenceController.class)
+ .setTimeAndDateCallback(this)
+ .setFromSUW(isFromSUW);
- @Override
- protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
- final List<AbstractPreferenceController> controllers = new ArrayList<>();
- final Activity activity = getActivity();
- final Intent intent = activity.getIntent();
- final boolean isFromSUW = intent.getBooleanExtra(EXTRA_IS_FROM_SUW, false);
-
- final AutoTimePreferenceController autoTimePreferenceController =
- new AutoTimePreferenceController(
- activity, this /* UpdateTimeAndDateCallback */);
- controllers.add(autoTimePreferenceController);
- DatePreferenceController datePreferenceController = new DatePreferenceController(
- activity, this /* UpdateTimeAndDateCallback */);
- controllers.add(datePreferenceController);
- controllers.add(new TimePreferenceController(
- activity, this /* UpdateTimeAndDateCallback */, datePreferenceController));
-
- final AutoTimeZonePreferenceController autoTimeZonePreferenceController =
- new AutoTimeZonePreferenceController(
- activity, this /* UpdateTimeAndDateCallback */, isFromSUW);
- controllers.add(autoTimeZonePreferenceController);
- controllers.add(new TimeZonePreferenceController(activity));
-
- final AutoTimeFormatPreferenceController autoTimeFormatPreferenceController =
- new AutoTimeFormatPreferenceController(
- activity, this /* UpdateTimeAndDateCallback */);
- controllers.add(autoTimeFormatPreferenceController);
- controllers.add(new TimeFormatPreferenceController(
- activity, this /* UpdateTimeAndDateCallback */, isFromSUW));
- return controllers;
}
@Override
diff --git a/src/com/android/settings/datetime/TimeFormatPreferenceController.java b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
index 2d2e0a5..22f7509 100644
--- a/src/com/android/settings/datetime/TimeFormatPreferenceController.java
+++ b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
@@ -19,77 +19,93 @@
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
-import android.text.TextUtils;
import android.text.format.DateFormat;
import androidx.preference.Preference;
-import androidx.preference.TwoStatePreference;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
import java.util.Calendar;
import java.util.Date;
-public class TimeFormatPreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin {
+public class TimeFormatPreferenceController extends TogglePreferenceController {
static final String HOURS_12 = "12";
static final String HOURS_24 = "24";
- private static final String KEY_TIME_FORMAT = "24 hour";
-
// Used for showing the current date format, which looks like "12/31/2010", "2010/12/13", etc.
// The date value is stubs (independent of actual date).
private final Calendar mDummyDate;
- private final boolean mIsFromSUW;
- private final UpdateTimeAndDateCallback mUpdateTimeAndDateCallback;
+ private boolean mIsFromSUW;
+ private UpdateTimeAndDateCallback mUpdateTimeAndDateCallback;
- public TimeFormatPreferenceController(Context context, UpdateTimeAndDateCallback callback,
- boolean isFromSUW) {
- super(context);
- mIsFromSUW = isFromSUW;
+ public TimeFormatPreferenceController(Context context, String key) {
+ super(context, key);
mDummyDate = Calendar.getInstance();
+ }
+
+ /**
+ * Set the Time and Date callback
+ */
+ public TimeFormatPreferenceController setTimeAndDateCallback(
+ UpdateTimeAndDateCallback callback) {
mUpdateTimeAndDateCallback = callback;
+ return this;
+ }
+
+ /**
+ * Set if current fragment is launched via SUW
+ */
+ public TimeFormatPreferenceController setFromSUW(boolean isFromSUW) {
+ mIsFromSUW = isFromSUW;
+ return this;
}
@Override
- public boolean isAvailable() {
- return !mIsFromSUW;
+ public int getAvailabilityStatus() {
+ if (mIsFromSUW) {
+ return DISABLED_DEPENDENT_SETTING;
+ }
+ if (AutoTimeFormatPreferenceController.isAutoTimeFormatSelection(mContext)) {
+ return DISABLED_DEPENDENT_SETTING;
+ }
+ return AVAILABLE;
}
@Override
public void updateState(Preference preference) {
- if (!(preference instanceof TwoStatePreference)) {
- return;
- }
- preference.setEnabled(
- !AutoTimeFormatPreferenceController.isAutoTimeFormatSelection(mContext));
- ((TwoStatePreference) preference).setChecked(is24Hour());
+ super.updateState(preference);
+ preference.setEnabled(getAvailabilityStatus() == AVAILABLE);
+ refreshSummary(preference);
+ }
+
+ @Override
+ public boolean isChecked() {
+ return is24Hour();
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ update24HourFormat(mContext, isChecked);
+ mUpdateTimeAndDateCallback.updateTimeAndDateDisplay(mContext);
+ return true;
+ }
+
+ @Override
+ public CharSequence getSummary() {
final Calendar now = Calendar.getInstance();
mDummyDate.setTimeZone(now.getTimeZone());
// We use December 31st because it's unambiguous when demonstrating the date format.
// We use 13:00 so we can demonstrate the 12/24 hour options.
mDummyDate.set(now.get(Calendar.YEAR), 11, 31, 13, 0, 0);
final Date dummyDate = mDummyDate.getTime();
- preference.setSummary(DateFormat.getTimeFormat(mContext).format(dummyDate));
+ return DateFormat.getTimeFormat(mContext).format(dummyDate);
}
@Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- if (!(preference instanceof TwoStatePreference)
- || !TextUtils.equals(KEY_TIME_FORMAT, preference.getKey())) {
- return false;
- }
- final boolean is24Hour = ((TwoStatePreference) preference).isChecked();
- update24HourFormat(mContext, is24Hour);
- mUpdateTimeAndDateCallback.updateTimeAndDateDisplay(mContext);
- return true;
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_TIME_FORMAT;
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_system;
}
private boolean is24Hour() {
diff --git a/src/com/android/settings/datetime/TimePreferenceController.java b/src/com/android/settings/datetime/TimePreferenceController.java
index 09950fc..1923d55 100644
--- a/src/com/android/settings/datetime/TimePreferenceController.java
+++ b/src/com/android/settings/datetime/TimePreferenceController.java
@@ -16,7 +16,11 @@
package com.android.settings.datetime;
+import static android.app.time.Capabilities.CAPABILITY_POSSESSED;
+
import android.app.TimePickerDialog;
+import android.app.time.TimeCapabilities;
+import android.app.time.TimeManager;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.TimeDetector;
import android.content.Context;
@@ -27,14 +31,12 @@
import androidx.preference.Preference;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.core.BasePreferenceController;
import java.util.Calendar;
-public class TimePreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin, TimePickerDialog.OnTimeSetListener {
+public class TimePreferenceController extends BasePreferenceController
+ implements TimePickerDialog.OnTimeSetListener {
public interface TimePreferenceHost extends UpdateTimeAndDateCallback {
void showTimePicker();
@@ -43,41 +45,39 @@
public static final int DIALOG_TIMEPICKER = 1;
private static final String TAG = "TimePreferenceController";
- private static final String KEY_TIME = "time";
- private final DatePreferenceController mDatePreferenceController;
- private final TimePreferenceHost mHost;
+ private TimePreferenceHost mHost;
+ private TimeManager mTimeManager;
+ public TimePreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ mTimeManager = context.getSystemService(TimeManager.class);
+ }
- public TimePreferenceController(Context context,
- TimePreferenceHost callback,
- DatePreferenceController datePreferenceController) {
- super(context);
- mHost = callback;
- mDatePreferenceController = datePreferenceController;
+ public void setHost(TimePreferenceHost host) {
+ mHost = host;
}
@Override
- public boolean isAvailable() {
- return true;
+ public int getAvailabilityStatus() {
+ return isEnabled() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
}
@Override
public void updateState(Preference preference) {
- if (!(preference instanceof RestrictedPreference)) {
- return;
- }
- final Calendar now = Calendar.getInstance();
- preference.setSummary(DateFormat.getTimeFormat(mContext).format(now.getTime()));
- if (!((RestrictedPreference) preference).isDisabledByAdmin()) {
- boolean enableManualTimeSelection = mDatePreferenceController.isEnabled();
- preference.setEnabled(enableManualTimeSelection);
- }
+ super.updateState(preference);
+ preference.setEnabled(isEnabled());
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ Calendar now = Calendar.getInstance();
+ return DateFormat.getTimeFormat(mContext).format(now.getTime());
}
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
- if (!TextUtils.equals(KEY_TIME, preference.getKey())) {
+ if (!TextUtils.equals(getPreferenceKey(), preference.getKey())) {
return false;
}
mHost.showTimePicker();
@@ -85,11 +85,6 @@
}
@Override
- public String getPreferenceKey() {
- return KEY_TIME;
- }
-
- @Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
if (mContext != null) {
setTime(hourOfDay, minute);
@@ -132,4 +127,16 @@
Log.w(TAG, "Unable to set time with suggestion=" + manualTimeSuggestion);
}
}
+
+ /**
+ * Returns whether selecting the preference should prompt for the user to enter the date
+ * manually. Exposed as public so that the time controller can easily share the same logic as
+ * the rules are identical for time.
+ */
+ public boolean isEnabled() {
+ TimeCapabilities timeZoneCapabilities =
+ mTimeManager.getTimeCapabilitiesAndConfig().getCapabilities();
+ int suggestManualTimeCapability = timeZoneCapabilities.getSetManualTimeCapability();
+ return suggestManualTimeCapability == CAPABILITY_POSSESSED;
+ }
}
diff --git a/src/com/android/settings/datetime/TimeZonePreferenceController.java b/src/com/android/settings/datetime/TimeZonePreferenceController.java
index cb9c38a..913640d 100644
--- a/src/com/android/settings/datetime/TimeZonePreferenceController.java
+++ b/src/com/android/settings/datetime/TimeZonePreferenceController.java
@@ -25,45 +25,34 @@
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.datetime.ZoneGetter;
import java.util.Calendar;
-public class TimeZonePreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin {
-
- private static final String KEY_TIMEZONE = "timezone";
+public class TimeZonePreferenceController extends BasePreferenceController {
private final TimeManager mTimeManager;
- public TimeZonePreferenceController(Context context) {
- super(context);
+ public TimeZonePreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
mTimeManager = context.getSystemService(TimeManager.class);
}
@Override
+ public CharSequence getSummary() {
+ return getTimeZoneOffsetAndName();
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return shouldEnableManualTimeZoneSelection() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
+ }
+
+ @Override
public void updateState(Preference preference) {
- if (!(preference instanceof RestrictedPreference)) {
- return;
- }
- preference.setSummary(getTimeZoneOffsetAndName());
- if (!((RestrictedPreference) preference).isDisabledByAdmin()) {
- boolean enableManualTimeZoneSelection = shouldEnableManualTimeZoneSelection();
- preference.setEnabled(enableManualTimeZoneSelection);
- }
- }
-
- @Override
- public boolean isAvailable() {
- return true;
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_TIMEZONE;
+ super.updateState(preference);
+ preference.setEnabled(shouldEnableManualTimeZoneSelection());
}
@VisibleForTesting
diff --git a/src/com/android/settings/development/DevelopmentAppPicker.java b/src/com/android/settings/development/DevelopmentAppPicker.java
new file mode 100644
index 0000000..7ef0869
--- /dev/null
+++ b/src/com/android/settings/development/DevelopmentAppPicker.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static android.app.Activity.RESULT_OK;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Process;
+import android.os.UserHandle;
+
+import com.android.settings.R;
+import com.android.settings.applications.defaultapps.DefaultAppPickerFragment;
+import com.android.settingslib.applications.DefaultAppInfo;
+
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+public class DevelopmentAppPicker extends DefaultAppPickerFragment {
+ public static final String EXTRA_REQUESTING_PERMISSION = "REQUESTING_PERMISSION";
+ public static final String EXTRA_DEBUGGABLE = "DEBUGGABLE";
+ public static final String EXTRA_SELECTING_APP = "SELECTING_APP";
+
+ private String mPermissionName;
+ private boolean mDebuggableOnly;
+ private String mSelectingApp;
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ Bundle arguments = getArguments();
+ if (arguments == null) {
+ return;
+ }
+ mPermissionName = arguments.getString(EXTRA_REQUESTING_PERMISSION);
+ mDebuggableOnly = arguments.getBoolean(EXTRA_DEBUGGABLE);
+ mSelectingApp = arguments.getString(EXTRA_SELECTING_APP);
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.DEVELOPMENT_APP_PICKER;
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.development_app_picker;
+ }
+
+ @Override
+ protected boolean shouldShowItemNone() {
+ return true;
+ }
+
+ @Override
+ protected List<DefaultAppInfo> getCandidates() {
+ List<DefaultAppInfo> packageInfoList = new ArrayList<DefaultAppInfo>();
+ Context context = getContext();
+ List<ApplicationInfo> installedApps = mPm.getInstalledApplications(0);
+ for (ApplicationInfo ai : installedApps) {
+ if (ai.uid == Process.SYSTEM_UID) {
+ continue;
+ }
+ // Filter out apps that are not debuggable if required.
+ if (mDebuggableOnly) {
+ // On a user build, we only allow debugging of apps that
+ // are marked as debuggable, otherwise (for platform development)
+ // we allow all apps.
+ if ((ai.flags & ApplicationInfo.FLAG_DEBUGGABLE) == 0
+ && "user".equals(Build.TYPE)) {
+ continue;
+ }
+ }
+
+ // Filter out apps that do not request the permission if required.
+ if (mPermissionName != null) {
+ boolean requestsPermission = false;
+ try {
+ PackageInfo pi = mPm.getPackageInfo(ai.packageName,
+ PackageManager.GET_PERMISSIONS);
+ if (pi.requestedPermissions == null) {
+ continue;
+ }
+ for (String requestedPermission : pi.requestedPermissions) {
+ if (requestedPermission.equals(mPermissionName)) {
+ requestsPermission = true;
+ break;
+ }
+ }
+ if (!requestsPermission) {
+ continue;
+ }
+ } catch (PackageManager.NameNotFoundException e) {
+ continue;
+ }
+ }
+ DefaultAppInfo appInfo = new DefaultAppInfo(context, mPm, UserHandle.myUserId(), ai);
+ packageInfoList.add(appInfo);
+ }
+ Collections.sort(packageInfoList, sLabelComparator);
+ return packageInfoList;
+ }
+
+ @Override
+ protected String getDefaultKey() {
+ return mSelectingApp;
+ }
+
+ @Override
+ protected boolean setDefaultKey(String key) {
+ DefaultAppInfo appInfo = (DefaultAppInfo) getCandidate(key);
+ Intent intent = new Intent();
+ if (appInfo != null && appInfo.packageItemInfo != null) {
+ intent.setAction(appInfo.packageItemInfo.packageName);
+ }
+ setResult(RESULT_OK, intent);
+ finish();
+ return true;
+ }
+
+ private static final Comparator<DefaultAppInfo> sLabelComparator =
+ new Comparator<DefaultAppInfo>() {
+ public int compare(DefaultAppInfo a, DefaultAppInfo b) {
+ return Collator.getInstance().compare(a.loadLabel(), b.loadLabel());
+ }
+ };
+}
diff --git a/src/com/android/settings/development/MockLocationAppPreferenceController.java b/src/com/android/settings/development/MockLocationAppPreferenceController.java
index b20ef02..d927c31 100644
--- a/src/com/android/settings/development/MockLocationAppPreferenceController.java
+++ b/src/com/android/settings/development/MockLocationAppPreferenceController.java
@@ -21,16 +21,20 @@
import android.Manifest;
import android.app.Activity;
import android.app.AppOpsManager;
+import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.provider.Settings;
import android.text.TextUtils;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
import java.util.List;
@@ -64,10 +68,26 @@
if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
return false;
}
- final Intent intent = new Intent(mContext, AppPicker.class);
- intent.putExtra(AppPicker.EXTRA_REQUESTIING_PERMISSION,
- Manifest.permission.ACCESS_MOCK_LOCATION);
- mFragment.startActivityForResult(intent, REQUEST_MOCK_LOCATION_APP);
+ if (Flags.deprecateListActivity()) {
+ final Bundle args = new Bundle();
+ args.putString(DevelopmentAppPicker.EXTRA_REQUESTING_PERMISSION,
+ Manifest.permission.ACCESS_MOCK_LOCATION);
+ final String debugApp = Settings.Global.getString(
+ mContext.getContentResolver(), Settings.Global.DEBUG_APP);
+ args.putString(DevelopmentAppPicker.EXTRA_SELECTING_APP, debugApp);
+ new SubSettingLauncher(mContext)
+ .setDestination(DevelopmentAppPicker.class.getName())
+ .setSourceMetricsCategory(SettingsEnums.DEVELOPMENT)
+ .setArguments(args)
+ .setTitleRes(com.android.settingslib.R.string.select_application)
+ .setResultListener(mFragment, REQUEST_MOCK_LOCATION_APP)
+ .launch();
+ } else {
+ final Intent intent = new Intent(mContext, AppPicker.class);
+ intent.putExtra(AppPicker.EXTRA_REQUESTIING_PERMISSION,
+ Manifest.permission.ACCESS_MOCK_LOCATION);
+ mFragment.startActivityForResult(intent, REQUEST_MOCK_LOCATION_APP);
+ }
return true;
}
diff --git a/src/com/android/settings/development/SelectDebugAppPreferenceController.java b/src/com/android/settings/development/SelectDebugAppPreferenceController.java
index f0b0b27..d691149 100644
--- a/src/com/android/settings/development/SelectDebugAppPreferenceController.java
+++ b/src/com/android/settings/development/SelectDebugAppPreferenceController.java
@@ -19,16 +19,20 @@
import static com.android.settings.development.DevelopmentOptionsActivityRequestCodes.REQUEST_CODE_DEBUG_APP;
import android.app.Activity;
+import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.os.Bundle;
import android.provider.Settings;
+import android.text.TextUtils;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
public class SelectDebugAppPreferenceController extends DeveloperOptionsPreferenceController
@@ -53,13 +57,29 @@
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
- if (DEBUG_APP_KEY.equals(preference.getKey())) {
+ if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+ return false;
+ }
+
+ if (Flags.deprecateListActivity()) {
+ final Bundle args = new Bundle();
+ args.putBoolean(DevelopmentAppPicker.EXTRA_DEBUGGABLE, true /* value */);
+ final String debugApp = Settings.Global.getString(
+ mContext.getContentResolver(), Settings.Global.DEBUG_APP);
+ args.putString(DevelopmentAppPicker.EXTRA_SELECTING_APP, debugApp);
+ new SubSettingLauncher(mContext)
+ .setDestination(DevelopmentAppPicker.class.getName())
+ .setSourceMetricsCategory(SettingsEnums.DEVELOPMENT)
+ .setArguments(args)
+ .setTitleRes(com.android.settingslib.R.string.select_application)
+ .setResultListener(mFragment, REQUEST_CODE_DEBUG_APP)
+ .launch();
+ } else {
final Intent intent = getActivityStartIntent();
intent.putExtra(AppPicker.EXTRA_DEBUGGABLE, true /* value */);
mFragment.startActivityForResult(intent, REQUEST_CODE_DEBUG_APP);
- return true;
}
- return false;
+ return true;
}
@Override
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
index a6dd732..0b88657 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
@@ -101,7 +101,7 @@
final LockPatternUtils lpu = new LockPatternUtils(this);
if (StorageManager.isFileEncrypted()) {
for (UserInfo user : getSystemService(UserManager.class).getUsers()) {
- if (StorageManager.isUserKeyUnlocked(user.id)) {
+ if (StorageManager.isCeStorageUnlocked(user.id)) {
continue;
}
if (!lpu.isSecure(user.id)) {
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java
index bf16ab0..f55f822 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java
@@ -83,7 +83,7 @@
final LockPatternUtils lpu = new LockPatternUtils(this);
if (StorageManager.isFileEncrypted()) {
for (UserInfo user : getSystemService(UserManager.class).getUsers()) {
- if (StorageManager.isUserKeyUnlocked(user.id)) {
+ if (StorageManager.isCeStorageUnlocked(user.id)) {
continue;
}
if (!lpu.isSecure(user.id)) {
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java
index 39b8290..fa71c34 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java
@@ -41,18 +41,17 @@
public class MainlineModuleVersionPreferenceController extends BasePreferenceController {
+ @VisibleForTesting
+ static final Intent MODULE_UPDATE_INTENT =
+ new Intent("android.settings.MODULE_UPDATE_SETTINGS");
+ @VisibleForTesting
+ static final Intent MODULE_UPDATE_V2_INTENT =
+ new Intent("android.settings.MODULE_UPDATE_VERSIONS");
+
private static final String TAG = "MainlineModuleControl";
private static final List<String> VERSION_NAME_DATE_PATTERNS = Arrays.asList("yyyy-MM-dd",
"yyyy-MM");
- @VisibleForTesting
- static final String MODULE_UPDATE_INTENT_ACTION =
- "android.settings.MODULE_UPDATE_SETTINGS";
- @VisibleForTesting
- static final String MODULE_UPDATE_V2_INTENT_ACTION =
- "android.settings.MODULE_UPDATE_VERSIONS";
- private final Intent mModuleUpdateIntent;
- private final Intent mModuleUpdateV2Intent;
private final PackageManager mPackageManager;
private String mModuleVersion;
@@ -60,13 +59,11 @@
public MainlineModuleVersionPreferenceController(Context context, String key) {
super(context, key);
mPackageManager = mContext.getPackageManager();
- mModuleUpdateIntent = new Intent(MODULE_UPDATE_INTENT_ACTION);
- mModuleUpdateV2Intent = new Intent(MODULE_UPDATE_V2_INTENT_ACTION);
if (Flags.mainlineModuleExplicitIntent()) {
- String packageName = mContext
- .getString(com.android.settings.R.string.config_mainline_module_update_package);
- mModuleUpdateIntent.setPackage(packageName);
- mModuleUpdateV2Intent.setPackage(packageName);
+ String packageName = mContext
+ .getString(com.android.settings.R.string.config_mainline_module_update_package);
+ MODULE_UPDATE_INTENT.setPackage(packageName);
+ MODULE_UPDATE_V2_INTENT.setPackage(packageName);
}
initModules();
}
@@ -96,17 +93,17 @@
super.updateState(preference);
final ResolveInfo resolvedV2 =
- mPackageManager.resolveActivity(mModuleUpdateV2Intent, 0 /* flags */);
+ mPackageManager.resolveActivity(MODULE_UPDATE_V2_INTENT, 0 /* flags */);
if (resolvedV2 != null) {
- preference.setIntent(mModuleUpdateV2Intent);
+ preference.setIntent(MODULE_UPDATE_V2_INTENT);
preference.setSelectable(true);
return;
}
final ResolveInfo resolved =
- mPackageManager.resolveActivity(mModuleUpdateIntent, 0 /* flags */);
+ mPackageManager.resolveActivity(MODULE_UPDATE_INTENT, 0 /* flags */);
if (resolved != null) {
- preference.setIntent(mModuleUpdateIntent);
+ preference.setIntent(MODULE_UPDATE_INTENT);
preference.setSelectable(true);
} else {
Log.d(TAG, "The ResolveInfo of the update intent is null.");
diff --git a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
index c24ad22..dfe571a 100644
--- a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
+++ b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
@@ -65,7 +65,7 @@
updateState(mPreference);
}
};
- mPeakRefreshRate = findHighestRefreshRateForDefaultDisplay(context);
+ mPeakRefreshRate = Math.round(findHighestRefreshRateForDefaultDisplay(context));
Log.d(
TAG,
"DEFAULT_REFRESH_RATE : "
diff --git a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
index 4a25238..15f2094 100644
--- a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
+++ b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
@@ -95,6 +95,9 @@
/** Suggest a list of package to set as POLICY_REJECT. */
public void setDenylist(Set<Integer> denylistTargetUids) {
+ if (denylistTargetUids == null) {
+ return;
+ }
final Set<Integer> manualDenylistUids = getDenylistAllUids(getManualDenylistPref());
denylistTargetUids.removeAll(manualDenylistUids);
@@ -105,27 +108,40 @@
return;
}
- // Store target denied uids into DynamicDenylistPref.
- final SharedPreferences.Editor editor = getDynamicDenylistPref().edit();
- editor.clear();
- denylistTargetUids.forEach(
- uid -> editor.putInt(String.valueOf(uid), POLICY_REJECT_METERED_BACKGROUND));
- editor.apply();
-
+ final ArraySet<Integer> failedUids = new ArraySet<>();
synchronized (mLock) {
// Set new added UIDs into REJECT policy.
for (int uid : denylistTargetUids) {
if (!lastDynamicDenylistUids.contains(uid)) {
- mNetworkPolicyManager.setUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
+ try {
+ mNetworkPolicyManager.setUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
+ } catch (Exception e) {
+ Log.e(TAG, "failed to setUidPolicy(REJECT) for " + uid, e);
+ failedUids.add(uid);
+ }
}
}
// Unset removed UIDs back to NONE policy.
for (int uid : lastDynamicDenylistUids) {
if (!denylistTargetUids.contains(uid)) {
- mNetworkPolicyManager.setUidPolicy(uid, POLICY_NONE);
+ try {
+ mNetworkPolicyManager.setUidPolicy(uid, POLICY_NONE);
+ } catch (Exception e) {
+ Log.e(TAG, "failed to setUidPolicy(NONE) for " + uid, e);
+ }
}
}
}
+
+ // Store target denied uids into DynamicDenylistPref.
+ final SharedPreferences.Editor editor = getDynamicDenylistPref().edit();
+ editor.clear();
+ denylistTargetUids.forEach(uid -> {
+ if (!failedUids.contains(uid)) {
+ editor.putInt(String.valueOf(uid), POLICY_REJECT_METERED_BACKGROUND);
+ }
+ });
+ editor.apply();
}
/** Return true if the target uid is in {@link #getManualDenylistPref()}. */
diff --git a/src/com/android/settings/inputmethod/ModifierKeysSettings.java b/src/com/android/settings/inputmethod/ModifierKeysSettings.java
index 2353c2c..f174598 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysSettings.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysSettings.java
@@ -58,7 +58,8 @@
protected boolean isPageSearchEnabled(Context context) {
return FeatureFlagUtils
.isEnabled(
- context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_MODIFIER_KEY);
+ context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_MODIFIER_KEY)
+ && !PhysicalKeyboardFragment.getHardKeyboards(context).isEmpty();
}
};
}
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index 1ca9ee6..0e95840 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
@@ -474,5 +474,10 @@
sir.xmlResId = R.xml.physical_keyboard_settings;
return Arrays.asList(sir);
}
+
+ @Override
+ protected boolean isPageSearchEnabled(Context context) {
+ return !getHardKeyboards(context).isEmpty();
+ }
};
}
diff --git a/src/com/android/settings/media/MediaOutputIndicatorSlice.java b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
index e2232e7..bb075c2 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorSlice.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
@@ -17,6 +17,7 @@
package com.android.settings.media;
import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_INDICATOR_SLICE_URI;
+import static com.android.settingslib.media.flags.Flags.enableOutputSwitcherForSystemRouting;
import android.annotation.ColorInt;
import android.content.Context;
@@ -58,7 +59,12 @@
}
final IconCompat icon = IconCompat.createWithResource(mContext,
com.android.internal.R.drawable.ic_settings_bluetooth);
- final CharSequence title = mContext.getString(R.string.media_output_label_title,
+ final int stringRes = enableOutputSwitcherForSystemRouting()
+ ? (getWorker().getActiveLocalMediaController() != null
+ ? R.string.media_output_label_title
+ : R.string.media_output_title_without_playing)
+ : R.string.media_output_label_title;
+ final CharSequence title = mContext.getString(stringRes,
Utils.getApplicationLabel(mContext, getWorker().getPackageName()));
final SliceAction primarySliceAction = SliceAction.create(
getBroadcastIntent(mContext), icon, ListBuilder.ICON_IMAGE, title);
@@ -117,28 +123,36 @@
// 2. worker is not null
// 3. Available devices are more than 0
// 4. The local media session is active and the state is playing.
+ // - if !enableOutputSwitcherForSystemRouting(), (4) will be bypass.
return getWorker() != null
&& !com.android.settingslib.Utils.isAudioModeOngoingCall(mContext)
&& getWorker().getMediaDevices().size() > 0
- && getWorker().getActiveLocalMediaController() != null;
+ && (enableOutputSwitcherForSystemRouting()
+ ? true : getWorker().getActiveLocalMediaController() != null);
}
@Override
public void onNotifyChange(Intent intent) {
final MediaController mediaController = getWorker().getActiveLocalMediaController();
- if (mediaController == null) {
+ // Launch media output dialog
+ if (enableOutputSwitcherForSystemRouting() && mediaController == null) {
+ mContext.sendBroadcast(new Intent()
+ .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME)
+ .setAction(MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG));
+ } else if (mediaController != null) {
+ mContext.sendBroadcast(new Intent()
+ .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME)
+ .setAction(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
+ .putExtra(MediaOutputConstants.KEY_MEDIA_SESSION_TOKEN,
+ mediaController.getSessionToken())
+ .putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME,
+ mediaController.getPackageName()));
+ } else {
Log.d(TAG, "No active local media controller");
return;
}
- // Launch media output dialog
- mContext.sendBroadcast(new Intent()
- .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME)
- .setAction(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
- .putExtra(MediaOutputConstants.KEY_MEDIA_SESSION_TOKEN,
- mediaController.getSessionToken())
- .putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME,
- mediaController.getPackageName()));
+
// Dismiss volume panel
mContext.sendBroadcast(new Intent()
.setPackage(MediaOutputConstants.SETTINGS_PACKAGE_NAME)
diff --git a/src/com/android/settings/network/AllInOneTetherPreferenceController.java b/src/com/android/settings/network/AllInOneTetherPreferenceController.java
deleted file mode 100644
index 7baa917..0000000
--- a/src/com/android/settings/network/AllInOneTetherPreferenceController.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.network;
-
-import static android.os.UserManager.DISALLOW_CONFIG_TETHERING;
-
-import static com.android.settings.network.TetherEnabler.TETHERING_BLUETOOTH_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_ETHERNET_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_OFF;
-import static com.android.settings.network.TetherEnabler.TETHERING_USB_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_WIFI_ON;
-import static com.android.settingslib.RestrictedLockUtilsInternal.checkIfRestrictionEnforced;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothPan;
-import android.bluetooth.BluetoothProfile;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.UserHandle;
-import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.Lifecycle.Event;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.widget.GenericSwitchController;
-import com.android.settingslib.PrimarySwitchPreference;
-import com.android.settingslib.TetherUtil;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * This controller helps to manage the switch state and visibility of "Hotspot & tethering" switch
- * preference. It updates the preference summary text based on tethering state.
- */
-public class AllInOneTetherPreferenceController extends BasePreferenceController implements
- LifecycleObserver, TetherEnabler.OnTetherStateUpdateListener {
- private static final String TAG = "AllInOneTetherPreferenceController";
-
- private int mTetheringState;
-
- private final boolean mAdminDisallowedTetherConfig;
- private final AtomicReference<BluetoothPan> mBluetoothPan;
- private final BluetoothAdapter mBluetoothAdapter;
- @VisibleForTesting
- final BluetoothProfile.ServiceListener mBtProfileServiceListener =
- new BluetoothProfile.ServiceListener() {
- @Override
- public void onServiceConnected(int profile, BluetoothProfile proxy) {
- if (mBluetoothPan.get() == null) {
- mBluetoothPan.set((BluetoothPan) proxy);
- }
- }
-
- @Override
- public void onServiceDisconnected(int profile) { /* Do nothing */ }
- };
-
- private PrimarySwitchPreference mPreference;
- private TetherEnabler mTetherEnabler;
- private BroadcastReceiver mBluetoothStateReceiver;
-
- @VisibleForTesting(otherwise = VisibleForTesting.NONE)
- AllInOneTetherPreferenceController() {
- super(null /*context*/, "test");
- mAdminDisallowedTetherConfig = false;
- mBluetoothPan = new AtomicReference<>();
- mBluetoothAdapter = null;
- }
-
- public AllInOneTetherPreferenceController(Context context, String key) {
- super(context, key);
- mBluetoothPan = new AtomicReference<>();
- mAdminDisallowedTetherConfig = checkIfRestrictionEnforced(
- context, DISALLOW_CONFIG_TETHERING, UserHandle.myUserId()) != null;
- mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mPreference = screen.findPreference(mPreferenceKey);
- }
-
- @Override
- public int getAvailabilityStatus() {
- if (!TetherUtil.isTetherAvailable(mContext)
- || !FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE)) {
- return CONDITIONALLY_UNAVAILABLE;
- } else {
- return AVAILABLE;
- }
- }
-
- @Override
- public CharSequence getSummary() {
- switch (mTetheringState) {
- case TETHERING_OFF:
- return mContext.getString(R.string.tether_settings_summary_off);
- case TETHERING_WIFI_ON:
- return mContext.getString(R.string.tether_settings_summary_hotspot_only);
- case TETHERING_USB_ON:
- return mContext.getString(R.string.tether_settings_summary_usb_tethering_only);
- case TETHERING_BLUETOOTH_ON:
- return mContext.getString(
- R.string.tether_settings_summary_bluetooth_tethering_only);
- case TETHERING_ETHERNET_ON:
- return mContext.getString(R.string.tether_settings_summary_ethernet_tethering_only);
- case TETHERING_WIFI_ON | TETHERING_USB_ON:
- return mContext.getString(R.string.tether_settings_summary_hotspot_and_usb);
- case TETHERING_WIFI_ON | TETHERING_BLUETOOTH_ON:
- return mContext.getString(R.string.tether_settings_summary_hotspot_and_bluetooth);
- case TETHERING_WIFI_ON | TETHERING_ETHERNET_ON:
- return mContext.getString(R.string.tether_settings_summary_hotspot_and_ethernet);
- case TETHERING_USB_ON | TETHERING_BLUETOOTH_ON:
- return mContext.getString(R.string.tether_settings_summary_usb_and_bluetooth);
- case TETHERING_USB_ON | TETHERING_ETHERNET_ON:
- return mContext.getString(R.string.tether_settings_summary_usb_and_ethernet);
- case TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON:
- return mContext.getString(R.string.tether_settings_summary_bluetooth_and_ethernet);
- case TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_BLUETOOTH_ON:
- return mContext.getString(
- R.string.tether_settings_summary_hotspot_and_usb_and_bluetooth);
- case TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_ETHERNET_ON:
- return mContext.getString(
- R.string.tether_settings_summary_hotspot_and_usb_and_ethernet);
- case TETHERING_WIFI_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON:
- return mContext.getString(
- R.string.tether_settings_summary_hotspot_and_bluetooth_and_ethernet);
- case TETHERING_USB_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON:
- return mContext.getString(
- R.string.tether_settings_summary_usb_and_bluetooth_and_ethernet);
- case TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_BLUETOOTH_ON
- | TETHERING_ETHERNET_ON:
- return mContext.getString(R.string.tether_settings_summary_all);
- default:
- Log.e(TAG, "Unknown tethering state");
- return mContext.getString(R.string.summary_placeholder);
- }
- }
-
- @OnLifecycleEvent(Event.ON_CREATE)
- public void onCreate() {
- if (mBluetoothAdapter != null
- && mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON) {
- mBluetoothAdapter.getProfileProxy(mContext, mBtProfileServiceListener,
- BluetoothProfile.PAN);
- }
- if (mBluetoothStateReceiver == null) {
- mBluetoothStateReceiver = new BluetoothStateReceiver();
- mContext.registerReceiver(
- mBluetoothStateReceiver,
- new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
- }
- }
-
- @OnLifecycleEvent(Event.ON_RESUME)
- public void onResume() {
- if (mTetherEnabler != null) {
- mTetherEnabler.addListener(this);
- }
- }
-
- @OnLifecycleEvent(Event.ON_PAUSE)
- public void onPause() {
- if (mTetherEnabler != null) {
- mTetherEnabler.removeListener(this);
- }
- }
-
- @OnLifecycleEvent(Event.ON_DESTROY)
- public void onDestroy() {
- final BluetoothProfile profile = mBluetoothPan.getAndSet(null);
- if (profile != null && mBluetoothAdapter != null) {
- mBluetoothAdapter.closeProfileProxy(BluetoothProfile.PAN, profile);
- }
- if (mBluetoothStateReceiver != null) {
- mContext.unregisterReceiver(mBluetoothStateReceiver);
- mBluetoothStateReceiver = null;
- }
- }
-
- void initEnabler(Lifecycle lifecycle) {
- if (mPreference != null) {
- mTetherEnabler = new TetherEnabler(
- mContext, new GenericSwitchController(mPreference), mBluetoothPan);
- if (lifecycle != null) {
- lifecycle.addObserver(mTetherEnabler);
- }
- } else {
- Log.e(TAG, "TetherEnabler is not initialized");
- }
- }
-
- @Override
- public void onTetherStateUpdated(@TetherEnabler.TetheringState int state) {
- mTetheringState = state;
- updateState(mPreference);
- }
-
- private class BluetoothStateReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- final String action = intent.getAction();
- Log.i(TAG, "onReceive: action: " + action);
-
- if (TextUtils.equals(action, BluetoothAdapter.ACTION_STATE_CHANGED)) {
- final int state =
- intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
- Log.i(TAG, "onReceive: state: " + BluetoothAdapter.nameForState(state));
- final BluetoothProfile profile = mBluetoothPan.get();
- switch(state) {
- case BluetoothAdapter.STATE_ON:
- if (profile == null && mBluetoothAdapter != null) {
- mBluetoothAdapter.getProfileProxy(mContext, mBtProfileServiceListener,
- BluetoothProfile.PAN);
- }
- break;
- }
- }
- }
- }
-}
diff --git a/src/com/android/settings/network/BluetoothTetherPreferenceController.java b/src/com/android/settings/network/BluetoothTetherPreferenceController.java
deleted file mode 100644
index 96d39e3..0000000
--- a/src/com/android/settings/network/BluetoothTetherPreferenceController.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import android.bluetooth.BluetoothAdapter;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.ConnectivityManager;
-import android.text.TextUtils;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.OnLifecycleEvent;
-
-import com.google.common.annotations.VisibleForTesting;
-
-/**
- * This controller helps to manage the switch state and visibility of bluetooth tether switch
- * preference.
- */
-public final class BluetoothTetherPreferenceController extends TetherBasePreferenceController {
- private int mBluetoothState;
-
- public BluetoothTetherPreferenceController(Context context, String preferenceKey) {
- super(context, preferenceKey);
- }
-
- @OnLifecycleEvent(Lifecycle.Event.ON_START)
- public void onStart() {
- mBluetoothState = BluetoothAdapter.getDefaultAdapter().getState();
- mContext.registerReceiver(mBluetoothChangeReceiver,
- new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
- }
-
- @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
- public void onStop() {
- mContext.unregisterReceiver(mBluetoothChangeReceiver);
- }
-
- @Override
- public boolean shouldEnable() {
- switch (mBluetoothState) {
- case BluetoothAdapter.STATE_ON:
- case BluetoothAdapter.STATE_OFF:
- // fall through.
- case BluetoothAdapter.ERROR:
- return true;
- case BluetoothAdapter.STATE_TURNING_OFF:
- case BluetoothAdapter.STATE_TURNING_ON:
- // fall through.
- default:
- return false;
- }
- }
-
- @Override
- public boolean shouldShow() {
- final String[] bluetoothRegexs = mTm.getTetherableBluetoothRegexs();
- return bluetoothRegexs != null && bluetoothRegexs.length != 0;
- }
-
- @Override
- public int getTetherType() {
- return ConnectivityManager.TETHERING_BLUETOOTH;
- }
-
- @VisibleForTesting
- final BroadcastReceiver mBluetoothChangeReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- if (TextUtils.equals(BluetoothAdapter.ACTION_STATE_CHANGED, intent.getAction())) {
- mBluetoothState =
- intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
- updateState(mPreference);
- }
- }
- };
-}
diff --git a/src/com/android/settings/network/EthernetTetherPreferenceController.java b/src/com/android/settings/network/EthernetTetherPreferenceController.java
deleted file mode 100644
index 2fd92f3..0000000
--- a/src/com/android/settings/network/EthernetTetherPreferenceController.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import android.content.Context;
-import android.net.EthernetManager;
-import android.net.TetheringManager;
-import android.os.Handler;
-import android.os.Looper;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.OnLifecycleEvent;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.Utils;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.HashSet;
-
-/**
- * This controller helps to manage the switch state and visibility of ethernet tether switch
- * preference.
- */
-public final class EthernetTetherPreferenceController extends TetherBasePreferenceController {
-
- private final HashSet<String> mAvailableInterfaces = new HashSet<>();
- private final EthernetManager mEthernetManager;
-
- @VisibleForTesting
- EthernetManager.InterfaceStateListener mEthernetListener;
-
- public EthernetTetherPreferenceController(Context context, String preferenceKey) {
- super(context, preferenceKey);
- mEthernetManager = context.getSystemService(EthernetManager.class);
- }
-
- @OnLifecycleEvent(Lifecycle.Event.ON_START)
- public void onStart() {
- mEthernetListener = (iface, state, role, configuration) -> {
- if (state != EthernetManager.STATE_ABSENT) {
- mAvailableInterfaces.add(iface);
- } else {
- mAvailableInterfaces.remove(iface);
- }
- updateState(mPreference);
- };
- final Handler handler = new Handler(Looper.getMainLooper());
- // Executor will execute to post the updateState event to a new handler which is created
- // from the main looper when the {@link EthernetManager.Listener.onAvailabilityChanged}
- // is triggerd.
- if (mEthernetManager != null) {
- mEthernetManager.addInterfaceStateListener(r -> handler.post(r), mEthernetListener);
- }
- }
-
- @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
- public void onStop() {
- if (mEthernetManager != null) {
- mEthernetManager.removeInterfaceStateListener(mEthernetListener);
- }
- }
-
- @Override
- public boolean shouldEnable() {
- ThreadUtils.ensureMainThread();
- String[] available = mTm.getTetherableIfaces();
- for (String s : available) {
- if (mAvailableInterfaces.contains(s)) {
- return true;
- }
- }
- return false;
- }
-
- @Override
- public boolean shouldShow() {
- return mEthernetManager != null && !Utils.isMonkeyRunning();
- }
-
- @Override
- public int getTetherType() {
- return TetheringManager.TETHERING_ETHERNET;
- }
-
-}
diff --git a/src/com/android/settings/network/InternetPreferenceController.java b/src/com/android/settings/network/InternetPreferenceController.java
index 71acd4b..1f5042f 100644
--- a/src/com/android/settings/network/InternetPreferenceController.java
+++ b/src/com/android/settings/network/InternetPreferenceController.java
@@ -43,6 +43,7 @@
import com.android.settings.widget.SummaryUpdater;
import com.android.settings.wifi.WifiPickerTrackerHelper;
import com.android.settings.wifi.WifiSummaryUpdater;
+import com.android.settings.wifi.repository.SharedConnectivityRepository;
import com.android.settingslib.Utils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
@@ -77,6 +78,7 @@
private List<SubscriptionInfoEntity> mSubInfoEntityList = new ArrayList<>();
private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
+ private boolean mIsHotspotNetworkEnabled = SharedConnectivityRepository.isDeviceConfigEnabled();
@VisibleForTesting
WifiPickerTrackerHelper mWifiPickerTrackerHelper;
@@ -111,7 +113,9 @@
mLifecycleOwner = lifecycleOwner;
mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this);
- mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(lifecycle, context, this);
+ if (mIsHotspotNetworkEnabled) {
+ mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(lifecycle, context, this);
+ }
lifecycle.addObserver(this);
}
@@ -162,6 +166,9 @@
@VisibleForTesting
boolean updateHotspotNetwork() {
+ if (mWifiPickerTrackerHelper == null) {
+ return false;
+ }
WifiEntry entry = mWifiPickerTrackerHelper.getWifiPickerTracker().getConnectedWifiEntry();
if (!(entry instanceof HotspotNetworkEntry)) {
return false;
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index 4fcbacf..e5d9242 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -18,7 +18,6 @@
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
-import android.os.Bundle;
import androidx.lifecycle.LifecycleOwner;
@@ -60,13 +59,6 @@
super.onAttach(context);
use(AirplaneModePreferenceController.class).setFragment(this);
- getSettingsLifecycle().addObserver(use(AllInOneTetherPreferenceController.class));
- }
-
- @Override
- public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
- super.onCreatePreferences(savedInstanceState, rootKey);
- use(AllInOneTetherPreferenceController.class).initEnabler(getSettingsLifecycle());
}
@Override
@@ -98,9 +90,7 @@
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new MobileNetworkSummaryController(context, lifecycle, lifecycleOwner));
- controllers.add(new TetherPreferenceController(context, lifecycle));
controllers.add(vpnPreferenceController);
- controllers.add(new ProxyPreferenceController(context));
if (internetPreferenceController != null) {
controllers.add(internetPreferenceController);
}
diff --git a/src/com/android/settings/network/ProxyPreferenceController.java b/src/com/android/settings/network/ProxyPreferenceController.java
deleted file mode 100644
index 8f26bfb..0000000
--- a/src/com/android/settings/network/ProxyPreferenceController.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.network;
-
-import android.app.admin.DevicePolicyManager;
-import android.content.Context;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
-
-public class ProxyPreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin {
-
- private static final String KEY_PROXY_SETTINGS = "proxy_settings";
-
- public ProxyPreferenceController(Context context) {
- super(context);
- }
-
- @Override
- public boolean isAvailable() {
- // proxy UI disabled until we have better app support
- return false;
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- // Enable Proxy selector settings if allowed.
- final Preference pref = screen.findPreference(KEY_PROXY_SETTINGS);
- if (pref != null) {
- final DevicePolicyManager dpm = (DevicePolicyManager)
- mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
- pref.setEnabled(dpm.getGlobalProxyAdmin() == null);
- }
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_PROXY_SETTINGS;
- }
-}
diff --git a/src/com/android/settings/network/TetherBasePreferenceController.java b/src/com/android/settings/network/TetherBasePreferenceController.java
deleted file mode 100644
index b1627f2..0000000
--- a/src/com/android/settings/network/TetherBasePreferenceController.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import android.content.Context;
-import android.net.TetheringManager;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.datausage.DataSaverBackend;
-
-public abstract class TetherBasePreferenceController extends TogglePreferenceController
- implements LifecycleObserver, DataSaverBackend.Listener,
- TetherEnabler.OnTetherStateUpdateListener {
-
- private static final String TAG = "TetherBasePreferenceController";
- final TetheringManager mTm;
- private final DataSaverBackend mDataSaverBackend;
-
- private TetherEnabler mTetherEnabler;
- Preference mPreference;
- private boolean mDataSaverEnabled;
- int mTetheringState;
-
- TetherBasePreferenceController(Context context, String preferenceKey) {
- super(context, preferenceKey);
- mTm = context.getSystemService(TetheringManager.class);
- mDataSaverBackend = new DataSaverBackend(context);
- mDataSaverEnabled = mDataSaverBackend.isDataSaverEnabled();
- }
-
- /**
- * Set TetherEnabler for the controller. Call this method to initialize the controller.
- * @param tetherEnabler The tetherEnabler to set for the controller.
- */
- public void setTetherEnabler(TetherEnabler tetherEnabler) {
- mTetherEnabler = tetherEnabler;
- }
-
- @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
- public void onResume() {
- // Must call setEnabler() before
- if (mTetherEnabler != null) {
- mTetherEnabler.addListener(this);
- }
- mDataSaverBackend.addListener(this);
- }
-
- @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
- public void onPause() {
- if (mTetherEnabler != null) {
- mTetherEnabler.removeListener(this);
- }
- mDataSaverBackend.remListener(this);
- }
-
- @Override
- public boolean isChecked() {
- return TetherEnabler.isTethering(mTetheringState, getTetherType());
- }
-
- @Override
- public boolean setChecked(boolean isChecked) {
- if (mTetherEnabler == null) {
- return false;
- }
- if (isChecked) {
- mTetherEnabler.startTethering(getTetherType());
- } else {
- mTetherEnabler.stopTethering(getTetherType());
- }
- return true;
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mPreference = screen.findPreference(mPreferenceKey);
- }
-
- @Override
- public void updateState(Preference preference) {
- super.updateState(preference);
- if (isAvailable()) {
- preference.setEnabled(getAvailabilityStatus() != DISABLED_DEPENDENT_SETTING);
- }
- }
-
- @Override
- public int getAvailabilityStatus() {
- if (!shouldShow()) {
- return CONDITIONALLY_UNAVAILABLE;
- }
-
- if (mDataSaverEnabled || !shouldEnable()) {
- return DISABLED_DEPENDENT_SETTING;
- }
- return AVAILABLE;
- }
-
- @Override
- public int getSliceHighlightMenuRes() {
- return R.string.menu_key_network;
- }
-
- @Override
- public void onTetherStateUpdated(@TetherEnabler.TetheringState int state) {
- mTetheringState = state;
- updateState(mPreference);
- }
-
- @Override
- public void onDataSaverChanged(boolean isDataSaving) {
- mDataSaverEnabled = isDataSaving;
- }
-
- @Override
- public void onAllowlistStatusChanged(int uid, boolean isAllowlisted) {
- }
-
- @Override
- public void onDenylistStatusChanged(int uid, boolean isDenylisted) {
- }
-
- /**
- * Used to enable or disable the preference.
- * @return true if the preference should be enabled; false otherwise.
- */
- public abstract boolean shouldEnable();
-
- /**
- * Used to determine visibility of the preference.
- * @return true if the preference should be visible; false otherwise.
- */
- public abstract boolean shouldShow();
-
- /**
- * Get the type of tether interface that is controlled by the preference.
- * @return the tether interface, like {@link ConnectivityManager#TETHERING_WIFI}
- */
- public abstract int getTetherType();
-}
diff --git a/src/com/android/settings/network/TetherPreferenceController.java b/src/com/android/settings/network/TetherPreferenceController.java
deleted file mode 100644
index f9e5a43..0000000
--- a/src/com/android/settings/network/TetherPreferenceController.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.network;
-
-import static android.os.UserManager.DISALLOW_CONFIG_TETHERING;
-
-import static com.android.settingslib.RestrictedLockUtilsInternal.checkIfRestrictionEnforced;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothPan;
-import android.bluetooth.BluetoothProfile;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.database.ContentObserver;
-import android.net.TetheringManager;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.UserHandle;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.TetherUtil;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnCreate;
-import com.android.settingslib.core.lifecycle.events.OnDestroy;
-import com.android.settingslib.core.lifecycle.events.OnPause;
-import com.android.settingslib.core.lifecycle.events.OnResume;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-public class TetherPreferenceController extends AbstractPreferenceController implements
- PreferenceControllerMixin, LifecycleObserver, OnCreate, OnResume, OnPause, OnDestroy {
-
- private static final String TAG = "TetherPreferenceController";
- private static final String KEY_TETHER_SETTINGS = "tether_settings";
-
- private final boolean mAdminDisallowedTetherConfig;
- private final AtomicReference<BluetoothPan> mBluetoothPan;
- private final BluetoothAdapter mBluetoothAdapter;
- private final TetheringManager mTetheringManager;
- @VisibleForTesting
- final BluetoothProfile.ServiceListener mBtProfileServiceListener =
- new android.bluetooth.BluetoothProfile.ServiceListener() {
- public void onServiceConnected(int profile, BluetoothProfile proxy) {
- if (mBluetoothPan.get() == null) {
- mBluetoothPan.set((BluetoothPan) proxy);
- }
- updateSummary();
- }
-
- public void onServiceDisconnected(int profile) {
- updateSummary();
- }
- };
-
- private SettingObserver mAirplaneModeObserver;
- private Preference mPreference;
- private TetherBroadcastReceiver mTetherReceiver;
- private BroadcastReceiver mBluetoothStateReceiver;
-
- @VisibleForTesting(otherwise = VisibleForTesting.NONE)
- TetherPreferenceController() {
- super(null);
- mAdminDisallowedTetherConfig = false;
- mBluetoothPan = new AtomicReference<>();
- mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
- mTetheringManager = null;
- }
-
- public TetherPreferenceController(Context context, Lifecycle lifecycle) {
- super(context);
- mBluetoothPan = new AtomicReference<>();
- mAdminDisallowedTetherConfig = isTetherConfigDisallowed(context);
- mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
- mTetheringManager = context.getSystemService(TetheringManager.class);
- if (lifecycle != null) {
- lifecycle.addObserver(this);
- }
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mPreference = screen.findPreference(KEY_TETHER_SETTINGS);
- if (mPreference != null && !mAdminDisallowedTetherConfig) {
- mPreference.setTitle(
- com.android.settingslib.Utils.getTetheringLabel(mTetheringManager));
- }
- }
-
- @Override
- public boolean isAvailable() {
- return TetherUtil.isTetherAvailable(mContext)
- && !FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE);
- }
-
- @Override
- public void updateState(Preference preference) {
- updateSummary();
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_TETHER_SETTINGS;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- if (mBluetoothAdapter != null &&
- mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON) {
- mBluetoothAdapter.getProfileProxy(mContext, mBtProfileServiceListener,
- BluetoothProfile.PAN);
- }
- if (mBluetoothStateReceiver == null) {
- mBluetoothStateReceiver = new BluetoothStateReceiver();
- mContext.registerReceiver(
- mBluetoothStateReceiver,
- new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
- }
- }
-
- @Override
- public void onResume() {
- if (mAirplaneModeObserver == null) {
- mAirplaneModeObserver = new SettingObserver();
- }
- if (mTetherReceiver == null) {
- mTetherReceiver = new TetherBroadcastReceiver();
- }
- mContext.registerReceiver(
- mTetherReceiver, new IntentFilter(TetheringManager.ACTION_TETHER_STATE_CHANGED));
- mContext.getContentResolver()
- .registerContentObserver(mAirplaneModeObserver.uri, false, mAirplaneModeObserver);
- }
-
- @Override
- public void onPause() {
- if (mAirplaneModeObserver != null) {
- mContext.getContentResolver().unregisterContentObserver(mAirplaneModeObserver);
- }
- if (mTetherReceiver != null) {
- mContext.unregisterReceiver(mTetherReceiver);
- }
- }
-
- @Override
- public void onDestroy() {
- final BluetoothProfile profile = mBluetoothPan.getAndSet(null);
- if (profile != null && mBluetoothAdapter != null) {
- mBluetoothAdapter.closeProfileProxy(BluetoothProfile.PAN, profile);
- }
- if (mBluetoothStateReceiver != null) {
- mContext.unregisterReceiver(mBluetoothStateReceiver);
- mBluetoothStateReceiver = null;
- }
- }
-
- public static boolean isTetherConfigDisallowed(Context context) {
- return checkIfRestrictionEnforced(
- context, DISALLOW_CONFIG_TETHERING, UserHandle.myUserId()) != null;
- }
-
- @VisibleForTesting
- void updateSummary() {
- if (mPreference == null) {
- // Preference is not ready yet.
- return;
- }
- String[] allTethered = mTetheringManager.getTetheredIfaces();
- String[] wifiTetherRegex = mTetheringManager.getTetherableWifiRegexs();
- String[] bluetoothRegex = mTetheringManager.getTetherableBluetoothRegexs();
-
- boolean hotSpotOn = false;
- boolean tetherOn = false;
- if (allTethered != null) {
- if (wifiTetherRegex != null) {
- for (String tethered : allTethered) {
- for (String regex : wifiTetherRegex) {
- if (tethered.matches(regex)) {
- hotSpotOn = true;
- break;
- }
- }
- }
- }
- if (allTethered.length > 1) {
- // We have more than 1 tethered connection
- tetherOn = true;
- } else if (allTethered.length == 1) {
- // We have more than 1 tethered, it's either wifiTether (hotspot), or other type of
- // tether.
- tetherOn = !hotSpotOn;
- } else {
- // No tethered connection.
- tetherOn = false;
- }
- }
- if (!tetherOn
- && bluetoothRegex != null && bluetoothRegex.length > 0
- && mBluetoothAdapter != null
- && mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON) {
- // Check bluetooth state. It's not included in mTetheringManager.getTetheredIfaces.
- final BluetoothPan pan = mBluetoothPan.get();
- tetherOn = pan != null && pan.isTetheringOn();
- }
- if (!hotSpotOn && !tetherOn) {
- // Both off
- updateSummaryToOff();
- } else if (hotSpotOn && tetherOn) {
- // Both on
- mPreference.setSummary(R.string.tether_settings_summary_hotspot_on_tether_on);
- } else if (hotSpotOn) {
- mPreference.setSummary(R.string.tether_settings_summary_hotspot_on_tether_off);
- } else {
- mPreference.setSummary(R.string.tether_settings_summary_hotspot_off_tether_on);
- }
- }
-
- private void updateSummaryToOff() {
- if (mPreference == null) {
- // Preference is not ready yet.
- return;
- }
- mPreference.setSummary(R.string.tether_preference_summary_off);
- }
-
- class SettingObserver extends ContentObserver {
-
- public final Uri uri;
-
- public SettingObserver() {
- super(new Handler());
- uri = Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON);
- }
-
- @Override
- public void onChange(boolean selfChange, Uri uri) {
- super.onChange(selfChange, uri);
- if (this.uri.equals(uri)) {
- boolean isAirplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
- if (isAirplaneMode) {
- // Airplane mode is on. Update summary to say tether is OFF directly. We cannot
- // go through updateSummary() because turning off tether takes time, and we
- // might still get "ON" status when rerun updateSummary(). So, just say it's off
- updateSummaryToOff();
- }
- }
- }
- }
-
- @VisibleForTesting
- class TetherBroadcastReceiver extends BroadcastReceiver {
-
- @Override
- public void onReceive(Context context, Intent intent) {
- updateSummary();
- }
-
- }
-
- private class BluetoothStateReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- final String action = intent.getAction();
- Log.i(TAG, "onReceive: action: " + action);
-
- if (TextUtils.equals(action, BluetoothAdapter.ACTION_STATE_CHANGED)) {
- final int state =
- intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
- Log.i(TAG, "onReceive: state: " + BluetoothAdapter.nameForState(state));
- final BluetoothProfile profile = mBluetoothPan.get();
- switch(state) {
- case BluetoothAdapter.STATE_ON:
- if (profile == null && mBluetoothAdapter != null) {
- mBluetoothAdapter.getProfileProxy(mContext, mBtProfileServiceListener,
- BluetoothProfile.PAN);
- }
- break;
- }
- }
- }
- }
-}
diff --git a/src/com/android/settings/network/TetherPreferenceController.kt b/src/com/android/settings/network/TetherPreferenceController.kt
new file mode 100644
index 0000000..c36a2382
--- /dev/null
+++ b/src/com/android/settings/network/TetherPreferenceController.kt
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network
+
+import android.content.Context
+import android.net.TetheringManager
+import android.os.UserHandle
+import android.os.UserManager
+import androidx.annotation.StringRes
+import androidx.annotation.VisibleForTesting
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.preference.Preference
+import androidx.preference.PreferenceScreen
+import com.android.settings.R
+import com.android.settings.core.BasePreferenceController
+import com.android.settingslib.RestrictedLockUtilsInternal
+import com.android.settingslib.TetherUtil
+import com.android.settingslib.Utils
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+class TetherPreferenceController(context: Context, key: String) :
+ BasePreferenceController(context, key) {
+
+ private val tetheredRepository = TetheredRepository(context)
+ private val tetheringManager = mContext.getSystemService(TetheringManager::class.java)!!
+
+ private var preference: Preference? = null
+
+ override fun getAvailabilityStatus() =
+ if (TetherUtil.isTetherAvailable(mContext)) AVAILABLE else CONDITIONALLY_UNAVAILABLE
+
+ override fun displayPreference(screen: PreferenceScreen) {
+ super.displayPreference(screen)
+ preference = screen.findPreference(preferenceKey)
+ }
+
+ override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+ viewLifecycleOwner.lifecycleScope.launch {
+ viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
+ getTitleResId()?.let { preference?.setTitle(it) }
+ }
+ }
+
+ tetheredRepository.tetheredTypesFlow().collectLatestWithLifecycle(viewLifecycleOwner) {
+ preference?.setSummary(getSummaryResId(it))
+ }
+ }
+
+ private suspend fun getTitleResId(): Int? = withContext(Dispatchers.Default) {
+ if (isTetherConfigDisallowed(mContext)) null
+ else Utils.getTetheringLabel(tetheringManager)
+ }
+
+ @VisibleForTesting
+ @StringRes
+ fun getSummaryResId(tetheredTypes: Set<Int>): Int {
+ val hotSpotOn = TetheringManager.TETHERING_WIFI in tetheredTypes
+ val tetherOn = tetheredTypes.any { it != TetheringManager.TETHERING_WIFI }
+ return when {
+ hotSpotOn && tetherOn -> R.string.tether_settings_summary_hotspot_on_tether_on
+ hotSpotOn -> R.string.tether_settings_summary_hotspot_on_tether_off
+ tetherOn -> R.string.tether_settings_summary_hotspot_off_tether_on
+ else -> R.string.tether_preference_summary_off
+ }
+ }
+
+ companion object {
+ @JvmStatic
+ fun isTetherConfigDisallowed(context: Context?): Boolean =
+ RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+ context, UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.myUserId()
+ ) != null
+ }
+}
diff --git a/src/com/android/settings/network/TetheredRepository.kt b/src/com/android/settings/network/TetheredRepository.kt
new file mode 100644
index 0000000..f18bdca
--- /dev/null
+++ b/src/com/android/settings/network/TetheredRepository.kt
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network
+
+import android.bluetooth.BluetoothAdapter
+import android.bluetooth.BluetoothManager
+import android.bluetooth.BluetoothPan
+import android.bluetooth.BluetoothProfile
+import android.content.Context
+import android.content.IntentFilter
+import android.net.TetheringInterface
+import android.net.TetheringManager
+import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.asExecutor
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.conflate
+import kotlinx.coroutines.flow.flatMapLatest
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.merge
+import kotlinx.coroutines.launch
+
+class TetheredRepository(private val context: Context) {
+ private val tetheringManager = context.getSystemService(TetheringManager::class.java)!!
+
+ private val adapter = context.getSystemService(BluetoothManager::class.java)!!.adapter
+
+ fun tetheredTypesFlow(): Flow<Set<Int>> =
+ combine(
+ tetheredInterfacesFlow(),
+ isBluetoothTetheringOnFlow(),
+ ) { tetheringInterfaces, isBluetoothTetheringOn ->
+ val mutableSet = tetheringInterfaces.map { it.type }.toMutableSet()
+ if (isBluetoothTetheringOn) mutableSet += TetheringManager.TETHERING_BLUETOOTH
+ mutableSet
+ }.conflate().flowOn(Dispatchers.Default)
+
+ private fun tetheredInterfacesFlow(): Flow<Set<TetheringInterface>> = callbackFlow {
+ val callback = object : TetheringManager.TetheringEventCallback {
+ override fun onTetheredInterfacesChanged(interfaces: Set<TetheringInterface>) {
+ trySend(interfaces)
+ }
+ }
+
+ tetheringManager.registerTetheringEventCallback(Dispatchers.Default.asExecutor(), callback)
+
+ awaitClose { tetheringManager.unregisterTetheringEventCallback(callback) }
+ }.conflate().flowOn(Dispatchers.Default)
+
+ @OptIn(ExperimentalCoroutinesApi::class)
+ private fun isBluetoothTetheringOnFlow(): Flow<Boolean> =
+ merge(
+ flowOf(null), // kick an initial value
+ context.broadcastReceiverFlow(IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED)),
+ ).flatMapLatest {
+ if (adapter.getState() == BluetoothAdapter.STATE_ON) {
+ isBluetoothPanTetheringOnFlow()
+ } else {
+ flowOf(false)
+ }
+ }.conflate().flowOn(Dispatchers.Default)
+
+ private fun isBluetoothPanTetheringOnFlow() = callbackFlow {
+ var connectedProxy: BluetoothProfile? = null
+
+ val listener = object : BluetoothProfile.ServiceListener {
+ override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) {
+ connectedProxy = proxy
+ launch(Dispatchers.Default) {
+ trySend((proxy as BluetoothPan).isTetheringOn)
+ }
+ }
+
+ override fun onServiceDisconnected(profile: Int) {}
+ }
+
+ adapter.getProfileProxy(context, listener, BluetoothProfile.PAN)
+
+ awaitClose {
+ connectedProxy?.let { adapter.closeProfileProxy(BluetoothProfile.PAN, it) }
+ }
+ }.conflate().flowOn(Dispatchers.Default)
+}
diff --git a/src/com/android/settings/network/UsbTetherPreferenceController.java b/src/com/android/settings/network/UsbTetherPreferenceController.java
deleted file mode 100644
index 7a5cc21..0000000
--- a/src/com/android/settings/network/UsbTetherPreferenceController.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.hardware.usb.UsbManager;
-import android.net.ConnectivityManager;
-import android.os.Environment;
-import android.text.TextUtils;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.OnLifecycleEvent;
-
-import com.android.settings.Utils;
-
-/**
- * This controller helps to manage the switch state and visibility of USB tether switch
- * preference.
- *
- */
-public final class UsbTetherPreferenceController extends TetherBasePreferenceController {
-
- private static final String TAG = "UsbTetherPrefController";
-
- private boolean mUsbConnected;
- private boolean mMassStorageActive;
-
- public UsbTetherPreferenceController(Context context, String prefKey) {
- super(context, prefKey);
- }
-
- @OnLifecycleEvent(Lifecycle.Event.ON_START)
- public void onStart() {
- mMassStorageActive = Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
- IntentFilter filter = new IntentFilter(UsbManager.ACTION_USB_STATE);
- filter.addAction(Intent.ACTION_MEDIA_SHARED);
- filter.addAction(Intent.ACTION_MEDIA_UNSHARED);
- mContext.registerReceiver(mUsbChangeReceiver, filter);
- }
-
- @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
- public void onStop() {
- mContext.unregisterReceiver(mUsbChangeReceiver);
- }
-
- @Override
- public boolean shouldEnable() {
- return mUsbConnected && !mMassStorageActive;
- }
-
- @Override
- public boolean shouldShow() {
- String[] usbRegexs = mTm.getTetherableUsbRegexs();
- return usbRegexs != null && usbRegexs.length != 0 && !Utils.isMonkeyRunning();
- }
-
- @Override
- public int getTetherType() {
- return ConnectivityManager.TETHERING_USB;
- }
-
- @VisibleForTesting
- final BroadcastReceiver mUsbChangeReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (TextUtils.equals(Intent.ACTION_MEDIA_SHARED, action)) {
- mMassStorageActive = true;
- } else if (TextUtils.equals(Intent.ACTION_MEDIA_UNSHARED, action)) {
- mMassStorageActive = false;
- } else if (TextUtils.equals(UsbManager.ACTION_USB_STATE, action)) {
- mUsbConnected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false);
- }
- updateState(mPreference);
- }
- };
-}
diff --git a/src/com/android/settings/network/WifiTetherDisablePreferenceController.java b/src/com/android/settings/network/WifiTetherDisablePreferenceController.java
deleted file mode 100644
index 783f78f..0000000
--- a/src/com/android/settings/network/WifiTetherDisablePreferenceController.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.android.settings.network.TetherEnabler.TETHERING_BLUETOOTH_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_ETHERNET_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_USB_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_WIFI_ON;
-
-import android.content.Context;
-import android.net.ConnectivityManager;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-
-/**
- * This controller helps to manage the switch state and visibility of wifi tether disable switch
- * preference. When the preference checked, wifi tether will be disabled.
- *
- * @see BluetoothTetherPreferenceController
- * @see UsbTetherPreferenceController
- */
-public final class WifiTetherDisablePreferenceController extends TetherBasePreferenceController {
-
- private static final String TAG = "WifiTetherDisablePreferenceController";
-
- private PreferenceScreen mScreen;
-
- public WifiTetherDisablePreferenceController(Context context, String prefKey) {
- super(context, prefKey);
- }
-
- @Override
- public boolean isChecked() {
- return !super.isChecked();
- }
-
- @Override
- public boolean setChecked(boolean isChecked) {
- return super.setChecked(!isChecked);
- }
-
- private int getTetheringStateOfOtherInterfaces() {
- return mTetheringState & (~TETHERING_WIFI_ON);
- }
-
- @Override
- public boolean shouldEnable() {
- return true;
- }
-
- @Override
- public boolean shouldShow() {
- final String[] wifiRegexs = mTm.getTetherableWifiRegexs();
- return wifiRegexs != null && wifiRegexs.length != 0 && !Utils.isMonkeyRunning()
- && getTetheringStateOfOtherInterfaces() != TetherEnabler.TETHERING_OFF;
- }
-
- @Override
- public int getTetherType() {
- return ConnectivityManager.TETHERING_WIFI;
- }
-
- @Override
- public CharSequence getSummary() {
- switch (getTetheringStateOfOtherInterfaces()) {
- case TETHERING_USB_ON:
- return mContext.getString(R.string.disable_wifi_hotspot_when_usb_on);
- case TETHERING_BLUETOOTH_ON:
- return mContext.getString(R.string.disable_wifi_hotspot_when_bluetooth_on);
- case TETHERING_ETHERNET_ON:
- return mContext.getString(R.string.disable_wifi_hotspot_when_ethernet_on);
- case TETHERING_USB_ON | TETHERING_BLUETOOTH_ON:
- return mContext.getString(R.string.disable_wifi_hotspot_when_usb_and_bluetooth_on);
- case TETHERING_USB_ON | TETHERING_ETHERNET_ON:
- return mContext.getString(R.string.disable_wifi_hotspot_when_usb_and_ethernet_on);
- case TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON:
- return mContext.getString(
- R.string.disable_wifi_hotspot_when_bluetooth_and_ethernet_on);
- case TETHERING_USB_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON:
- return mContext.getString(
- R.string.disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on);
- default:
- return mContext.getString(R.string.summary_placeholder);
- }
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mScreen = screen;
- if (mPreference != null) {
- mPreference.setOnPreferenceChangeListener(this);
- }
- }
-
- @Override
- public void updateState(Preference preference) {
- super.updateState(preference);
- preference.setVisible(isAvailable());
- refreshSummary(preference);
- }
-}
diff --git a/src/com/android/settings/network/apn/ApnEditPageProvider.kt b/src/com/android/settings/network/apn/ApnEditPageProvider.kt
index 86d7456..5026958 100644
--- a/src/com/android/settings/network/apn/ApnEditPageProvider.kt
+++ b/src/com/android/settings/network/apn/ApnEditPageProvider.kt
@@ -39,6 +39,7 @@
import com.android.settings.network.apn.ApnNetworkTypes.getNetworkTypeSelectedOptionsState
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.compose.LocalNavController
+import com.android.settingslib.spa.framework.compose.OnBackEffect
import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuBox
import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuCheckBox
import com.android.settingslib.spa.widget.editor.SettingsOutlinedTextField
@@ -97,21 +98,20 @@
val networkTypeSelectedOptionsState = remember {
getNetworkTypeSelectedOptionsState(apnData.networkType)
}
+ OnBackEffect{
+ validateAndSaveApnData(
+ apnDataInit,
+ apnData,
+ context,
+ uriInit,
+ networkTypeSelectedOptionsState
+ )
+ }
+ val navController = LocalNavController.current
RegularScaffold(
title = if(apnDataInit.newApn) stringResource(id = R.string.apn_add) else stringResource(id = R.string.apn_edit),
- actions = {
- IconButton(onClick = {
- validateAndSaveApnData(
- apnDataInit,
- apnData,
- context,
- uriInit,
- networkTypeSelectedOptionsState
- )
- }) { Icon(imageVector = Icons.Outlined.Done, contentDescription = "Save APN") }
- }
) {
- Column() {
+ Column {
SettingsOutlinedTextField(
value = apnData.name,
label = stringResource(R.string.apn_name),
@@ -203,12 +203,12 @@
enabled = apnData.networkTypeEnabled
) {}
if (!apnData.newApn) {
- val navController = LocalNavController.current
Preference(
object : PreferenceModel {
override val title = stringResource(R.string.menu_delete)
override val onClick = {
deleteApn(uriInit, context)
+ apnData = apnData.copy(saveEnabled = false)
navController.navigateBack()
}
}
diff --git a/src/com/android/settings/network/apn/ApnStatus.kt b/src/com/android/settings/network/apn/ApnStatus.kt
index a479868..d81a8e3 100644
--- a/src/com/android/settings/network/apn/ApnStatus.kt
+++ b/src/com/android/settings/network/apn/ApnStatus.kt
@@ -69,6 +69,7 @@
val networkTypeEnabled: Boolean = true,
val newApn: Boolean = false,
val subId: Int = -1,
+ val saveEnabled: Boolean = true,
val customizedConfig: CustomizedConfig = CustomizedConfig()
) {
fun getContentValues(context: Context): ContentValues {
@@ -230,6 +231,10 @@
uriInit: Uri,
networkTypeSelectedOptionsState: SnapshotStateList<Int>
): Boolean {
+ // Can not be saved
+ if (!apnData.saveEnabled) {
+ return false
+ }
// Nothing to do if it's a read only APN
if (apnData.customizedConfig.readOnlyApn) {
return true
diff --git a/src/com/android/settings/network/tether/TetherSettings.java b/src/com/android/settings/network/tether/TetherSettings.java
index 46cfb55..77ef4b6 100644
--- a/src/com/android/settings/network/tether/TetherSettings.java
+++ b/src/com/android/settings/network/tether/TetherSettings.java
@@ -45,7 +45,6 @@
import android.os.UserManager;
import android.provider.SearchIndexableResource;
import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
import android.util.Log;
import androidx.annotation.NonNull;
@@ -57,7 +56,6 @@
import com.android.settings.R;
import com.android.settings.RestrictedSettingsFragment;
import com.android.settings.Utils;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.datausage.DataSaverBackend;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.wifi.tether.WifiTetherPreferenceController;
@@ -630,11 +628,6 @@
}
@Override
- protected boolean isPageSearchEnabled(Context context) {
- return !FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE);
- }
-
- @Override
public List<String> getNonIndexableKeys(Context context) {
final List<String> keys = super.getNonIndexableKeys(context);
final TetheringManager tm =
diff --git a/src/com/android/settings/privatespace/AutoAdvanceSetupFragment.java b/src/com/android/settings/privatespace/AutoAdvanceSetupFragment.java
index 036a13a..77d57f7 100644
--- a/src/com/android/settings/privatespace/AutoAdvanceSetupFragment.java
+++ b/src/com/android/settings/privatespace/AutoAdvanceSetupFragment.java
@@ -16,20 +16,15 @@
package com.android.settings.privatespace;
-import static com.android.settings.privatespace.PrivateSpaceSetupActivity.ACCOUNT_LOGIN_ACTION;
-import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;
-
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
-import android.annotation.SuppressLint;
-import android.content.Intent;
+import android.app.settings.SettingsEnums;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
-import android.os.UserHandle;
import android.util.Log;
import android.util.Pair;
import android.view.LayoutInflater;
@@ -39,10 +34,10 @@
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
import androidx.navigation.fragment.NavHostFragment;
import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
import com.google.android.setupdesign.GlifLayout;
import com.google.common.collect.ImmutableList;
@@ -52,7 +47,7 @@
import java.util.List;
/** Fragment to show screens that auto advance during private space setup flow */
-public class AutoAdvanceSetupFragment extends Fragment {
+public class AutoAdvanceSetupFragment extends InstrumentedFragment {
private static final String TAG = "AutoAdvanceFragment";
private static final String TITLE_INDEX = "title_index";
private static final int DELAY_BETWEEN_SCREENS = 5000; // 5 seconds in millis
@@ -77,16 +72,20 @@
if (++mScreenTitleIndex < HEADER_IMAGE_PAIRS.size()) {
startFadeOutAnimation();
mHandler.postDelayed(mUpdateScreenResources, DELAY_BETWEEN_SCREENS);
+ } else if (PrivateSpaceMaintainer.getInstance(getActivity())
+ .doesPrivateSpaceExist()) {
+ mMetricsFeatureProvider.action(
+ getContext(),
+ SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED,
+ true);
+ NavHostFragment.findNavController(AutoAdvanceSetupFragment.this)
+ .navigate(R.id.action_set_lock_fragment);
} else {
- PrivateSpaceMaintainer privateSpaceMaintainer = PrivateSpaceMaintainer
- .getInstance(getActivity());
- UserHandle userHandle;
- if (privateSpaceMaintainer.doesPrivateSpaceExist() && (userHandle =
- privateSpaceMaintainer.getPrivateProfileHandle()) != null) {
- startActivityInPrivateUser(userHandle);
- } else {
- showPrivateSpaceErrorScreen();
- }
+ mMetricsFeatureProvider.action(
+ getContext(),
+ SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED,
+ false);
+ showPrivateSpaceErrorScreen();
}
}
}
@@ -144,12 +143,9 @@
super.onDestroy();
}
- @SuppressLint("MissingPermission")
- private void startActivityInPrivateUser(UserHandle userHandle) {
- /* Start new activity in private profile which is needed to set private profile lock */
- Intent intent = new Intent(getContext(), PrivateProfileContextHelperActivity.class);
- intent.putExtra(EXTRA_ACTION_TYPE, ACCOUNT_LOGIN_ACTION);
- getActivity().startActivityForResultAsUser(intent, ACCOUNT_LOGIN_ACTION, userHandle);
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.PRIVATE_SPACE_SETUP_SPACE_CREATION;
}
private void showPrivateSpaceErrorScreen() {
diff --git a/src/com/android/settings/privatespace/PrivateProfileCreationError.java b/src/com/android/settings/privatespace/PrivateProfileCreationError.java
index 80826dd..91c35a3 100644
--- a/src/com/android/settings/privatespace/PrivateProfileCreationError.java
+++ b/src/com/android/settings/privatespace/PrivateProfileCreationError.java
@@ -17,6 +17,7 @@
package com.android.settings.privatespace;
import android.app.Activity;
+import android.app.settings.SettingsEnums;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -24,17 +25,17 @@
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
import androidx.navigation.fragment.NavHostFragment;
import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;
/** Fragment to display error screen if creation of private profile failed for any reason. */
-public class PrivateProfileCreationError extends Fragment {
+public class PrivateProfileCreationError extends InstrumentedFragment {
@Override
public View onCreateView(
LayoutInflater inflater,
@@ -73,10 +74,17 @@
return rootView;
}
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.PRIVATE_SPACE_SETUP_SPACE_CREATION_ERROR;
+ }
+
private View.OnClickListener onTryAgain() {
return v -> {
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_TRY_CREATE_SPACE_AGAIN);
NavHostFragment.findNavController(PrivateProfileCreationError.this)
- .navigate(R.id.action_retry_profile_creation);
+ .navigate(R.id.action_retry_profile_creation);
};
}
@@ -84,6 +92,8 @@
return v -> {
Activity activity = getActivity();
if (activity != null) {
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_CANCEL_CREATE_SPACE);
activity.finish();
}
};
diff --git a/src/com/android/settings/privatespace/PrivateSpaceAccountLoginError.java b/src/com/android/settings/privatespace/PrivateSpaceAccountLoginError.java
index 2d263d7..ac3518e 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceAccountLoginError.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceAccountLoginError.java
@@ -20,6 +20,7 @@
import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;
import android.annotation.SuppressLint;
+import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.os.Bundle;
import android.os.UserHandle;
@@ -29,16 +30,16 @@
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;
/** Fragment to display error screen if the profile is not signed in with a Google account. */
-public class PrivateSpaceAccountLoginError extends Fragment {
+public class PrivateSpaceAccountLoginError extends InstrumentedFragment {
@Override
public View onCreateView(
LayoutInflater inflater,
@@ -67,18 +68,26 @@
return rootView;
}
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.PRIVATE_SPACE_SETUP_ACCOUNT_LOGIN_ERROR;
+ }
+
@SuppressLint("MissingPermission")
private View.OnClickListener nextScreen() {
return v -> {
- PrivateSpaceMaintainer privateSpaceMaintainer = PrivateSpaceMaintainer
- .getInstance(getActivity());
+ mMetricsFeatureProvider.action(
+ getContext(),
+ SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_TRY_CREATE_ACCOUNT_AGAIN);
+ PrivateSpaceMaintainer privateSpaceMaintainer =
+ PrivateSpaceMaintainer.getInstance(getActivity());
UserHandle userHandle;
- if (privateSpaceMaintainer.doesPrivateSpaceExist() && (userHandle =
- privateSpaceMaintainer.getPrivateProfileHandle()) != null) {
+ if (privateSpaceMaintainer.doesPrivateSpaceExist()
+ && (userHandle = privateSpaceMaintainer.getPrivateProfileHandle()) != null) {
Intent intent = new Intent(getContext(), PrivateProfileContextHelperActivity.class);
intent.putExtra(EXTRA_ACTION_TYPE, ACCOUNT_LOGIN_ACTION);
- getActivity().startActivityForResultAsUser(intent, ACCOUNT_LOGIN_ACTION,
- userHandle);
+ getActivity()
+ .startActivityForResultAsUser(intent, ACCOUNT_LOGIN_ACTION, userHandle);
}
};
}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceEducation.java b/src/com/android/settings/privatespace/PrivateSpaceEducation.java
index 0c87b2b..887854b 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceEducation.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceEducation.java
@@ -17,23 +17,25 @@
package com.android.settings.privatespace;
import android.app.Activity;
+import android.app.settings.SettingsEnums;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
import androidx.navigation.fragment.NavHostFragment;
import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;
/** Fragment educating about the usage of Private Space. */
-public class PrivateSpaceEducation extends Fragment {
+public class PrivateSpaceEducation extends InstrumentedFragment {
+
@Override
public View onCreateView(
LayoutInflater inflater,
@@ -66,11 +68,17 @@
return rootView;
}
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.PRIVATE_SPACE_SETUP_EDUCATION;
+ }
+
private View.OnClickListener onSetup() {
return v -> {
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_START);
NavHostFragment.findNavController(PrivateSpaceEducation.this)
- .navigate(R.id.action_education_to_auto_advance);
-
+ .navigate(R.id.action_education_to_auto_advance);
};
}
@@ -78,6 +86,8 @@
return v -> {
Activity activity = getActivity();
if (activity != null) {
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_CANCEL);
activity.finish();
}
};
diff --git a/src/com/android/settings/privatespace/PrivateSpaceSetLockFragment.java b/src/com/android/settings/privatespace/PrivateSpaceSetLockFragment.java
index dd60dc4..dd4bc7f 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceSetLockFragment.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceSetLockFragment.java
@@ -16,31 +16,35 @@
package com.android.settings.privatespace;
+import static com.android.settings.privatespace.PrivateSpaceSetupActivity.ACCOUNT_LOGIN_ACTION;
import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;
import static com.android.settings.privatespace.PrivateSpaceSetupActivity.SET_LOCK_ACTION;
-import android.annotation.SuppressLint;
+import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.os.Bundle;
import android.os.UserHandle;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-import androidx.navigation.fragment.NavHostFragment;
import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;
-/** Fragment that provides an option to user to choose between the existing screen lock or set a
- * separate private profile lock. */
-public class PrivateSpaceSetLockFragment extends Fragment {
+/**
+ * Fragment that provides an option to user to choose between the existing screen lock or set a
+ * separate private profile lock.
+ */
+public class PrivateSpaceSetLockFragment extends InstrumentedFragment {
+ private static final String TAG = "PrivateSpaceSetLockFrag";
@Override
public View onCreateView(
@@ -83,31 +87,37 @@
return rootView;
}
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.PRIVATE_SPACE_SETUP_LOCK;
+ }
+
private View.OnClickListener onClickUse() {
return v -> {
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_USE_SCREEN_LOCK);
// Simply Use default screen lock. No need to handle
- NavHostFragment.findNavController(PrivateSpaceSetLockFragment.this)
- .navigate(R.id.action_success_fragment);
+ launchActivityForAction(ACCOUNT_LOGIN_ACTION);
};
}
private View.OnClickListener onClickNewLock() {
return v -> {
- createPrivateSpaceLock();
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_NEW_LOCK);
+ launchActivityForAction(SET_LOCK_ACTION);
};
}
- @SuppressLint("MissingPermission")
- private void createPrivateSpaceLock() {
- PrivateSpaceMaintainer privateSpaceMaintainer = PrivateSpaceMaintainer
- .getInstance(getActivity());
- UserHandle userHandle;
- if (privateSpaceMaintainer.doesPrivateSpaceExist() && (userHandle =
- privateSpaceMaintainer.getPrivateProfileHandle()) != null) {
+ private void launchActivityForAction(int action) {
+ UserHandle userHandle =
+ PrivateSpaceMaintainer.getInstance(getActivity()).getPrivateProfileHandle();
+ if (userHandle != null) {
Intent intent = new Intent(getContext(), PrivateProfileContextHelperActivity.class);
- intent.putExtra(EXTRA_ACTION_TYPE, SET_LOCK_ACTION);
- getActivity().startActivityForResultAsUser(intent, SET_LOCK_ACTION,
- userHandle);
+ intent.putExtra(EXTRA_ACTION_TYPE, action);
+ getActivity().startActivityForResultAsUser(intent, action, userHandle);
+ } else {
+ Log.w(TAG, "Private profile user handle is null");
}
}
}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceSetupActivity.java b/src/com/android/settings/privatespace/PrivateSpaceSetupActivity.java
index 4eb61e5..21224ff 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceSetupActivity.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceSetupActivity.java
@@ -16,8 +16,11 @@
package com.android.settings.privatespace;
+import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.os.Bundle;
+import android.os.UserHandle;
+import android.util.Log;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
@@ -25,15 +28,20 @@
import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.google.android.setupdesign.util.ThemeHelper;
/** Activity class that helps in setting up of private space */
public class PrivateSpaceSetupActivity extends FragmentActivity {
+ private static final String TAG = "PrivateSpaceSetupAct";
public static final int SET_LOCK_ACTION = 1;
public static final int ACCOUNT_LOGIN_ACTION = 2;
public static final String EXTRA_ACTION_TYPE = "action_type";
private NavHostFragment mNavHostFragment;
+ private MetricsFeatureProvider mMetricsFeatureProvider;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
if (!android.os.Flags.allowPrivateProfile()) {
@@ -42,6 +50,7 @@
setTheme(SetupWizardUtils.getTheme(this, getIntent()));
ThemeHelper.trySetDynamicColor(this);
super.onCreate(savedInstanceState);
+ mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
setContentView(R.layout.privatespace_setup_root);
mNavHostFragment = (NavHostFragment) getSupportFragmentManager()
.findFragmentById(R.id.ps_nav_host_fragment);
@@ -51,11 +60,26 @@
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode == SET_LOCK_ACTION && resultCode == RESULT_OK) {
- mNavHostFragment.getNavController().navigate(R.id.action_success_fragment);
+ /* Start new activity in private profile to add an account to private profile */
+ UserHandle userHandle =
+ PrivateSpaceMaintainer.getInstance(this).getPrivateProfileHandle();
+ if (userHandle != null) {
+ Intent intent = new Intent(this, PrivateProfileContextHelperActivity.class);
+ intent.putExtra(EXTRA_ACTION_TYPE, ACCOUNT_LOGIN_ACTION);
+ startActivityForResultAsUser(intent, ACCOUNT_LOGIN_ACTION, userHandle);
+ } else {
+ Log.w(TAG, "Private profile user handle is null");
+ }
} else if (requestCode == ACCOUNT_LOGIN_ACTION) {
if (resultCode == RESULT_OK) {
- mNavHostFragment.getNavController().navigate(R.id.action_set_lock_fragment);
+ mMetricsFeatureProvider.action(
+ this, SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_ACCOUNT_LOGIN_SUCCESS, true);
+ mNavHostFragment.getNavController().navigate(R.id.action_success_fragment);
} else {
+ mMetricsFeatureProvider.action(
+ this,
+ SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_ACCOUNT_LOGIN_SUCCESS,
+ false);
mNavHostFragment.getNavController().navigate(R.id.action_advance_login_error);
}
}
diff --git a/src/com/android/settings/privatespace/SetupSuccessFragment.java b/src/com/android/settings/privatespace/SetupSuccessFragment.java
index f6796be..fc2ce46 100644
--- a/src/com/android/settings/privatespace/SetupSuccessFragment.java
+++ b/src/com/android/settings/privatespace/SetupSuccessFragment.java
@@ -17,6 +17,7 @@
package com.android.settings.privatespace;
import android.app.Activity;
+import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -28,16 +29,16 @@
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;
/** Fragment for the final screen shown on successful completion of private space setup. */
-public class SetupSuccessFragment extends Fragment {
+public class SetupSuccessFragment extends InstrumentedFragment {
private static final String TAG = "SetupSuccessFragment";
@Override
@@ -72,14 +73,25 @@
return rootView;
}
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.PRIVATE_SPACE_SETUP_FINISH;
+ }
+
private View.OnClickListener onClickNext() {
return v -> {
Activity activity = getActivity();
if (activity != null) {
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_DONE);
Intent allAppsIntent = new Intent(Intent.ACTION_ALL_APPS);
- ResolveInfo resolveInfo = activity.getPackageManager().resolveActivityAsUser(
- new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME),
- PackageManager.MATCH_SYSTEM_ONLY, activity.getUserId());
+ ResolveInfo resolveInfo =
+ activity.getPackageManager()
+ .resolveActivityAsUser(
+ new Intent(Intent.ACTION_MAIN)
+ .addCategory(Intent.CATEGORY_HOME),
+ PackageManager.MATCH_SYSTEM_ONLY,
+ activity.getUserId());
if (resolveInfo != null) {
allAppsIntent.setPackage(resolveInfo.activityInfo.packageName);
allAppsIntent.setComponent(resolveInfo.activityInfo.getComponentName());
diff --git a/src/com/android/settings/security/ContentProtectionTogglePreferenceController.java b/src/com/android/settings/security/ContentProtectionTogglePreferenceController.java
index c874a5e..101364b 100644
--- a/src/com/android/settings/security/ContentProtectionTogglePreferenceController.java
+++ b/src/com/android/settings/security/ContentProtectionTogglePreferenceController.java
@@ -15,20 +15,22 @@
*/
package com.android.settings.security;
-
import android.content.ContentResolver;
import android.content.Context;
import android.provider.Settings;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
+import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
-import com.android.settings.Utils;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.widget.SettingsMainSwitchPreference;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
/** Preference controller for content protection toggle switch bar. */
public class ContentProtectionTogglePreferenceController extends TogglePreferenceController
@@ -37,9 +39,9 @@
@VisibleForTesting
static final String KEY_CONTENT_PROTECTION_PREFERENCE = "content_protection_user_consent";
- private SettingsMainSwitchPreference mSwitchBar;
+ @Nullable private SettingsMainSwitchPreference mSwitchBar;
+ @Nullable private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin;
private final ContentResolver mContentResolver;
- private final boolean isFullyManagedDevice = Utils.getDeviceOwnerComponent(mContext) != null;
public ContentProtectionTogglePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
@@ -53,7 +55,7 @@
@Override
public boolean isChecked() {
- if (isFullyManagedDevice) {
+ if (mEnforcedAdmin != null) {
// If fully managed device, it should always unchecked
return false;
}
@@ -70,12 +72,25 @@
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
+ final Preference preference = screen.findPreference(getPreferenceKey());
- mSwitchBar = screen.findPreference(getPreferenceKey());
- mSwitchBar.addOnSwitchChangeListener(this);
- if (isFullyManagedDevice) {
- // If fully managed device, the switch bar is greyed out
- mSwitchBar.setEnabled(false);
+ if (preference instanceof SettingsMainSwitchPreference) {
+ mSwitchBar = (SettingsMainSwitchPreference) preference;
+ mSwitchBar.addOnSwitchChangeListener(this);
+ }
+ }
+
+ /**
+ * Temporary workaround for SettingsMainSwitchPreference.setDisabledByAdmin without user
+ * restriction.
+ */
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ // Assign the value to mEnforcedAdmin since it's needed in isChecked()
+ mEnforcedAdmin = getEnforcedAdmin();
+ if (mSwitchBar != null && mEnforcedAdmin != null) {
+ mSwitchBar.setDisabledByAdmin(mEnforcedAdmin);
}
}
@@ -90,4 +105,9 @@
public int getSliceHighlightMenuRes() {
return R.string.menu_key_security;
}
+
+ @VisibleForTesting
+ protected RestrictedLockUtils.EnforcedAdmin getEnforcedAdmin() {
+ return RestrictedLockUtilsInternal.getDeviceOwner(mContext);
+ }
}
diff --git a/src/com/android/settings/sound/AudioSwitchPreferenceController.java b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
index 6475257..b570b2d 100644
--- a/src/com/android/settings/sound/AudioSwitchPreferenceController.java
+++ b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
@@ -18,6 +18,9 @@
import static android.media.AudioManager.STREAM_DEVICES_CHANGED_ACTION;
+import static com.android.settingslib.media.flags.Flags.enableOutputSwitcherForSystemRouting;
+
+import android.annotation.Nullable;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -28,6 +31,8 @@
import android.media.AudioDeviceInfo;
import android.media.AudioManager;
import android.media.MediaRouter;
+import android.media.session.MediaController;
+import android.media.session.MediaSessionManager;
import android.os.Handler;
import android.os.Looper;
import android.util.FeatureFlagUtils;
@@ -79,6 +84,8 @@
private final WiredHeadsetBroadcastReceiver mReceiver;
private final Handler mHandler;
private LocalBluetoothManager mLocalBluetoothManager;
+ @Nullable private MediaSessionManager.OnActiveSessionsChangedListener mSessionListener;
+ @Nullable private MediaSessionManager mMediaSessionManager;
public interface AudioSwitchCallback {
void onPreferenceDataChanged(ListPreference preference);
@@ -107,6 +114,14 @@
return;
}
mProfileManager = mLocalBluetoothManager.getProfileManager();
+
+ if (enableOutputSwitcherForSystemRouting()) {
+ mMediaSessionManager = context.getSystemService(MediaSessionManager.class);
+ mSessionListener = new SessionChangeListener();
+ } else {
+ mMediaSessionManager = null;
+ mSessionListener = null;
+ }
}
/**
@@ -329,13 +344,27 @@
// Register for misc other intent broadcasts.
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
intentFilter.addAction(STREAM_DEVICES_CHANGED_ACTION);
- mContext.registerReceiver(mReceiver, intentFilter);
+
+ if (enableOutputSwitcherForSystemRouting()) {
+ mContext.registerReceiver(mReceiver, intentFilter, Context.RECEIVER_NOT_EXPORTED);
+ if (mMediaSessionManager != null) {
+ mMediaSessionManager.addOnActiveSessionsChangedListener(
+ mSessionListener, null, mHandler);
+ }
+ } else {
+ mContext.registerReceiver(mReceiver, intentFilter);
+ }
}
private void unregister() {
mLocalBluetoothManager.getEventManager().unregisterCallback(this);
mAudioManager.unregisterAudioDeviceCallback(mAudioManagerAudioDeviceCallback);
mContext.unregisterReceiver(mReceiver);
+ if (enableOutputSwitcherForSystemRouting()) {
+ if (mMediaSessionManager != null) {
+ mMediaSessionManager.removeOnActiveSessionsChangedListener(mSessionListener);
+ }
+ }
}
/** Notifications of audio device connection and disconnection events. */
@@ -362,4 +391,12 @@
}
}
}
+
+ private class SessionChangeListener
+ implements MediaSessionManager.OnActiveSessionsChangedListener {
+ @Override
+ public void onActiveSessionsChanged(List<MediaController> controllers) {
+ updateState(mPreference);
+ }
+ }
}
diff --git a/src/com/android/settings/sound/MediaOutputPreferenceController.java b/src/com/android/settings/sound/MediaOutputPreferenceController.java
index 758f7e3..47be7fe 100644
--- a/src/com/android/settings/sound/MediaOutputPreferenceController.java
+++ b/src/com/android/settings/sound/MediaOutputPreferenceController.java
@@ -16,6 +16,9 @@
package com.android.settings.sound;
+import static com.android.settingslib.media.flags.Flags.enableOutputSwitcherForSystemRouting;
+
+import android.annotation.Nullable;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.content.Intent;
@@ -46,21 +49,22 @@
*/
public class MediaOutputPreferenceController extends AudioSwitchPreferenceController {
- private MediaController mMediaController;
+ private static final String TAG = "MediaOutputPreferenceController";
+ @Nullable private MediaController mMediaController;
+ private MediaSessionManager mMediaSessionManager;
public MediaOutputPreferenceController(Context context, String key) {
super(context, key);
- mMediaController = MediaOutputUtils.getActiveLocalMediaController(context.getSystemService(
- MediaSessionManager.class));
+ mMediaSessionManager = context.getSystemService(MediaSessionManager.class);
+ mMediaController = MediaOutputUtils.getActiveLocalMediaController(mMediaSessionManager);
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
- if (!Utils.isAudioModeOngoingCall(mContext) && mMediaController != null) {
- mPreference.setVisible(true);
- }
+ mPreference.setVisible(!Utils.isAudioModeOngoingCall(mContext)
+ && (enableOutputSwitcherForSystemRouting() ? true : mMediaController != null));
}
@Override
@@ -70,11 +74,16 @@
return;
}
- if (mMediaController == null) {
- // No active local playback
- return;
+ if (enableOutputSwitcherForSystemRouting()) {
+ mMediaController = MediaOutputUtils.getActiveLocalMediaController(mMediaSessionManager);
+ } else {
+ if (mMediaController == null) {
+ // No active local playback
+ return;
+ }
}
+
if (Utils.isAudioModeOngoingCall(mContext)) {
// Ongoing call status, switch entry for media will be disabled.
mPreference.setVisible(false);
@@ -95,9 +104,14 @@
|| (connectedLeAudioDevices != null && !connectedLeAudioDevices.isEmpty()))) {
activeDevice = findActiveDevice();
}
- mPreference.setTitle(mContext.getString(R.string.media_output_label_title,
- com.android.settings.Utils.getApplicationLabel(mContext,
- mMediaController.getPackageName())));
+
+ if (mMediaController == null) {
+ mPreference.setTitle(mContext.getString(R.string.media_output_title_without_playing));
+ } else {
+ mPreference.setTitle(mContext.getString(R.string.media_output_label_title,
+ com.android.settings.Utils.getApplicationLabel(mContext,
+ mMediaController.getPackageName())));
+ }
mPreference.setSummary((activeDevice == null) ?
mContext.getText(R.string.media_output_default_summary) :
activeDevice.getAlias());
@@ -145,13 +159,19 @@
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
- mContext.sendBroadcast(new Intent()
- .setAction(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
- .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME)
- .putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME,
- mMediaController.getPackageName())
- .putExtra(MediaOutputConstants.KEY_MEDIA_SESSION_TOKEN,
- mMediaController.getSessionToken()));
+ if (enableOutputSwitcherForSystemRouting() && mMediaController == null) {
+ mContext.sendBroadcast(new Intent()
+ .setAction(MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG)
+ .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME));
+ } else if (mMediaController != null) {
+ mContext.sendBroadcast(new Intent()
+ .setAction(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
+ .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME)
+ .putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME,
+ mMediaController.getPackageName())
+ .putExtra(MediaOutputConstants.KEY_MEDIA_SESSION_TOKEN,
+ mMediaController.getSessionToken()));
+ }
return true;
}
return false;
diff --git a/src/com/android/settings/spa/SpaAppBridgeActivity.kt b/src/com/android/settings/spa/SpaAppBridgeActivity.kt
index 1a77442..a68d220 100644
--- a/src/com/android/settings/spa/SpaAppBridgeActivity.kt
+++ b/src/com/android/settings/spa/SpaAppBridgeActivity.kt
@@ -20,7 +20,6 @@
import android.content.Intent
import android.os.Bundle
import android.os.UserHandle
-import com.android.settings.spa.SpaBridgeActivity.Companion.getDestination
import com.android.settings.spa.SpaBridgeActivity.Companion.startSpaActivityFromBridge
/**
@@ -33,11 +32,7 @@
class SpaAppBridgeActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- getDestination()?.let { destinationPrefix ->
- getDestinationForApp(destinationPrefix, intent)?.let { destination ->
- startSpaActivityFromBridge(destination)
- }
- }
+ startSpaActivityFromBridge { getDestinationForApp(it, intent) }
finish()
}
diff --git a/src/com/android/settings/spa/SpaBridgeActivity.kt b/src/com/android/settings/spa/SpaBridgeActivity.kt
index 0e239ae..61d8f51 100644
--- a/src/com/android/settings/spa/SpaBridgeActivity.kt
+++ b/src/com/android/settings/spa/SpaBridgeActivity.kt
@@ -18,12 +18,10 @@
import android.app.Activity
import android.content.Intent
-import android.content.pm.PackageManager
-import android.content.pm.PackageManager.ComponentInfoFlags
import android.os.Bundle
-import androidx.annotation.VisibleForTesting
import com.android.settings.activityembedding.ActivityEmbeddingUtils
import com.android.settings.activityembedding.EmbeddedDeepLinkUtils.tryStartMultiPaneDeepLink
+import com.android.settings.spa.SpaDestination.Companion.getDestination
import com.android.settingslib.spa.framework.util.SESSION_EXTERNAL
import com.android.settingslib.spa.framework.util.appendSpaParams
@@ -37,29 +35,23 @@
class SpaBridgeActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- getDestination()?.let { destination ->
- startSpaActivityFromBridge(destination)
- }
+ startSpaActivityFromBridge()
finish()
}
companion object {
- fun Activity.startSpaActivityFromBridge(destination: String) {
+ fun Activity.startSpaActivityFromBridge(destinationFactory: (String) -> String? = { it }) {
+ val (destination, highlightMenuKey) = getDestination(destinationFactory) ?: return
val intent = Intent(this, SpaActivity::class.java)
- .appendSpaParams(destination = destination)
- .appendSpaParams(sessionName = SESSION_EXTERNAL)
+ .appendSpaParams(
+ destination = destination,
+ sessionName = SESSION_EXTERNAL,
+ )
if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this) ||
- !tryStartMultiPaneDeepLink(intent)) {
+ !tryStartMultiPaneDeepLink(intent, highlightMenuKey)
+ ) {
startActivity(intent)
}
}
-
- fun Activity.getDestination(): String? =
- packageManager.getActivityInfo(
- componentName, ComponentInfoFlags.of(PackageManager.GET_META_DATA.toLong())
- ).metaData.getString(META_DATA_KEY_DESTINATION)
-
- @VisibleForTesting
- const val META_DATA_KEY_DESTINATION = "com.android.settings.spa.DESTINATION"
}
}
diff --git a/src/com/android/settings/spa/SpaDestination.kt b/src/com/android/settings/spa/SpaDestination.kt
new file mode 100644
index 0000000..bdec1d8
--- /dev/null
+++ b/src/com/android/settings/spa/SpaDestination.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa
+
+import android.app.Activity
+import android.content.pm.PackageManager
+import androidx.annotation.VisibleForTesting
+import com.android.settings.SettingsActivity.META_DATA_KEY_HIGHLIGHT_MENU_KEY
+
+data class SpaDestination(
+ val destination: String,
+ val highlightMenuKey: String?,
+) {
+ companion object {
+ fun Activity.getDestination(
+ destinationFactory: (String) -> String? = { it },
+ ): SpaDestination? {
+ val metaData = packageManager.getActivityInfo(
+ componentName,
+ PackageManager.ComponentInfoFlags.of(PackageManager.GET_META_DATA.toLong())
+ ).metaData
+ val destination = metaData.getString(META_DATA_KEY_DESTINATION)
+ if (destination.isNullOrBlank()) return null
+ val finalDestination = destinationFactory(destination)
+ if (finalDestination.isNullOrBlank()) return null
+ return SpaDestination(
+ destination = finalDestination,
+ highlightMenuKey = metaData.getString(META_DATA_KEY_HIGHLIGHT_MENU_KEY),
+ )
+ }
+
+ @VisibleForTesting
+ const val META_DATA_KEY_DESTINATION = "com.android.settings.spa.DESTINATION"
+ }
+}
diff --git a/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt b/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt
index 7615442..345d931 100644
--- a/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt
@@ -23,7 +23,9 @@
import androidx.compose.material.icons.outlined.Report
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.remember
import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settings.R
import com.android.settingslib.RestrictedLockUtils
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin
@@ -35,6 +37,9 @@
import com.android.settingslib.spaprivileged.model.app.hasFlag
import com.android.settingslib.spaprivileged.model.app.isActiveAdmin
import com.android.settingslib.spaprivileged.model.app.userId
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.flow.flowOn
class AppForceStopButton(
private val packageInfoPresenter: PackageInfoPresenter,
@@ -47,9 +52,13 @@
fun getActionButton(app: ApplicationInfo): ActionButton {
val dialogPresenter = confirmDialogPresenter()
return ActionButton(
- text = context.getString(R.string.force_stop),
+ text = stringResource(R.string.force_stop),
imageVector = Icons.Outlined.Report,
- enabled = isForceStopButtonEnable(app),
+ enabled = remember(app) {
+ flow {
+ emit(isForceStopButtonEnable(app))
+ }.flowOn(Dispatchers.Default)
+ }.collectAsStateWithLifecycle(false).value,
) { onForceStopButtonClicked(app, dialogPresenter) }
}
diff --git a/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt b/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt
index 3b7f579..6882963 100644
--- a/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt
@@ -32,10 +32,10 @@
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavType
import androidx.navigation.navArgument
-import com.android.settings.flags.Flags
import com.android.settings.R
import com.android.settings.applications.AppInfoBase
import com.android.settings.applications.appinfo.AppInfoDashboardFragment
+import com.android.settings.flags.Flags
import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
import com.android.settings.spa.app.appcompat.UserAspectRatioAppPreference
import com.android.settings.spa.app.specialaccess.AlarmsAndRemindersAppListProvider
@@ -45,7 +45,6 @@
import com.android.settings.spa.app.specialaccess.PictureInPictureListProvider
import com.android.settings.spa.app.specialaccess.VoiceActivationAppsListProvider
import com.android.settingslib.spa.framework.common.SettingsPageProvider
-import com.android.settingslib.spa.framework.compose.LifecycleEffect
import com.android.settingslib.spa.framework.compose.navigator
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
import com.android.settingslib.spa.widget.ui.Category
@@ -75,7 +74,7 @@
PackageInfoPresenter(context, packageName, userId, coroutineScope)
}
AppInfoSettings(packageInfoPresenter)
- packageInfoPresenter.PackageRemoveDetector()
+ packageInfoPresenter.PackageFullyRemovedEffect()
}
@Composable
@@ -120,8 +119,7 @@
@Composable
private fun AppInfoSettings(packageInfoPresenter: PackageInfoPresenter) {
- LifecycleEffect(onStart = { packageInfoPresenter.reloadPackageInfo() })
- val packageInfo = packageInfoPresenter.flow.collectAsStateWithLifecycle().value ?: return
+ val packageInfo = packageInfoPresenter.flow.collectAsStateWithLifecycle().value ?:return
val app = checkNotNull(packageInfo.applicationInfo)
val featureFlags: FeatureFlags = FeatureFlagsImpl()
RegularScaffold(
@@ -131,7 +129,7 @@
AppInfoSettingsMoreOptions(packageInfoPresenter, app)
}
) {
- val appInfoProvider = remember { AppInfoProvider(packageInfo) }
+ val appInfoProvider = remember(packageInfo) { AppInfoProvider(packageInfo) }
appInfoProvider.AppInfo()
diff --git a/src/com/android/settings/spa/app/appinfo/CloneAppInfoSettings.kt b/src/com/android/settings/spa/app/appinfo/CloneAppInfoSettings.kt
index 760d375..c8e8d35 100644
--- a/src/com/android/settings/spa/app/appinfo/CloneAppInfoSettings.kt
+++ b/src/com/android/settings/spa/app/appinfo/CloneAppInfoSettings.kt
@@ -28,7 +28,6 @@
import androidx.navigation.navArgument
import com.android.settings.R
import com.android.settingslib.spa.framework.common.SettingsPageProvider
-import com.android.settingslib.spa.framework.compose.LifecycleEffect
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
import com.android.settingslib.spaprivileged.model.app.toRoute
import com.android.settingslib.spaprivileged.template.app.AppInfoProvider
@@ -54,7 +53,7 @@
PackageInfoPresenter(context, packageName, userId, coroutineScope)
}
CloneAppInfoSettings(packageInfoPresenter)
- packageInfoPresenter.PackageRemoveDetector()
+ packageInfoPresenter.PackageFullyRemovedEffect()
}
@Composable
@@ -70,7 +69,6 @@
@Composable
private fun CloneAppInfoSettings(packageInfoPresenter: PackageInfoPresenter) {
- LifecycleEffect(onStart = { packageInfoPresenter.reloadPackageInfo() })
val packageInfo = packageInfoPresenter.flow.collectAsStateWithLifecycle().value ?: return
RegularScaffold(
title = stringResource(R.string.application_info_label),
diff --git a/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt b/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
index 6eee72e..8d0f0bb 100644
--- a/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
+++ b/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
@@ -32,14 +32,20 @@
import com.android.settingslib.spa.framework.compose.LocalNavController
import com.android.settingslib.spaprivileged.framework.common.activityManager
import com.android.settingslib.spaprivileged.framework.common.asUser
+import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverAsUserFlow
import com.android.settingslib.spaprivileged.framework.compose.DisposableBroadcastReceiverAsUser
import com.android.settingslib.spaprivileged.model.app.IPackageManagers
import com.android.settingslib.spaprivileged.model.app.PackageManagers
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.merge
+import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
+import kotlinx.coroutines.plus
private const val TAG = "PackageInfoPresenter"
@@ -58,34 +64,33 @@
private val userHandle = UserHandle.of(userId)
val userContext by lazy { context.asUser(userHandle) }
val userPackageManager: PackageManager by lazy { userContext.packageManager }
- private val _flow: MutableStateFlow<PackageInfo?> = MutableStateFlow(null)
- val flow: StateFlow<PackageInfo?> = _flow
-
- fun reloadPackageInfo() {
- coroutineScope.launch(Dispatchers.IO) {
- _flow.value = getPackageInfo()
- }
- }
+ val flow: StateFlow<PackageInfo?> = merge(
+ flowOf(null), // kick an initial value
+ context.broadcastReceiverAsUserFlow(
+ intentFilter = IntentFilter().apply {
+ addAction(Intent.ACTION_PACKAGE_CHANGED)
+ addAction(Intent.ACTION_PACKAGE_REPLACED)
+ addAction(Intent.ACTION_PACKAGE_RESTARTED)
+ addDataScheme("package")
+ },
+ userHandle = userHandle,
+ ),
+ ).map { getPackageInfo() }
+ .stateIn(coroutineScope + Dispatchers.Default, SharingStarted.Eagerly, null)
/**
- * Detects the package removed event.
+ * Detects the package fully removed event, and close the current page.
*/
@Composable
- fun PackageRemoveDetector() {
- val intentFilter = IntentFilter(Intent.ACTION_PACKAGE_REMOVED).apply {
+ fun PackageFullyRemovedEffect() {
+ val intentFilter = IntentFilter(Intent.ACTION_PACKAGE_FULLY_REMOVED).apply {
addDataScheme("package")
}
val navController = LocalNavController.current
DisposableBroadcastReceiverAsUser(intentFilter, userHandle) { intent ->
if (packageName == intent.data?.schemeSpecificPart) {
- val packageInfo = flow.value
- if (packageInfo != null && packageInfo.applicationInfo?.isSystemApp == true) {
- // System app still exists after uninstalling the updates, refresh the page.
- reloadPackageInfo()
- } else {
- navController.navigateBack()
- }
+ navController.navigateBack()
}
}
}
@@ -97,7 +102,6 @@
userPackageManager.setApplicationEnabledSetting(
packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0
)
- reloadPackageInfo()
}
}
@@ -108,7 +112,6 @@
userPackageManager.setApplicationEnabledSetting(
packageName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER, 0
)
- reloadPackageInfo()
}
}
@@ -123,7 +126,6 @@
logAction(SettingsEnums.ACTION_SETTINGS_CLEAR_INSTANT_APP)
coroutineScope.launch(Dispatchers.IO) {
userPackageManager.deletePackageAsUser(packageName, null, 0, userId)
- reloadPackageInfo()
}
}
@@ -133,7 +135,6 @@
coroutineScope.launch(Dispatchers.Default) {
Log.d(TAG, "Stopping package $packageName")
context.activityManager.forceStopPackageAsUser(packageName, userId)
- reloadPackageInfo()
}
}
@@ -141,7 +142,7 @@
metricsFeatureProvider.action(context, category, packageName)
}
- private fun getPackageInfo() =
+ private fun getPackageInfo(): PackageInfo? =
packageManagers.getPackageInfoAsUser(
packageName = packageName,
flags = PackageManager.MATCH_ANY_USER.toLong() or
diff --git a/src/com/android/settings/system/DeveloperOptionsController.kt b/src/com/android/settings/system/DeveloperOptionsController.kt
index fe7fb4d..6874ec7 100644
--- a/src/com/android/settings/system/DeveloperOptionsController.kt
+++ b/src/com/android/settings/system/DeveloperOptionsController.kt
@@ -34,6 +34,7 @@
import com.android.settings.spa.preference.ComposePreferenceController
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.ui.SettingsIcon
+import com.android.settingslib.spaprivileged.framework.common.userManager
import com.android.settingslib.spaprivileged.model.enterprise.Restrictions
import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBooleanFlow
import com.android.settingslib.spaprivileged.template.preference.RestrictedPreference
@@ -41,7 +42,9 @@
class DeveloperOptionsController(context: Context, preferenceKey: String) :
ComposePreferenceController(context, preferenceKey) {
- override fun getAvailabilityStatus() = AVAILABLE
+ override fun getAvailabilityStatus() =
+ if (mContext.userManager.isAdminUser) AVAILABLE
+ else DISABLED_FOR_USER
private val isDevelopmentSettingsEnabledFlow = context.settingsGlobalBooleanFlow(
name = Settings.Global.DEVELOPMENT_SETTINGS_ENABLED,
diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreference.java b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
index fc43e58..9f6d787 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchPreference.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
@@ -78,7 +78,7 @@
holder.setDividerAllowedAbove(false);
holder.setDividerAllowedBelow(false);
- if (mRestrictedHelper != null) {
+ if (mEnforcedAdmin == null && mRestrictedHelper != null) {
mEnforcedAdmin = mRestrictedHelper.checkRestrictionEnforced();
}
mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar);
diff --git a/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java
deleted file mode 100644
index 8a4be10..0000000
--- a/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.wifi.tether;
-
-import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.net.wifi.SoftApConfiguration;
-import android.util.FeatureFlagUtils;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.ListPreference;
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
-
-public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferenceController {
-
- private static final String TAG = "WifiTetherApBandPref";
- private static final String PREF_KEY = "wifi_tether_network_ap_band";
-
- private String[] mBandEntries;
- private String[] mBandSummaries;
- private int mBandIndex;
-
- public WifiTetherApBandPreferenceController(Context context,
- OnTetherConfigUpdateListener listener) {
- super(context, listener);
- updatePreferenceEntries();
- }
-
- @Override
- public void updateDisplay() {
- final SoftApConfiguration config = mWifiManager.getSoftApConfiguration();
- if (config == null) {
- mBandIndex = SoftApConfiguration.BAND_2GHZ;
- Log.d(TAG, "Updating band index to BAND_2GHZ because no config");
- } else if (is5GhzBandSupported()) {
- mBandIndex = validateSelection(config.getBand());
- Log.d(TAG, "Updating band index to " + mBandIndex);
- } else {
- mWifiManager.setSoftApConfiguration(
- new SoftApConfiguration.Builder(config).setBand(SoftApConfiguration.BAND_2GHZ)
- .build());
- mBandIndex = SoftApConfiguration.BAND_2GHZ;
- Log.d(TAG, "5Ghz not supported, updating band index to 2GHz");
- }
- ListPreference preference =
- (ListPreference) mPreference;
- preference.setEntries(mBandSummaries);
- preference.setEntryValues(mBandEntries);
-
- if (!is5GhzBandSupported()) {
- preference.setEnabled(false);
- preference.setSummary(R.string.wifi_ap_choose_2G);
- } else {
- preference.setValue(Integer.toString(config.getBand()));
- preference.setSummary(getConfigSummary());
- }
- }
-
- String getConfigSummary() {
- switch (mBandIndex) {
- case SoftApConfiguration.BAND_2GHZ:
- return mBandSummaries[0];
- case SoftApConfiguration.BAND_5GHZ:
- return mBandSummaries[1];
- default:
- return mContext.getString(R.string.wifi_ap_prefer_5G);
- }
- }
-
- @Override
- public String getPreferenceKey() {
- return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE)
- ? PREF_KEY + DEDUP_POSTFIX : PREF_KEY;
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- mBandIndex = validateSelection(Integer.parseInt((String) newValue));
- Log.d(TAG, "Band preference changed, updating band index to " + mBandIndex);
- preference.setSummary(getConfigSummary());
- mListener.onTetherConfigUpdated(this);
- return true;
- }
-
- private int validateSelection(int band) {
- // unsupported states:
- // 1: BAND_5GHZ only - include 2GHZ since some of countries doesn't support 5G hotspot
- // 2: no 5 GHZ support means we can't have BAND_5GHZ - default to 2GHZ
- if (SoftApConfiguration.BAND_5GHZ == band) {
- if (!is5GhzBandSupported()) {
- return SoftApConfiguration.BAND_2GHZ;
- }
- return SoftApConfiguration.BAND_5GHZ | SoftApConfiguration.BAND_2GHZ;
- }
-
- return band;
- }
-
- @VisibleForTesting
- void updatePreferenceEntries() {
- Resources res = mContext.getResources();
- int entriesRes = R.array.wifi_ap_band;
- int summariesRes = R.array.wifi_ap_band_summary;
- mBandEntries = res.getStringArray(entriesRes);
- mBandSummaries = res.getStringArray(summariesRes);
- }
-
- private boolean is5GhzBandSupported() {
- final String countryCode = mWifiManager.getCountryCode();
- if (!mWifiManager.is5GHzBandSupported() || countryCode == null) {
- return false;
- }
- return true;
- }
-
- public int getBandIndex() {
- return mBandIndex;
- }
-}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
index 7d0a86b..d61b3d0 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
@@ -16,20 +16,16 @@
package com.android.settings.wifi.tether;
-import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;
-
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.wifi.SoftApConfiguration;
import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
import androidx.annotation.VisibleForTesting;
import androidx.preference.EditTextPreference;
import androidx.preference.Preference;
import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.ValidatedEditTextPreference;
import com.android.settings.wifi.WifiUtils;
@@ -68,8 +64,7 @@
@Override
public String getPreferenceKey() {
- return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE)
- ? PREF_KEY + DEDUP_POSTFIX : PREF_KEY;
+ return PREF_KEY;
}
@Override
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
index 1e415b3..1bcff1e 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
@@ -16,21 +16,17 @@
package com.android.settings.wifi.tether;
-import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;
-
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.SoftApConfiguration;
import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
import androidx.preference.EditTextPreference;
import androidx.preference.Preference;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.ValidatedEditTextPreference;
import com.android.settings.wifi.dpp.WifiDppUtils;
@@ -68,8 +64,7 @@
@Override
public String getPreferenceKey() {
- return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE)
- ? PREF_KEY + DEDUP_POSTFIX : PREF_KEY;
+ return PREF_KEY;
}
@Override
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java
index 79a97ae..41b6dd9 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java
@@ -16,14 +16,11 @@
package com.android.settings.wifi.tether;
-import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;
-
import android.annotation.NonNull;
import android.content.Context;
import android.net.wifi.SoftApCapability;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager;
-import android.util.FeatureFlagUtils;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
@@ -31,7 +28,6 @@
import androidx.preference.Preference;
import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.overlay.FeatureFactory;
import java.util.LinkedHashMap;
@@ -82,8 +78,7 @@
@Override
public String getPreferenceKey() {
- return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE)
- ? PREF_KEY + DEDUP_POSTFIX : PREF_KEY;
+ return PREF_KEY;
}
@Override
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index df31f49..bad29eb 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -30,7 +30,6 @@
import android.net.wifi.SoftApConfiguration;
import android.os.Bundle;
import android.os.UserManager;
-import android.util.FeatureFlagUtils;
import android.util.Log;
import androidx.annotation.Nullable;
@@ -39,7 +38,6 @@
import com.android.settings.R;
import com.android.settings.SettingsActivity;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.dashboard.RestrictedDashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -387,10 +385,7 @@
if (userManager == null || !userManager.isAdminUser()) {
return false;
}
- if (!WifiUtils.canShowWifiHotspot(context)) {
- return false;
- }
- return !FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE);
+ return WifiUtils.canShowWifiHotspot(context);
}
@Override
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index fa55f35..6d3c748 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -50,6 +50,8 @@
"src/**/*.kt",
],
+ test_suites: ["general-tests"],
+
static_libs: [
"Robolectric_shadows_androidx_fragment_upstream",
"Settings_robolectric_meta_service_file",
diff --git a/tests/robotests/src/com/android/settings/AllInOneTetherSettingsTest.java b/tests/robotests/src/com/android/settings/AllInOneTetherSettingsTest.java
deleted file mode 100644
index f2a55c1..0000000
--- a/tests/robotests/src/com/android/settings/AllInOneTetherSettingsTest.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings;
-
-import static com.android.settings.AllInOneTetherSettings.BLUETOOTH_TETHER_KEY;
-import static com.android.settings.AllInOneTetherSettings.ETHERNET_TETHER_KEY;
-import static com.android.settings.AllInOneTetherSettings.EXPANDED_CHILD_COUNT_DEFAULT;
-import static com.android.settings.AllInOneTetherSettings.EXPANDED_CHILD_COUNT_MAX;
-import static com.android.settings.AllInOneTetherSettings.EXPANDED_CHILD_COUNT_WITH_SECURITY_NON;
-import static com.android.settings.AllInOneTetherSettings.USB_TETHER_KEY;
-import static com.android.settings.AllInOneTetherSettings.WIFI_TETHER_DISABLE_KEY;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.ConnectivityManager;
-import android.net.EthernetManager;
-import android.net.TetheringManager;
-import android.net.wifi.SoftApConfiguration;
-import android.net.wifi.WifiManager;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.util.FeatureFlagUtils;
-
-import androidx.preference.PreferenceGroup;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.wifi.repository.WifiHotspotRepository;
-import com.android.settings.wifi.tether.WifiTetherAutoOffPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherSecurityPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class AllInOneTetherSettingsTest {
- private static final String[] WIFI_REGEXS = {"wifi_regexs"};
- private static final String[] USB_REGEXS = {"usb_regexs"};
- private static final String[] BT_REGEXS = {"bt_regexs"};
- private static final String[] ETHERNET_REGEXS = {"ethernet_regexs"};
-
- private Context mContext;
- private AllInOneTetherSettings mAllInOneTetherSettings;
-
- @Mock
- private WifiManager mWifiManager;
- @Mock
- private ConnectivityManager mConnectivityManager;
- @Mock
- private TetheringManager mTetheringManager;
- @Mock
- private UserManager mUserManager;
- @Mock
- private WifiTetherSecurityPreferenceController mSecurityPreferenceController;
- @Mock
- private PreferenceScreen mPreferenceScreen;
- @Mock
- private PreferenceGroup mWifiTetherGroup;
- @Mock
- private EthernetManager mEthernetManager;
-
- @Before
- public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
-
- MockitoAnnotations.initMocks(this);
- when(FakeFeatureFactory.setupForTest().getWifiFeatureProvider().getWifiHotspotRepository())
- .thenReturn(mock(WifiHotspotRepository.class));
- doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
- doReturn(mConnectivityManager)
- .when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
- doReturn(mTetheringManager)
- .when(mContext).getSystemService(Context.TETHERING_SERVICE);
- doReturn(mEthernetManager).when(mContext).getSystemService(EthernetManager.class);
- doReturn(WIFI_REGEXS).when(mTetheringManager).getTetherableWifiRegexs();
- doReturn(USB_REGEXS).when(mTetheringManager).getTetherableUsbRegexs();
- doReturn(BT_REGEXS).when(mTetheringManager).getTetherableBluetoothRegexs();
- doReturn(ETHERNET_REGEXS).when(mTetheringManager).getTetherableIfaces();
- doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
- // Assume the feature is enabled for most test cases.
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, true);
- mAllInOneTetherSettings = spy(new AllInOneTetherSettings());
- doReturn(mPreferenceScreen).when(mAllInOneTetherSettings).getPreferenceScreen();
- ReflectionHelpers.setField(mAllInOneTetherSettings, "mLifecycle", mock(Lifecycle.class));
- ReflectionHelpers.setField(mAllInOneTetherSettings, "mSecurityPreferenceController",
- mSecurityPreferenceController);
- ReflectionHelpers.setField(mAllInOneTetherSettings, "mWifiTetherGroup", mWifiTetherGroup);
- }
-
- @Test
- public void getNonIndexableKeys_tetherAvailable_featureEnabled_keysReturnedCorrectly() {
- // To let TetherUtil.isTetherAvailable return true, select one of the combinations
- setupIsTetherAvailable(true);
-
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, true);
- final List<String> niks =
- AllInOneTetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
-
- assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
- assertThat(niks).doesNotContain(
- AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
- assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
- assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_AP_BAND);
- assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_SECURITY);
- assertThat(niks).doesNotContain(BLUETOOTH_TETHER_KEY);
- assertThat(niks).doesNotContain(USB_TETHER_KEY);
- assertThat(niks).doesNotContain(ETHERNET_TETHER_KEY);
-
- // This key should be returned because it's not visible by default.
- assertThat(niks).contains(WIFI_TETHER_DISABLE_KEY);
- }
-
- @Test
- public void getNonIndexableKeys_tetherAvailable_featureDisabled_keysReturned() {
- setupIsTetherAvailable(true);
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
-
- final List<String> niks =
- AllInOneTetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
-
- assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
- assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
- assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
- assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_AP_BAND);
- assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_SECURITY);
- assertThat(niks).contains(WIFI_TETHER_DISABLE_KEY);
- assertThat(niks).contains(BLUETOOTH_TETHER_KEY);
- assertThat(niks).contains(USB_TETHER_KEY);
- assertThat(niks).contains(ETHERNET_TETHER_KEY);
- }
-
- @Test
- public void getNonIndexableKeys_tetherNotAvailable_keysReturned() {
- // To let TetherUtil.isTetherAvailable return false, select one of the combinations
- setupIsTetherAvailable(false);
-
- final List<String> niks =
- AllInOneTetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
-
- assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
- assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
- assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
- assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_AP_BAND);
- assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_SECURITY);
- assertThat(niks).contains(WIFI_TETHER_DISABLE_KEY);
- assertThat(niks).doesNotContain(BLUETOOTH_TETHER_KEY);
- assertThat(niks).doesNotContain(USB_TETHER_KEY);
- assertThat(niks).doesNotContain(ETHERNET_TETHER_KEY);
- }
-
- @Test
- public void getPreferenceControllers_notEmpty() {
- assertThat(AllInOneTetherSettings.SEARCH_INDEX_DATA_PROVIDER
- .getPreferenceControllers(mContext)).isNotEmpty();
- }
-
- @Test
- public void createPreferenceControllers_hasAutoOffPreference() {
- assertThat(mAllInOneTetherSettings.createPreferenceControllers(mContext)
- .stream()
- .filter(controller -> controller instanceof WifiTetherAutoOffPreferenceController)
- .count())
- .isEqualTo(1);
- }
-
- @Test
- public void getInitialChildCount_withSecurity() {
- when(mSecurityPreferenceController.getSecurityType())
- .thenReturn(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
- assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount()).isEqualTo(
- EXPANDED_CHILD_COUNT_DEFAULT);
- }
-
- @Test
- public void getInitialChildCount_withoutSecurity() {
- when(mSecurityPreferenceController.getSecurityType())
- .thenReturn(SoftApConfiguration.SECURITY_TYPE_OPEN);
- assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount()).isEqualTo(
- EXPANDED_CHILD_COUNT_WITH_SECURITY_NON);
- }
-
- @Test
- public void getInitialExpandedChildCount_expandAllChild() {
- assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount())
- .isNotEqualTo(EXPANDED_CHILD_COUNT_MAX);
- ReflectionHelpers.setField(mAllInOneTetherSettings, "mShouldShowWifiConfig", false);
- assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount())
- .isEqualTo(EXPANDED_CHILD_COUNT_MAX);
- ReflectionHelpers.setField(mAllInOneTetherSettings, "mShouldShowWifiConfig", true);
- assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount())
- .isEqualTo(EXPANDED_CHILD_COUNT_MAX);
- }
-
- private void setupIsTetherAvailable(boolean returnValue) {
- when(mConnectivityManager.isTetheringSupported()).thenReturn(true);
-
- // For RestrictedLockUtils.checkIfRestrictionEnforced
- final int userId = UserHandle.myUserId();
- List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
- when(mUserManager.getUserRestrictionSources(
- UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.of(userId)))
- .thenReturn(enforcingUsers);
-
- // For RestrictedLockUtils.hasBaseUserRestriction
- when(mUserManager.hasBaseUserRestriction(
- UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.of(userId)))
- .thenReturn(!returnValue);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/MainClearTest.java b/tests/robotests/src/com/android/settings/MainClearTest.java
index dc17dda..e84d4eb 100644
--- a/tests/robotests/src/com/android/settings/MainClearTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearTest.java
@@ -56,6 +56,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -233,6 +234,7 @@
assertThat(mMainClear.showWipeEuicc()).isTrue();
}
+ @Ignore("b/313566998")
@Test
public void testShowWipeEuicc_developerMode_unprovisioned() {
prepareEuiccState(
diff --git a/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java b/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java
index 305b03a..1a0f9d0 100644
--- a/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java
@@ -35,6 +35,8 @@
import android.os.UserHandle;
import android.os.UserManager;
import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleOwner;
@@ -42,6 +44,7 @@
import androidx.test.core.app.ApplicationProvider;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -69,6 +72,9 @@
}
};
+ @Rule
+ public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
@ParameterizedRobolectricTestRunner.Parameters
public static List<?> params() {
return Arrays.asList(true, false);
diff --git a/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java
index 5137516..5e58f15 100644
--- a/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java
@@ -38,6 +38,7 @@
import com.android.settingslib.drawer.CategoryKey;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -80,6 +81,7 @@
assertThat(preferenceScreenKeys).containsAtLeastElementsIn(preferenceKeys);
}
+ @Ignore("b/313578776")
@Test
@Config(shadows = ShadowUserManager.class)
public void testAdvancedAppsCategory() {
diff --git a/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java b/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java
index 8740662..d27601e 100644
--- a/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java
@@ -40,6 +40,7 @@
import android.os.UserManager;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -157,11 +158,13 @@
mDevicePolicyManager, mPackageManager, mPackageManagerService, mApp5)).isFalse();
}
+ @Ignore("b/313578776")
@Test
public void testCountInstalledAppsSync() throws Exception {
verifyCountInstalledApps(false /* async */);
}
+ @Ignore("b/313578776")
@Test
public void testCountInstalledAppsAync() throws Exception {
verifyCountInstalledApps(true /* async */);
diff --git a/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
index 4eb623d..6bed1bc 100644
--- a/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
@@ -43,6 +43,7 @@
import com.android.settingslib.testutils.shadow.ShadowSmsApplication;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -140,11 +141,13 @@
assertThat(mAppList.get(0).appInfo.packageName).isEqualTo(APP_2);
}
+ @Ignore("b/313578776")
@Test
public void testCalculateNumberOfInstalledAppsSync() {
verifyCalculateNumberOfPolicyInstalledApps(false /* async */);
}
+ @Ignore("b/313578776")
@Test
public void testCalculateNumberOfInstalledAppsAsync() {
verifyCalculateNumberOfPolicyInstalledApps(true /* async */);
@@ -176,11 +179,13 @@
assertThat(mAppCount).isEqualTo(2);
}
+ @Ignore("b/313578776")
@Test
public void testCalculateNumberOfAppsWithAdminGrantedPermissionsSync() throws Exception {
verifyCalculateNumberOfAppsWithAdminGrantedPermissions(false /* async */);
}
+ @Ignore("b/313578776")
@Test
public void testCalculateNumberOfAppsWithAdminGrantedPermissionsAsync() throws Exception {
verifyCalculateNumberOfAppsWithAdminGrantedPermissions(true /* async */);
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
index cc789c6..8e1fd3d 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
@@ -37,6 +37,7 @@
import com.android.settings.testutils.shadow.ShadowUserManager;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -79,6 +80,7 @@
when(mFragment.getActivity()).thenReturn(mActivity);
}
+ @Ignore("b/313582035")
@Test
@Config(qualifiers = "mcc999")
public void getAvailabilityStatus_developmentSettingsEnabled_shouldReturnAvailable() {
diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
index d3ae4e3..196f206 100644
--- a/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
@@ -63,6 +63,7 @@
import com.android.settingslib.testutils.shadow.ShadowInteractionJankMonitor;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -313,6 +314,7 @@
verify(adapter).filterSearch(query);
}
+ @Ignore("b/313583754")
@Test
public void notifyItemChange_recyclerViewIdle_shouldNotify() {
final RecyclerView recyclerView = mock(RecyclerView.class);
@@ -327,6 +329,7 @@
verify(adapter).notifyItemChanged(0);
}
+ @Ignore("b/313583754")
@Test
public void notifyItemChange_recyclerViewScrolling_shouldNotifyWhenIdle() {
final RecyclerView recyclerView = mock(RecyclerView.class);
@@ -423,6 +426,7 @@
assertThat(adapter.getItemCount()).isEqualTo(5);
}
+ @Ignore("b/313583754")
@Test
public void applicationsAdapter_filterSearch_noMatch_shouldShowEmptyList() {
final ManageApplications.ApplicationsAdapter adapter =
diff --git a/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtilsTest.java b/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtilsTest.java
index df83eae..563974d 100644
--- a/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtilsTest.java
@@ -149,17 +149,31 @@
}
@Test
- public void getIntro_unlockOnIntentAndFaceEnabled_returnsEmpty() {
+ public void getIntro_faceEnabled_returnsFace() {
+ ActiveUnlockTestUtils.enable(
+ mApplicationContext, ActiveUnlockStatusUtils.UNLOCK_INTENT_LAYOUT);
+ when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
+ when(mFaceManager.isHardwareDetected()).thenReturn(true);
+
+ assertThat(mActiveUnlockStatusUtils.getIntroForActiveUnlock())
+ .isEqualTo(mApplicationContext.getString(
+ R.string.biometric_settings_intro_with_face));
+ }
+
+ @Test
+ public void getIntro_fingerprintEnabled_returnsFingerprint() {
ActiveUnlockTestUtils.enable(
mApplicationContext, ActiveUnlockStatusUtils.UNLOCK_INTENT_LAYOUT);
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
when(mFaceManager.isHardwareDetected()).thenReturn(false);
- assertThat(mActiveUnlockStatusUtils.getIntroForActiveUnlock()).isEqualTo("");
+ assertThat(mActiveUnlockStatusUtils.getIntroForActiveUnlock())
+ .isEqualTo(mApplicationContext.getString(
+ R.string.biometric_settings_intro_with_fingerprint));
}
@Test
- public void getIntro_unlockOnIntentAndFaceAndFingerprintEnabled_returnsDefault() {
+ public void getIntro_faceAndFingerprintEnabled_returnsFaceAndFingerprint() {
ActiveUnlockTestUtils.enable(
mApplicationContext, ActiveUnlockStatusUtils.UNLOCK_INTENT_LAYOUT);
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -167,7 +181,7 @@
assertThat(mActiveUnlockStatusUtils.getIntroForActiveUnlock())
.isEqualTo(mApplicationContext.getString(
- R.string.biometric_settings_intro));
+ R.string.biometric_settings_intro_with_activeunlock));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeControllerTest.java
index 0fc0647..2010502 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeControllerTest.java
@@ -18,6 +18,7 @@
import static android.bluetooth.BluetoothDevice.DEVICE_TYPE_LE;
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
+import static android.media.audio.Flags.automaticBtDeviceType;
import static com.google.common.truth.Truth.assertThat;
@@ -97,8 +98,12 @@
@Test
public void createAudioDeviceTypePreference_btDeviceIsCategorized_checkSelection() {
int deviceType = AUDIO_DEVICE_CATEGORY_SPEAKER;
- when(mAudioManager.getBluetoothAudioDeviceCategory(MAC_ADDRESS, /*isBle=*/true)).thenReturn(
- deviceType);
+ if (automaticBtDeviceType()) {
+ when(mAudioManager.getBluetoothAudioDeviceCategory(MAC_ADDRESS)).thenReturn(deviceType);
+ } else {
+ when(mAudioManager.getBluetoothAudioDeviceCategory_legacy(MAC_ADDRESS, /*isBle=*/
+ true)).thenReturn(deviceType);
+ }
mController.createAudioDeviceTypePreference(mContext);
mAudioDeviceTypePref = mController.getAudioDeviceTypePreference();
@@ -113,7 +118,12 @@
mController.onPreferenceChange(mAudioDeviceTypePref, Integer.toString(deviceType));
- verify(mAudioManager).setBluetoothAudioDeviceCategory(eq(MAC_ADDRESS), eq(true),
- eq(AUDIO_DEVICE_CATEGORY_SPEAKER));
+ if (automaticBtDeviceType()) {
+ verify(mAudioManager).setBluetoothAudioDeviceCategory(eq(MAC_ADDRESS),
+ eq(AUDIO_DEVICE_CATEGORY_SPEAKER));
+ } else {
+ verify(mAudioManager).setBluetoothAudioDeviceCategory_legacy(eq(MAC_ADDRESS), eq(true),
+ eq(AUDIO_DEVICE_CATEGORY_SPEAKER));
+ }
}
}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
index 1904cb5..cfd256f 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
@@ -29,6 +29,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.companion.CompanionDeviceManager;
import android.content.Context;
import android.hardware.input.InputManager;
import android.os.Bundle;
@@ -49,8 +50,9 @@
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.google.common.collect.ImmutableList;
+
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
@@ -63,7 +65,6 @@
import org.robolectric.annotation.Config;
import org.robolectric.fakes.RoboMenu;
-@Ignore("b/313014781")
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {
com.android.settings.testutils.shadow.ShadowUserManager.class,
@@ -90,12 +91,17 @@
private UserManager mUserManager;
@Mock
private InputManager mInputManager;
+ @Mock
+ private CompanionDeviceManager mCompanionDeviceManager;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
doReturn(mInputManager).when(mContext).getSystemService(InputManager.class);
+ doReturn(mCompanionDeviceManager).when(mContext)
+ .getSystemService(CompanionDeviceManager.class);
+ when(mCompanionDeviceManager.getAllAssociations()).thenReturn(ImmutableList.of());
removeInputDeviceWithMatchingBluetoothAddress();
FakeFeatureFactory.setupForTest();
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPermissionActivityTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPermissionActivityTest.java
index 4c58cd2..b97343a 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPermissionActivityTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPermissionActivityTest.java
@@ -16,12 +16,20 @@
package com.android.settings.bluetooth;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.content.Context;
+import android.content.ContextWrapper;
import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.os.Process;
import org.junit.Before;
import org.junit.Ignore;
@@ -30,7 +38,6 @@
import org.mockito.ArgumentCaptor;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
@Ignore("b/313014781")
@@ -43,14 +50,27 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = mock(ContextWrapper.class);
mActivity = new BluetoothPermissionActivity();
}
@Test
- public void sendBroadcastWithPermission() {
+ public void sendBroadcastWithPermission() throws Exception {
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
ReflectionHelpers.setField(mActivity, "mBase", mContext);
+ when(mContext.createContextAsUser(any(), anyInt())).thenReturn(mContext);
+
+ final String btPkgName = "com.android.bluetooth";
+ ActivityInfo btOppLauncherActivityInfo = new ActivityInfo();
+ btOppLauncherActivityInfo.name = "com.android.bluetooth.opp.BluetoothOppLauncherActivity";
+
+ PackageInfo btPkgInfo = new PackageInfo();
+ btPkgInfo.activities = new ActivityInfo[] {btOppLauncherActivityInfo};
+
+ PackageManager pm = mock(PackageManager.class);
+ when(pm.getPackagesForUid(Process.BLUETOOTH_UID)).thenReturn(new String[] {btPkgName});
+ when(pm.getPackageInfo(eq(btPkgName), anyInt())).thenReturn(btPkgInfo);
+ when(mContext.getPackageManager()).thenReturn(pm);
mActivity.sendReplyIntentToReceiver(true, true);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java
index 88ace91..853d2c48 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java
@@ -33,7 +33,6 @@
import com.android.settingslib.widget.FooterPreference;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -45,7 +44,7 @@
public class BluetoothSwitchPreferenceControllerTest {
private static final String BLUETOOTH_INFO_STRING = "When Bluetooth is turned on, your device"
- + " can communicate with other nearby Bluetooth devices.";
+ + " can communicate with other nearby Bluetooth devices";
@Mock
private RestrictionUtils mRestrictionUtils;
@Mock
@@ -83,7 +82,6 @@
assertThat(TextUtils.equals(mFooterPreference.getTitle(), text)).isTrue();
}
- @Ignore("b/313014781")
@Test
public void updateText_bluetoothOffScanningOff() {
Settings.Global.putInt(mContext.getContentResolver(),
@@ -93,7 +91,6 @@
assertThat(mFooterPreference.getTitle()).isEqualTo(BLUETOOTH_INFO_STRING);
}
- @Ignore("b/313014781")
@Test
public void updateText_bluetoothOnScanningOff() {
Settings.Global.putInt(mContext.getContentResolver(),
@@ -103,7 +100,6 @@
assertThat(mFooterPreference.getTitle()).isEqualTo(BLUETOOTH_INFO_STRING);
}
- @Ignore("b/313014781")
@Test
public void updateText_bluetoothOnScanningOn() {
Settings.Global.putInt(mContext.getContentResolver(),
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
index 5635b85..a3348ca 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
@@ -25,18 +25,23 @@
import android.content.Context;
import android.content.pm.PackageManager;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.provider.SearchIndexableResource;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerListHelper;
+import com.android.settings.flags.Flags;
import com.android.settings.slices.SlicePreferenceController;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settings.testutils.shadow.ShadowUserManager;
import org.junit.Before;
-import org.junit.Ignore;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -51,11 +56,13 @@
@Config(shadows = {ShadowUserManager.class,
ShadowConnectivityManager.class, ShadowBluetoothAdapter.class})
public class ConnectedDeviceDashboardFragmentTest {
+ @Rule
+ public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
private static final String KEY_NEARBY_DEVICES = "bt_nearby_slice";
private static final String KEY_DISCOVERABLE_FOOTER = "discoverable_footer";
private static final String KEY_SAVED_DEVICE_SEE_ALL = "previously_connected_devices_see_all";
private static final String KEY_FAST_PAIR_DEVICE_SEE_ALL = "fast_pair_devices_see_all";
- private static final String KEY_FAST_PAIR_DEVICE_LIST = "fast_pair_devices";
private static final String KEY_ADD_BT_DEVICES = "add_bt_devices";
private static final String KEY_AUDIO_SHARING_DEVICE_LIST = "audio_sharing_device_list";
private static final String KEY_AUDIO_SHARING_SETTINGS =
@@ -66,9 +73,7 @@
private static final String TEST_APP_NAME = "com.testapp.settings";
private static final String TEST_ACTION = "com.testapp.settings.ACTION_START";
-
- @Mock
- private PackageManager mPackageManager;
+ @Mock private PackageManager mPackageManager;
private Context mContext;
private ConnectedDeviceDashboardFragment mFragment;
@@ -85,18 +90,19 @@
@Test
public void searchIndexProvider_shouldIndexResource() {
final List<SearchIndexableResource> indexRes =
- ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
- .getXmlResourcesToIndex(mContext, true /* enabled */);
+ ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ mContext, true /* enabled */);
assertThat(indexRes).isNotNull();
assertThat(indexRes.get(0).xmlResId).isEqualTo(R.xml.connected_devices);
}
- @Ignore("b/313362757")
@Test
+ @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void nonIndexableKeys_existInXmlLayout() {
- final List<String> niks = ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
- .getNonIndexableKeys(mContext);
+ final List<String> niks =
+ ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
+ mContext);
assertThat(niks)
.containsExactly(
@@ -106,7 +112,24 @@
KEY_DISCOVERABLE_FOOTER,
KEY_SAVED_DEVICE_SEE_ALL,
KEY_FAST_PAIR_DEVICE_SEE_ALL,
- KEY_FAST_PAIR_DEVICE_LIST,
+ KEY_AUDIO_SHARING_SETTINGS);
+ }
+
+ @Test
+ @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+ public void nonIndexableKeys_existInXmlLayout_flagOff() {
+ final List<String> niks =
+ ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
+ mContext);
+
+ assertThat(niks)
+ .containsExactly(
+ KEY_CONNECTED_DEVICES,
+ KEY_AVAILABLE_DEVICES,
+ KEY_NEARBY_DEVICES,
+ KEY_DISCOVERABLE_FOOTER,
+ KEY_SAVED_DEVICE_SEE_ALL,
+ KEY_FAST_PAIR_DEVICE_SEE_ALL,
KEY_AUDIO_SHARING_DEVICE_LIST,
KEY_AUDIO_SHARING_SETTINGS);
}
@@ -134,8 +157,8 @@
@Test
public void getPreferenceControllers_containSlicePrefController() {
final List<BasePreferenceController> controllers =
- PreferenceControllerListHelper.getPreferenceControllersFromXml(mContext,
- R.xml.connected_devices);
+ PreferenceControllerListHelper.getPreferenceControllersFromXml(
+ mContext, R.xml.connected_devices);
assertThat(controllers
.stream()
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java
new file mode 100644
index 0000000..0b94061
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Looper;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.widget.Switch;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.flags.Flags;
+import com.android.settings.widget.SettingsMainSwitchBar;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class AudioSharingSwitchBarControllerTest {
+ @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+ @Rule
+ public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+ @Spy Context mContext = ApplicationProvider.getApplicationContext();
+ @Mock private Switch mSwitch;
+
+ private SettingsMainSwitchBar mSwitchBar;
+ private AudioSharingSwitchBarController mController;
+ private AudioSharingSwitchBarController.OnSwitchBarChangedListener mListener;
+ private boolean mOnSwitchBarChanged;
+
+ @Before
+ public void setUp() {
+ mSwitchBar = new SettingsMainSwitchBar(mContext);
+ mOnSwitchBarChanged = false;
+ mListener = () -> mOnSwitchBarChanged = true;
+ mController = new AudioSharingSwitchBarController(mContext, mSwitchBar, mListener);
+ }
+
+ @Test
+ @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+ public void bluetoothOff_switchDisabled() {
+ mContext.registerReceiver(
+ mController.mReceiver,
+ mController.mIntentFilter,
+ Context.RECEIVER_EXPORTED_UNAUDITED);
+ Intent intent = new Intent(BluetoothAdapter.ACTION_STATE_CHANGED);
+ intent.putExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF);
+ mContext.sendBroadcast(intent);
+ shadowOf(Looper.getMainLooper()).idle();
+ verify(mSwitch).setEnabled(false);
+ assertThat(mOnSwitchBarChanged).isTrue();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
index 7f3ef9a..009f13a 100644
--- a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
+++ b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
@@ -52,6 +52,7 @@
new InstrumentableFragmentCodeInspector(mClasses).run();
}
+ @Ignore("b/313612087")
@Test
public void runSliceControllerInXmlInspection() throws Exception {
new SliceControllerInXmlCodeInspector(mClasses).run();
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
index f7a940f..5317ce0 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
@@ -83,6 +83,7 @@
import com.android.settingslib.drawer.TileUtils;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
@@ -236,6 +237,7 @@
assertThat(preference.getOrder()).isEqualTo(tile.getOrder());
}
+ @Ignore("b/313569889")
@Test
public void bindPreference_noFragmentMetadata_shouldBindToProfileSelector() {
final Preference preference = new Preference(RuntimeEnvironment.application);
@@ -702,6 +704,7 @@
assertThat(nextStartedActivity).isNull();
}
+ @Ignore("b/313569889")
@Test
public void openTileIntent_profileSelectionDialog_shouldShow() {
ShadowUserManager.getShadow().addUser(10, "Someone", 0);
@@ -718,6 +721,7 @@
verify(mActivity).getSupportFragmentManager();
}
+ @Ignore("b/313569889")
@Test
public void openTileIntent_profileSelectionDialog_explicitMetadataShouldShow() {
ShadowUserManager.getShadow().addUser(10, "Someone", 0);
@@ -735,6 +739,7 @@
verify(mActivity).getSupportFragmentManager();
}
+ @Ignore("b/313569889")
@Test
public void openTileIntent_profileSelectionDialog_shouldNotShow() {
ShadowUserManager.getShadow().addUser(10, "Someone", 0);
@@ -752,6 +757,7 @@
verify(mActivity, never()).getSupportFragmentManager();
}
+ @Ignore("b/313569889")
@Test
public void openTileIntent_profileSelectionDialog_validUserHandleShouldNotShow() {
final int userId = 10;
@@ -774,6 +780,7 @@
verify(mActivity, never()).getSupportFragmentManager();
}
+ @Ignore("b/313569889")
@Test
public void openTileIntent_profileSelectionDialog_invalidUserHandleShouldShow() {
ShadowUserManager.getShadow().addUser(10, "Someone", 0);
@@ -792,6 +799,7 @@
verify(mActivity).getSupportFragmentManager();
}
+ @Ignore("b/313569889")
@Test
public void openTileIntent_profileSelectionDialog_unresolvableWorkProfileIntentShouldNotShow() {
final int userId = 10;
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
index cfbdd75..449958c 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
@@ -66,6 +66,7 @@
import com.android.settingslib.drawer.Tile;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -386,6 +387,7 @@
assertThat(mTestFragment.mBlockerController).isNull();
}
+ @Ignore("b/313569889")
@Test
public void createPreference_isProviderTile_returnSwitchPreference() {
final Preference pref = mTestFragment.createPreference(mProviderTile);
diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java
index e7e37d7..1eb2ea4 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java
@@ -42,6 +42,7 @@
import com.google.android.collect.Lists;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -88,6 +89,7 @@
verify(mUserManager, never()).getUserInfo(NORMAL_USER.getIdentifier());
}
+ @Ignore("b/313569889")
@Test
public void updateUserHandlesIfNeeded_Remove() {
final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
@@ -103,6 +105,7 @@
verify(mUserManager, times(2)).getUserInfo(REMOVED_USER.getIdentifier());
}
+ @Ignore("b/313569889")
@Test
public void updateUserHandlesIfNeeded_removesCloneProfile() {
final UserInfo userInfo = new UserInfo(CLONE_USER.getIdentifier(), "clone_user", null,
@@ -119,6 +122,7 @@
verify(mUserManager, times(1)).getUserInfo(CLONE_USER.getIdentifier());
}
+ @Ignore("b/313569889")
@Test
public void updatePendingIntentsIfNeeded_removesUsersWithNoPendingIntentsAndCloneProfile() {
final UserInfo userInfo = new UserInfo(CLONE_USER.getIdentifier(), "clone_user", null,
diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
index 0f0de56..302c8f3 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
@@ -32,7 +32,6 @@
import android.content.Intent;
import android.os.Bundle;
import android.os.Flags;
-import android.os.UserHandle;
import android.platform.test.flag.junit.SetFlagsRule;
import androidx.fragment.app.Fragment;
@@ -177,8 +176,8 @@
},
new ProfileSelectFragment.ManagedProfileInfoProvider() {
@Override
- public UserHandle getManagedProfile(Context context) {
- return null;
+ public boolean isManagedProfilePresent(Context context) {
+ return false;
}
});
assertThat(fragments).hasLength(1);
@@ -201,8 +200,8 @@
},
new ProfileSelectFragment.ManagedProfileInfoProvider() {
@Override
- public UserHandle getManagedProfile(Context context) {
- return null;
+ public boolean isManagedProfilePresent(Context context) {
+ return false;
}
});
assertThat(fragments).hasLength(2);
@@ -225,8 +224,8 @@
},
new ProfileSelectFragment.ManagedProfileInfoProvider() {
@Override
- public UserHandle getManagedProfile(Context context) {
- return new UserHandle(123);
+ public boolean isManagedProfilePresent(Context context) {
+ return true;
}
});
assertThat(fragments).hasLength(2);
@@ -249,8 +248,8 @@
},
new ProfileSelectFragment.ManagedProfileInfoProvider() {
@Override
- public UserHandle getManagedProfile(Context context) {
- return new UserHandle(123);
+ public boolean isManagedProfilePresent(Context context) {
+ return true;
}
});
assertThat(fragments).hasLength(3);
@@ -274,8 +273,8 @@
},
new ProfileSelectFragment.ManagedProfileInfoProvider() {
@Override
- public UserHandle getManagedProfile(Context context) {
- return new UserHandle(123);
+ public boolean isManagedProfilePresent(Context context) {
+ return true;
}
});
assertThat(fragments).hasLength(3);
diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java
index fa2782f..e30759a 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java
@@ -21,11 +21,13 @@
import static com.google.common.truth.Truth.assertThat;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+@Ignore("b/313569889")
@RunWith(RobolectricTestRunner.class)
public class ProfileSelectLocationFragmentTest {
diff --git a/tests/robotests/src/com/android/settings/datausage/ChartDataUsagePreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/ChartDataUsagePreferenceTest.java
index 9c93606..205a600 100644
--- a/tests/robotests/src/com/android/settings/datausage/ChartDataUsagePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/ChartDataUsagePreferenceTest.java
@@ -36,6 +36,7 @@
import com.android.settings.widget.UsageView;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -92,6 +93,7 @@
assertThat(points.valueAt(1)).isNotEqualTo(-1);
}
+ @Ignore("b/313568482")
@Test
public void calcPoints_dataNotAvailableAtCycleStart_shouldIndicateStartOfData() {
final UsageView usageView = mock(UsageView.class);
@@ -112,6 +114,7 @@
assertThat(points.valueAt(1)).isEqualTo(-1);
}
+ @Ignore("b/313568482")
@Test
public void calcPoints_shouldNotDrawPointForFutureDate() {
final UsageView usageView = mock(UsageView.class);
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimeFormatPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimeFormatPreferenceControllerTest.java
index 183858e..f9b566e 100644
--- a/tests/robotests/src/com/android/settings/datetime/AutoTimeFormatPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimeFormatPreferenceControllerTest.java
@@ -53,13 +53,13 @@
MockitoAnnotations.initMocks(this);
mApplication = ShadowApplication.getInstance();
mContext = RuntimeEnvironment.application;
+ mController = new TestAutoTimeFormatPreferenceController(mContext, "test_key");
+ mPreference = new SwitchPreference(mContext);
+ mPreference.setKey("test_key");
}
@Test
public void updateState_24HourSet_shouldCheckPreference() {
- mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
- mPreference = new SwitchPreference(mContext);
- mPreference.setKey(mController.getPreferenceKey());
Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
TimeFormatPreferenceController.HOURS_24);
@@ -70,9 +70,6 @@
@Test
public void updateState_12HourSet_shouldCheckPreference() {
- mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
- mPreference = new SwitchPreference(mContext);
- mPreference.setKey(mController.getPreferenceKey());
Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
TimeFormatPreferenceController.HOURS_12);
@@ -83,9 +80,6 @@
@Test
public void updateState_autoSet_shouldNotCheckPreference() {
- mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
- mPreference = new SwitchPreference(mContext);
- mPreference.setKey(mController.getPreferenceKey());
Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24, null);
mController.updateState(mPreference);
@@ -95,14 +89,7 @@
@Test
public void updatePreference_autoSet_shouldSendIntent_12HourLocale() {
- mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
- mPreference = new SwitchPreference(mContext);
- mPreference.setKey(mController.getPreferenceKey());
- mPreference.setChecked(false);
-
- boolean result = mController.handlePreferenceTreeClick(mPreference);
-
- assertThat(result).isTrue();
+ mController.setChecked(false);
List<Intent> intentsFired = mApplication.getBroadcastIntents();
assertThat(intentsFired.size()).isEqualTo(1);
@@ -114,15 +101,9 @@
@Test
public void updatePreference_autoSet_shouldSendIntent_24HourLocale() {
- mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
- mPreference = new SwitchPreference(mContext);
- mPreference.setKey(mController.getPreferenceKey());
- mPreference.setChecked(false);
-
mController.setIs24HourLocale(true);
- boolean result = mController.handlePreferenceTreeClick(mPreference);
- assertThat(result).isTrue();
+ mController.setChecked(false);
List<Intent> intentsFired = mApplication.getBroadcastIntents();
assertThat(intentsFired.size()).isEqualTo(1);
@@ -134,15 +115,9 @@
@Test
public void updatePreference_24HourSet_shouldSendIntent() {
- mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
- mPreference = new SwitchPreference(mContext);
- mPreference.setKey(mController.getPreferenceKey());
- mPreference.setChecked(true);
-
mController.setIs24HourLocale(false);
- boolean result = mController.handlePreferenceTreeClick(mPreference);
- assertThat(result).isTrue();
+ mController.setChecked(true);
List<Intent> intentsFired = mApplication.getBroadcastIntents();
assertThat(intentsFired.size()).isEqualTo(1);
@@ -161,9 +136,8 @@
private boolean is24HourLocale = false;
- private TestAutoTimeFormatPreferenceController(Context context,
- UpdateTimeAndDateCallback callback) {
- super(context, callback);
+ TestAutoTimeFormatPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
}
void setIs24HourLocale(boolean value) {
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
index 022f5fe..9ac318a 100644
--- a/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
@@ -16,6 +16,8 @@
package com.android.settings.datetime;
+import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
@@ -59,7 +61,8 @@
mPreference = new Preference(mContext);
when(mContext.getSystemService(TimeManager.class)).thenReturn(mTimeManager);
- mController = new AutoTimePreferenceController(mContext, mCallback);
+ mController = new AutoTimePreferenceController(mContext, "test_key");
+ mController.setDateAndTimeCallback(mCallback);
}
@Test
@@ -68,7 +71,7 @@
/* autoSupported= */false, /* autoEnabled= */false);
when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- assertThat(mController.isAvailable()).isFalse();
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
}
@Test
@@ -81,24 +84,23 @@
}
@Test
- public void testIsEnabled_shouldReadFromTimeManagerConfig() {
- {
- // Disabled
- TimeCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
- /* autoSupported= */true, /* autoEnabled= */false);
- when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
+ public void isEnabled_autoEnabledIsFalse_shouldReadFromTimeManagerConfig() {
+ // Disabled
+ TimeCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
+ /* autoSupported= */true, /* autoEnabled= */false);
+ when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- assertThat(mController.isEnabled()).isFalse();
- }
+ assertThat(mController.isEnabled()).isFalse();
+ }
- {
- // Enabled
- TimeCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
- /* autoSupported= */true, /* autoEnabled= */true);
- when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
+ @Test
+ public void isEnabled_autoEnabledIsTrue_shouldReadFromTimeManagerConfig() {
+ // Enabled
+ TimeCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
+ /* autoSupported= */true, /* autoEnabled= */true);
+ when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- assertThat(mController.isEnabled()).isTrue();
- }
+ assertThat(mController.isEnabled()).isTrue();
}
@Test
@@ -118,10 +120,10 @@
verify(mTimeManager).updateTimeConfiguration(timeConfiguration);
// Update the mTimeManager mock so that it now returns the expected updated config.
- TimeCapabilitiesAndConfig capabilitiesAndConfigAfterUpdate =
- createCapabilitiesAndConfig(/* autoSupported= */true, /* autoEnabled= */true);
- when(mTimeManager.getTimeCapabilitiesAndConfig())
- .thenReturn(capabilitiesAndConfigAfterUpdate);
+ TimeCapabilitiesAndConfig capabilitiesAndConfigAfterUpdate = createCapabilitiesAndConfig(
+ /* autoSupported= */true, /* autoEnabled= */true);
+ when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(
+ capabilitiesAndConfigAfterUpdate);
assertThat(mController.isEnabled()).isTrue();
}
@@ -145,14 +147,14 @@
// Update the mTimeManager mock so that it now returns the expected updated config.
TimeCapabilitiesAndConfig capabilitiesAndConfigAfterUpdate =
createCapabilitiesAndConfig(/* autoSupported= */true, /* autoEnabled= */false);
- when(mTimeManager.getTimeCapabilitiesAndConfig())
- .thenReturn(capabilitiesAndConfigAfterUpdate);
+ when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(
+ capabilitiesAndConfigAfterUpdate);
assertThat(mController.isEnabled()).isFalse();
}
- private static TimeCapabilitiesAndConfig createCapabilitiesAndConfig(
- boolean autoSupported, boolean autoEnabled) {
+ private static TimeCapabilitiesAndConfig createCapabilitiesAndConfig(boolean autoSupported,
+ boolean autoEnabled) {
int configureAutoDetectionEnabledCapability =
autoSupported ? Capabilities.CAPABILITY_POSSESSED
: Capabilities.CAPABILITY_NOT_SUPPORTED;
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
index 7685a5b..c2d0445 100644
--- a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
@@ -22,6 +22,8 @@
import static android.app.time.LocationTimeZoneAlgorithmStatus.PROVIDER_STATUS_NOT_PRESENT;
import static android.app.time.LocationTimeZoneAlgorithmStatus.PROVIDER_STATUS_NOT_READY;
+import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
@@ -62,6 +64,8 @@
@Mock
private TimeManager mTimeManager;
+ private AutoTimeZonePreferenceController mController;
+
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
@@ -70,6 +74,9 @@
mPreference = new Preference(mContext);
when(mContext.getSystemService(TimeManager.class)).thenReturn(mTimeManager);
+
+ mController = new AutoTimeZonePreferenceController(mContext, "test_key");
+ mController.setFromSUW(false);
}
@Test
@@ -78,10 +85,9 @@
/* autoSupported= */true, /* autoEnabled= */false);
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
- mContext, null /* callback */, true /* isFromSUW */);
+ mController.setFromSUW(true);
- assertThat(controller.isAvailable()).isFalse();
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
}
@Test
@@ -90,10 +96,9 @@
/* autoSupported= */true, /* autoEnabled= */false);
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
- mContext, null /* callback */, false /* isFromSUW */);
+ mController.setFromSUW(false);
- assertThat(controller.isAvailable()).isTrue();
+ assertThat(mController.isAvailable()).isTrue();
}
@Test
@@ -102,10 +107,7 @@
/* autoSupported= */false, /* autoEnabled= */false);
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
- mContext, null /* callback */, false /* fromSUW */);
-
- assertThat(controller.isAvailable()).isFalse();
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
}
@Test
@@ -114,10 +116,9 @@
/* autoSupported= */false, /* autoEnabled= */false);
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
- mContext, null /* callback */, true /* fromSUW */);
+ mController.setFromSUW(true);
- assertThat(controller.isEnabled()).isFalse();
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
}
@Test
@@ -126,10 +127,9 @@
/* autoSupported= */false, /* autoEnabled= */true);
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
- mContext, null /* callback */, true /* fromSUW */);
+ mController.setFromSUW(true);
- assertThat(controller.isEnabled()).isTrue();
+ assertThat(mController.isAvailable()).isTrue();
}
@Test
@@ -138,34 +138,27 @@
/* autoSupported= */false, /* autoEnabled= */false);
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
- mContext, null /* callback */, false /* fromSUW */);
-
- assertThat(controller.isEnabled()).isFalse();
+ assertThat(mController.isEnabled()).isFalse();
}
@Test
- public void testIsEnabled_shouldReadFromTimeManagerConfig() {
- AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
- mContext, null /* callback */, false /* fromSUW */);
+ public void isEnabled_autoEnabledIsFalse_shouldReadFromTimeManagerConfig() {
+ // Disabled
+ TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
+ /* autoSupported= */true, /* autoEnabled= */false);
+ when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- {
- // Disabled
- TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
- /* autoSupported= */true, /* autoEnabled= */false);
- when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
+ assertThat(mController.isEnabled()).isFalse();
+ }
- assertThat(controller.isEnabled()).isFalse();
- }
+ @Test
+ public void isEnabled_autoEnabledIsTrue_shouldReadFromTimeManagerConfig() {
+ // Enabled
+ TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
+ /* autoSupported= */true, /* autoEnabled= */true);
+ when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
- {
- // Enabled
- TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
- /* autoSupported= */true, /* autoEnabled= */true);
- when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
-
- assertThat(controller.isEnabled()).isTrue();
- }
+ assertThat(mController.isEnabled()).isTrue();
}
@Test
@@ -175,10 +168,9 @@
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
when(mTimeManager.updateTimeZoneConfiguration(Mockito.any())).thenReturn(true);
- AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
- mContext, mCallback, false /* fromSUW */);
+ mController.setTimeAndDateCallback(mCallback);
- assertThat(controller.onPreferenceChange(mPreference, true)).isTrue();
+ assertThat(mController.onPreferenceChange(mPreference, true)).isTrue();
verify(mCallback).updateTimeAndDateDisplay(mContext);
// Check the service was asked to change the configuration correctly.
@@ -193,7 +185,7 @@
when(mTimeManager.getTimeZoneCapabilitiesAndConfig())
.thenReturn(capabilitiesAndConfigAfterUpdate);
- assertThat(controller.isEnabled()).isTrue();
+ assertThat(mController.isEnabled()).isTrue();
}
@Test
@@ -203,10 +195,9 @@
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
when(mTimeManager.updateTimeZoneConfiguration(Mockito.any())).thenReturn(true);
- AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
- mContext, mCallback, false /* fromSUW */);
+ mController.setTimeAndDateCallback(mCallback);
- assertThat(controller.onPreferenceChange(mPreference, false)).isTrue();
+ assertThat(mController.onPreferenceChange(mPreference, false)).isTrue();
verify(mCallback).updateTimeAndDateDisplay(mContext);
// Check the service was asked to change the configuration correctly.
@@ -221,13 +212,12 @@
when(mTimeManager.getTimeZoneCapabilitiesAndConfig())
.thenReturn(capabilitiesAndConfigAfterUpdate);
- assertThat(controller.isEnabled()).isFalse();
+ assertThat(mController.isEnabled()).isFalse();
}
@Test
public void getSummary() {
- AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
- mContext, mCallback, false /* fromSUW */);
+ mController.setTimeAndDateCallback(mCallback);
TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
/* autoSupported= */true, /* autoEnabled= */true, /* telephonySupported= */
@@ -235,7 +225,7 @@
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
when(mTimeManager.updateTimeZoneConfiguration(Mockito.any())).thenReturn(true);
- assertThat(controller.getSummary()).isEqualTo("");
+ assertThat(mController.getSummary()).isEqualTo("");
capabilitiesAndConfig = createCapabilitiesAndConfig(
/* autoSupported= */true, /* autoEnabled= */true, /* telephonySupported= */
@@ -243,7 +233,7 @@
when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
when(mTimeManager.updateTimeZoneConfiguration(Mockito.any())).thenReturn(true);
- assertThat(controller.getSummary()).isEqualTo(
+ assertThat(mController.getSummary()).isEqualTo(
mContext.getString(R.string.auto_zone_requires_location_summary));
}
diff --git a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
index ce9c701..b1996a6 100644
--- a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
@@ -74,12 +74,8 @@
when(mContext.getSystemService(TimeDetector.class)).thenReturn(mTimeDetector);
when(mContext.getSystemService(TimeManager.class)).thenReturn(mTimeManager);
mPreference = new RestrictedPreference(RuntimeEnvironment.application);
- mController = new DatePreferenceController(mContext, mHost);
- }
-
- @Test
- public void isAlwaysAvailable() {
- assertThat(mController.isAvailable()).isTrue();
+ mController = new DatePreferenceController(mContext, "test_key");
+ mController.setHost(mHost);
}
@Test
@@ -147,7 +143,7 @@
assertEquals(2020, calendar.get(Calendar.YEAR));
}
- private static TimeCapabilitiesAndConfig createCapabilitiesAndConfig(
+ static TimeCapabilitiesAndConfig createCapabilitiesAndConfig(
boolean suggestManualAllowed) {
int suggestManualCapability = suggestManualAllowed ? Capabilities.CAPABILITY_POSSESSED
: Capabilities.CAPABILITY_NOT_SUPPORTED;
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
index ec47a54..e1ea8f9 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
@@ -16,13 +16,15 @@
package com.android.settings.datetime;
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
+
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
-import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import org.junit.Before;
@@ -52,27 +54,30 @@
MockitoAnnotations.initMocks(this);
mApplication = ShadowApplication.getInstance();
mContext = RuntimeEnvironment.application;
+ mController = new TimeFormatPreferenceController(mContext, "test_key");
+ mController.setTimeAndDateCallback(mCallback);
+ mController.setFromSUW(false);
+
+ mPreference = new SwitchPreference(mContext);
+ mPreference.setKey("test_key");
}
@Test
public void isCalledFromSUW_NotAvailable() {
- mController = new TimeFormatPreferenceController(mContext, mCallback, true);
+ mController.setFromSUW(true);
- assertThat(mController.isAvailable()).isFalse();
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
}
@Test
public void notCalledFromSUW_shouldBeAvailable() {
- mController = new TimeFormatPreferenceController(mContext, mCallback, false);
-
- assertThat(mController.isAvailable()).isTrue();
+ Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
+ TimeFormatPreferenceController.HOURS_24);
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@Test
public void updateState_24HourSet_shouldCheckPreference() {
- mController = new TimeFormatPreferenceController(mContext, mCallback, false);
- mPreference = new SwitchPreference(mContext);
- mPreference.setKey(mController.getPreferenceKey());
Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
TimeFormatPreferenceController.HOURS_24);
@@ -83,9 +88,6 @@
@Test
public void updateState_12HourSet_shouldNotCheckPreference() {
- mController = new TimeFormatPreferenceController(mContext, mCallback, false);
- mPreference = new SwitchPreference(mContext);
- mPreference.setKey(mController.getPreferenceKey());
Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
TimeFormatPreferenceController.HOURS_12);
@@ -96,10 +98,7 @@
@Test
public void updateState_autoSet_shouldNotEnablePreference() {
- mController = new TimeFormatPreferenceController(mContext, mCallback, false);
Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24, null);
- mPreference = new SwitchPreference(mContext);
- mPreference.setKey(mController.getPreferenceKey());
mController.updateState(mPreference);
@@ -108,14 +107,7 @@
@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();
+ mController.setChecked(false);
List<Intent> intentsFired = mApplication.getBroadcastIntents();
assertThat(intentsFired.size()).isEqualTo(1);
@@ -127,14 +119,7 @@
@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();
+ mController.setChecked(true);
List<Intent> intentsFired = mApplication.getBroadcastIntents();
assertThat(intentsFired.size()).isEqualTo(1);
diff --git a/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java
index ebb56f4..ef0d69e 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java
@@ -18,9 +18,12 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.time.TimeCapabilitiesAndConfig;
+import android.app.time.TimeManager;
import android.content.Context;
import com.android.settingslib.RestrictedPreference;
@@ -40,7 +43,7 @@
@Mock
private TimePreferenceController.TimePreferenceHost mHost;
@Mock
- private DatePreferenceController mDatePreferenceController;
+ private TimeManager mTimeManager;
private TimePreferenceController mController;
private RestrictedPreference mPreference;
@@ -48,14 +51,11 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
- mPreference = new RestrictedPreference(RuntimeEnvironment.application);
- mController = new TimePreferenceController(mContext, mHost, mDatePreferenceController);
- }
-
- @Test
- public void isAlwaysAvailable() {
- assertThat(mController.isAvailable()).isTrue();
+ mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getSystemService(TimeManager.class)).thenReturn(mTimeManager);
+ mPreference = new RestrictedPreference(mContext);
+ mController = new TimePreferenceController(mContext, "test_key");
+ mController.setHost(mHost);
}
@Test
@@ -63,7 +63,10 @@
// Make sure not disabled by admin.
mPreference.setDisabledByAdmin(null);
- when(mDatePreferenceController.isEnabled()).thenReturn(false);
+ TimeCapabilitiesAndConfig capabilitiesAndConfig =
+ DatePreferenceControllerTest.createCapabilitiesAndConfig(/* suggestManualAllowed= */
+ false);
+ when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
mController.updateState(mPreference);
assertThat(mPreference.isEnabled()).isFalse();
@@ -74,7 +77,10 @@
// Make sure not disabled by admin.
mPreference.setDisabledByAdmin(null);
- when(mDatePreferenceController.isEnabled()).thenReturn(true);
+ TimeCapabilitiesAndConfig capabilitiesAndConfig =
+ DatePreferenceControllerTest.createCapabilitiesAndConfig(/* suggestManualAllowed= */
+ true);
+ when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
mController.updateState(mPreference);
assertThat(mPreference.isEnabled()).isTrue();
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
index 10a5e5d..fec410b 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
@@ -66,16 +66,11 @@
mPreference = new RestrictedPreference(mContext);
- mController = spy(new TimeZonePreferenceController(mContext));
+ mController = spy(new TimeZonePreferenceController(mContext, "test_key"));
doReturn("test timezone").when(mController).getTimeZoneOffsetAndName();
}
@Test
- public void isAlwaysAvailable() {
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
public void updateState_suggestManualNotAllowed_shouldDisablePref() {
// Make sure not disabled by admin.
mPreference.setDisabledByAdmin(null);
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceControllerTest.java
index 36c9231..d7f5db5 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceControllerTest.java
@@ -81,7 +81,6 @@
mController.onPreferenceChange(mPreference, true /* new value */);
final boolean isEnabled = SystemProperties.getBoolean(
LE_AUDIO_TOGGLE_VISIBLE_PROPERTY, false);
-
assertThat(isEnabled).isTrue();
}
@@ -91,7 +90,6 @@
mController.onPreferenceChange(mPreference, false /* new value */);
final boolean isEnabled = SystemProperties.getBoolean(
LE_AUDIO_TOGGLE_VISIBLE_PROPERTY, true);
-
assertThat(isEnabled).isFalse();
}
@@ -99,6 +97,7 @@
public void updateState_settingEnabled_preferenceShouldBeChecked() {
mController.sLeAudioSupportedStateCache = BluetoothStatusCodes.FEATURE_SUPPORTED;
SystemProperties.set(LE_AUDIO_TOGGLE_VISIBLE_PROPERTY, "true");
+ mController.mLeAudioEnabledByDefault = false;
mController.updateState(mPreference);
verify(mPreference).setChecked(true);
}
@@ -107,8 +106,8 @@
public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
mController.sLeAudioSupportedStateCache = BluetoothStatusCodes.FEATURE_SUPPORTED;
SystemProperties.set(LE_AUDIO_TOGGLE_VISIBLE_PROPERTY, "false");
+ mController.mLeAudioEnabledByDefault = false;
mController.updateState(mPreference);
-
verify(mPreference).setChecked(false);
}
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPreferenceControllerTest.java
index d4af470..229f2fa 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPreferenceControllerTest.java
@@ -38,6 +38,7 @@
import com.android.settingslib.testutils.shadow.ShadowInteractionJankMonitor;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -46,13 +47,14 @@
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowSystemProperties;
+@Ignore("b/313564061")
@RunWith(RobolectricTestRunner.class)
@Config(
shadows = {
- ZygoteShadow.class,
- ShadowDeviceConfig.class,
- ShadowInteractionJankMonitor.class,
- ShadowRestrictedLockUtilsInternal.class
+ ZygoteShadow.class,
+ ShadowDeviceConfig.class,
+ ShadowInteractionJankMonitor.class,
+ ShadowRestrictedLockUtilsInternal.class
})
public class DevelopmentMemtagPreferenceControllerTest {
private final String mMemtagSupportedProperty = "ro.arm64.memtag.bootctl_supported";
diff --git a/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java b/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
index dffd7fb..5a679ad 100644
--- a/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
+++ b/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
@@ -51,6 +51,7 @@
import com.android.settings.R;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -140,6 +141,7 @@
R.string.platform_compat_selected_app_summary, APP_NAME, 1));
}
+ @Ignore("b/313591873")
@Test
public void createPreferenceForChange_defaultEnabledChange_createCheckedEntry() {
CompatibilityChangeInfo enabledChange = mChanges[0];
@@ -158,6 +160,7 @@
assertThat(enabledSwitchPreference.isEnabled()).isTrue();
}
+ @Ignore("b/313591873")
@Test
public void createPreferenceForChange_defaultDisabledChange_createUncheckedEntry() {
CompatibilityChangeInfo disabledChange = mChanges[1];
@@ -174,6 +177,7 @@
assertThat(disabledSwitchPreference.isEnabled()).isTrue();
}
+ @Ignore("b/313591873")
@Test
public void createPreferenceForChange_cannotOverride_createDisabledEntry()
throws RemoteException {
@@ -195,6 +199,7 @@
assertThat(switchPreference.isEnabled()).isFalse();
}
+ @Ignore("b/313591873")
@Test
public void createChangeCategoryPreference_enabledAndDisabled_hasTitleAndEntries() {
Set<Long> enabledChanges = new HashSet<>();
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
index a326061..7cd6734 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
@@ -18,8 +18,8 @@
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
-import static com.android.settings.deviceinfo.firmwareversion.MainlineModuleVersionPreferenceController.MODULE_UPDATE_INTENT_ACTION;
-import static com.android.settings.deviceinfo.firmwareversion.MainlineModuleVersionPreferenceController.MODULE_UPDATE_V2_INTENT_ACTION;
+import static com.android.settings.deviceinfo.firmwareversion.MainlineModuleVersionPreferenceController.MODULE_UPDATE_INTENT;
+import static com.android.settings.deviceinfo.firmwareversion.MainlineModuleVersionPreferenceController.MODULE_UPDATE_V2_INTENT;
import static com.google.common.truth.Truth.assertThat;
@@ -29,7 +29,6 @@
import static org.mockito.Mockito.when;
import android.content.Context;
-import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -52,10 +51,6 @@
public class MainlineModuleVersionPreferenceControllerTest {
private static final String MODULE_PACKAGE = "com.android.vending";
- private static final Intent MODULE_UPDATE_V2_INTENT =
- new Intent(MODULE_UPDATE_V2_INTENT_ACTION).setPackage(MODULE_PACKAGE);
- private static final Intent MODULE_UPDATE_INTENT =
- new Intent(MODULE_UPDATE_INTENT_ACTION).setPackage(MODULE_PACKAGE);
@Rule
public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
diff --git a/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java b/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java
index 6302f80..5262a16 100644
--- a/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java
@@ -42,6 +42,7 @@
import com.android.settings.widget.LabeledSeekBarPreference;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -150,6 +151,7 @@
assertThat(mLabelFrame.getVisibility()).isEqualTo(View.GONE);
}
+ @Ignore("b/313594999")
@Test
public void setIconAttributes_iconVisible() {
final AttributeSet attributeSet = Robolectric.buildAttributeSet()
@@ -204,6 +206,7 @@
new LabeledSeekBarPreference(mContext, attributeSet);
}
+ @Ignore("b/313594999")
@Test
public void setContentDescriptionWithIcon_success() {
final String startDescription =
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java
index e6b0343..de07fe0 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java
@@ -26,6 +26,7 @@
import com.android.settingslib.widget.SelectorWithWidgetPreference;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -76,6 +77,7 @@
.isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
}
+ @Ignore("b/313541907")
@Test
public void getAvailabilityStatus_setNavi3ButtonMode_shouldDisabled() {
SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java
index da27191..6d13056 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java
@@ -26,6 +26,7 @@
import com.android.settingslib.widget.SelectorWithWidgetPreference;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -85,6 +86,7 @@
.isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
}
+ @Ignore("b/313541907")
@Test
public void getAvailabilityStatus_setNavi3ButtonMode_shouldDisabled() {
SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java
index 599d4e0..118c58a 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java
@@ -25,6 +25,7 @@
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -83,6 +84,7 @@
.isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
}
+ @Ignore("b/313541907")
@Test
public void getAvailabilityStatus_set3ButtonMode_shouldDisabled() {
SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedPreferenceCategoryControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedPreferenceCategoryControllerTest.java
index 112e04a..b3d4934 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedPreferenceCategoryControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedPreferenceCategoryControllerTest.java
@@ -30,6 +30,7 @@
import com.android.settings.R;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -61,6 +62,7 @@
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
}
+ @Ignore("b/313541907")
@Test
public void getTitle_set3ButtonMode_shouldReturnSetShortcutTo() {
mUtils.setNavigationBarMode(mContext, "0" /* 3 button */);
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionControllerTest.java
index 58a8d5b..9e83641 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionControllerTest.java
@@ -29,6 +29,7 @@
import android.os.UserHandle;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -56,6 +57,7 @@
mController = new GrayscaleConditionController(mContext, mConditionManager);
}
+ @Ignore("b/313597163")
@Test
public void isDisplayable_noIntent_shouldReturnFalse() {
assertThat(mController.isDisplayable()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java
index f5f3d59..4377ec0 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java
@@ -42,6 +42,7 @@
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -129,6 +130,7 @@
assertThat(mDarkThemeSlice.isAvailable(mContext)).isTrue();
}
+ @Ignore("b/313598030")
@Test
public void getSlice_batterySaver_returnErrorSlice() {
when(mPowerManager.isPowerSaveMode()).thenReturn(true);
@@ -138,6 +140,7 @@
assertThat(metadata.isErrorSlice()).isTrue();
}
+ @Ignore("b/313598030")
@Test
public void getSlice_notAvailable_returnErrorSlice() {
mContext.getResources().getConfiguration().uiMode = UI_MODE_NIGHT_YES;
@@ -147,6 +150,7 @@
assertThat(metadata.isErrorSlice()).isTrue();
}
+ @Ignore("b/313598030")
@Test
public void getSlice_newSession_notAvailable_returnErrorSlice() {
// previous displayed: yes
@@ -173,6 +177,7 @@
assertThat(mDarkThemeSlice.getSlice()).isNotNull();
}
+ @Ignore("b/313598030")
@Test
public void getSlice_sliceNotClicked_notAvailable_returnErrorSlice() {
mDarkThemeSlice.sSliceClicked = false;
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
index 8dad372..71c839d 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
@@ -50,6 +50,7 @@
import com.android.settings.homepage.contextualcards.ControllerRendererPool;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -100,6 +101,7 @@
.isNull();
}
+ @Ignore("b/313598030")
@Test
public void bindView_viewTypeFullWidth_shouldSetCachedSlice() {
final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
@@ -111,6 +113,7 @@
.isNotNull();
}
+ @Ignore("b/313598030")
@Test
public void bindView_viewTypeSticky_shouldSetCachedSlice() {
final RecyclerView.ViewHolder viewHolder = spy(getStickyViewHolder());
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SwipeDismissalDelegateTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SwipeDismissalDelegateTest.java
index 3e5934b..89a9ca8 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SwipeDismissalDelegateTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SwipeDismissalDelegateTest.java
@@ -36,6 +36,7 @@
import com.android.settings.homepage.contextualcards.slices.SliceFullCardRendererHelper.SliceViewHolder;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -67,12 +68,14 @@
mDismissalDelegate = new SwipeDismissalDelegate(mDismissalDelegateListener);
}
+ @Ignore("b/313598030")
@Test
public void getMovementFlags_conditionalViewHolder_shouldDisableSwipe() {
assertThat(mDismissalDelegate.getMovementFlags(mRecyclerView, getConditionalViewHolder()))
.isEqualTo(0);
}
+ @Ignore("b/313598030")
@Test
public void getMovementFlags_dismissalView_shouldDisableSwipe() {
final RecyclerView.ViewHolder holder = getSliceViewHolder();
@@ -81,6 +84,7 @@
assertThat(mDismissalDelegate.getMovementFlags(mRecyclerView, holder)).isEqualTo(0);
}
+ @Ignore("b/313598030")
@Test
public void getMovementFlags_SliceViewHolder_shouldEnableSwipe() {
final RecyclerView.ViewHolder holder = getSliceViewHolder();
@@ -90,6 +94,7 @@
.isNotEqualTo(0);
}
+ @Ignore("b/313598030")
@Test
public void onSwipe_shouldNotifyListener() {
mDismissalDelegate.onSwiped(getSliceViewHolder(), 1);
diff --git a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
index 817df4c..2ad24f2 100644
--- a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
+++ b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
@@ -58,6 +58,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -202,6 +203,7 @@
assertThat(controller.get().isFinishing()).isTrue();
}
+ @Ignore("b/313604701")
@Test
public void onLocaleSelected_getLocaleNotNull_getLanguageTag() {
ActivityController<TestAppLocalePickerActivity> controller =
diff --git a/tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java
index bed3346..8726fc3 100644
--- a/tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java
@@ -44,6 +44,7 @@
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
@@ -114,6 +115,7 @@
verify(mContext).unregisterReceiver(mController.mInjectedSettingsReceiver);
}
+ @Ignore("b/313540388")
@Test
public void workProfileDisallowShareLocationOn_getParentUserLocationServicesOnly() {
final int fakeWorkProfileId = 123;
@@ -166,6 +168,7 @@
verify(mSettingsInjector).reloadStatusMessages();
}
+ @Ignore("b/313540388")
@Test
public void withUserRestriction_shouldDisableLocationAccuracy() {
final List<Preference> preferences = new ArrayList<>();
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
index 7248ff6..652bd03 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
@@ -18,6 +18,7 @@
package com.android.settings.media;
import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_INDICATOR_SLICE_URI;
+import static com.android.settingslib.media.flags.Flags.FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING;
import static com.google.common.truth.Truth.assertThat;
@@ -38,6 +39,7 @@
import android.media.session.MediaSession;
import android.net.Uri;
import android.os.Process;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.text.TextUtils;
import androidx.slice.Slice;
@@ -54,6 +56,8 @@
import com.android.settingslib.media.MediaOutputConstants;
import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -95,6 +99,9 @@
@Mock
private Drawable mTestDrawable;
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private Context mContext;
private MediaOutputIndicatorSlice mMediaOutputIndicatorSlice;
private AudioManager mAudioManager;
@@ -151,6 +158,7 @@
assertThat(metadata.isErrorSlice()).isFalse();
}
+ @Ignore("b/313605377")
@Test
public void getSlice_noConnectedDevice_returnErrorSlice() {
mDevices.clear();
@@ -163,6 +171,7 @@
assertThat(metadata.isErrorSlice()).isTrue();
}
+ @Ignore("b/313605377")
@Test
public void getSlice_audioModeIsInCommunication_returnErrorSlice() {
mDevices.add(mDevice1);
@@ -177,6 +186,7 @@
assertThat(metadata.isErrorSlice()).isTrue();
}
+ @Ignore("b/313605377")
@Test
public void getSlice_audioModeIsRingtone_returnErrorSlice() {
mDevices.add(mDevice1);
@@ -191,6 +201,7 @@
assertThat(metadata.isErrorSlice()).isTrue();
}
+ @Ignore("b/313605377")
@Test
public void getSlice_audioModeIsInCall_returnErrorSlice() {
mDevices.add(mDevice1);
@@ -250,6 +261,34 @@
}
@Test
+ public void onNotifyChange_withoutMediaControllerFlagEnabled_verifyIntentExtra() {
+ mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+ doReturn(null).when(sMediaOutputIndicatorWorker)
+ .getActiveLocalMediaController();
+ ArgumentCaptor<Intent> argument = ArgumentCaptor.forClass(Intent.class);
+
+ mMediaOutputIndicatorSlice.onNotifyChange(null);
+ verify(mContext, times(2)).sendBroadcast(argument.capture());
+ List<Intent> intentList = argument.getAllValues();
+ Intent intent = intentList.get(0);
+
+ assertThat(intent.getAction()).isEqualTo(
+ MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG);
+ assertThat(TextUtils.equals(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME,
+ intent.getPackage())).isTrue();
+ }
+
+ @Test
+ public void onNotifyChange_withoutMediaControllerFlagDisabled_doNothing() {
+ mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+ doReturn(null).when(sMediaOutputIndicatorWorker)
+ .getActiveLocalMediaController();
+
+ mMediaOutputIndicatorSlice.onNotifyChange(null);
+ }
+
+
+ @Test
public void isVisible_allConditionMatched_returnTrue() {
mAudioManager.setMode(AudioManager.MODE_NORMAL);
mDevices.add(mDevice1);
@@ -263,6 +302,7 @@
@Test
public void isVisible_noActiveSession_returnFalse() {
+ mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
mDevices.add(mDevice1);
@@ -273,6 +313,19 @@
assertThat(mMediaOutputIndicatorSlice.isVisible()).isFalse();
}
+ @Test
+ public void isVisible_noActiveSession_returnTrue() {
+ mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+ mAudioManager.setMode(AudioManager.MODE_NORMAL);
+ mDevices.add(mDevice1);
+
+ when(sMediaOutputIndicatorWorker.getMediaDevices()).thenReturn(mDevices);
+ doReturn(mMediaController).when(sMediaOutputIndicatorWorker)
+ .getActiveLocalMediaController();
+
+ assertThat(mMediaOutputIndicatorSlice.isVisible()).isTrue();
+ }
+
private void initPackage() {
mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
mAppInfo = new ApplicationInfo();
diff --git a/tests/robotests/src/com/android/settings/network/AllInOneTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/AllInOneTetherPreferenceControllerTest.java
deleted file mode 100644
index 15e24e1..0000000
--- a/tests/robotests/src/com/android/settings/network/AllInOneTetherPreferenceControllerTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.android.settings.network.TetherEnabler.TETHERING_BLUETOOTH_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_ETHERNET_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_OFF;
-import static com.android.settings.network.TetherEnabler.TETHERING_USB_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_WIFI_ON;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothPan;
-import android.bluetooth.BluetoothProfile;
-import android.content.Context;
-
-import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-import com.android.settingslib.PrimarySwitchPreference;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.ParameterizedRobolectricTestRunner;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-
-@RunWith(ParameterizedRobolectricTestRunner.class)
-public class AllInOneTetherPreferenceControllerTest {
-
- @ParameterizedRobolectricTestRunner.Parameters(name = "TetherState: {0}")
- public static List params() {
- return Arrays.asList(new Object[][] {
- {TETHERING_OFF, R.string.tether_settings_summary_off},
- {TETHERING_WIFI_ON, R.string.tether_settings_summary_hotspot_only},
- {TETHERING_USB_ON, R.string.tether_settings_summary_usb_tethering_only},
- {TETHERING_BLUETOOTH_ON, R.string.tether_settings_summary_bluetooth_tethering_only},
- {TETHERING_ETHERNET_ON, R.string.tether_settings_summary_ethernet_tethering_only},
- {
- TETHERING_WIFI_ON | TETHERING_USB_ON,
- R.string.tether_settings_summary_hotspot_and_usb
- },
- {
- TETHERING_WIFI_ON | TETHERING_BLUETOOTH_ON,
- R.string.tether_settings_summary_hotspot_and_bluetooth
- },
- {
- TETHERING_WIFI_ON | TETHERING_ETHERNET_ON,
- R.string.tether_settings_summary_hotspot_and_ethernet
- },
- {
- TETHERING_USB_ON | TETHERING_BLUETOOTH_ON,
- R.string.tether_settings_summary_usb_and_bluetooth
- },
- {
- TETHERING_USB_ON | TETHERING_ETHERNET_ON,
- R.string.tether_settings_summary_usb_and_ethernet
- },
- {
- TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON,
- R.string.tether_settings_summary_bluetooth_and_ethernet
- },
- {
- TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_BLUETOOTH_ON,
- R.string.tether_settings_summary_hotspot_and_usb_and_bluetooth
- },
- {
- TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_ETHERNET_ON,
- R.string.tether_settings_summary_hotspot_and_usb_and_ethernet
- },
- {
- TETHERING_WIFI_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON,
- R.string.tether_settings_summary_hotspot_and_bluetooth_and_ethernet
- },
- {
- TETHERING_USB_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON,
- R.string.tether_settings_summary_usb_and_bluetooth_and_ethernet
- },
- {
- TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_BLUETOOTH_ON
- | TETHERING_ETHERNET_ON,
- R.string.tether_settings_summary_all
- }
- });
- }
-
- private Context mContext;
- @Mock
- private BluetoothAdapter mBluetoothAdapter;
- @Mock
- private PrimarySwitchPreference mPreference;
-
- private static final String PREF_KEY = "tether";
- private AllInOneTetherPreferenceController mController;
- private final int mTetherState;
- private final int mSummaryResId;
-
- public AllInOneTetherPreferenceControllerTest(int tetherState, int summaryResId) {
- mTetherState = tetherState;
- mSummaryResId = summaryResId;
- }
-
- @Before
- public void setUp() {
- mContext = spy(ApplicationProvider.getApplicationContext());
- MockitoAnnotations.initMocks(this);
- doReturn(null).when(mContext)
- .getSystemService(Context.DEVICE_POLICY_SERVICE);
- mController = spy(new AllInOneTetherPreferenceController(mContext, /* key= */ "test"));
- ReflectionHelpers.setField(mController, "mContext", mContext);
- ReflectionHelpers.setField(mController, "mBluetoothAdapter", mBluetoothAdapter);
- ReflectionHelpers.setField(mController, "mPreferenceKey", PREF_KEY);
- PreferenceScreen screen = mock(PreferenceScreen.class);
- when(screen.findPreference(PREF_KEY)).thenReturn(mPreference);
- doReturn(mController.AVAILABLE).when(mController).getAvailabilityStatus();
- mController.displayPreference(screen);
- }
-
- @Test
- public void onCreate_shouldInitBluetoothPan() {
- when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_ON);
- mController.onCreate();
-
- verify(mBluetoothAdapter).getState();
- verify(mBluetoothAdapter).getProfileProxy(mContext, mController.mBtProfileServiceListener,
- BluetoothProfile.PAN);
- }
-
- @Test
- public void onCreate_shouldNotInitBluetoothPanWhenBluetoothOff() {
- when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_OFF);
- mController.onCreate();
-
- verify(mBluetoothAdapter).getState();
- verifyNoMoreInteractions(mBluetoothAdapter);
- }
-
- @Test
- public void goThroughLifecycle_shouldDestroyBluetoothProfile() {
- final BluetoothPan pan = mock(BluetoothPan.class);
- final AtomicReference<BluetoothPan> panRef =
- ReflectionHelpers.getField(mController, "mBluetoothPan");
- panRef.set(pan);
-
- mController.onDestroy();
-
- verify(mBluetoothAdapter).closeProfileProxy(BluetoothProfile.PAN, pan);
- }
-
- @Test
- public void getSummary_afterTetherStateChanged() {
- mController.onTetherStateUpdated(mTetherState);
- assertThat(mController.getSummary()).isEqualTo(mContext.getString(mSummaryResId));
-
- verify(mController).updateState(mPreference);
- verify(mPreference).setSummary(mContext.getString(mSummaryResId));
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java
deleted file mode 100644
index d3a3129..0000000
--- a/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.bluetooth.BluetoothAdapter;
-import android.content.Context;
-import android.net.TetheringManager;
-
-import androidx.preference.SwitchPreference;
-import androidx.test.core.app.ApplicationProvider;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(RobolectricTestRunner.class)
-public class BluetoothTetherPreferenceControllerTest {
-
- @Mock
- private TetheringManager mTetheringManager;
- @Mock
- private TetherEnabler mTetherEnabler;
-
- private SwitchPreference mSwitchPreference;
- private BluetoothTetherPreferenceController mController;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(ApplicationProvider.getApplicationContext());
- mSwitchPreference = spy(SwitchPreference.class);
- when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
- when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[] {""});
- mController = new BluetoothTetherPreferenceController(mContext, "BLUETOOTH");
- mController.setTetherEnabler(mTetherEnabler);
- ReflectionHelpers.setField(mController, "mPreference", mSwitchPreference);
- }
-
- @Test
- public void lifecycle_shouldRegisterReceiverOnStart() {
- mController.onStart();
-
- verify(mContext).registerReceiver(
- eq(mController.mBluetoothChangeReceiver),
- any());
- }
-
- @Test
- public void lifecycle_shouldAddListenerOnResume() {
- mController.onResume();
- verify(mTetherEnabler).addListener(mController);
- }
-
- @Test
- public void lifecycle_shouldRemoveListenrOnPause() {
- mController.onPause();
- verify(mTetherEnabler).removeListener(mController);
- }
-
- @Test
- public void lifecycle_shouldUnregisterReceiverOnStop() {
- mController.onStart();
- mController.onStop();
-
- verify(mContext).unregisterReceiver(
- eq(mController.mBluetoothChangeReceiver));
- }
-
- @Test
- public void shouldShow_noBluetoothTetherable() {
- when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- public void shouldEnable_transientState() {
- ReflectionHelpers.setField(mController, "mBluetoothState",
- BluetoothAdapter.STATE_TURNING_OFF);
- assertThat(mController.shouldEnable()).isFalse();
- }
- @Test
- public void setChecked_shouldStartBluetoothTethering() {
- mController.setChecked(true);
- verify(mTetherEnabler).startTethering(TetheringManager.TETHERING_BLUETOOTH);
- }
-
- @Test
- public void setUnchecked_shouldStopBluetoothTethering() {
- mController.setChecked(false);
- verify(mTetherEnabler).stopTethering(TetheringManager.TETHERING_BLUETOOTH);
- }
-
- @Test
- public void switch_shouldCheckedWhenBluetoothTethering() {
- mController.onTetherStateUpdated(TetherEnabler.TETHERING_BLUETOOTH_ON);
- assertThat(mController.isChecked()).isTrue();
- }
-
- @Test
- public void switch_shouldUnCheckedWhenBluetoothNotTethering() {
- mController.onTetherStateUpdated(TetherEnabler.TETHERING_OFF);
- assertThat(mController.isChecked()).isFalse();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/EthernetTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/EthernetTetherPreferenceControllerTest.java
deleted file mode 100644
index 68d80d4..0000000
--- a/tests/robotests/src/com/android/settings/network/EthernetTetherPreferenceControllerTest.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.EthernetManager;
-import android.net.TetheringManager;
-
-import androidx.preference.SwitchPreference;
-import androidx.test.core.app.ApplicationProvider;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(RobolectricTestRunner.class)
-public class EthernetTetherPreferenceControllerTest {
-
- @Rule
- public MockitoRule mocks = MockitoJUnit.rule();
-
- @Mock
- private TetheringManager mTetheringManager;
- @Mock
- private EthernetManager mEthernetManager;
- @Mock
- private TetherEnabler mTetherEnabler;
-
- private Context mContext;
- private EthernetTetherPreferenceController mController;
- private SwitchPreference mPreference;
- private static final String ETHERNET_REGEX = "ethernet";
-
- @Before
- public void setUp() {
- mContext = spy(ApplicationProvider.getApplicationContext());
- mPreference = spy(SwitchPreference.class);
- when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
- when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[]{ETHERNET_REGEX});
- when(mContext.getSystemService(EthernetManager.class)).thenReturn(mEthernetManager);
- mController = new EthernetTetherPreferenceController(mContext, "ethernet");
- mController.setTetherEnabler(mTetherEnabler);
- ReflectionHelpers.setField(mController, "mPreference", mPreference);
- }
-
- @Test
- @Ignore
- public void lifecycle_shouldRegisterReceiverOnStart() {
- mController.onStart();
-
- verify(mEthernetManager).addInterfaceStateListener(any(),
- eq(mController.mEthernetListener));
- }
-
- @Test
- public void lifecycle_shouldAddListenerOnResume() {
- mController.onResume();
- verify(mTetherEnabler).addListener(mController);
- }
-
- @Test
- public void lifecycle_shouldRemoveListenerOnPause() {
- mController.onPause();
- verify(mTetherEnabler).removeListener(mController);
- }
-
- @Test
- public void lifecycle_shouldUnregisterReceiverOnStop() {
- mController.onStart();
- EthernetManager.InterfaceStateListener listener = mController.mEthernetListener;
- mController.onStop();
-
- verify(mEthernetManager).removeInterfaceStateListener(eq(listener));
- }
-
- @Test
- public void shouldEnable_noTetherable() {
- when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[0]);
- assertThat(mController.shouldEnable()).isFalse();
- }
-
- @Test
- public void shouldShow_noEthernetInterface() {
- when(mContext.getSystemService(EthernetManager.class)).thenReturn(null);
-
- final EthernetTetherPreferenceController controller =
- new EthernetTetherPreferenceController(mContext, "ethernet");
- assertThat(controller.shouldShow()).isFalse();
- }
-
- @Test
- public void setChecked_shouldStartEthernetTethering() {
- mController.setChecked(true);
- verify(mTetherEnabler).startTethering(TetheringManager.TETHERING_ETHERNET);
- }
-
- @Test
- public void setUnchecked_shouldStopEthernetTethering() {
- mController.setChecked(false);
- verify(mTetherEnabler).stopTethering(TetheringManager.TETHERING_ETHERNET);
- }
-
- @Test
- public void switch_shouldCheckedWhenEthernetTethering() {
- mController.onTetherStateUpdated(TetherEnabler.TETHERING_ETHERNET_ON);
- assertThat(mController.isChecked()).isTrue();
- }
-
- @Test
- public void switch_shouldUnCheckedWhenEthernetNotTethering() {
- mController.onTetherStateUpdated(TetherEnabler.TETHERING_OFF);
- assertThat(mController.isChecked()).isFalse();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index b1bd41d..fb29e05 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -82,6 +82,7 @@
import com.android.wifitrackerlib.WifiPickerTracker;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -397,6 +398,7 @@
verify(mContextMenu, never()).add(anyInt(), eq(MENU_ID_SHARE), anyInt(), anyInt());
}
+ @Ignore("b/313585353")
@Test
public void onWifiEntriesChanged_shouldChangeNextButtonState() {
mNetworkProviderSettings.onWifiEntriesChanged();
diff --git a/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java
deleted file mode 100644
index 99869d8..0000000
--- a/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoInteractions;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
-import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothPan;
-import android.bluetooth.BluetoothProfile;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.database.ContentObserver;
-import android.net.TetheringManager;
-import android.provider.Settings;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-@RunWith(RobolectricTestRunner.class)
-public class TetherPreferenceControllerTest {
-
- @Mock
- private Context mContext;
- @Mock
- private TetheringManager mTetheringManager;
- @Mock
- private BluetoothAdapter mBluetoothAdapter;
- @Mock
- private Preference mPreference;
-
- private TetherPreferenceController mController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- doReturn(null).when(mContext)
- .getSystemService(Context.DEVICE_POLICY_SERVICE);
- mController = spy(new TetherPreferenceController(mContext, /* lifecycle= */ null));
- ReflectionHelpers.setField(mController, "mContext", mContext);
- ReflectionHelpers.setField(mController, "mTetheringManager", mTetheringManager);
- ReflectionHelpers.setField(mController, "mBluetoothAdapter", mBluetoothAdapter);
- ReflectionHelpers.setField(mController, "mPreference", mPreference);
- }
-
- @Test
- public void lifeCycle_onCreate_shouldInitBluetoothPan() {
- when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_ON);
- mController.onCreate(null);
-
- verify(mBluetoothAdapter).getState();
- verify(mBluetoothAdapter).getProfileProxy(mContext, mController.mBtProfileServiceListener,
- BluetoothProfile.PAN);
- }
-
- @Test
- public void lifeCycle_onCreate_shouldNotInitBluetoothPanWhenBluetoothOff() {
- when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_OFF);
- mController.onCreate(null);
-
- verify(mBluetoothAdapter).getState();
- verifyNoMoreInteractions(mBluetoothAdapter);
- }
-
- @Test
- public void goThroughLifecycle_shouldDestoryBluetoothProfile() {
- final BluetoothPan pan = mock(BluetoothPan.class);
- final AtomicReference<BluetoothPan> panRef =
- ReflectionHelpers.getField(mController, "mBluetoothPan");
- panRef.set(pan);
-
- mController.onDestroy();
-
- verify(mBluetoothAdapter).closeProfileProxy(BluetoothProfile.PAN, pan);
- }
-
- @Test
- public void updateSummary_noPreference_noInteractionWithTetheringManager() {
- ReflectionHelpers.setField(mController, "mPreference", null);
- mController.updateSummary();
- verifyNoMoreInteractions(mTetheringManager);
- }
-
- @Test
- public void updateSummary_wifiTethered_shouldShowHotspotMessage() {
- when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123"});
- when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"123"});
-
- mController.updateSummary();
- verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_on_tether_off);
- }
-
- @Test
- public void updateSummary_btThetherOn_shouldShowTetherMessage() {
- when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123"});
- when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"});
-
- mController.updateSummary();
- verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_off_tether_on);
- }
-
- @Ignore
- @Test
- public void updateSummary_tetherOff_shouldShowTetherOffMessage() {
- when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"});
- when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"});
-
- mController.updateSummary();
- verify(mPreference).setSummary(R.string.switch_off_text);
- }
-
- @Test
- public void updateSummary_wifiBtTetherOn_shouldShowHotspotAndTetherMessage() {
- when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123", "456"});
- when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"});
- when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"23"});
-
- mController.updateSummary();
- verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_on_tether_on);
- }
-
- @Ignore
- @Test
- public void airplaneModeOn_shouldUpdateSummaryToOff() {
- final Context context = RuntimeEnvironment.application;
- ReflectionHelpers.setField(mController, "mContext", context);
-
- Settings.Global.putInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
-
- mController.onResume();
-
- verifyNoInteractions(mPreference);
-
- Settings.Global.putInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
-
- final ContentObserver observer =
- ReflectionHelpers.getField(mController, "mAirplaneModeObserver");
- observer.onChange(true, Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON));
-
- verify(mPreference).setSummary(R.string.switch_off_text);
- }
-
- @Test
- public void onResume_shouldRegisterTetherReceiver() {
- when(mContext.getContentResolver()).thenReturn(mock(ContentResolver.class));
-
- mController.onResume();
-
- verify(mContext).registerReceiver(
- any(TetherPreferenceController.TetherBroadcastReceiver.class),
- any(IntentFilter.class));
- }
-
- @Test
- public void onPause_shouldUnregisterTetherReceiver() {
- when(mContext.getContentResolver()).thenReturn(mock(ContentResolver.class));
- mController.onResume();
-
- mController.onPause();
-
- verify(mContext)
- .unregisterReceiver(any(TetherPreferenceController.TetherBroadcastReceiver.class));
- }
-
- @Test
- public void tetherStatesChanged_shouldUpdateSummary() {
- final Context context = RuntimeEnvironment.application;
- ReflectionHelpers.setField(mController, "mContext", context);
- mController.onResume();
-
- context.sendBroadcast(new Intent(TetheringManager.ACTION_TETHER_STATE_CHANGED));
-
- shadowMainLooper().idle();
- verify(mController).updateSummary();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java
deleted file mode 100644
index e02da90..0000000
--- a/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.TetheringManager;
-
-import androidx.preference.SwitchPreference;
-import androidx.test.core.app.ApplicationProvider;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(RobolectricTestRunner.class)
-public class UsbTetherPreferenceControllerTest {
-
- @Mock
- private TetheringManager mTetheringManager;
- @Mock
- private TetherEnabler mTetherEnabler;
-
- private Context mContext;
- private UsbTetherPreferenceController mController;
- private SwitchPreference mSwitchPreference;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(ApplicationProvider.getApplicationContext());
- when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
- when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[]{""});
- mController = new UsbTetherPreferenceController(mContext, "USB");
- mController.setTetherEnabler(mTetherEnabler);
- mSwitchPreference = spy(SwitchPreference.class);
- ReflectionHelpers.setField(mController, "mPreference", mSwitchPreference);
- }
-
- @Test
- public void lifecycle_shouldRegisterReceiverOnStart() {
- mController.onStart();
-
- verify(mContext).registerReceiver(eq(mController.mUsbChangeReceiver), any());
- }
-
- @Test
- public void lifecycle_shouldAddListenerOnResume() {
- mController.onResume();
- verify(mTetherEnabler).addListener(mController);
- }
-
- @Test
- public void lifecycle_shouldRemoveListenrOnPause() {
- mController.onPause();
- verify(mTetherEnabler).removeListener(mController);
- }
-
- @Test
- public void lifecycle_shouldUnregisterReceiverOnStop() {
- mController.onStart();
- mController.onStop();
-
- verify(mContext).unregisterReceiver(eq(mController.mUsbChangeReceiver));
- }
-
- @Test
- public void shouldShow_noTetherableUsb() {
- when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
- assertThat(mController.shouldShow()).isFalse();
- }
-
- @Test
- public void shouldEnable_noUsbConnected() {
- ReflectionHelpers.setField(mController, "mUsbConnected", false);
- assertThat(mController.shouldEnable()).isFalse();
- }
-
- @Test
- public void setChecked_shouldStartUsbTethering() {
- mController.setChecked(true);
- verify(mTetherEnabler).startTethering(TetheringManager.TETHERING_USB);
- }
-
- @Test
- public void setUnchecked_shouldStopUsbTethering() {
- mController.setChecked(false);
- verify(mTetherEnabler).stopTethering(TetheringManager.TETHERING_USB);
- }
-
- @Test
- public void switch_shouldCheckedWhenUsbTethering() {
- mController.onTetherStateUpdated(TetherEnabler.TETHERING_USB_ON);
- assertThat(mController.isChecked()).isTrue();
- }
-
- @Test
- public void switch_shouldUnCheckedWhenUsbNotTethering() {
- mController.onTetherStateUpdated(TetherEnabler.TETHERING_OFF);
- assertThat(mController.isChecked()).isFalse();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java
deleted file mode 100644
index a82a71f..0000000
--- a/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.android.settings.AllInOneTetherSettings.WIFI_TETHER_DISABLE_KEY;
-import static com.android.settings.network.TetherEnabler.TETHERING_BLUETOOTH_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_ETHERNET_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_OFF;
-import static com.android.settings.network.TetherEnabler.TETHERING_USB_ON;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.TetheringManager;
-
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.ParameterizedRobolectricTestRunner;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Arrays;
-import java.util.List;
-
-@RunWith(ParameterizedRobolectricTestRunner.class)
-public class WifiTetherDisablePreferenceControllerTest {
-
- @ParameterizedRobolectricTestRunner.Parameters(name = "TetherState: {0}")
- public static List params() {
- return Arrays.asList(new Object[][] {
- {TETHERING_OFF, R.string.summary_placeholder},
- {TETHERING_USB_ON, R.string.disable_wifi_hotspot_when_usb_on},
- {TETHERING_BLUETOOTH_ON, R.string.disable_wifi_hotspot_when_bluetooth_on},
- {TETHERING_ETHERNET_ON, R.string.disable_wifi_hotspot_when_ethernet_on},
- {
- TETHERING_USB_ON | TETHERING_BLUETOOTH_ON,
- R.string.disable_wifi_hotspot_when_usb_and_bluetooth_on
- },
- {
- TETHERING_USB_ON | TETHERING_ETHERNET_ON,
- R.string.disable_wifi_hotspot_when_usb_and_ethernet_on
- },
- {
- TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON,
- R.string.disable_wifi_hotspot_when_bluetooth_and_ethernet_on
- },
- {
- TETHERING_USB_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON,
- R.string.disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on
- }
- });
- }
-
- @Mock
- private TetheringManager mTetheringManager;
- @Mock
- private PreferenceScreen mPreferenceScreen;
- @Mock
- private TetherEnabler mTetherEnabler;
-
- private SwitchPreference mPreference;
- private Context mContext;
- private WifiTetherDisablePreferenceController mController;
- private final int mTetherState;
- private final int mSummaryResId;
-
- public WifiTetherDisablePreferenceControllerTest(int tetherState, int summaryResId) {
- mTetherState = tetherState;
- mSummaryResId = summaryResId;
- }
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(ApplicationProvider.getApplicationContext());
- mPreference = spy(SwitchPreference.class);
- when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
- when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{""});
- mController = new WifiTetherDisablePreferenceController(mContext, WIFI_TETHER_DISABLE_KEY);
- mController.setTetherEnabler(mTetherEnabler);
- ReflectionHelpers.setField(mController, "mScreen", mPreferenceScreen);
- ReflectionHelpers.setField(mController, "mPreference", mPreference);
- when(mPreferenceScreen.findPreference(WIFI_TETHER_DISABLE_KEY)).thenReturn(mPreference);
- }
-
- @Test
- public void shouldShow_noTetherableWifi() {
- when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[0]);
- assertThat(mController.shouldShow()).isFalse();
- }
-
- @Test
- public void onTetherStateUpdated_visibilityChangeCorrectly() {
- int state = TetherEnabler.TETHERING_BLUETOOTH_ON;
- mController.onTetherStateUpdated(state);
- assertThat(mController.shouldShow()).isTrue();
-
- state |= TetherEnabler.TETHERING_USB_ON;
- mController.onTetherStateUpdated(state);
- assertThat(mController.shouldShow()).isTrue();
-
- state = TetherEnabler.TETHERING_USB_ON;
- mController.onTetherStateUpdated(state);
- assertThat(mController.shouldShow()).isTrue();
-
- state = TetherEnabler.TETHERING_OFF;
- mController.onTetherStateUpdated(state);
- assertThat(mController.shouldShow()).isFalse();
- }
-
- @Test
- public void getSummary_onTetherStateUpdated() {
- mController.onTetherStateUpdated(mTetherState);
- assertThat(mController.getSummary()).isEqualTo(mContext.getString(mSummaryResId));
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java b/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
index 9269754..4e0fb03 100644
--- a/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
@@ -48,7 +48,6 @@
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
-import android.util.FeatureFlagUtils;
import androidx.fragment.app.FragmentActivity;
import androidx.preference.Preference;
@@ -56,7 +55,6 @@
import com.android.settings.R;
import com.android.settings.RestrictedSettingsFragment;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.wifi.tether.WifiTetherPreferenceController;
import com.android.settingslib.RestrictedSwitchPreference;
@@ -145,7 +143,6 @@
@Test
public void testTetherNonIndexableKeys_tetherAvailable_keysNotReturned() {
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
// To let TetherUtil.isTetherAvailable return true, select one of the combinations
setupIsTetherAvailable(true);
@@ -190,7 +187,6 @@
@Test
public void testTetherNonIndexableKeys_usbAvailable_usbKeyNotReturned() {
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
// We can ignore the condition of Utils.isMonkeyRunning()
// In normal case, monkey and robotest should not execute at the same time
when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[]{"fakeRegex"});
@@ -213,7 +209,6 @@
@Test
public void testTetherNonIndexableKeys_bluetoothAvailable_bluetoothKeyNotReturned() {
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
when(mTetheringManager.getTetherableBluetoothRegexs())
.thenReturn(new String[]{"fakeRegex"});
diff --git a/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java b/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
index e1687a0..090bcfb 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
@@ -42,6 +42,7 @@
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -54,6 +55,7 @@
import java.util.Objects;
+@Ignore("b/313576125")
@RunWith(RobolectricTestRunner.class)
@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {
diff --git a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
index 9322317..f177c19 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
@@ -50,6 +50,7 @@
import org.junit.Assert;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -125,6 +126,7 @@
/**
* ViewHolder should load and set the action label correctly.
*/
+ @Ignore("b/313576125")
@Test
public void setActionLabel_loadsActionLabel() {
addTestLiveData(VOLUME_NOTIFICATION_URI);
@@ -165,6 +167,7 @@
return foundLabel;
}
+ @Ignore("b/313576125")
@Test
public void sizeOfAdapter_shouldNotExceedMaxNum() {
for (int i = 0; i < MAX_NUM_OF_SLICES + 2; i++) {
@@ -183,6 +186,7 @@
assertThat(adapter.getData().size()).isEqualTo(MAX_NUM_OF_SLICES);
}
+ @Ignore("b/313576125")
@Test
public void mediaOutputIndicatorSlice_notSliderPanel_noSliderLayout() {
addTestLiveData(MEDIA_OUTPUT_INDICATOR_SLICE_URI);
@@ -199,6 +203,7 @@
assertThat(viewHolder.mSliceSliderLayout).isNull();
}
+ @Ignore("b/313576125")
@Test
public void onBindViewHolder_viewTypeSlider_verifyActionLabelSet() {
addTestLiveData(VOLUME_NOTIFICATION_URI);
diff --git a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
index 46c61e4..e550284 100644
--- a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
+++ b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
@@ -47,6 +47,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -101,6 +102,7 @@
mSettingsPanelActivity.getResources().getConfiguration().uiMode = mOriginalUiMode;
}
+ @Ignore("b/313576125")
@Test
public void onStart_isNotDebuggable_shouldHideSystemOverlay() {
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);
@@ -117,6 +119,7 @@
verify(window).addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
}
+ @Ignore("b/313576125")
@Test
public void onStop_isNotDebuggable_shouldRemoveHideSystemOverlay() {
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);
@@ -144,6 +147,7 @@
& SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS).isEqualTo(0);
}
+ @Ignore("b/313576125")
@Test
public void onStop_panelIsNotCreating_shouldForceUpdate() {
mSettingsPanelActivity.mForceCreation = false;
@@ -155,6 +159,7 @@
assertThat(mSettingsPanelActivity.mForceCreation).isTrue();
}
+ @Ignore("b/313576125")
@Test
public void onStop_panelIsCreating_shouldNotForceUpdate() {
mSettingsPanelActivity.mForceCreation = false;
diff --git a/tests/robotests/src/com/android/settings/security/ContentProtectionTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/ContentProtectionTogglePreferenceControllerTest.java
index 63b6c3e..50e9a5c 100644
--- a/tests/robotests/src/com/android/settings/security/ContentProtectionTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/ContentProtectionTogglePreferenceControllerTest.java
@@ -13,16 +13,18 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package com.android.settings.security;
import static com.android.settings.security.ContentProtectionTogglePreferenceController.KEY_CONTENT_PROTECTION_PREFERENCE;
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.content.ComponentName;
import android.content.Context;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
@@ -32,6 +34,7 @@
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.widget.SettingsMainSwitchPreference;
+import com.android.settingslib.RestrictedLockUtils;
import org.junit.After;
import org.junit.Before;
@@ -55,8 +58,9 @@
@Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
- @Mock private PreferenceScreen mScreen;
+ @Mock private PreferenceScreen mMockScreen;
+ private RestrictedLockUtils.EnforcedAdmin mAdmin;
private SettingsMainSwitchPreference mSwitchPreference;
private final Context mContext = ApplicationProvider.getApplicationContext();
private ContentProtectionTogglePreferenceController mController;
@@ -65,9 +69,10 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mController = new ContentProtectionTogglePreferenceController(mContext, "key");
+ mController = new TestContentProtectionTogglePreferenceController();
mSwitchPreference = new SettingsMainSwitchPreference(mContext);
- when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mSwitchPreference);
+ when(mMockScreen.findPreference(mController.getPreferenceKey()))
+ .thenReturn(mSwitchPreference);
mSettingBackupValue = getContentProtectionGlobalSetting();
Settings.Global.putInt(mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, 0);
}
@@ -78,6 +83,7 @@
mContext.getContentResolver(),
KEY_CONTENT_PROTECTION_PREFERENCE,
mSettingBackupValue);
+ ShadowUtils.reset();
}
@Test
@@ -86,6 +92,49 @@
}
@Test
+ public void displayPreference() {
+ setUpFullyManagedMode();
+ SettingsMainSwitchPreference mockSwitchPreference =
+ mock(SettingsMainSwitchPreference.class);
+ when(mMockScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+ when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
+
+ mController = new TestContentProtectionTogglePreferenceController();
+ mController.displayPreference(mMockScreen);
+
+ assertThat(mockSwitchPreference).isNotNull();
+ }
+
+ @Test
+ public void updateState_notFullyManagedMode_enabled() {
+ SettingsMainSwitchPreference mockSwitchPreference =
+ mock(SettingsMainSwitchPreference.class);
+ when(mMockScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+ when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
+
+ mController = new TestContentProtectionTogglePreferenceController();
+ mController.displayPreference(mMockScreen);
+ mController.updateState(mockSwitchPreference);
+
+ verify(mockSwitchPreference, never()).setDisabledByAdmin(any());
+ }
+
+ @Test
+ public void updateState_fullyManagedMode_disabled() {
+ setUpFullyManagedMode();
+ SettingsMainSwitchPreference mockSwitchPreference =
+ mock(SettingsMainSwitchPreference.class);
+ when(mMockScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+ when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
+
+ mController = new TestContentProtectionTogglePreferenceController();
+ mController.displayPreference(mMockScreen);
+ mController.updateState(mockSwitchPreference);
+
+ verify(mockSwitchPreference).setDisabledByAdmin(mAdmin);
+ }
+
+ @Test
public void isChecked_settingTurnOn() {
Settings.Global.putInt(mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, 1);
@@ -94,15 +143,18 @@
@Test
public void isChecked_fullyManagedMode_settingTurnOff() {
- final ComponentName componentName =
- ComponentName.unflattenFromString("com.android.test/.DeviceAdminReceiver");
- ShadowUtils.setDeviceOwnerComponent(componentName);
+ setUpFullyManagedMode();
Settings.Global.putInt(mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, 1);
+ SettingsMainSwitchPreference mockSwitchPreference =
+ mock(SettingsMainSwitchPreference.class);
+ when(mMockScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+ when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
- ContentProtectionTogglePreferenceController controller =
- new ContentProtectionTogglePreferenceController(mContext, "key");
+ mController = new TestContentProtectionTogglePreferenceController();
+ mController.displayPreference(mMockScreen);
+ mController.updateState(mockSwitchPreference);
- assertThat(controller.isChecked()).isFalse();
+ assertThat(mController.isChecked()).isFalse();
}
@Test
@@ -122,7 +174,6 @@
@Test
public void onSwitchChanged_switchChecked_manuallyEnabled() {
- mController.displayPreference(mScreen);
mController.setChecked(false);
mController.onCheckedChanged(/* switchView= */ null, /* isChecked= */ true);
@@ -132,8 +183,6 @@
@Test
public void onSwitchChanged_switchUnchecked_manuallyDisabled() {
- mController.displayPreference(mScreen);
-
mController.onCheckedChanged(/* switchView= */ null, /* isChecked= */ false);
assertThat(getContentProtectionGlobalSetting()).isEqualTo(-1);
@@ -143,4 +192,21 @@
return Settings.Global.getInt(
mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, 0);
}
+
+ private void setUpFullyManagedMode() {
+ mAdmin = new RestrictedLockUtils.EnforcedAdmin();
+ }
+
+ private class TestContentProtectionTogglePreferenceController
+ extends ContentProtectionTogglePreferenceController {
+
+ TestContentProtectionTogglePreferenceController() {
+ super(ContentProtectionTogglePreferenceControllerTest.this.mContext, "key");
+ }
+
+ @Override
+ protected RestrictedLockUtils.EnforcedAdmin getEnforcedAdmin() {
+ return mAdmin;
+ }
+ }
}
diff --git a/tests/robotests/src/com/android/settings/security/MemtagPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/MemtagPreferenceControllerTest.java
index 7d2c6dd..cca88dd 100644
--- a/tests/robotests/src/com/android/settings/security/MemtagPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/MemtagPreferenceControllerTest.java
@@ -43,6 +43,7 @@
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowSystemProperties;
+@Ignore("b/313564061")
@RunWith(RobolectricTestRunner.class)
@Config(
shadows = {
@@ -134,7 +135,6 @@
}
@Test
- @Ignore
public void setChecked_isChecked_doesNotShowDialog() {
ZygoteShadow.setSupportsMemoryTagging(false);
mController.setChecked(false);
@@ -142,7 +142,6 @@
}
@Test
- @Ignore
public void setChecked_isUnchecked_doesNotShowDialog() {
ZygoteShadow.setSupportsMemoryTagging(true);
mController.setChecked(true);
diff --git a/tests/robotests/src/com/android/settings/security/screenlock/PinPrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/screenlock/PinPrivacyPreferenceControllerTest.java
index 171fb44..4ee3b55 100644
--- a/tests/robotests/src/com/android/settings/security/screenlock/PinPrivacyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/screenlock/PinPrivacyPreferenceControllerTest.java
@@ -32,6 +32,7 @@
import com.android.internal.widget.LockPatternUtils;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -66,6 +67,7 @@
assertThat(mController.isAvailable()).isTrue();
}
+ @Ignore("b/313612259")
@Test
public void isAvailable_lockSetToPinOrPw_shouldReturnTrue() {
when(mLockPatternUtils.getCredentialTypeForUser(TEST_USER_ID)).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java
index d7aa42c..8339798 100644
--- a/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java
@@ -40,6 +40,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -105,6 +106,7 @@
assertThat(mPreferenceScreen.getPreferenceCount()).isEqualTo(0);
}
+ @Ignore("b/313612480")
@Test
public void
onStart_hasAUninstalledTrustAgent_shouldRemoveOnePreferenceAndLeaveTwoPreferences() {
@@ -125,6 +127,7 @@
assertThat(mPreferenceScreen.getPreferenceCount()).isEqualTo(2);
}
+ @Ignore("b/313612480")
@Test
public void onStart_hasANewTrustAgent_shouldAddOnePreferenceAndHaveFourPreferences() {
final List<ResolveInfo> availableAgents = createFakeAvailableAgents();
@@ -145,6 +148,7 @@
assertThat(mPreferenceScreen.getPreferenceCount()).isEqualTo(4);
}
+ @Ignore("b/313612480")
@Test
public void onStart_hasUnrestrictedTrustAgent_shouldAddThreeChangeablePreferences() {
ShadowRestrictedLockUtilsInternal.setKeyguardDisabledFeatures(0);
@@ -165,6 +169,7 @@
}
}
+ @Ignore("b/313612480")
@Test
public void onStart_hasRestrictedTructAgent_shouldAddThreeUnchangeablePreferences() {
final List<ResolveInfo> availableAgents = createFakeAvailableAgents();
diff --git a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
index 151d1f2..a272d9c 100644
--- a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
@@ -21,10 +21,12 @@
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+import static com.android.settingslib.media.flags.Flags.FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -38,6 +40,8 @@
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.media.AudioManager;
+import android.media.session.MediaSessionManager;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.util.FeatureFlagUtils;
import androidx.preference.ListPreference;
@@ -61,6 +65,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -113,6 +118,9 @@
@Mock
private CachedBluetoothDevice mCachedBluetoothDeviceR;
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private Context mContext;
private PreferenceScreen mScreen;
private ListPreference mPreference;
@@ -238,6 +246,7 @@
@Test
public void onStart_shouldRegisterCallbackAndRegisterReceiver() {
+ mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
mController.onStart();
verify(mLocalBluetoothManager.getEventManager()).registerCallback(
@@ -248,6 +257,7 @@
@Test
public void onStop_shouldUnregisterCallbackAndUnregisterReceiver() {
+ mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
mController.onStart();
mController.onStop();
@@ -257,6 +267,45 @@
verify(mLocalBluetoothManager).setForegroundActivity(null);
}
+ @Test
+ public void onStart_shouldRegisterCallbackAndRegisterReceiverWithDefaultMediaOutput() {
+ MediaSessionManager mediaSessionManager =
+ spy(mContext.getSystemService(MediaSessionManager.class));
+ mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+ when(mContext.getSystemService(MediaSessionManager.class)).thenReturn(mediaSessionManager);
+ mController = new AudioSwitchPreferenceControllerTestable(mContext, TEST_KEY);
+
+ mController.onStart();
+
+ verify(mLocalBluetoothManager.getEventManager()).registerCallback(
+ any(BluetoothCallback.class));
+ verify(mContext).registerReceiver(any(BroadcastReceiver.class), any(IntentFilter.class),
+ eq(Context.RECEIVER_NOT_EXPORTED));
+ verify(mLocalBluetoothManager).setForegroundActivity(mContext);
+ verify(mediaSessionManager).addOnActiveSessionsChangedListener(
+ any(MediaSessionManager.OnActiveSessionsChangedListener.class), any(), any());
+ }
+
+
+ @Test
+ public void onStop_shouldUnregisterCallbackAndUnregisterReceiverWithDefaultMediaOutput() {
+ MediaSessionManager mediaSessionManager =
+ spy(mContext.getSystemService(MediaSessionManager.class));
+ mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+ when(mContext.getSystemService(MediaSessionManager.class)).thenReturn(mediaSessionManager);
+ mController = new AudioSwitchPreferenceControllerTestable(mContext, TEST_KEY);
+ mController.onStart();
+
+ mController.onStop();
+
+ verify(mLocalBluetoothManager.getEventManager()).unregisterCallback(
+ any(BluetoothCallback.class));
+ verify(mContext).unregisterReceiver(any(BroadcastReceiver.class));
+ verify(mLocalBluetoothManager).setForegroundActivity(null);
+ verify(mediaSessionManager).removeOnActiveSessionsChangedListener(
+ any(MediaSessionManager.OnActiveSessionsChangedListener.class));
+ }
+
/**
* Audio stream output to bluetooth sco headset which is the subset of all sco device.
* isStreamFromOutputDevice should return true.
diff --git a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
index 5a92a08..b9f9b16 100644
--- a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
@@ -21,6 +21,8 @@
import static android.media.AudioSystem.DEVICE_OUT_EARPIECE;
import static android.media.AudioSystem.DEVICE_OUT_HEARING_AID;
+import static com.android.settingslib.media.flags.Flags.FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -45,6 +47,7 @@
import android.media.session.MediaController;
import android.media.session.MediaSessionManager;
import android.media.session.PlaybackState;
+import android.platform.test.flag.junit.SetFlagsRule;
import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
@@ -66,6 +69,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -103,6 +107,9 @@
private static final String TEST_PACKAGE_NAME = "com.test.packagename";
private static final String TEST_APPLICATION_LABEL = "APP Test Label";
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
@Mock
private LocalBluetoothManager mLocalManager;
@Mock
@@ -227,6 +234,8 @@
mScreen.addPreference(mPreference);
mController.displayPreference(mScreen);
mController.setCallback(mAudioSwitchPreferenceCallback);
+
+ mSetFlagsRule.initAllFlagsToReleaseConfigDefault();
}
@After
@@ -314,6 +323,7 @@
@Test
public void updateState_noActiveLocalPlayback_noTitle() {
+ mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
mPlaybackState = new PlaybackState.Builder()
.setState(PlaybackState.STATE_NONE, 0, 1)
.build();
@@ -326,6 +336,48 @@
}
@Test
+ public void updateState_noActiveLocalPlayback_checkTitle() {
+ mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+ mPlaybackState = new PlaybackState.Builder()
+ .setState(PlaybackState.STATE_NONE, 0, 1)
+ .build();
+ when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
+ mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
+ mController.displayPreference(mScreen);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getTitle().toString()).isEqualTo(
+ mContext.getString(R.string.media_output_title_without_playing,
+ TEST_APPLICATION_LABEL));
+ }
+
+ @Test
+ public void updateState_withNullMediaController_noTitle() {
+ mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+ mMediaControllers.clear();
+ mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getTitle()).isNull();
+ }
+
+ @Test
+ public void updateState_withNullMediaController_checkTitle() {
+ mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+ mMediaControllers.clear();
+ mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
+ mController.displayPreference(mScreen);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getTitle().toString()).isEqualTo(
+ mContext.getString(R.string.media_output_title_without_playing,
+ TEST_APPLICATION_LABEL));
+ }
+
+ @Test
public void updateState_withActiveLocalPlayback_checkTitle() {
initPackage();
mShadowPackageManager.addPackage(mPackageInfo, mPackageStats);
@@ -349,6 +401,39 @@
.isEqualTo(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG);
}
+ @Test
+ public void handlePreferenceTreeClick_WithNoLocalPlaybackFlagEnabled_verifyIntentExtra() {
+ mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+ final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+ mPlaybackState = new PlaybackState.Builder()
+ .setState(PlaybackState.STATE_NONE, 0, 1)
+ .build();
+ when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
+ mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
+ mPreference.setKey(TEST_KEY);
+
+ mController.handlePreferenceTreeClick(mPreference);
+
+ verify(mContext).sendBroadcast(intentCaptor.capture());
+ assertThat(intentCaptor.getValue().getAction())
+ .isEqualTo(MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG);
+ }
+
+ @Test
+ public void handlePreferenceTreeClick_WithNullControllerFlagEnabled_verifyIntentExtra() {
+ mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+ final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+ mMediaControllers.clear();
+ mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
+ mPreference.setKey(TEST_KEY);
+
+ mController.handlePreferenceTreeClick(mPreference);
+
+ verify(mContext).sendBroadcast(intentCaptor.capture());
+ assertThat(intentCaptor.getValue().getAction())
+ .isEqualTo(MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG);
+ }
+
/**
* Default status
* Preference should be invisible
diff --git a/tests/robotests/src/com/android/settings/theme/ContrastPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/theme/ContrastPreferenceControllerTest.java
index dbd3372..d74b6df 100644
--- a/tests/robotests/src/com/android/settings/theme/ContrastPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/theme/ContrastPreferenceControllerTest.java
@@ -38,6 +38,7 @@
import androidx.test.core.app.ApplicationProvider;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -73,6 +74,7 @@
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
+ @Ignore("b/313614100")
@Test
public void testHandlePreferenceTreeClick() {
Preference preference = new Preference(mContext);
diff --git a/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java
index 3d8e893..7bc66c8 100644
--- a/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java
@@ -33,13 +33,13 @@
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
-import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.fuelgauge.BatteryBackupHelperTest.ShadowUserHandle;
import com.android.settings.testutils.shadow.ShadowSecureSettings;
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -126,17 +126,20 @@
BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
}
+ @Ignore("b/313530297")
@Test
public void getAvailabilityStatus_isCurrentlyMainUser_returnDisabledForUser() {
- when(Utils.canCurrentUserDream(mContext)).thenReturn(true);
+ when(mUserManager.getMainUser()).thenReturn(UserHandle.CURRENT);
+ when(mUserManager.isUserForeground()).thenReturn(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(
BasePreferenceController.DISABLED_FOR_USER);
}
+ @Ignore("b/313530297")
@Test
public void getAvailabilityStatus_featureAndMultiUserEnabledAndNonMainUser_returnAvailable() {
- when(Utils.canCurrentUserDream(mContext)).thenReturn(false);
+ when(mUserManager.isUserForeground()).thenReturn(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(
BasePreferenceController.AVAILABLE);
diff --git a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
index b339052..874b978 100644
--- a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
@@ -63,6 +63,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -264,6 +265,7 @@
verify(mSwitchUserPref).setEnabled(false);
}
+ @Ignore("b/313530297")
@Test
public void initialize_adminWithTelephony_shouldShowPhonePreference() {
setupSelectedUser();
@@ -309,6 +311,7 @@
verify(mFragment).removePreference(KEY_APP_AND_CONTENT_ACCESS);
}
+ @Ignore("b/313530297")
@Test
public void initialize_adminSelectsSecondaryUser_shouldShowRemovePreference() {
setupSelectedUser();
@@ -321,6 +324,7 @@
verify(mFragment, never()).removePreference(KEY_REMOVE_USER);
}
+ @Ignore("b/313530297")
@Test
public void initialize_adminSelectsNewRestrictedUser_shouldOpenAppContentScreen() {
setupSelectedRestrictedUser();
@@ -343,6 +347,7 @@
.isEqualTo(true);
}
+ @Ignore("b/313530297")
@Test
public void initialize_adminSelectsRestrictedUser_shouldSetupPreferences() {
setupSelectedRestrictedUser();
@@ -372,6 +377,7 @@
verify(mActivity, never()).startActivity(any(Intent.class));
}
+ @Ignore("b/313530297")
@Test
public void initialize_adminSelectsGuest_shouldShowRemovePreference() {
setupSelectedGuest();
@@ -415,6 +421,7 @@
verify(mFragment).removePreference(KEY_REMOVE_USER);
}
+ @Ignore("b/313530297")
@Test
public void initialize_userHasCallRestriction_shouldSetPhoneSwitchUnChecked() {
setupSelectedUser();
@@ -427,6 +434,7 @@
verify(mPhonePref).setChecked(false);
}
+ @Ignore("b/313530297")
@Test
public void initialize_noCallRestriction_shouldSetPhoneSwitchChecked() {
setupSelectedUser();
@@ -525,6 +533,7 @@
verify(mFragment, never()).switchUser();
}
+ @Ignore("b/313530297")
@Test
public void onPreferenceClick_removeGuestClicked_canDelete_shouldShowDialog() {
setupSelectedGuest();
@@ -542,6 +551,7 @@
verify(mFragment).showDialog(DIALOG_CONFIRM_RESET_GUEST);
}
+ @Ignore("b/313530297")
@Test
public void onPreferenceClick_removeRestrictedClicked_canDelete_shouldShowDialog() {
setupSelectedRestrictedUser();
@@ -560,6 +570,7 @@
verify(mFragment).showDialog(DIALOG_CONFIRM_REMOVE);
}
+ @Ignore("b/313530297")
@Test
public void onPreferenceClick_removeClicked_canDelete_shouldShowDialog() {
setupSelectedUser();
@@ -651,6 +662,7 @@
assertThat(result).isFalse();
}
+ @Ignore("b/313530297")
@Test
public void canDeleteUser_adminSelectsUser_noRestrictions_shouldReturnTrue() {
setupSelectedUser();
@@ -684,6 +696,7 @@
assertThat(result).isFalse();
}
+ @Ignore("b/313530297")
@Test
public void initialize_userSelected_shouldShowGrantAdminPref_MultipleAdminEnabled() {
setupSelectedUser();
@@ -693,6 +706,7 @@
verify(mFragment, never()).removePreference(KEY_GRANT_ADMIN);
}
+ @Ignore("b/313530297")
@Test
public void initialize_userSelected_shouldNotShowGrantAdminPref() {
setupSelectedUser();
@@ -700,6 +714,7 @@
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
}
+ @Ignore("b/313530297")
@Test
public void initialize_restrictUserSelected_shouldNotShowGrantAdminPref_MultipleAdminEnabled() {
setupSelectedUser();
@@ -710,6 +725,7 @@
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
}
+ @Ignore("b/313530297")
@Test
public void initialize_mainUserSelected_shouldShowGrantAdminPref_MultipleAdminEnabled() {
setupSelectedMainUser();
@@ -718,6 +734,7 @@
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
}
+ @Ignore("b/313530297")
@Test
public void initialize_guestSelected_shouldNotShowGrantAdminPref_MultipleAdminEnabled() {
setupSelectedGuest();
diff --git a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
index 36eeac8..0f647aa 100644
--- a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
@@ -47,6 +47,7 @@
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
+import android.os.Looper;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -211,7 +212,7 @@
public void testGetRawDataToIndex_returnAllIndexablePreferences() {
String[] expectedKeys = {KEY_ALLOW_MULTIPLE_USERS};
List<String> keysResultList = new ArrayList<>();
-
+ ShadowUserManager.getShadow().setSupportsMultipleUsers(true);
List<SearchIndexableRaw> rawData =
UserSettings.SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext, true);
@@ -719,6 +720,7 @@
doReturn(userIcon).when(mUserManager).getUserIcon(ACTIVE_USER_ID);
mFragment.updateUserList();
+ shadowOf(Looper.getMainLooper()).idle();
verify(mUserManager).getUserIcon(ACTIVE_USER_ID);
// updateUserList should be called another time after loading the icons
diff --git a/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java b/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
index c693938..d35b608 100644
--- a/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
+++ b/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
@@ -48,6 +48,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -207,6 +208,7 @@
verify(mActivity, times(1)).finish();
}
+ @Ignore("b/313615637")
@Test
public void testNotFinishedIfAdmin() {
mUserManager.setIsAdminUser(true);
diff --git a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
index 9ed6de3..c87aeea 100644
--- a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
@@ -45,6 +45,7 @@
import com.android.settingslib.widget.LayoutPreference;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
@@ -207,6 +208,7 @@
verify(activity, never()).startActivity(any(Intent.class));
}
+ @Ignore("b/313616350")
@Test
public void bindButton_hasAppInfo_shouldAttachClickListener() {
final View appLinks = mLayoutInflater.inflate(
diff --git a/tests/robotests/src/com/android/settings/widget/LinkifySummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/LinkifySummaryPreferenceTest.java
index e5ae840..f060588 100644
--- a/tests/robotests/src/com/android/settings/widget/LinkifySummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/LinkifySummaryPreferenceTest.java
@@ -34,6 +34,7 @@
import androidx.preference.PreferenceViewHolder;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -42,6 +43,7 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+@Ignore("b/313563183")
@RunWith(RobolectricTestRunner.class)
public class LinkifySummaryPreferenceTest {
@Spy
diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
index 11d421c..3923cf8 100644
--- a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
@@ -94,6 +94,7 @@
import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
@@ -735,6 +736,7 @@
verify(mMockRxLinkSpeedPref).setSummary("100 Mbps");
}
+ @Ignore("b/313536962")
@Test
public void ssidPref_isSubscription_show() {
setUpForConnectedNetwork();
@@ -934,6 +936,7 @@
verify(mMockActivity, never()).finish();
}
+ @Ignore("b/313536962")
@Test
public void noLinkProperties_allIpDetailsHidden() {
setUpForConnectedNetwork();
@@ -956,6 +959,7 @@
verify(mMockDnsPref, never()).setVisible(true);
}
+ @Ignore("b/313536962")
@Test
public void disconnectedNetwork_allIpDetailsHidden() {
setUpForDisconnectedNetwork();
@@ -1005,6 +1009,7 @@
inOrder.verify(mMockIpv6AddressesPref).setSummary(text);
}
+ @Ignore("b/313536962")
@Test
public void onLinkPropertiesChanged_updatesFields() {
setUpForConnectedNetwork();
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java
deleted file mode 100644
index d777a59..0000000
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.wifi.tether;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.TetheringManager;
-import android.net.wifi.SoftApConfiguration;
-import android.net.wifi.WifiManager;
-
-import androidx.preference.ListPreference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class WifiTetherApBandPreferenceControllerTest {
-
- private static final String ALL_BANDS = "5.0 GHz Band preferred";
- private static final String TWO_GHZ_STRING = "2.4 GHz Band";
- private static final String FIVE_GHZ_STRING = "5.0 GHz Band";
- private static final String VAL_2GHZ_STR = "1";
- private static final String VAL_5GHZ_STR = "2";
- private static final String VAL_2_5_GHZ_STR = "3";
- private static final int VAL_2GHZ_INT = 1;
- private static final int VAL_5GHZ_INT = 2;
- private static final int VAL_2_5_GHZ_INT = 3;
-
- private Context mContext;
- @Mock
- private TetheringManager mTetheringManager;
- @Mock
- private WifiManager mWifiManager;
- @Mock
- private WifiTetherBasePreferenceController.OnTetherConfigUpdateListener mListener;
- @Mock
- private PreferenceScreen mScreen;
-
- private WifiTetherApBandPreferenceController mController;
- private ListPreference mPreference;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- mPreference = new ListPreference(RuntimeEnvironment.application);
- when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
- when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
- when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
- when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources());
- when(mScreen.findPreference(anyString())).thenReturn(mPreference);
- when(mWifiManager.getSoftApConfiguration()).thenReturn(
- new SoftApConfiguration.Builder().build());
-
- mController = new WifiTetherApBandPreferenceController(mContext, mListener);
- }
-
- @Test
- public void display_5GhzSupported_shouldDisplayFullList() {
- when(mWifiManager.getCountryCode()).thenReturn("US");
- when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
-
- // Create a new instance
- mController = new WifiTetherApBandPreferenceController(mContext, mListener);
-
- mController.displayPreference(mScreen);
- mController.onPreferenceChange(mPreference, VAL_2_5_GHZ_STR);
-
- assertThat(mPreference.getSummary()).isEqualTo(ALL_BANDS);
- }
-
- @Test
- public void display_noCountryCode_shouldDisable() {
- when(mWifiManager.getCountryCode()).thenReturn(null);
- when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
-
- mController.displayPreference(mScreen);
-
- assertThat(mPreference.isEnabled()).isFalse();
- assertThat(mPreference.getSummary())
- .isEqualTo(RuntimeEnvironment.application.getString(R.string.wifi_ap_choose_2G));
- }
-
- @Test
- public void display_5GhzNotSupported_shouldDisable() {
- when(mWifiManager.getCountryCode()).thenReturn("US");
- when(mWifiManager.is5GHzBandSupported()).thenReturn(false);
-
- mController.displayPreference(mScreen);
-
- assertThat(mPreference.isEnabled()).isFalse();
- assertThat(mPreference.getSummary())
- .isEqualTo(RuntimeEnvironment.application.getString(R.string.wifi_ap_choose_2G));
- }
-
- @Test
- public void changePreference_With5G_shouldUpdateValue() {
- when(mWifiManager.getCountryCode()).thenReturn("US");
- when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
-
- // Create a new instance to pick the proper value of isDualModeSupported()
- mController = new WifiTetherApBandPreferenceController(mContext, mListener);
-
- mController.displayPreference(mScreen);
-
- // 'Auto' option
- mController.onPreferenceChange(mPreference, VAL_2_5_GHZ_STR);
- assertThat(mController.getBandIndex()).isEqualTo(VAL_2_5_GHZ_INT);
- assertThat(mPreference.getSummary()).isEqualTo(ALL_BANDS);
- verify(mListener, times(1)).onTetherConfigUpdated(mController);
-
- // should revert to the default for 5 Ghz only since this is not supported with this config
- mController.onPreferenceChange(mPreference, VAL_5GHZ_STR);
- assertThat(mController.getBandIndex()).isEqualTo(VAL_2_5_GHZ_INT);
- assertThat(mPreference.getSummary()).isEqualTo(ALL_BANDS);
- verify(mListener, times(2)).onTetherConfigUpdated(mController);
-
- // set to 2 Ghz
- mController.onPreferenceChange(mPreference, VAL_2GHZ_STR);
- assertThat(mController.getBandIndex()).isEqualTo(VAL_2GHZ_INT);
- assertThat(mPreference.getSummary()).isEqualTo(TWO_GHZ_STRING);
- verify(mListener, times(3)).onTetherConfigUpdated(mController);
- }
-
- @Test
- public void updateDisplay_shouldUpdateValue() {
- when(mWifiManager.getCountryCode()).thenReturn("US");
- when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
-
- // Set controller band index to 5GHz and verify is set.
- mController.displayPreference(mScreen);
- mController.onPreferenceChange(mPreference, VAL_5GHZ_STR);
- assertThat(mController.getBandIndex()).isEqualTo(VAL_2_5_GHZ_INT);
-
- // Disable 5Ghz band
- when(mWifiManager.is5GHzBandSupported()).thenReturn(false);
-
- // Call updateDisplay and verify it's changed.
- mController.updateDisplay();
- assertThat(mController.getBandIndex()).isEqualTo(VAL_2GHZ_INT);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
index 84a7b36..28fb8b3 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
@@ -49,7 +49,6 @@
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.UserManager;
-import android.util.FeatureFlagUtils;
import android.widget.TextView;
import androidx.fragment.app.FragmentActivity;
@@ -60,7 +59,6 @@
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.dashboard.RestrictedDashboardFragment;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowFragment;
@@ -144,7 +142,6 @@
@Before
public void setUp() {
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
setCanShowWifiHotspotCached(true);
doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
doReturn(mConnectivityManager)
diff --git a/tests/spa_unit/src/com/android/settings/network/TetherPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/TetherPreferenceControllerTest.kt
new file mode 100644
index 0000000..51d2c87
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/TetherPreferenceControllerTest.kt
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network
+
+import android.content.Context
+import android.net.TetheringManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.dx.mockito.inline.extended.ExtendedMockito
+import com.android.settings.R
+import com.android.settings.core.BasePreferenceController
+import com.android.settingslib.TetherUtil
+import com.google.common.truth.Truth.assertThat
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.MockitoSession
+import org.mockito.quality.Strictness
+
+@RunWith(AndroidJUnit4::class)
+class TetherPreferenceControllerTest {
+ private lateinit var mockSession: MockitoSession
+
+ private val context: Context = ApplicationProvider.getApplicationContext()
+
+ private val controller = TetherPreferenceController(context, TEST_KEY)
+
+ @Before
+ fun setUp() {
+ mockSession = ExtendedMockito.mockitoSession()
+ .initMocks(this)
+ .mockStatic(TetherUtil::class.java)
+ .strictness(Strictness.LENIENT)
+ .startMocking()
+
+ ExtendedMockito.doReturn(true).`when` { TetherUtil.isTetherAvailable(context) }
+ }
+
+ @After
+ fun tearDown() {
+ mockSession.finishMocking()
+ }
+
+ @Test
+ fun getAvailabilityStatus_whenTetherAvailable() {
+ ExtendedMockito.doReturn(true).`when` { TetherUtil.isTetherAvailable(context) }
+
+ val availabilityStatus = controller.availabilityStatus
+
+ assertThat(availabilityStatus).isEqualTo(BasePreferenceController.AVAILABLE)
+ }
+
+ @Test
+ fun getAvailabilityStatus_whenTetherNotAvailable() {
+ ExtendedMockito.doReturn(false).`when` { TetherUtil.isTetherAvailable(context) }
+
+ val availabilityStatus = controller.availabilityStatus
+
+ assertThat(availabilityStatus).isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE)
+ }
+
+ @Test
+ fun getSummaryResId_bothWifiAndBluetoothOn() {
+ val summaryResId = controller.getSummaryResId(
+ setOf(TetheringManager.TETHERING_WIFI, TetheringManager.TETHERING_BLUETOOTH)
+ )
+
+ assertThat(summaryResId).isEqualTo(R.string.tether_settings_summary_hotspot_on_tether_on)
+ }
+
+ @Test
+ fun getSummaryResId_onlyWifiHotspotOn() {
+ val summaryResId = controller.getSummaryResId(setOf(TetheringManager.TETHERING_WIFI))
+
+ assertThat(summaryResId).isEqualTo(R.string.tether_settings_summary_hotspot_on_tether_off)
+ }
+
+ @Test
+ fun getSummaryResId_onlyBluetoothTetheringOn() {
+ val summaryResId = controller.getSummaryResId(setOf(TetheringManager.TETHERING_BLUETOOTH))
+
+ assertThat(summaryResId).isEqualTo(R.string.tether_settings_summary_hotspot_off_tether_on)
+ }
+
+ @Test
+ fun getSummaryResId_allOff() {
+ val summaryResId = controller.getSummaryResId(emptySet())
+
+ assertThat(summaryResId).isEqualTo(R.string.tether_preference_summary_off)
+ }
+
+ private companion object {
+ const val TEST_KEY = "test_key"
+ }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/TetheredRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/TetheredRepositoryTest.kt
new file mode 100644
index 0000000..5bd5210
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/TetheredRepositoryTest.kt
@@ -0,0 +1,146 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network
+
+import android.bluetooth.BluetoothAdapter
+import android.bluetooth.BluetoothManager
+import android.bluetooth.BluetoothPan
+import android.bluetooth.BluetoothProfile
+import android.content.Context
+import android.net.TetheringInterface
+import android.net.TetheringManager
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.async
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.mapNotNull
+import kotlinx.coroutines.runBlocking
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doAnswer
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class TetheredRepositoryTest {
+
+ private var tetheringInterfaces: Set<TetheringInterface> = emptySet()
+
+ private var tetheringEventCallback: TetheringManager.TetheringEventCallback? = null
+
+ private val mockTetheringManager = mock<TetheringManager> {
+ on { registerTetheringEventCallback(any(), any()) } doAnswer {
+ tetheringEventCallback = it.arguments[1] as TetheringManager.TetheringEventCallback
+ tetheringEventCallback?.onTetheredInterfacesChanged(tetheringInterfaces)
+ }
+ }
+
+ private val mockBluetoothPan = mock<BluetoothPan> {
+ on { isTetheringOn } doReturn false
+ }
+
+ private val mockBluetoothAdapter = mock<BluetoothAdapter> {
+ on { getProfileProxy(any(), any(), eq(BluetoothProfile.PAN)) } doAnswer {
+ val listener = it.arguments[1] as BluetoothProfile.ServiceListener
+ listener.onServiceConnected(BluetoothProfile.PAN, mockBluetoothPan)
+ true
+ }
+ }
+
+ private val mockBluetoothManager = mock<BluetoothManager> {
+ on { adapter } doReturn mockBluetoothAdapter
+ }
+
+ private val context = mock<Context> {
+ on { getSystemService(TetheringManager::class.java) } doReturn mockTetheringManager
+ on { getSystemService(BluetoothManager::class.java) } doReturn mockBluetoothManager
+ }
+
+ private val repository = TetheredRepository(context)
+
+ @Test
+ fun tetheredTypesFlow_allOff() = runBlocking {
+ val tetheredTypes = repository.tetheredTypesFlow().firstWithTimeoutOrNull()
+
+ assertThat(tetheredTypes).isEmpty()
+ }
+
+ @Test
+ fun tetheredTypesFlow_wifiHotspotOn(): Unit = runBlocking {
+ tetheringInterfaces = setOf(TetheringInterface(TetheringManager.TETHERING_WIFI, ""))
+
+ val tetheredTypes = repository.tetheredTypesFlow().firstWithTimeoutOrNull()
+
+ assertThat(tetheredTypes).containsExactly(TetheringManager.TETHERING_WIFI)
+ }
+
+ @Test
+ fun tetheredTypesFlow_usbTetheringTurnOnLater(): Unit = runBlocking {
+ val tetheredTypeDeferred = async {
+ repository.tetheredTypesFlow().mapNotNull {
+ it.singleOrNull()
+ }.firstWithTimeoutOrNull()
+ }
+ delay(100)
+
+ tetheringEventCallback?.onTetheredInterfacesChanged(
+ setOf(TetheringInterface(TetheringManager.TETHERING_USB, ""))
+ )
+
+ assertThat(tetheredTypeDeferred.await()).isEqualTo(TetheringManager.TETHERING_USB)
+ }
+
+ @Test
+ fun tetheredTypesFlow_bluetoothOff(): Unit = runBlocking {
+ mockBluetoothAdapter.stub {
+ on { state } doReturn BluetoothAdapter.STATE_OFF
+ }
+
+ val tetheredTypes = repository.tetheredTypesFlow().firstWithTimeoutOrNull()
+
+ assertThat(tetheredTypes).isEmpty()
+ }
+
+ @Test
+ fun tetheredTypesFlow_bluetoothOnTetheringOff(): Unit = runBlocking {
+ mockBluetoothAdapter.stub {
+ on { state } doReturn BluetoothAdapter.STATE_ON
+ }
+
+ val tetheredTypes = repository.tetheredTypesFlow().firstWithTimeoutOrNull()
+
+ assertThat(tetheredTypes).isEmpty()
+ }
+
+ @Test
+ fun tetheredTypesFlow_bluetoothTetheringOn(): Unit = runBlocking {
+ mockBluetoothAdapter.stub {
+ on { state } doReturn BluetoothAdapter.STATE_ON
+ }
+ mockBluetoothPan.stub {
+ on { isTetheringOn } doReturn true
+ }
+
+ val tetheredTypes = repository.tetheredTypesFlow().firstWithTimeoutOrNull()
+
+ assertThat(tetheredTypes).containsExactly(TetheringManager.TETHERING_BLUETOOTH)
+ }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/SpaBridgeActivityTest.kt b/tests/spa_unit/src/com/android/settings/spa/SpaBridgeActivityTest.kt
deleted file mode 100644
index 48fa823..0000000
--- a/tests/spa_unit/src/com/android/settings/spa/SpaBridgeActivityTest.kt
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.spa
-
-import android.app.Activity
-import android.content.ComponentName
-import android.content.pm.ActivityInfo
-import android.content.pm.PackageManager
-import android.content.pm.PackageManager.ComponentInfoFlags
-import androidx.core.os.bundleOf
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.spa.SpaBridgeActivity.Companion.META_DATA_KEY_DESTINATION
-import com.android.settings.spa.SpaBridgeActivity.Companion.getDestination
-import com.google.common.truth.Truth.assertThat
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.kotlin.any
-import org.mockito.kotlin.doReturn
-import org.mockito.kotlin.eq
-import org.mockito.kotlin.mock
-
-@RunWith(AndroidJUnit4::class)
-class SpaBridgeActivityTest {
- private val mockPackageManager = mock<PackageManager> {
- on { getActivityInfo(eq(COMPONENT_NAME), any<ComponentInfoFlags>()) } doReturn
- ActivityInfo().apply {
- metaData = bundleOf(META_DATA_KEY_DESTINATION to DESTINATION)
- }
- }
-
- private val activity = mock<Activity> {
- on { componentName } doReturn COMPONENT_NAME
- on { packageManager } doReturn mockPackageManager
- }
-
- @Test
- fun getDestination() {
- val destination = activity.getDestination()
-
- assertThat(destination).isEqualTo(DESTINATION)
- }
-
- private companion object {
- const val PACKAGE_NAME = "package.name"
- const val ACTIVITY_NAME = "ActivityName"
- val COMPONENT_NAME = ComponentName(PACKAGE_NAME, ACTIVITY_NAME)
- const val DESTINATION = "Destination"
- }
-}
diff --git a/tests/spa_unit/src/com/android/settings/spa/SpaDestinationTest.kt b/tests/spa_unit/src/com/android/settings/spa/SpaDestinationTest.kt
new file mode 100644
index 0000000..0b9eb22
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/SpaDestinationTest.kt
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa
+
+import android.app.Activity
+import android.content.ComponentName
+import android.content.pm.ActivityInfo
+import android.content.pm.PackageManager
+import android.os.Bundle
+import androidx.core.os.bundleOf
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.SettingsActivity.META_DATA_KEY_HIGHLIGHT_MENU_KEY
+import com.android.settings.spa.SpaDestination.Companion.META_DATA_KEY_DESTINATION
+import com.android.settings.spa.SpaDestination.Companion.getDestination
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doAnswer
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+
+@RunWith(AndroidJUnit4::class)
+class SpaDestinationTest {
+ private var activityMetadata: Bundle = bundleOf()
+
+ private val mockPackageManager = mock<PackageManager> {
+ on {
+ getActivityInfo(
+ eq(COMPONENT_NAME),
+ any<PackageManager.ComponentInfoFlags>()
+ )
+ } doAnswer {
+ ActivityInfo().apply { metaData = activityMetadata }
+ }
+ }
+
+ private val activity = mock<Activity> {
+ on { componentName } doReturn COMPONENT_NAME
+ on { packageManager } doReturn mockPackageManager
+ }
+
+ @Test
+ fun getDestination_noDestination_returnNull() {
+ activityMetadata = bundleOf()
+
+ val destination = activity.getDestination()
+
+ assertThat(destination).isNull()
+ }
+
+ @Test
+ fun getDestination_withoutHighlightMenuKey() {
+ activityMetadata = bundleOf(META_DATA_KEY_DESTINATION to DESTINATION)
+
+ val (destination, highlightMenuKey) = activity.getDestination()!!
+
+ assertThat(destination).isEqualTo(DESTINATION)
+ assertThat(highlightMenuKey).isNull()
+ }
+
+ @Test
+ fun getDestination_withHighlightMenuKey() {
+ activityMetadata = bundleOf(
+ META_DATA_KEY_DESTINATION to DESTINATION,
+ META_DATA_KEY_HIGHLIGHT_MENU_KEY to HIGHLIGHT_MENU_KEY,
+ )
+
+ val (destination, highlightMenuKey) = activity.getDestination()!!
+
+ assertThat(destination).isEqualTo(DESTINATION)
+ assertThat(highlightMenuKey).isEqualTo(HIGHLIGHT_MENU_KEY)
+ }
+
+ private companion object {
+ const val PACKAGE_NAME = "package.name"
+ const val ACTIVITY_NAME = "ActivityName"
+ val COMPONENT_NAME = ComponentName(PACKAGE_NAME, ACTIVITY_NAME)
+ const val DESTINATION = "Destination"
+ const val HIGHLIGHT_MENU_KEY = "apps"
+ }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/PackageInfoPresenterTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/PackageInfoPresenterTest.kt
index 6c5cb85..ecb540c 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/PackageInfoPresenterTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/PackageInfoPresenterTest.kt
@@ -20,8 +20,6 @@
import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Intent
-import android.content.pm.FakeFeatureFlagsImpl
-import android.content.pm.Flags
import android.content.pm.PackageManager
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -30,91 +28,79 @@
import com.android.settingslib.spaprivileged.framework.common.activityManager
import com.android.settingslib.spaprivileged.model.app.IPackageManagers
import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.coroutineScope
-import kotlinx.coroutines.test.runTest
-import org.junit.Before
-import org.junit.Rule
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.runBlocking
+import kotlinx.coroutines.test.TestScope
import org.junit.Test
import org.junit.runner.RunWith
-import org.mockito.ArgumentCaptor
-import org.mockito.Mock
-import org.mockito.Mockito.any
-import org.mockito.Mockito.doNothing
-import org.mockito.Mockito.verify
-import org.mockito.Spy
-import org.mockito.junit.MockitoJUnit
-import org.mockito.junit.MockitoRule
-import org.mockito.Mockito.`when` as whenever
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doNothing
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
@RunWith(AndroidJUnit4::class)
class PackageInfoPresenterTest {
- @get:Rule
- val mockito: MockitoRule = MockitoJUnit.rule()
- @Spy
- private val context: Context = ApplicationProvider.getApplicationContext()
+ private val mockPackageManager = mock<PackageManager>()
- @Mock
- private lateinit var packageManager: PackageManager
+ private val mockActivityManager = mock<ActivityManager>()
- @Mock
- private lateinit var activityManager: ActivityManager
+ private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+ on { packageManager } doReturn mockPackageManager
+ on { activityManager } doReturn mockActivityManager
+ doNothing().whenever(mock).startActivityAsUser(any(), any())
+ mock.mockAsUser()
+ }
- @Mock
- private lateinit var packageManagers: IPackageManagers
+ private val packageManagers = mock<IPackageManagers>()
private val fakeFeatureFactory = FakeFeatureFactory()
private val metricsFeatureProvider = fakeFeatureFactory.metricsFeatureProvider
- @Before
- fun setUp() {
- context.mockAsUser()
- whenever(context.packageManager).thenReturn(packageManager)
- whenever(context.activityManager).thenReturn(activityManager)
- }
-
@Test
- fun enable() = runTest {
- coroutineScope {
- val packageInfoPresenter =
- PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
+ fun enable() = runBlocking {
+ val packageInfoPresenter =
+ PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, TestScope(), packageManagers)
- packageInfoPresenter.enable()
- }
+ packageInfoPresenter.enable()
+ delay(100)
verifyAction(SettingsEnums.ACTION_SETTINGS_ENABLE_APP)
- verify(packageManager).setApplicationEnabledSetting(
+ verify(mockPackageManager).setApplicationEnabledSetting(
PACKAGE_NAME, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0
)
}
@Test
- fun disable() = runTest {
- coroutineScope {
- val packageInfoPresenter =
- PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
+ fun disable() = runBlocking {
+ val packageInfoPresenter =
+ PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, TestScope(), packageManagers)
- packageInfoPresenter.disable()
- }
+ packageInfoPresenter.disable()
+ delay(100)
verifyAction(SettingsEnums.ACTION_SETTINGS_DISABLE_APP)
- verify(packageManager).setApplicationEnabledSetting(
+ verify(mockPackageManager).setApplicationEnabledSetting(
PACKAGE_NAME, PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER, 0
)
}
@Test
- fun startUninstallActivity() = runTest {
- doNothing().`when`(context).startActivityAsUser(any(), any())
+ fun startUninstallActivity() = runBlocking {
val packageInfoPresenter =
- PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
+ PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, TestScope(), packageManagers)
packageInfoPresenter.startUninstallActivity()
verifyAction(SettingsEnums.ACTION_SETTINGS_UNINSTALL_APP)
- val intentCaptor = ArgumentCaptor.forClass(Intent::class.java)
- verify(context).startActivityAsUser(intentCaptor.capture(), any())
- with(intentCaptor.value) {
+ val intent = argumentCaptor<Intent> {
+ verify(context).startActivityAsUser(capture(), any())
+ }.firstValue
+ with(intent) {
assertThat(action).isEqualTo(Intent.ACTION_UNINSTALL_PACKAGE)
assertThat(data?.schemeSpecificPart).isEqualTo(PACKAGE_NAME)
assertThat(getBooleanExtra(Intent.EXTRA_UNINSTALL_ALL_USERS, true)).isEqualTo(false)
@@ -122,76 +108,39 @@
}
@Test
- fun clearInstantApp() = runTest {
- coroutineScope {
- val packageInfoPresenter =
- PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
+ fun clearInstantApp() = runBlocking {
+ val packageInfoPresenter =
+ PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, TestScope(), packageManagers)
- packageInfoPresenter.clearInstantApp()
- }
+ packageInfoPresenter.clearInstantApp()
+ delay(100)
verifyAction(SettingsEnums.ACTION_SETTINGS_CLEAR_INSTANT_APP)
- verify(packageManager).deletePackageAsUser(PACKAGE_NAME, null, 0, USER_ID)
+ verify(mockPackageManager).deletePackageAsUser(PACKAGE_NAME, null, 0, USER_ID)
}
@Test
- fun forceStop() = runTest {
- coroutineScope {
- val packageInfoPresenter =
- PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
+ fun forceStop() = runBlocking {
+ val packageInfoPresenter =
+ PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, TestScope(), packageManagers)
- packageInfoPresenter.forceStop()
- }
+ packageInfoPresenter.forceStop()
+ delay(100)
verifyAction(SettingsEnums.ACTION_APP_FORCE_STOP)
- verify(activityManager).forceStopPackageAsUser(PACKAGE_NAME, USER_ID)
+ verify(mockActivityManager).forceStopPackageAsUser(PACKAGE_NAME, USER_ID)
}
@Test
- fun logAction() = runTest {
+ fun logAction() = runBlocking {
val packageInfoPresenter =
- PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
+ PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, TestScope(), packageManagers)
packageInfoPresenter.logAction(123)
verifyAction(123)
}
- @Test
- fun reloadPackageInfo_archivingDisabled() = runTest {
- coroutineScope {
- val fakeFeatureFlags = FakeFeatureFlagsImpl()
- fakeFeatureFlags.setFlag(Flags.FLAG_ARCHIVING, false)
- val packageInfoPresenter =
- PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers, fakeFeatureFlags)
-
- packageInfoPresenter.reloadPackageInfo()
- }
-
- val flags = PackageManager.MATCH_ANY_USER.toLong() or
- PackageManager.MATCH_DISABLED_COMPONENTS.toLong() or
- PackageManager.GET_PERMISSIONS.toLong()
- verify(packageManagers).getPackageInfoAsUser(PACKAGE_NAME, flags, USER_ID)
- }
-
- @Test
- fun reloadPackageInfo_archivingEnabled() = runTest {
- coroutineScope {
- val fakeFeatureFlags = FakeFeatureFlagsImpl()
- fakeFeatureFlags.setFlag(Flags.FLAG_ARCHIVING, true)
- val packageInfoPresenter =
- PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers, fakeFeatureFlags)
-
- packageInfoPresenter.reloadPackageInfo()
- }
-
- val flags = PackageManager.MATCH_ANY_USER.toLong() or
- PackageManager.MATCH_DISABLED_COMPONENTS.toLong() or
- PackageManager.GET_PERMISSIONS.toLong() or
- PackageManager.MATCH_ARCHIVED_PACKAGES
- verify(packageManagers).getPackageInfoAsUser(PACKAGE_NAME, flags, USER_ID)
- }
-
private fun verifyAction(category: Int) {
verify(metricsFeatureProvider).action(context, category, PACKAGE_NAME)
}
diff --git a/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt b/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt
index 8707065..ad2fbae 100644
--- a/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt
@@ -18,6 +18,7 @@
import android.content.Context
import android.content.Intent
+import android.os.UserManager
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
@@ -25,7 +26,9 @@
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.SettingsActivity
+import com.android.settings.core.BasePreferenceController
import com.android.settings.development.DevelopmentSettingsDashboardFragment
+import com.android.settingslib.spaprivileged.framework.common.userManager
import com.google.common.truth.Truth.assertThat
import org.junit.Rule
import org.junit.Test
@@ -33,7 +36,10 @@
import org.mockito.kotlin.any
import org.mockito.kotlin.argumentCaptor
import org.mockito.kotlin.doNothing
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
@@ -42,13 +48,38 @@
@get:Rule
val composeTestRule = createComposeRule()
+ private val mockUserManager = mock<UserManager>()
+
private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+ on { userManager } doReturn mockUserManager
doNothing().whenever(mock).startActivity(any())
}
private val controller = DeveloperOptionsController(context, TEST_KEY)
@Test
+ fun getAvailabilityStatus_isAdminUser_returnAvailable() {
+ mockUserManager.stub {
+ on { isAdminUser } doReturn true
+ }
+
+ val availabilityStatus = controller.getAvailabilityStatus()
+
+ assertThat(availabilityStatus).isEqualTo(BasePreferenceController.AVAILABLE)
+ }
+
+ @Test
+ fun getAvailabilityStatus_notAdminUser_returnDisabledForUser() {
+ mockUserManager.stub {
+ on { isAdminUser } doReturn false
+ }
+
+ val availabilityStatus = controller.getAvailabilityStatus()
+
+ assertThat(availabilityStatus).isEqualTo(BasePreferenceController.DISABLED_FOR_USER)
+ }
+
+ @Test
fun title_isDisplayed() {
composeTestRule.setContent {
controller.DeveloperOptionsPreference()
diff --git a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
index 5af2da0..4ba12cb 100644
--- a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
@@ -298,4 +298,11 @@
assertThat(mPreference.getSummary().toString()).isEqualTo(TEST_SUMMARY);
}
+
+ @Test
+ public void updateHotspotNetwork_hotspotNetworkNotEnabled_returnFalse() {
+ mController.mWifiPickerTrackerHelper = null;
+
+ assertThat(mController.updateHotspotNetwork()).isFalse();
+ }
}