summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.bp11
-rw-r--r--api/current.txt29
-rw-r--r--api/system-current.txt13
-rw-r--r--cmds/uiautomator/library/testrunner-src/com/android/uiautomator/testrunner/UiAutomatorTestCase.java31
-rw-r--r--core/java/android/app/SystemServiceRegistry.java8
-rw-r--r--core/java/android/content/Context.java10
-rw-r--r--core/java/android/net/INetworkStackConnector.aidl21
-rw-r--r--core/java/android/net/NetworkStack.java156
-rw-r--r--core/java/android/os/Process.java6
-rw-r--r--core/java/android/view/inputmethod/InputMethodManager.java71
-rw-r--r--core/java/android/view/inputmethod/InputMethodSystemProperty.java74
-rw-r--r--core/java/com/android/internal/app/ResolverActivity.java118
-rw-r--r--core/java/com/android/internal/hardware/AmbientDisplayConfiguration.java12
-rw-r--r--core/java/com/android/internal/view/IInputMethodManager.aidl5
-rw-r--r--core/jni/com_android_internal_os_Zygote.cpp7
-rw-r--r--core/res/res/layout/resolver_list.xml12
-rw-r--r--core/res/res/values/config.xml3
-rw-r--r--core/res/res/values/strings.xml12
-rw-r--r--core/res/res/values/symbols.xml6
-rw-r--r--keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java4
-rw-r--r--keystore/java/android/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi.java12
-rw-r--r--media/java/android/media/MediaRecorder.java2
-rw-r--r--packages/BackupRestoreConfirmation/res/values-as/strings.xml4
-rw-r--r--packages/BackupRestoreConfirmation/res/values-ne/strings.xml2
-rw-r--r--packages/CaptivePortalLogin/res/values-gl/strings.xml2
-rw-r--r--packages/CarSystemUI/res/layout/car_top_navigation_bar.xml2
-rw-r--r--packages/CarrierDefaultApp/res/values-as/strings.xml14
-rw-r--r--packages/NetworkStack/Android.bp37
-rw-r--r--packages/NetworkStack/AndroidManifest.xml38
-rw-r--r--packages/NetworkStack/src/com/android/server/NetworkStackService.java74
-rw-r--r--packages/PackageInstaller/res/values-af/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-am/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ar/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-as/strings.xml12
-rw-r--r--packages/PackageInstaller/res/values-az/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-b+sr+Latn/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-be/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-bg/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-bn/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-bs/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ca/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-cs/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-da/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-de/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-el/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-en-rAU/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-en-rCA/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-en-rGB/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-en-rIN/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-en-rXC/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-es-rUS/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-es/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-et/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-eu/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-fa/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-fi/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-fr-rCA/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-fr/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-gl/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-gu/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-hi/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-hr/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-hu/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-hy/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-in/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-is/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-it/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-iw/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ja/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ka/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-kk/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-km/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-kn/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ko/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ky/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-lo/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-lt/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-lv/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-mk/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ml/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-mn/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-mr/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ms/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-my/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-nb/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ne/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-nl/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-or/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-pa/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-pl/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-pt-rBR/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-pt-rPT/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-pt/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ro/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ru/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-si/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-sk/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-sl/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-sq/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-sr/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-sv/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-sw/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ta/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-te/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-th/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-tl/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-tr/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-uk/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-ur/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-uz/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-vi/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-zh-rCN/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-zh-rHK/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-zh-rTW/strings.xml2
-rw-r--r--packages/PackageInstaller/res/values-zu/strings.xml2
-rw-r--r--packages/PrintSpooler/res/values-as/strings.xml6
-rw-r--r--packages/Shell/res/values-as/strings.xml2
-rw-r--r--packages/SystemUI/res-keyguard/values-as/strings.xml8
-rw-r--r--packages/SystemUI/res-keyguard/values-ne/strings.xml22
-rw-r--r--packages/SystemUI/res/drawable/ic_home_button_outline.xml25
-rw-r--r--packages/SystemUI/res/values-af/strings.xml8
-rw-r--r--packages/SystemUI/res/values-am/strings.xml8
-rw-r--r--packages/SystemUI/res/values-ar/strings.xml8
-rw-r--r--packages/SystemUI/res/values-as/strings.xml123
-rw-r--r--packages/SystemUI/res/values-az/strings.xml7
-rw-r--r--packages/SystemUI/res/values-b+sr+Latn/strings.xml7
-rw-r--r--packages/SystemUI/res/values-be/strings.xml8
-rw-r--r--packages/SystemUI/res/values-bg/strings.xml8
-rw-r--r--packages/SystemUI/res/values-bn/strings.xml8
-rw-r--r--packages/SystemUI/res/values-bs/strings.xml7
-rw-r--r--packages/SystemUI/res/values-ca/strings.xml8
-rw-r--r--packages/SystemUI/res/values-cs/strings.xml8
-rw-r--r--packages/SystemUI/res/values-da/strings.xml8
-rw-r--r--packages/SystemUI/res/values-de/strings.xml8
-rw-r--r--packages/SystemUI/res/values-el/strings.xml7
-rw-r--r--packages/SystemUI/res/values-en-rAU/strings.xml8
-rw-r--r--packages/SystemUI/res/values-en-rCA/strings.xml8
-rw-r--r--packages/SystemUI/res/values-en-rGB/strings.xml8
-rw-r--r--packages/SystemUI/res/values-en-rIN/strings.xml8
-rw-r--r--packages/SystemUI/res/values-en-rXC/strings.xml7
-rw-r--r--packages/SystemUI/res/values-es-rUS/strings.xml9
-rw-r--r--packages/SystemUI/res/values-es/strings.xml8
-rw-r--r--packages/SystemUI/res/values-et/strings.xml8
-rw-r--r--packages/SystemUI/res/values-eu/strings.xml8
-rw-r--r--packages/SystemUI/res/values-fa/strings.xml7
-rw-r--r--packages/SystemUI/res/values-fi/strings.xml8
-rw-r--r--packages/SystemUI/res/values-fr-rCA/strings.xml8
-rw-r--r--packages/SystemUI/res/values-fr/strings.xml8
-rw-r--r--packages/SystemUI/res/values-gl/strings.xml8
-rw-r--r--packages/SystemUI/res/values-gu/strings.xml9
-rw-r--r--packages/SystemUI/res/values-hi/strings.xml11
-rw-r--r--packages/SystemUI/res/values-hr/strings.xml7
-rw-r--r--packages/SystemUI/res/values-hu/strings.xml8
-rw-r--r--packages/SystemUI/res/values-hy/strings.xml8
-rw-r--r--packages/SystemUI/res/values-in/strings.xml8
-rw-r--r--packages/SystemUI/res/values-is/strings.xml8
-rw-r--r--packages/SystemUI/res/values-it/strings.xml8
-rw-r--r--packages/SystemUI/res/values-iw/strings.xml7
-rw-r--r--packages/SystemUI/res/values-ja/strings.xml8
-rw-r--r--packages/SystemUI/res/values-ka/strings.xml7
-rw-r--r--packages/SystemUI/res/values-kk/strings.xml8
-rw-r--r--packages/SystemUI/res/values-km/strings.xml8
-rw-r--r--packages/SystemUI/res/values-kn/strings.xml9
-rw-r--r--packages/SystemUI/res/values-ko/strings.xml8
-rw-r--r--packages/SystemUI/res/values-ky/strings.xml8
-rw-r--r--packages/SystemUI/res/values-lo/strings.xml7
-rw-r--r--packages/SystemUI/res/values-lt/strings.xml9
-rw-r--r--packages/SystemUI/res/values-lv/strings.xml8
-rw-r--r--packages/SystemUI/res/values-mk/strings.xml8
-rw-r--r--packages/SystemUI/res/values-ml/strings.xml8
-rw-r--r--packages/SystemUI/res/values-mn/strings.xml8
-rw-r--r--packages/SystemUI/res/values-mr/strings.xml9
-rw-r--r--packages/SystemUI/res/values-ms/strings.xml8
-rw-r--r--packages/SystemUI/res/values-my/strings.xml8
-rw-r--r--packages/SystemUI/res/values-nb/strings.xml8
-rw-r--r--packages/SystemUI/res/values-ne/strings.xml15
-rw-r--r--packages/SystemUI/res/values-nl/strings.xml8
-rw-r--r--packages/SystemUI/res/values-or/strings.xml9
-rw-r--r--packages/SystemUI/res/values-pa/strings.xml9
-rw-r--r--packages/SystemUI/res/values-pl/strings.xml9
-rw-r--r--packages/SystemUI/res/values-pt-rBR/strings.xml7
-rw-r--r--packages/SystemUI/res/values-pt-rPT/strings.xml9
-rw-r--r--packages/SystemUI/res/values-pt/strings.xml7
-rw-r--r--packages/SystemUI/res/values-ro/strings.xml8
-rw-r--r--packages/SystemUI/res/values-ru/strings.xml8
-rw-r--r--packages/SystemUI/res/values-si/strings.xml7
-rw-r--r--packages/SystemUI/res/values-sk/strings.xml9
-rw-r--r--packages/SystemUI/res/values-sl/strings.xml8
-rw-r--r--packages/SystemUI/res/values-sq/strings.xml7
-rw-r--r--packages/SystemUI/res/values-sr/strings.xml7
-rw-r--r--packages/SystemUI/res/values-sv/strings.xml8
-rw-r--r--packages/SystemUI/res/values-sw/strings.xml7
-rw-r--r--packages/SystemUI/res/values-ta/strings.xml9
-rw-r--r--packages/SystemUI/res/values-te/strings.xml9
-rw-r--r--packages/SystemUI/res/values-th/strings.xml8
-rw-r--r--packages/SystemUI/res/values-tl/strings.xml8
-rw-r--r--packages/SystemUI/res/values-tr/strings.xml8
-rw-r--r--packages/SystemUI/res/values-uk/strings.xml7
-rw-r--r--packages/SystemUI/res/values-ur/strings.xml8
-rw-r--r--packages/SystemUI/res/values-uz/strings.xml8
-rw-r--r--packages/SystemUI/res/values-vi/strings.xml8
-rw-r--r--packages/SystemUI/res/values-zh-rCN/strings.xml10
-rw-r--r--packages/SystemUI/res/values-zh-rHK/strings.xml7
-rw-r--r--packages/SystemUI/res/values-zh-rTW/strings.xml8
-rw-r--r--packages/SystemUI/res/values-zu/strings.xml7
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/SystemUIFactory.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/dock/DockManager.java60
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeDockHandler.java144
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeHost.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeLog.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/LockScreenWakeUpController.java120
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/SmartReplyController.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java19
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java34
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java33
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/BluetoothControllerImpl.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceProvisionedControllerImpl.java32
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/tuner/TunablePadding.java15
-rw-r--r--packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/dock/DockManagerFake.java38
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/doze/DozeDockHandlerTest.java140
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/doze/DozeHostFake.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/doze/LockScreenWakeUpControllerTest.java142
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java14
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BluetoothControllerImplTest.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SecurityControllerTest.java7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/tuner/TunablePaddingTest.java6
-rw-r--r--services/core/java/com/android/server/connectivity/NetworkMonitor.java4
-rw-r--r--services/core/java/com/android/server/connectivity/PacManager.java19
-rw-r--r--services/core/java/com/android/server/connectivity/ProxyTracker.java5
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodManagerService.java234
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodUtils.java14
-rw-r--r--services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java69
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java18
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java17
-rw-r--r--services/java/com/android/server/SystemServer.java13
-rw-r--r--telephony/java/android/telephony/CellIdentityCdma.java33
-rw-r--r--telephony/java/android/telephony/CellIdentityGsm.java48
-rw-r--r--telephony/java/android/telephony/CellIdentityLte.java29
-rw-r--r--telephony/java/android/telephony/CellIdentityTdscdma.java27
-rw-r--r--telephony/java/android/telephony/CellIdentityWcdma.java41
-rw-r--r--telephony/java/android/telephony/CellInfo.java44
-rw-r--r--telephony/java/android/telephony/CellInfoCdma.java18
-rw-r--r--telephony/java/android/telephony/CellInfoGsm.java20
-rw-r--r--telephony/java/android/telephony/CellInfoLte.java18
-rw-r--r--telephony/java/android/telephony/CellInfoTdscdma.java19
-rw-r--r--telephony/java/android/telephony/CellInfoWcdma.java16
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java23
-rw-r--r--telephony/java/android/telephony/UiccCardInfo.aidl19
-rw-r--r--telephony/java/android/telephony/UiccCardInfo.java156
-rw-r--r--telephony/java/com/android/internal/telephony/ITelephony.aidl12
-rw-r--r--wifi/java/android/net/wifi/WpsInfo.java61
-rw-r--r--wifi/java/android/net/wifi/p2p/WifiP2pManager.java35
280 files changed, 2801 insertions, 1097 deletions
diff --git a/Android.bp b/Android.bp
index 4e7a7b4d7ae2..4211162d523f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -719,6 +719,7 @@ java_defaults {
static_libs: [
"apex_aidl_interface-java",
+ "networkstack-aidl-interfaces-java",
"framework-protos",
"mediaplayer2-protos",
"android.hidl.base-V1.0-java",
@@ -861,6 +862,16 @@ gensrcs {
output_extension: "srcjar",
}
+// AIDL interfaces between the core system and the networking mainline module.
+aidl_interface {
+ name: "networkstack-aidl-interfaces",
+ local_include_dir: "core/java",
+ srcs: [
+ "core/java/android/net/INetworkStackConnector.aidl",
+ ],
+ api_dir: "aidl/networkstack",
+}
+
// Build ext.jar
// ============================================================
java_library {
diff --git a/api/current.txt b/api/current.txt
index df5c185affa3..cd33830a4c62 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -29689,21 +29689,20 @@ package android.net.wifi {
field public static final android.os.Parcelable.Creator<android.net.wifi.WifiNetworkSuggestion> CREATOR;
}
- public deprecated class WpsInfo implements android.os.Parcelable {
- ctor public deprecated WpsInfo();
- ctor public deprecated WpsInfo(android.net.wifi.WpsInfo);
- method public deprecated int describeContents();
- method public deprecated java.lang.String toString();
- method public deprecated void writeToParcel(android.os.Parcel, int);
- field public deprecated java.lang.String BSSID;
- field public static final deprecated android.os.Parcelable.Creator<android.net.wifi.WpsInfo> CREATOR;
- field public static final deprecated int DISPLAY = 1; // 0x1
- field public static final deprecated int INVALID = 4; // 0x4
- field public static final deprecated int KEYPAD = 2; // 0x2
- field public static final deprecated int LABEL = 3; // 0x3
- field public static final deprecated int PBC = 0; // 0x0
- field public deprecated java.lang.String pin;
- field public deprecated int setup;
+ public class WpsInfo implements android.os.Parcelable {
+ ctor public WpsInfo();
+ ctor public WpsInfo(android.net.wifi.WpsInfo);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public java.lang.String BSSID;
+ field public static final android.os.Parcelable.Creator<android.net.wifi.WpsInfo> CREATOR;
+ field public static final int DISPLAY = 1; // 0x1
+ field public static final int INVALID = 4; // 0x4
+ field public static final int KEYPAD = 2; // 0x2
+ field public static final int LABEL = 3; // 0x3
+ field public static final int PBC = 0; // 0x0
+ field public java.lang.String pin;
+ field public int setup;
}
}
diff --git a/api/system-current.txt b/api/system-current.txt
index 734ac82a261a..f7ea8be5c4f5 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -6269,6 +6269,7 @@ package android.telephony {
method public int getSimCardState();
method public int getSupportedRadioAccessFamily();
method public java.util.List<android.telephony.TelephonyHistogram> getTelephonyHistograms();
+ method public android.telephony.UiccCardInfo[] getUiccCardsInfo();
method public android.telephony.UiccSlotInfo[] getUiccSlotsInfo();
method public android.os.Bundle getVisualVoicemailSettings();
method public int getVoiceActivationState();
@@ -6365,6 +6366,18 @@ package android.telephony {
field public static final android.os.Parcelable.Creator<android.telephony.UiccAccessRule> CREATOR;
}
+ public class UiccCardInfo implements android.os.Parcelable {
+ ctor public UiccCardInfo(boolean, int, java.lang.String, java.lang.String, int);
+ method public int describeContents();
+ method public int getCardId();
+ method public java.lang.String getEid();
+ method public java.lang.String getIccId();
+ method public int getSlotIndex();
+ method public boolean isEuicc();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.telephony.UiccCardInfo> CREATOR;
+ }
+
public class UiccSlotInfo implements android.os.Parcelable {
ctor public UiccSlotInfo(boolean, boolean, java.lang.String, int, int, boolean);
method public int describeContents();
diff --git a/cmds/uiautomator/library/testrunner-src/com/android/uiautomator/testrunner/UiAutomatorTestCase.java b/cmds/uiautomator/library/testrunner-src/com/android/uiautomator/testrunner/UiAutomatorTestCase.java
index 3d5476d04701..d862e1c2babb 100644
--- a/cmds/uiautomator/library/testrunner-src/com/android/uiautomator/testrunner/UiAutomatorTestCase.java
+++ b/cmds/uiautomator/library/testrunner-src/com/android/uiautomator/testrunner/UiAutomatorTestCase.java
@@ -16,14 +16,16 @@
package com.android.uiautomator.testrunner;
+import android.app.ActivityThread;
+import android.content.ContentResolver;
import android.content.Context;
+import android.content.pm.PackageManager;
import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.ServiceManager;
import android.os.SystemClock;
+import android.provider.Settings;
import android.view.inputmethod.InputMethodInfo;
+import android.view.inputmethod.InputMethodManager;
-import com.android.internal.view.IInputMethodManager;
import com.android.uiautomator.core.UiDevice;
import junit.framework.TestCase;
@@ -44,6 +46,8 @@ public class UiAutomatorTestCase extends TestCase {
private static final String DISABLE_IME = "disable_ime";
private static final String DUMMY_IME_PACKAGE = "com.android.testing.dummyime";
+ private static final int NOT_A_SUBTYPE_ID = -1;
+
private UiDevice mUiDevice;
private Bundle mParams;
private IAutomationSupport mAutomationSupport;
@@ -124,9 +128,13 @@ public class UiAutomatorTestCase extends TestCase {
SystemClock.sleep(ms);
}
- private void setDummyIme() throws RemoteException {
- IInputMethodManager im = IInputMethodManager.Stub.asInterface(ServiceManager
- .getService(Context.INPUT_METHOD_SERVICE));
+ private void setDummyIme() {
+ Context context = ActivityThread.currentApplication();
+ if (context == null) {
+ throw new RuntimeException("ActivityThread.currentApplication() is null.");
+ }
+ InputMethodManager im = (InputMethodManager) context.getSystemService(
+ Context.INPUT_METHOD_SERVICE);
List<InputMethodInfo> infos = im.getInputMethodList();
String id = null;
for (InputMethodInfo info : infos) {
@@ -138,10 +146,17 @@ public class UiAutomatorTestCase extends TestCase {
throw new RuntimeException(String.format(
"Required testing fixture missing: IME package (%s)", DUMMY_IME_PACKAGE));
}
- im.setInputMethod(null, id);
+ if (context.checkSelfPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS)
+ != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ ContentResolver resolver = context.getContentResolver();
+ Settings.Secure.putInt(resolver, Settings.Secure.SELECTED_INPUT_METHOD_SUBTYPE,
+ NOT_A_SUBTYPE_ID);
+ Settings.Secure.putString(resolver, Settings.Secure.DEFAULT_INPUT_METHOD, id);
}
- private void restoreActiveIme() throws RemoteException {
+ private void restoreActiveIme() {
// TODO: figure out a way to restore active IME
// Currently retrieving active IME requires querying secure settings provider, which is hard
// to do without a Context; so the caveat here is that to make the post test device usable,
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index 45e87e045ae2..fb72f06e541f 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -98,6 +98,7 @@ import android.net.INetworkPolicyManager;
import android.net.IpSecManager;
import android.net.NetworkPolicyManager;
import android.net.NetworkScoreManager;
+import android.net.NetworkStack;
import android.net.NetworkWatchlistManager;
import android.net.lowpan.ILowpanManager;
import android.net.lowpan.LowpanManager;
@@ -315,6 +316,13 @@ final class SystemServiceRegistry {
return new ConnectivityManager(context, service);
}});
+ registerService(Context.NETWORK_STACK_SERVICE, NetworkStack.class,
+ new StaticServiceFetcher<NetworkStack>() {
+ @Override
+ public NetworkStack createService() {
+ return new NetworkStack();
+ }});
+
registerService(Context.IPSEC_SERVICE, IpSecManager.class,
new CachedServiceFetcher<IpSecManager>() {
@Override
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 6f12cad358ca..5c9fced0f2cb 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -49,6 +49,7 @@ import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
+import android.net.NetworkStack;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
@@ -3619,6 +3620,15 @@ public abstract class Context {
/**
* Use with {@link #getSystemService(String)} to retrieve a
+ * {@link NetworkStack} for communicating with the network stack
+ * @hide
+ * @see #getSystemService(String)
+ * @see NetworkStack
+ */
+ public static final String NETWORK_STACK_SERVICE = "network_stack";
+
+ /**
+ * Use with {@link #getSystemService(String)} to retrieve a
* {@link android.net.IpSecManager} for encrypting Sockets or Networks with
* IPSec.
*
diff --git a/core/java/android/net/INetworkStackConnector.aidl b/core/java/android/net/INetworkStackConnector.aidl
new file mode 100644
index 000000000000..29f882858c05
--- /dev/null
+++ b/core/java/android/net/INetworkStackConnector.aidl
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2018, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing perNmissions and
+ * limitations under the License.
+ */
+package android.net;
+
+/** @hide */
+oneway interface INetworkStackConnector {
+ // TODO: requestDhcpServer(), etc. will go here
+} \ No newline at end of file
diff --git a/core/java/android/net/NetworkStack.java b/core/java/android/net/NetworkStack.java
new file mode 100644
index 000000000000..82a4e31a81dd
--- /dev/null
+++ b/core/java/android/net/NetworkStack.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.net;
+
+import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_HIGH;
+import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_NORMAL;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemService;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.os.Binder;
+import android.os.IBinder;
+import android.os.Process;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.util.Slog;
+
+import com.android.internal.annotations.GuardedBy;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+
+/**
+ * Service used to communicate with the network stack, which is running in a separate module.
+ * @hide
+ */
+@SystemService(Context.NETWORK_STACK_SERVICE)
+public class NetworkStack {
+ private static final String TAG = NetworkStack.class.getSimpleName();
+
+ @NonNull
+ @GuardedBy("mPendingNetStackRequests")
+ private final ArrayList<NetworkStackRequest> mPendingNetStackRequests = new ArrayList<>();
+ @Nullable
+ @GuardedBy("mPendingNetStackRequests")
+ private INetworkStackConnector mConnector;
+
+ private interface NetworkStackRequest {
+ void onNetworkStackConnected(INetworkStackConnector connector);
+ }
+
+ public NetworkStack() { }
+
+ private class NetworkStackConnection implements ServiceConnection {
+ @Override
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ registerNetworkStackService(service);
+ }
+
+ @Override
+ public void onServiceDisconnected(ComponentName name) {
+ // TODO: crash/reboot the system ?
+ Slog.wtf(TAG, "Lost network stack connector");
+ }
+ };
+
+ private void registerNetworkStackService(@NonNull IBinder service) {
+ final INetworkStackConnector connector = INetworkStackConnector.Stub.asInterface(service);
+
+ ServiceManager.addService(Context.NETWORK_STACK_SERVICE, service, false /* allowIsolated */,
+ DUMP_FLAG_PRIORITY_HIGH | DUMP_FLAG_PRIORITY_NORMAL);
+
+ final ArrayList<NetworkStackRequest> requests;
+ synchronized (mPendingNetStackRequests) {
+ requests = new ArrayList<>(mPendingNetStackRequests);
+ mPendingNetStackRequests.clear();
+ mConnector = connector;
+ }
+
+ for (NetworkStackRequest r : requests) {
+ r.onNetworkStackConnected(connector);
+ }
+ }
+
+ /**
+ * Start the network stack. Should be called only once on device startup.
+ *
+ * <p>This method will start the network stack either in the network stack process, or inside
+ * the system server on devices that do not support the network stack module. The network stack
+ * connector will then be delivered asynchronously to clients that requested it before it was
+ * started.
+ */
+ public void start(Context context) {
+ // Try to bind in-process if the library is available
+ IBinder connector = null;
+ try {
+ final Class service = Class.forName(
+ "com.android.server.NetworkStackService",
+ true /* initialize */,
+ context.getClassLoader());
+ connector = (IBinder) service.getMethod("makeConnector").invoke(null);
+ } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+ Slog.wtf(TAG, "Could not create network stack connector from NetworkStackService");
+ // TODO: crash/reboot system here ?
+ return;
+ } catch (ClassNotFoundException e) {
+ // Normal behavior if stack is provided by the app: fall through
+ }
+
+ // In-process network stack. Add the service to the service manager here.
+ if (connector != null) {
+ registerNetworkStackService(connector);
+ return;
+ }
+ // Start the network stack process. The service will be added to the service manager in
+ // NetworkStackConnection.onServiceConnected().
+ final Intent intent = new Intent(INetworkStackConnector.class.getName());
+ final ComponentName comp = intent.resolveSystemService(context.getPackageManager(), 0);
+ intent.setComponent(comp);
+
+ if (comp == null || !context.bindServiceAsUser(intent, new NetworkStackConnection(),
+ Context.BIND_AUTO_CREATE | Context.BIND_IMPORTANT, UserHandle.SYSTEM)) {
+ Slog.wtf(TAG,
+ "Could not bind to network stack in-process, or in app with " + intent);
+ // TODO: crash/reboot system server if no network stack after a timeout ?
+ }
+ }
+
+ // TODO: use this method to obtain the connector when implementing network stack operations
+ private void requestConnector(@NonNull NetworkStackRequest request) {
+ // TODO: PID check.
+ if (Binder.getCallingUid() != Process.SYSTEM_UID) {
+ // Don't even attempt to obtain the connector and give a nice error message
+ throw new SecurityException(
+ "Only the system server should try to bind to the network stack.");
+ }
+
+ final INetworkStackConnector connector;
+ synchronized (mPendingNetStackRequests) {
+ connector = mConnector;
+ if (connector == null) {
+ mPendingNetStackRequests.add(request);
+ return;
+ }
+ }
+
+ request.onNetworkStackConnected(connector);
+ }
+}
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index 2abcb4cd9379..505aec29d438 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -176,6 +176,12 @@ public class Process {
*/
public static final int SE_UID = 1068;
+ /**
+ * Defines the UID/GID for the NetworkStack app.
+ * @hide
+ */
+ public static final int NETWORK_STACK_UID = 1073;
+
/** {@hide} */
public static final int NOBODY_UID = 9999;
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index e57fdffdfd1a..36e81e6187c9 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -76,9 +76,9 @@ import com.android.internal.view.InputBindResult;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.lang.reflect.Proxy;
-import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -233,6 +233,13 @@ public final class InputMethodManager {
static final String PENDING_EVENT_COUNTER = "aq:imm";
/**
+ * A constant that represents Voice IME.
+ *
+ * @see InputMethodSubtype#getMode()
+ */
+ private static final String SUBTYPE_MODE_VOICE = "voice";
+
+ /**
* Ensures that {@link #sInstance} becomes non-{@code null} for application that have directly
* or indirectly relied on {@link #sInstance} via reflection or something like that.
*
@@ -2091,6 +2098,12 @@ public final class InputMethodManager {
/**
* Force switch to a new input method and subtype. This can only be called
* from an application or a service which has a token of the currently active input method.
+ *
+ * <p>On Android {@link Build.VERSION_CODES#Q} and later devices, {@code token} cannot be
+ * {@code null} even with {@link android.Manifest.permission#WRITE_SECURE_SETTINGS}. Instead,
+ * update {@link android.provider.Settings.Secure#DEFAULT_INPUT_METHOD} and
+ * {@link android.provider.Settings.Secure#SELECTED_INPUT_METHOD_SUBTYPE} directly.</p>
+ *
* @param token Supplies the identifying token given to an input method
* when it was started, which allows it to perform this operation on
* itself.
@@ -2102,16 +2115,11 @@ public final class InputMethodManager {
* the service. APIs in this class are intended for app developers interacting with the IME.
*/
@Deprecated
- public void setInputMethodAndSubtype(IBinder token, String id, InputMethodSubtype subtype) {
+ public void setInputMethodAndSubtype(@NonNull IBinder token, String id,
+ InputMethodSubtype subtype) {
if (token == null) {
- // Note: null token is allowed for callers that have WRITE_SECURE_SETTINGS permission.
- // Thus we cannot always rely on InputMethodPrivilegedOperationsRegistry unfortunately.
- // TODO(Bug 114488811): Consider deprecating null token rule.
- try {
- mService.setInputMethodAndSubtype(token, id, subtype);
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
+ Log.e(TAG, "setInputMethodAndSubtype() does not accept null token on Android Q "
+ + "and later.");
return;
}
InputMethodPrivilegedOperationsRegistry.get(token).setInputMethodAndSubtype(id, subtype);
@@ -2459,34 +2467,25 @@ public final class InputMethodManager {
* Returns a map of all shortcut input method info and their subtypes.
*/
public Map<InputMethodInfo, List<InputMethodSubtype>> getShortcutInputMethodsAndSubtypes() {
- synchronized (mH) {
- HashMap<InputMethodInfo, List<InputMethodSubtype>> ret = new HashMap<>();
- try {
- // TODO: We should change the return type from List<Object> to List<Parcelable>
- List<Object> info = mService.getShortcutInputMethodsAndSubtypes();
- // "info" has imi1, subtype1, subtype2, imi2, subtype2, imi3, subtype3..in the list
- ArrayList<InputMethodSubtype> subtypes = null;
- if (info != null && !info.isEmpty()) {
- final int N = info.size();
- for (int i = 0; i < N; ++i) {
- Object o = info.get(i);
- if (o instanceof InputMethodInfo) {
- if (ret.containsKey(o)) {
- Log.e(TAG, "IMI list already contains the same InputMethod.");
- break;
- }
- subtypes = new ArrayList<>();
- ret.put((InputMethodInfo)o, subtypes);
- } else if (subtypes != null && o instanceof InputMethodSubtype) {
- subtypes.add((InputMethodSubtype)o);
- }
- }
+ final List<InputMethodInfo> enabledImes = getEnabledInputMethodList();
+
+ // Ensure we check system IMEs first.
+ enabledImes.sort(Comparator.comparingInt(imi -> imi.isSystem() ? 0 : 1));
+
+ final int numEnabledImes = enabledImes.size();
+ for (int imiIndex = 0; imiIndex < numEnabledImes; ++imiIndex) {
+ final InputMethodInfo imi = enabledImes.get(imiIndex);
+ final List<InputMethodSubtype> subtypes = getEnabledInputMethodSubtypeList(
+ imi, true);
+ final int subtypeCount = subtypes.size();
+ for (int subtypeIndex = 0; subtypeIndex < subtypeCount; ++subtypeIndex) {
+ final InputMethodSubtype subtype = imi.getSubtypeAt(subtypeIndex);
+ if (SUBTYPE_MODE_VOICE.equals(subtype.getMode())) {
+ return Collections.singletonMap(imi, Collections.singletonList(subtype));
}
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
}
- return ret;
}
+ return Collections.emptyMap();
}
/**
diff --git a/core/java/android/view/inputmethod/InputMethodSystemProperty.java b/core/java/android/view/inputmethod/InputMethodSystemProperty.java
new file mode 100644
index 000000000000..b233b756686f
--- /dev/null
+++ b/core/java/android/view/inputmethod/InputMethodSystemProperty.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.view.inputmethod;
+
+import android.annotation.Nullable;
+import android.content.ComponentName;
+import android.os.Build;
+import android.os.SystemProperties;
+
+/**
+ * Various (pseudo) constants about IME behaviors.
+ *
+ * @hide
+ */
+public class InputMethodSystemProperty {
+ /**
+ * System property key for the production use. The value must be either empty or a valid
+ * (flattened) component name of the multi-client IME.
+ */
+ private static final String PROP_PROD_MULTI_CLIENT_IME = "ro.sys.multi_client_ime";
+
+ /**
+ * System property key for debugging purpose. The value must be either empty or a valid
+ * (flattened) component name of the multi-client IME.
+ *
+ * <p>This value will be ignored when {@link Build#IS_DEBUGGABLE} returns {@code false}</p>
+ */
+ private static final String PROP_DEBUG_MULTI_CLIENT_IME = "persist.debug.multi_client_ime";
+
+ @Nullable
+ private static ComponentName getMultiClientImeComponentName() {
+ if (Build.IS_DEBUGGABLE) {
+ // If debuggable, allow developers to override the multi-client IME component name
+ // with a different (writable) key.
+ final ComponentName debugIme = ComponentName.unflattenFromString(
+ SystemProperties.get(PROP_DEBUG_MULTI_CLIENT_IME, ""));
+ if (debugIme != null) {
+ return debugIme;
+ }
+ }
+ return ComponentName.unflattenFromString(
+ SystemProperties.get(PROP_PROD_MULTI_CLIENT_IME, ""));
+ }
+
+ /**
+ * {@link ComponentName} of multi-client IME to be used.
+ *
+ * @hide
+ */
+ @Nullable
+ public static final ComponentName sMultiClientImeComponentName =
+ getMultiClientImeComponentName();
+
+ /**
+ * {@code true} when multi-client IME is enabled.
+ *
+ * @hide
+ */
+ public static final boolean MULTI_CLIENT_IME_ENABLED = (sMultiClientImeComponentName != null);
+}
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index ef5eb6cb5780..a50c736e195e 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -101,6 +101,7 @@ public class ResolverActivity extends Activity {
private AbsListView mAdapterView;
private Button mAlwaysButton;
private Button mOnceButton;
+ private Button mSettingsButton;
private View mProfileView;
private int mIconDpi;
private int mLastSelected = AbsListView.INVALID_POSITION;
@@ -112,6 +113,7 @@ public class ResolverActivity extends Activity {
private String mReferrerPackage;
private CharSequence mTitle;
private int mDefaultTitleResId;
+ private boolean mUseLayoutForBrowsables;
// Whether or not this activity supports choosing a default handler for the intent.
private boolean mSupportsAlwaysUseOption;
@@ -192,6 +194,12 @@ public class ResolverActivity extends Activity {
com.android.internal.R.string.whichHomeApplicationNamed,
com.android.internal.R.string.whichHomeApplicationLabel);
+ // SpR.id.buttonecial titles for BROWSABLE components
+ public static final int BROWSABLE_TITLE_RES =
+ com.android.internal.R.string.whichGiveAccessToApplication;
+ public static final int BROWSABLE_NAMED_TITLE_RES =
+ com.android.internal.R.string.whichGiveAccessToApplicationNamed;
+
public final String action;
public final int titleRes;
public final int namedTitleRes;
@@ -283,7 +291,6 @@ public class ResolverActivity extends Activity {
mPackageMonitor.register(this, getMainLooper(), false);
mRegistered = true;
mReferrerPackage = getReferrerPackageName();
- mSupportsAlwaysUseOption = supportsAlwaysUseOption;
final ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
mIconDpi = am.getLauncherLargeIconDensity();
@@ -293,6 +300,14 @@ public class ResolverActivity extends Activity {
mTitle = title;
mDefaultTitleResId = defaultTitleRes;
+ mUseLayoutForBrowsables = getTargetIntent() == null
+ ? false
+ : getTargetIntent().hasCategory(Intent.CATEGORY_BROWSABLE);
+
+ // We don't want to support Always Use if browsable layout is being used,
+ // as to mitigate Intent Capturing vulnerability
+ mSupportsAlwaysUseOption = supportsAlwaysUseOption && !mUseLayoutForBrowsables;
+
mIconFactory = IconDrawableFactory.newInstance(this, true);
if (configureContentView(mIntents, initialIntents, rList)) {
return;
@@ -448,13 +463,23 @@ public class ResolverActivity extends Activity {
mSafeForwardingMode = safeForwarding;
}
- protected CharSequence getTitleForAction(String action, int defaultTitleRes) {
- final ActionTitle title = mResolvingHome ? ActionTitle.HOME : ActionTitle.forAction(action);
+ protected CharSequence getTitleForAction(Intent intent, int defaultTitleRes) {
+ final ActionTitle title = mResolvingHome
+ ? ActionTitle.HOME
+ : ActionTitle.forAction(intent.getAction());
+
// While there may already be a filtered item, we can only use it in the title if the list
// is already sorted and all information relevant to it is already in the list.
final boolean named = mAdapter.getFilteredPosition() >= 0;
if (title == ActionTitle.DEFAULT && defaultTitleRes != 0) {
return getString(defaultTitleRes);
+ } else if (intent.hasCategory(Intent.CATEGORY_BROWSABLE)) {
+ // If the Intent is BROWSABLE then we need to warn the user that
+ // they're giving access for the activity to open URLs from this specific host
+ return named
+ ? getString(ActionTitle.BROWSABLE_NAMED_TITLE_RES, intent.getData().getHost(),
+ mAdapter.getFilteredItem().getDisplayLabel())
+ : getString(ActionTitle.BROWSABLE_TITLE_RES, intent.getData().getHost());
} else {
return named
? getString(title.namedTitleRes, mAdapter.getFilteredItem().getDisplayLabel())
@@ -555,7 +580,7 @@ public class ResolverActivity extends Activity {
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
- resetAlwaysOrOnceButtonBar();
+ resetButtonBar();
}
private boolean hasManagedProfile() {
@@ -607,11 +632,23 @@ public class ResolverActivity extends Activity {
public void onButtonClick(View v) {
final int id = v.getId();
- startSelected(mAdapter.hasFilteredItem() ?
- mAdapter.getFilteredPosition():
- mAdapterView.getCheckedItemPosition(),
- id == R.id.button_always,
- !mAdapter.hasFilteredItem());
+ int which = mAdapter.hasFilteredItem()
+ ? mAdapter.getFilteredPosition()
+ : mAdapterView.getCheckedItemPosition();
+ boolean hasIndexBeenFiltered = !mAdapter.hasFilteredItem();
+ if (id == R.id.button_app_settings) {
+ showSettingsForSelected(which, hasIndexBeenFiltered);
+ } else {
+ startSelected(which, id == R.id.button_always, hasIndexBeenFiltered);
+ }
+ }
+
+ private void showSettingsForSelected(int which, boolean hasIndexBeenFiltered) {
+ ResolveInfo ri = mAdapter.resolveInfoForPosition(which, hasIndexBeenFiltered);
+ Intent in = new Intent().setAction(Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS)
+ .setData(Uri.fromParts("package", ri.activityInfo.packageName, null))
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
+ startActivity(in);
}
public void startSelected(int which, boolean always, boolean hasIndexBeenFiltered) {
@@ -995,7 +1032,7 @@ public class ResolverActivity extends Activity {
adapterView.setOnItemClickListener(listener);
adapterView.setOnItemLongClickListener(listener);
- if (mSupportsAlwaysUseOption) {
+ if (mSupportsAlwaysUseOption || mUseLayoutForBrowsables) {
listView.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
}
@@ -1017,7 +1054,7 @@ public class ResolverActivity extends Activity {
CharSequence title = mTitle != null
? mTitle
- : getTitleForAction(getTargetIntent().getAction(), mDefaultTitleResId);
+ : getTitleForAction(getTargetIntent(), mDefaultTitleResId);
if (!TextUtils.isEmpty(title)) {
final TextView titleView = findViewById(R.id.title);
@@ -1051,16 +1088,47 @@ public class ResolverActivity extends Activity {
}
}
- public void resetAlwaysOrOnceButtonBar() {
- if (mSupportsAlwaysUseOption) {
- final ViewGroup buttonLayout = findViewById(R.id.button_bar);
- if (buttonLayout != null) {
- buttonLayout.setVisibility(View.VISIBLE);
- mAlwaysButton = (Button) buttonLayout.findViewById(R.id.button_always);
- mOnceButton = (Button) buttonLayout.findViewById(R.id.button_once);
+ private void resetButtonBar() {
+ if (!mSupportsAlwaysUseOption && !mUseLayoutForBrowsables) {
+ return;
+ }
+ final ViewGroup buttonLayout = findViewById(R.id.button_bar);
+ if (buttonLayout != null) {
+ buttonLayout.setVisibility(View.VISIBLE);
+ mOnceButton = (Button) buttonLayout.findViewById(R.id.button_once);
+ mSettingsButton = (Button) buttonLayout.findViewById(R.id.button_app_settings);
+ mAlwaysButton = (Button) buttonLayout.findViewById(R.id.button_always);
+
+ if (mUseLayoutForBrowsables) {
+ resetSettingsOrOnceButtonBar();
} else {
- Log.e(TAG, "Layout unexpectedly does not have a button bar");
+ resetAlwaysOrOnceButtonBar();
}
+ } else {
+ Log.e(TAG, "Layout unexpectedly does not have a button bar");
+ }
+ }
+
+ private void resetSettingsOrOnceButtonBar() {
+ //unsetting always button
+ mAlwaysButton.setVisibility(View.GONE);
+
+ // When the items load in, if an item was already selected,
+ // enable the buttons
+ if (mAdapterView != null
+ && mAdapterView.getCheckedItemPosition() != ListView.INVALID_POSITION) {
+ mSettingsButton.setEnabled(true);
+ mOnceButton.setEnabled(true);
+ }
+ }
+
+ private void resetAlwaysOrOnceButtonBar() {
+ // This check needs to be made because layout with default
+ // doesn't have a settings button
+ if (mSettingsButton != null) {
+ //unsetting always button
+ mSettingsButton.setVisibility(View.GONE);
+ mSettingsButton = null;
}
if (useLayoutWithDefault()
@@ -1625,7 +1693,7 @@ public class ResolverActivity extends Activity {
@Override
public void run() {
setTitleAndIcon();
- resetAlwaysOrOnceButtonBar();
+ resetButtonBar();
onListRebuilt();
mPostListReadyRunnable = null;
}
@@ -1986,8 +2054,14 @@ public class ResolverActivity extends Activity {
final boolean hasValidSelection = checkedPos != ListView.INVALID_POSITION;
if (!useLayoutWithDefault()
&& (!hasValidSelection || mLastSelected != checkedPos)
- && mAlwaysButton != null) {
- setAlwaysButtonEnabled(hasValidSelection, checkedPos, true);
+ && (mAlwaysButton != null || mSettingsButton != null)) {
+ if (mSettingsButton != null) {
+ // this implies that the layout for browsables is being used
+ mSettingsButton.setEnabled(true);
+ } else {
+ // this implies that mAlwaysButton != null
+ setAlwaysButtonEnabled(hasValidSelection, checkedPos, true);
+ }
mOnceButton.setEnabled(hasValidSelection);
if (hasValidSelection) {
mAdapterView.smoothScrollToPosition(checkedPos);
diff --git a/core/java/com/android/internal/hardware/AmbientDisplayConfiguration.java b/core/java/com/android/internal/hardware/AmbientDisplayConfiguration.java
index d4c451e3ffff..78d366cd2436 100644
--- a/core/java/com/android/internal/hardware/AmbientDisplayConfiguration.java
+++ b/core/java/com/android/internal/hardware/AmbientDisplayConfiguration.java
@@ -68,10 +68,10 @@ public class AmbientDisplayConfiguration {
public boolean wakeLockScreenGestureEnabled(int user) {
return boolSettingDefaultOn(Settings.Secure.DOZE_WAKE_LOCK_SCREEN_GESTURE, user)
- && wakeLockScreenGestureAvailable();
+ && wakeScreenGestureAvailable();
}
- public boolean wakeLockScreenGestureAvailable() {
+ public boolean wakeScreenGestureAvailable() {
return mContext.getResources()
.getBoolean(R.bool.config_dozeWakeLockScreenSensorAvailable);
}
@@ -81,10 +81,6 @@ public class AmbientDisplayConfiguration {
&& wakeScreenGestureAvailable();
}
- public boolean wakeScreenGestureAvailable() {
- return !TextUtils.isEmpty(wakeScreenSensorType());
- }
-
public String doubleTapSensorType() {
return mContext.getResources().getString(R.string.config_dozeDoubleTapSensorType);
}
@@ -93,10 +89,6 @@ public class AmbientDisplayConfiguration {
return mContext.getResources().getString(R.string.config_dozeLongPressSensorType);
}
- public String wakeScreenSensorType() {
- return mContext.getResources().getString(R.string.config_dozeWakeScreenSensorType);
- }
-
public boolean pulseOnLongPressEnabled(int user) {
return pulseOnLongPressAvailable() && boolSettingDefaultOff(
Settings.Secure.DOZE_PULSE_ON_LONG_PRESS, user);
diff --git a/core/java/com/android/internal/view/IInputMethodManager.aidl b/core/java/com/android/internal/view/IInputMethodManager.aidl
index f62c4402cb4e..3873d2450738 100644
--- a/core/java/com/android/internal/view/IInputMethodManager.aidl
+++ b/core/java/com/android/internal/view/IInputMethodManager.aidl
@@ -42,9 +42,6 @@ interface IInputMethodManager {
List<InputMethodSubtype> getEnabledInputMethodSubtypeList(in String imiId,
boolean allowsImplicitlySelectedSubtypes);
InputMethodSubtype getLastInputMethodSubtype();
- // TODO: We should change the return type from List to List<Parcelable>
- // Currently there is a bug that aidl doesn't accept List<Parcelable>
- List getShortcutInputMethodsAndSubtypes();
boolean showSoftInput(in IInputMethodClient client, int flags,
in ResultReceiver resultReceiver);
@@ -70,8 +67,6 @@ interface IInputMethodManager {
boolean isInputMethodPickerShownForTest();
// TODO(Bug 114488811): this can be removed once we deprecate special null token rule.
void setInputMethod(in IBinder token, String id);
- // TODO(Bug 114488811): this can be removed once we deprecate special null token rule.
- void setInputMethodAndSubtype(in IBinder token, String id, in InputMethodSubtype subtype);
void registerSuggestionSpansForNotification(in SuggestionSpan[] spans);
boolean notifySuggestionPicked(in SuggestionSpan span, String originalString, int index);
InputMethodSubtype getCurrentInputMethodSubtype();
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index ff4591fb7f45..a8e142784397 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -1119,6 +1119,13 @@ static jlong CalculateCapabilities(JNIEnv* env, jint uid, jint gid, jintArray gi
capabilities |= (1LL << CAP_SYS_NICE);
}
+ if (multiuser_get_app_id(uid) == AID_NETWORK_STACK) {
+ capabilities |= (1LL << CAP_NET_ADMIN);
+ capabilities |= (1LL << CAP_NET_BROADCAST);
+ capabilities |= (1LL << CAP_NET_BIND_SERVICE);
+ capabilities |= (1LL << CAP_NET_RAW);
+ }
+
/*
* Grant CAP_BLOCK_SUSPEND to processes that belong to GID "wakelock"
*/
diff --git a/core/res/res/layout/resolver_list.xml b/core/res/res/layout/resolver_list.xml
index 373354a6cad3..0697b0e3ea9e 100644
--- a/core/res/res/layout/resolver_list.xml
+++ b/core/res/res/layout/resolver_list.xml
@@ -129,6 +129,18 @@
android:enabled="false"
android:text="@string/activity_resolver_use_always"
android:onClick="onButtonClick" />
+
+ <Button
+ android:id="@+id/button_app_settings"
+ android:layout_width="wrap_content"
+ android:layout_gravity="end"
+ android:maxLines="2"
+ android:minHeight="@dimen/alert_dialog_button_bar_height"
+ style="?attr/buttonBarPositiveButtonStyle"
+ android:layout_height="wrap_content"
+ android:enabled="false"
+ android:text="@string/activity_resolver_app_settings"
+ android:onClick="onButtonClick" />
</LinearLayout>
</com.android.internal.widget.ResolverDrawerLayout>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 9f5eab557026..cb4f416b6539 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -2160,9 +2160,6 @@
<!-- If the sensor that wakes up the lock screen is available or not. -->
<bool name="config_dozeWakeLockScreenSensorAvailable">false</bool>
- <!-- Type of the wake up sensor. Empty if not supported. -->
- <string name="config_dozeWakeScreenSensorType" translatable="false"></string>
-
<!-- Control whether the always on display mode is available. This should only be enabled on
devices where the display has been tuned to be power efficient in DOZE and/or DOZE_SUSPEND
states. -->
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index f25427ad86fe..d383362dfe86 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -3066,6 +3066,14 @@
<string name="whichViewApplicationNamed">Open with %1$s</string>
<!-- Label for a link to a intent resolver dialog to view something -->
<string name="whichViewApplicationLabel">Open</string>
+ <!-- Title of intent resolver dialog when selecting a viewer application that opens URI
+ [CHAR LIMIT=128]. -->
+ <string name="whichGiveAccessToApplication">Give access to open <xliff:g id="host" example="mail.google.com">%1$s</xliff:g> links with</string>
+ <!-- Title of intent resolver dialog when selecting a viewer application that opens URI
+ and a previously used application is known [CHAR LIMIT=128]. -->
+ <string name="whichGiveAccessToApplicationNamed">Give access to open <xliff:g id="host" example="mail.google.com">%1$s</xliff:g> links with <xliff:g id="application" example="Gmail">%2$s</xliff:g></string>
+ <!-- Label for a link to an intent resolver dialog to open URI [CHAR LIMIT=16] -->
+ <string name="whichGiveAccessToApplicationLabel">Give access</string>
<!-- Title of intent resolver dialog when selecting an editor application to run. -->
<string name="whichEditApplication">Edit with</string>
<!-- Title of intent resolver dialog when selecting an editor application to run
@@ -4156,6 +4164,10 @@
from the activity resolver to use just this once. [CHAR LIMIT=25] -->
<string name="activity_resolver_use_once">Just once</string>
+ <!-- Title for a button to choose to go to
+ 'Open by Default' app settings. [CHAR LIMIT=25] -->
+ <string name="activity_resolver_app_settings">Settings</string>
+
<!-- Text for the toast that is shown when the user clicks on a launcher that
doesn't support the work profile. [CHAR LIMIT=100] -->
<string name="activity_resolver_work_profiles_support">%1$s doesn\'t support work profile</string>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index e7cd2274a5ee..a4a97d33ee65 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2144,6 +2144,7 @@
<java-symbol type="id" name="resolver_list" />
<java-symbol type="id" name="button_once" />
<java-symbol type="id" name="button_always" />
+ <java-symbol type="id" name="button_app_settings" />
<java-symbol type="integer" name="config_globalActionsKeyTimeout" />
<java-symbol type="integer" name="config_maxResolverActivityColumns" />
<java-symbol type="array" name="config_notificationSignalExtractors" />
@@ -2499,11 +2500,15 @@
<java-symbol type="bool" name="config_use_voip_mode_for_ims" />
<java-symbol type="attr" name="touchscreenBlocksFocus" />
<java-symbol type="layout" name="resolver_list_with_default" />
+ <java-symbol type="string" name="activity_resolver_app_settings" />
<java-symbol type="string" name="whichApplicationNamed" />
<java-symbol type="string" name="whichApplicationLabel" />
<java-symbol type="string" name="whichViewApplication" />
<java-symbol type="string" name="whichViewApplicationNamed" />
<java-symbol type="string" name="whichViewApplicationLabel" />
+ <java-symbol type="string" name="whichGiveAccessToApplication" />
+ <java-symbol type="string" name="whichGiveAccessToApplicationNamed" />
+ <java-symbol type="string" name="whichGiveAccessToApplicationLabel" />
<java-symbol type="string" name="whichEditApplication" />
<java-symbol type="string" name="whichEditApplicationNamed" />
<java-symbol type="string" name="whichEditApplicationLabel" />
@@ -3494,7 +3499,6 @@
<java-symbol type="integer" name="db_wal_truncate_size" />
<java-symbol type="integer" name="config_wakeUpDelayDoze" />
- <java-symbol type="string" name="config_dozeWakeScreenSensorType" />
<!-- For Bluetooth AbsoluteVolume -->
<java-symbol type="fraction" name="config_prescaleAbsoluteVolume_index1" />
diff --git a/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java b/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java
index 953cef7d30ff..aa2917484a05 100644
--- a/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java
+++ b/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java
@@ -210,6 +210,10 @@ public abstract class AndroidKeyStoreKeyGeneratorSpi extends KeyGeneratorSpi {
throw new InvalidAlgorithmParameterException(
"HMAC key size must be at least 64 bits.");
}
+ if (mKeySizeBits > 512 && spec.isStrongBoxBacked()) {
+ throw new InvalidAlgorithmParameterException(
+ "StrongBox HMAC key size must be smaller than 512 bits.");
+ }
// JCA HMAC key algorithm implies a digest (e.g., HmacSHA256 key algorithm
// implies SHA-256 digest). Because keymaster HMAC key is authorized only for
diff --git a/keystore/java/android/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi.java b/keystore/java/android/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi.java
index 5fc742afeaeb..d44c894fa573 100644
--- a/keystore/java/android/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi.java
+++ b/keystore/java/android/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi.java
@@ -303,7 +303,7 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
if (mKeySizeBits == -1) {
mKeySizeBits = getDefaultKeySize(keymasterAlgorithm);
}
- checkValidKeySize(keymasterAlgorithm, mKeySizeBits);
+ checkValidKeySize(keymasterAlgorithm, mKeySizeBits, mSpec.isStrongBoxBacked());
if (spec.getKeystoreAlias() == null) {
throw new InvalidAlgorithmParameterException("KeyStore entry alias not provided");
@@ -724,10 +724,18 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
}
}
- private static void checkValidKeySize(int keymasterAlgorithm, int keySize)
+ private static void checkValidKeySize(
+ int keymasterAlgorithm,
+ int keySize,
+ boolean isStrongBoxBacked)
throws InvalidAlgorithmParameterException {
switch (keymasterAlgorithm) {
case KeymasterDefs.KM_ALGORITHM_EC:
+ if (isStrongBoxBacked && keySize != 256) {
+ throw new InvalidAlgorithmParameterException(
+ "Unsupported StrongBox EC key size: "
+ + keySize + " bits. Supported: 256");
+ }
if (!SUPPORTED_EC_NIST_CURVE_SIZES.contains(keySize)) {
throw new InvalidAlgorithmParameterException("Unsupported EC key size: "
+ keySize + " bits. Supported: " + SUPPORTED_EC_NIST_CURVE_SIZES);
diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
index 1cdc29102758..125ab2e91e22 100644
--- a/media/java/android/media/MediaRecorder.java
+++ b/media/java/android/media/MediaRecorder.java
@@ -479,7 +479,7 @@ public class MediaRecorder implements AudioRouting,
public static final int HE_AAC = 4;
/** Enhanced Low Delay AAC (AAC-ELD) audio codec */
public static final int AAC_ELD = 5;
- /** Ogg Vorbis audio codec */
+ /** Ogg Vorbis audio codec (Support is optional) */
public static final int VORBIS = 6;
/** Opus audio codec */
public static final int OPUS = 7;
diff --git a/packages/BackupRestoreConfirmation/res/values-as/strings.xml b/packages/BackupRestoreConfirmation/res/values-as/strings.xml
index 4a86d6477f51..76ec60b166a8 100644
--- a/packages/BackupRestoreConfirmation/res/values-as/strings.xml
+++ b/packages/BackupRestoreConfirmation/res/values-as/strings.xml
@@ -32,8 +32,8 @@
<string name="backup_enc_password_required" msgid="7889652203371654149">"যিহেতু আপোনাৰ ডিভাইচটো এনক্ৰিপ্ট কৰা হৈছে, আপুনি আপোনাৰ বেকআপ এনক্ৰিপ্ট কৰাৰ প্ৰয়োজন। অনুগ্ৰহ কৰি তলত এটা পাছৱৰ্ড দিয়ক:"</string>
<string name="restore_enc_password_text" msgid="6140898525580710823">"যদি পুনঃস্থাপন কৰিবলগীয়া ডেটা এনক্ৰিপ্ট কৰা আছে, তেন্তে তলত পাছৱৰ্ড দিয়ক:"</string>
<string name="toast_backup_started" msgid="550354281452756121">"বেকআপ লোৱা কাৰ্য আৰম্ভ কৰি আছে..."</string>
- <string name="toast_backup_ended" msgid="3818080769548726424">"বেকআপ লোৱা সম্পূৰ্ণ হ\'ল"</string>
+ <string name="toast_backup_ended" msgid="3818080769548726424">"বেকআপ লোৱা সম্পূৰ্ণ হ’ল"</string>
<string name="toast_restore_started" msgid="7881679218971277385">"পুনঃস্থাপন কাৰ্য আৰম্ভ কৰি আছে..."</string>
- <string name="toast_restore_ended" msgid="1764041639199696132">"পুনঃস্থাপন কাৰ্য সমাপ্ত হ\'ল"</string>
+ <string name="toast_restore_ended" msgid="1764041639199696132">"পুনঃস্থাপন কাৰ্য সমাপ্ত হ’ল"</string>
<string name="toast_timeout" msgid="5276598587087626877">"কাৰ্যটোৰ সময়সীমা উকলি গ\'ল"</string>
</resources>
diff --git a/packages/BackupRestoreConfirmation/res/values-ne/strings.xml b/packages/BackupRestoreConfirmation/res/values-ne/strings.xml
index d01ad5075998..2296b9fb72a5 100644
--- a/packages/BackupRestoreConfirmation/res/values-ne/strings.xml
+++ b/packages/BackupRestoreConfirmation/res/values-ne/strings.xml
@@ -29,7 +29,7 @@
<string name="device_encryption_backup_text" msgid="5866590762672844664">"कृपया तल तपाईंको उपकरण एन्क्रिप्सन पासवर्ड प्रविष्टि गर्नुहोस्: यो ब्याकप सँग्रह एन्क्रिप्ट गर्न पनि प्रयोग हुने छ।"</string>
<string name="backup_enc_password_text" msgid="4981585714795233099">"ब्याकप डेटालाई encrypt गर्न पासवर्ड प्रविष्टि गर्नुहोस्, यदि यो खालि छोडिएको खण्डमा तपाईको पुरानै पासवर्ड प्रयोग हुने छ।"</string>
<string name="backup_enc_password_optional" msgid="1350137345907579306">"यदि तपाईं पूर्ण ब्याकअप डेटा इन्क्रिप्ट गर्न चाहनु हुन्छ भने तल पासवर्ड प्रविष्टि गर्नुहोस्।"</string>
- <string name="backup_enc_password_required" msgid="7889652203371654149">"तपाईँको उपकरण गुप्तिकरण गरिए देखि, तपाईंले आफ्नो जगेडा गुप्तिकरण गर्न आवश्यक छ। कृपया तल पासवर्ड प्रविष्ट गर्नुहोस्:"</string>
+ <string name="backup_enc_password_required" msgid="7889652203371654149">"तपाईँको उपकरण गुप्तिकरण गरिए देखि, तपाईंले आफ्नो जगेडा गुप्तिकरण गर्न आवश्यक छ। कृपया तल पासवर्ड प्रविष्टि गर्नुहोस्:"</string>
<string name="restore_enc_password_text" msgid="6140898525580710823">"यदि पुनःबहाली डेटा इन्क्रिप्ट छ भने कृपया तल पासवर्ड प्रविष्टि गर्नुहोस्:"</string>
<string name="toast_backup_started" msgid="550354281452756121">"जगेडा राख्न सुरु हुँदै..."</string>
<string name="toast_backup_ended" msgid="3818080769548726424">"ब्याकअप सकियो"</string>
diff --git a/packages/CaptivePortalLogin/res/values-gl/strings.xml b/packages/CaptivePortalLogin/res/values-gl/strings.xml
index 64195168f76f..f6f4aea0c639 100644
--- a/packages/CaptivePortalLogin/res/values-gl/strings.xml
+++ b/packages/CaptivePortalLogin/res/values-gl/strings.xml
@@ -13,7 +13,7 @@
<string name="ssl_error_mismatch" msgid="3060364165934822383">"O nome do sitio non coincide co nome que aparece no certificado."</string>
<string name="ssl_error_expired" msgid="1501588340716182495">"Este certificado caducou."</string>
<string name="ssl_error_not_yet_valid" msgid="8648649030525886924">"Este certificado aínda non é válido."</string>
- <string name="ssl_error_date_invalid" msgid="88425990680059223">"Este certificado ten unha data non válida."</string>
+ <string name="ssl_error_date_invalid" msgid="88425990680059223">"Este certificado ten unha data non-válida."</string>
<string name="ssl_error_invalid" msgid="2540546515565633432">"Este certificado non é válido."</string>
<string name="ssl_error_unknown" msgid="4405203446079465859">"Produciuse un erro descoñecido relacionado co certificado."</string>
<string name="ssl_security_warning_title" msgid="8768539813847504404">"Advertencia de seguranza"</string>
diff --git a/packages/CarSystemUI/res/layout/car_top_navigation_bar.xml b/packages/CarSystemUI/res/layout/car_top_navigation_bar.xml
index 1dca10a04c43..2fe740d51e8f 100644
--- a/packages/CarSystemUI/res/layout/car_top_navigation_bar.xml
+++ b/packages/CarSystemUI/res/layout/car_top_navigation_bar.xml
@@ -76,7 +76,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
- systemui:intent="intent:#Intent;component=com.android.car.settings/.common.CarSettingActivity;launchFlags=0x14008000;end"
+ systemui:intent="intent:#Intent;component=com.android.car.settings/.common.CarSettingActivity;launchFlags=0x24000000;end"
/>
<com.android.systemui.statusbar.policy.Clock
android:id="@+id/clock"
diff --git a/packages/CarrierDefaultApp/res/values-as/strings.xml b/packages/CarrierDefaultApp/res/values-as/strings.xml
index 8650171ee7f0..4b36b06e35c7 100644
--- a/packages/CarrierDefaultApp/res/values-as/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-as/strings.xml
@@ -2,16 +2,16 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5247871339820894594">"CarrierDefaultApp"</string>
- <string name="android_system_label" msgid="2797790869522345065">"ম\'বাইল সেৱা প্ৰদান কৰা কোম্পানী"</string>
- <string name="portal_notification_id" msgid="5155057562457079297">"ম\'বাইল ডেটা শেষ হৈছে"</string>
- <string name="no_data_notification_id" msgid="668400731803969521">"আপোনাৰ ম\'বাইল ডেটা সেৱা নিষ্ক্ৰিয় কৰা হৈছে"</string>
+ <string name="android_system_label" msgid="2797790869522345065">"ম’বাইল সেৱা প্ৰদান কৰা কোম্পানী"</string>
+ <string name="portal_notification_id" msgid="5155057562457079297">"ম’বাইল ডেটা শেষ হৈছে"</string>
+ <string name="no_data_notification_id" msgid="668400731803969521">"আপোনাৰ ম’বাইল ডেটা সেৱা নিষ্ক্ৰিয় কৰা হৈছে"</string>
<string name="portal_notification_detail" msgid="2295729385924660881">"%s ৱেবছাইটটোলৈ যাবলৈ টিপক"</string>
<string name="no_data_notification_detail" msgid="3112125343857014825">"অনুগ্ৰহ কৰি আপোনাৰ সেৱা প্ৰদানকাৰী %sৰ সৈতে যোগাযোগ কৰক"</string>
- <string name="no_mobile_data_connection_title" msgid="7449525772416200578">"কোনো ম\'বাইল ডেটা সংযোগ নাই"</string>
+ <string name="no_mobile_data_connection_title" msgid="7449525772416200578">"কোনো ম’বাইল ডেটা সংযোগ নাই"</string>
<string name="no_mobile_data_connection" msgid="544980465184147010">"%sৰ যোগেৰে ডেটা বা ৰ\'মিঙৰ আঁচনি যোগ কৰক"</string>
- <string name="mobile_data_status_notification_channel_name" msgid="833999690121305708">"ম\'বাইল ডেটাৰ স্থিতি"</string>
- <string name="action_bar_label" msgid="4290345990334377177">"ম\'বাইল নেটৱৰ্কত ছাইন ইন কৰক"</string>
+ <string name="mobile_data_status_notification_channel_name" msgid="833999690121305708">"ম’বাইল ডেটাৰ স্থিতি"</string>
+ <string name="action_bar_label" msgid="4290345990334377177">"ম’বাইল নেটৱৰ্কত ছাইন ইন কৰক"</string>
<string name="ssl_error_warning" msgid="3127935140338254180">"আপুনি সংযোগ কৰিবলৈ বিচৰা নেটৱৰ্কটোত সুৰক্ষাজনিত সমস্যা আছে।"</string>
- <string name="ssl_error_example" msgid="6188711843183058764">"উদাহৰণ স্বৰূপে, আপোনাক দেখুওৱা লগ ইনৰ পৃষ্ঠাটো প্ৰতিষ্ঠানটোৰ নিজা নহ\'বও পাৰে।"</string>
+ <string name="ssl_error_example" msgid="6188711843183058764">"উদাহৰণস্বৰূপে, আপোনাক দেখুওৱা লগ ইনৰ পৃষ্ঠাটো প্ৰতিষ্ঠানটোৰ নিজা নহ\'বও পাৰে।"</string>
<string name="ssl_error_continue" msgid="1138548463994095584">"তথাপিও ব্ৰাউজাৰৰ জৰিয়তে অব্যাহত ৰাখক"</string>
</resources>
diff --git a/packages/NetworkStack/Android.bp b/packages/NetworkStack/Android.bp
new file mode 100644
index 000000000000..55bb5175c28d
--- /dev/null
+++ b/packages/NetworkStack/Android.bp
@@ -0,0 +1,37 @@
+//
+// Copyright (C) 2018 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Library including the network stack, used to compile the network stack app, or linked into the
+// system server on devices that run the stack there
+java_library {
+ name: "NetworkStackLib",
+ installable: true,
+ srcs: [
+ "src/**/*.java",
+ ],
+}
+
+// Updatable network stack packaged as an application
+android_app {
+ name: "NetworkStack",
+ platform_apis: true,
+ certificate: "platform",
+ privileged: true,
+ static_libs: [
+ "NetworkStackLib"
+ ],
+ manifest: "AndroidManifest.xml",
+} \ No newline at end of file
diff --git a/packages/NetworkStack/AndroidManifest.xml b/packages/NetworkStack/AndroidManifest.xml
new file mode 100644
index 000000000000..d1c5cb67197e
--- /dev/null
+++ b/packages/NetworkStack/AndroidManifest.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.google.android.networkstack"
+ android:sharedUserId="android.uid.networkstack">
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+ <!-- Launch captive portal app as specific user -->
+ <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
+ <application
+ android:label="NetworkStack"
+ android:defaultToDeviceProtectedStorage="true"
+ android:directBootAware="true"
+ android:usesCleartextTraffic="true">
+ <service android:name="com.android.server.NetworkStackService">
+ <intent-filter>
+ <action android:name="android.net.INetworkStackConnector"/>
+ </intent-filter>
+ </service>
+ </application>
+</manifest>
diff --git a/packages/NetworkStack/src/com/android/server/NetworkStackService.java b/packages/NetworkStack/src/com/android/server/NetworkStackService.java
new file mode 100644
index 000000000000..5afaf586f74d
--- /dev/null
+++ b/packages/NetworkStack/src/com/android/server/NetworkStackService.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server;
+
+import static android.os.Binder.getCallingUid;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.Service;
+import android.content.Intent;
+import android.net.INetworkStackConnector;
+import android.os.IBinder;
+import android.os.Process;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
+/**
+ * Android service used to start the network stack when bound to via an intent.
+ *
+ * <p>The service returns a binder for the system server to communicate with the network stack.
+ */
+public class NetworkStackService extends Service {
+ private static final String TAG = NetworkStackService.class.getSimpleName();
+
+ /**
+ * Create a binder connector for the system server to communicate with the network stack.
+ *
+ * <p>On platforms where the network stack runs in the system server process, this method may
+ * be called directly instead of obtaining the connector by binding to the service.
+ */
+ public static IBinder makeConnector() {
+ return new NetworkStackConnector();
+ }
+
+ @NonNull
+ @Override
+ public IBinder onBind(Intent intent) {
+ return makeConnector();
+ }
+
+ private static class NetworkStackConnector extends INetworkStackConnector.Stub {
+ // TODO: makeDhcpServer(), etc. will go here.
+
+ @Override
+ protected void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter fout,
+ @Nullable String[] args) {
+ checkCaller();
+ fout.println("NetworkStack logs:");
+ // TODO: dump logs here
+ }
+ }
+
+ private static void checkCaller() {
+ // TODO: check that the calling PID is the system server.
+ if (getCallingUid() != Process.SYSTEM_UID && getCallingUid() != Process.ROOT_UID) {
+ throw new SecurityException("Invalid caller: " + getCallingUid());
+ }
+ }
+}
diff --git a/packages/PackageInstaller/res/values-af/strings.xml b/packages/PackageInstaller/res/values-af/strings.xml
index dfee4e83d7a3..ce007efd68d6 100644
--- a/packages/PackageInstaller/res/values-af/strings.xml
+++ b/packages/PackageInstaller/res/values-af/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Wil jy hierdie program vir die gebruiker <xliff:g id="USERNAME">%1$s</xliff:g> deïnstalleer?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Vervang hierdie program met die fabriekweergawe? Alle data sal verwyder word."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Vervang hierdie program met die fabriekweergawe? Alle data sal verwyder word. Dit beïnvloed alle gebruikers van hierdie toestel, insluitend dié met werkprofiele."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Verwyder ook <xliff:g id="SIZE">%1$s</xliff:g> se geassosieerde medialêers."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Hou <xliff:g id="SIZE">%1$s</xliff:g> se programdata."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Voer tans deïnstallerings uit"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mislukte deïnstallerings"</string>
<string name="uninstalling" msgid="8709566347688966845">"Deïnstalleer tans …"</string>
diff --git a/packages/PackageInstaller/res/values-am/strings.xml b/packages/PackageInstaller/res/values-am/strings.xml
index cfdeb59d0b83..21cdaa6e8b5b 100644
--- a/packages/PackageInstaller/res/values-am/strings.xml
+++ b/packages/PackageInstaller/res/values-am/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"ይህን መተግበሪያ ለተጠቃሚ <xliff:g id="USERNAME">%1$s</xliff:g> ማራገፍ ይፈልጋሉ?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ይህ መተግበሪያ በፋብሪካው ስሪት ይተካ? ሁሉም ውሂብ ይወገዳል።"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ይህ መተግበሪያ በፋብሪካው ስሪት ይተካ? ሁሉም ውሂብ ይወገዳል። እነዚያን የሥራ መገለጫዎች ያላቸውን ጨምሮ ሁሉንም በዚህ መሣሪያ ላይ ባሉ ተጠቃሚዎች ላይ ተጽዕኖ ያሳርፍባቸዋል።"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"እንዲሁም <xliff:g id="SIZE">%1$s</xliff:g> ተጓዳኝ የሚዲያ ፋይሎችን አስወግድ"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"ከመተግበሪያ ውሂብ <xliff:g id="SIZE">%1$s</xliff:g> አቆይ።"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"በማሄድ ላይ ያሉ ማራገፎች"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ያልተሳኩ ማራገፎች"</string>
<string name="uninstalling" msgid="8709566347688966845">"በማራገፍ ላይ…"</string>
diff --git a/packages/PackageInstaller/res/values-ar/strings.xml b/packages/PackageInstaller/res/values-ar/strings.xml
index da919830c761..edbd1782092c 100644
--- a/packages/PackageInstaller/res/values-ar/strings.xml
+++ b/packages/PackageInstaller/res/values-ar/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"هل تريد إزالة هذا التطبيق للمستخدم <xliff:g id="USERNAME">%1$s</xliff:g>؟"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"هل تريد استبدال هذا التطبيق بإصدار المصنع؟ ستتم إزالة جميع البيانات."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"هل تريد استبدال هذا التطبيق بإصدار المصنع؟ ستتم إزالة جميع البيانات. وسيؤثر هذا في جميع مستخدمي هذا الجهاز، بما في ذلك من لديهم ملفات شخصية للعمل."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"إزالة <xliff:g id="SIZE">%1$s</xliff:g> من ملفات الوسائط المرتبطة أيضًا."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"الاحتفاظ بالحجم <xliff:g id="SIZE">%1$s</xliff:g> من بيانات التطبيق."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"عمليات إلغاء التثبيت الجارية"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"عمليات إلغاء التثبيت غير الناجحة"</string>
<string name="uninstalling" msgid="8709566347688966845">"جارٍ إلغاء التثبيت…"</string>
diff --git a/packages/PackageInstaller/res/values-as/strings.xml b/packages/PackageInstaller/res/values-as/strings.xml
index 2f2d8671d04b..d3429bf4ab2c 100644
--- a/packages/PackageInstaller/res/values-as/strings.xml
+++ b/packages/PackageInstaller/res/values-as/strings.xml
@@ -22,10 +22,10 @@
<string name="cancel" msgid="1018267193425558088">"বাতিল কৰক"</string>
<string name="installing" msgid="4921993079741206516">"ইনষ্টল কৰি থকা হৈছে…"</string>
<string name="installing_app" msgid="1165095864863849422">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ইনষ্টল কৰি থকা হৈছে…"</string>
- <string name="install_done" msgid="5987363587661783896">"এপ্ ইনষ্টল কৰা হ\'ল।"</string>
+ <string name="install_done" msgid="5987363587661783896">"এপ্ ইনষ্টল কৰা হ’ল।"</string>
<string name="install_confirm_question" msgid="8176284075816604590">"আপুনি এই এপ্লিকেশ্বনটো ইনষ্টল কৰিব বিচাৰেনে?"</string>
- <string name="install_confirm_question_update" msgid="7942235418781274635">"আপুনি আগৰে পৰা থকা এপ্লিকেশ্বন আপডে\'ট কৰিব বিচাৰেনে? আপোনাৰ আগৰ ডেটা নেহেৰায়।"</string>
- <string name="install_confirm_question_update_system" msgid="4713001702777910263">"আপুনি এই আগৰে পৰা থকা এপ্লিকেশ্বনটো আপডে\'ট কৰিব বিচাৰেনে? আপোনাৰ আগৰ ডেটা নেহেৰায়।"</string>
+ <string name="install_confirm_question_update" msgid="7942235418781274635">"আপুনি আগৰে পৰা থকা এপ্লিকেশ্বন আপডে’ট কৰিব বিচাৰেনে? আপোনাৰ আগৰ ডেটা নেহেৰায়।"</string>
+ <string name="install_confirm_question_update_system" msgid="4713001702777910263">"আপুনি এই আগৰে পৰা থকা এপ্লিকেশ্বনটো আপডে’ট কৰিব বিচাৰেনে? আপোনাৰ আগৰ ডেটা নেহেৰায়।"</string>
<string name="install_failed" msgid="5777824004474125469">"এপ্ ইনষ্টল কৰা হোৱা নাই।"</string>
<string name="install_failed_blocked" msgid="8512284352994752094">"পেকেজটোৰ ইনষ্টল অৱৰোধ কৰা হৈছে।"</string>
<string name="install_failed_conflict" msgid="3493184212162521426">"এপটো ইনষ্টল কৰিব পৰা নগ\'ল কাৰণ ইয়াৰ সৈতে আগৰে পৰা থকা এটা পেকেজৰ সংঘাত হৈছে।"</string>
@@ -51,19 +51,21 @@
<string name="generic_error_dlg_title" msgid="5863195085927067752">"আসোঁৱাহ"</string>
<string name="generic_error_dlg_text" msgid="5287861443265795232">"এপ্ আনইনষ্টল কৰিব পৰা নগ\'ল।"</string>
<string name="uninstall_application_title" msgid="4045420072401428123">"এপ্ আনইনষ্টল কৰক"</string>
- <string name="uninstall_update_title" msgid="824411791011583031">"আপডে\'ট আনইনষ্টল কৰক"</string>
+ <string name="uninstall_update_title" msgid="824411791011583031">"আপডে’ট আনইনষ্টল কৰক"</string>
<string name="uninstall_activity_text" msgid="1928194674397770771">"<xliff:g id="ACTIVITY_NAME">%1$s</xliff:g> হৈছে তলৰ এপটোৰ এটা অংশ:"</string>
<string name="uninstall_application_text" msgid="3816830743706143980">"আপুনি এই এপটো আনইনষ্টল কৰিব বিচাৰেনে?"</string>
<string name="uninstall_application_text_all_users" msgid="575491774380227119">"আপুনি "<b>"সকলো"</b>" ব্যৱহাৰকাৰীৰ বাবে এই এপটো আনইনষ্টল কৰিব বিচাৰেনে? এপ্লিকেশ্বন আৰু ইয়াৰ ডেটা ডিভাইচটোত থকা "<b>"সকলো"</b>" ব্যৱহাৰকাৰীৰ পৰা আঁতৰোৱা হ\'ব৷"</string>
<string name="uninstall_application_text_user" msgid="498072714173920526">"আপুনি ব্যৱহাৰকাৰীৰ <xliff:g id="USERNAME">%1$s</xliff:g> বাবে এই এপটো আনইনষ্টল কৰিব বিচাৰেনে?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"এই এপটোৰ ফেক্টৰী সংস্কৰণ ব্যৱহাৰ কৰিব বিচাৰেনে? সকলো ডেটা মচা হ\'ব।"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"এই এপটোৰ ফেক্টৰী সংস্কৰণ ব্যৱহাৰ কৰিব বিচাৰেনে? সকলো ডেটা মচা হ\'ব। কর্মস্থানৰ প্ৰফাইল থকা ব্যৱহাৰকাৰীৰ লগতে ডিভাইচটোৰ সকলো ব্যৱহাৰকাৰীৰ ওপৰত ইয়াৰ প্ৰভাৱ পৰিব।"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"সংশ্লিষ্ট মিডিয়া ফাইলৰ পৰা <xliff:g id="SIZE">%1$s</xliff:g> আঁতৰাওক।"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"এপৰ ডেটাৰ <xliff:g id="SIZE">%1$s</xliff:g> ৰাখক"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"আনইনষ্টল কৰি থকা হৈছে"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"যিবোৰ আনইনষ্টল পৰা নগ\'ল"</string>
<string name="uninstalling" msgid="8709566347688966845">"আনইনষ্টল কৰি থকা হৈছে…"</string>
<string name="uninstalling_app" msgid="8866082646836981397">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> আনইনষ্টল কৰি থকা হৈছে…"</string>
<string name="uninstall_done" msgid="439354138387969269">"আনইনষ্টল কৰা হ’ল।"</string>
- <string name="uninstall_done_app" msgid="4588850984473605768">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> আনইনষ্টল কৰা হ\'ল"</string>
+ <string name="uninstall_done_app" msgid="4588850984473605768">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> আনইনষ্টল কৰা হ’ল"</string>
<string name="uninstall_failed" msgid="1847750968168364332">"আনইনষ্টল কৰিব পৰা নগ\'ল।"</string>
<string name="uninstall_failed_app" msgid="5506028705017601412">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> আনইনষ্টল কৰিব পৰা নগ\'ল।"</string>
<string name="uninstall_failed_device_policy_manager" msgid="785293813665540305">"ডিভাইচৰ সক্ৰিয় প্ৰশাসক এপ্ আনইনষ্টল কৰিব নোৱাৰি"</string>
diff --git a/packages/PackageInstaller/res/values-az/strings.xml b/packages/PackageInstaller/res/values-az/strings.xml
index 478322a1dfff..caa6f7d5cc1f 100644
--- a/packages/PackageInstaller/res/values-az/strings.xml
+++ b/packages/PackageInstaller/res/values-az/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"<xliff:g id="USERNAME">%1$s</xliff:g> adlı istifadəçi üçün bu tətbiqi sistemdən silmək istəyirsiniz?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Tətbiq zavod versiyası ilə əvəz olunsun? Bütün data silinəcək."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Tətbiq zavod versiyası ilə əvəz olunsun? Bütün data silinəcək. Bu, iş profilləri daxil olmaqla bu cihazın bütün istifadəçilərinə təsir edir."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Həmçinin, <xliff:g id="SIZE">%1$s</xliff:g> həcmində əlaqədar media fayllarını silin."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Tətbiq datasının <xliff:g id="SIZE">%1$s</xliff:g> hissəsini saxlayın."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"İşləyən sistemlər silinmələr"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Uğursuz olan sistemlər silinmələr"</string>
<string name="uninstalling" msgid="8709566347688966845">"Sistemdən silinir..."</string>
diff --git a/packages/PackageInstaller/res/values-b+sr+Latn/strings.xml b/packages/PackageInstaller/res/values-b+sr+Latn/strings.xml
index cab6be5d9902..689692def477 100644
--- a/packages/PackageInstaller/res/values-b+sr+Latn/strings.xml
+++ b/packages/PackageInstaller/res/values-b+sr+Latn/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Želite li da deinstalirate ovu aplikaciju za korisnika <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Želite li da zamenite ovu aplikaciju fabričkom verzijom? Svi podaci će biti uklonjeni."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Želite li da zamenite ovu aplikaciju fabričkom verzijom? Svi podaci će biti uklonjeni. Ovo utiče na sve korisnike ovog uređaja, uključujući i one sa profilima za Work."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Ukloni i <xliff:g id="SIZE">%1$s</xliff:g> povezanih medijskih datoteka."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Zadrži <xliff:g id="SIZE">%1$s</xliff:g> podataka aplikacije."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Aktivna deinstaliranja"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neuspela deinstaliranja"</string>
<string name="uninstalling" msgid="8709566347688966845">"Deinstalira se…"</string>
diff --git a/packages/PackageInstaller/res/values-be/strings.xml b/packages/PackageInstaller/res/values-be/strings.xml
index 4433b73de0b0..a6e87e95117d 100644
--- a/packages/PackageInstaller/res/values-be/strings.xml
+++ b/packages/PackageInstaller/res/values-be/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Хочаце выдаліць гэту праграму для карыстальніка <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Замяніць гэту праграму заводскай версіяй? Усе даныя будуць выдалены."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Замяніць гэту праграму заводскай версіяй? Усе даныя будуць выдалены. Гэта паўплывае на ўсіх карыстальнікаў гэтай прылады, уключаючы карыстальнікаў з працоўнымі профілямі."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Таксама выдаліць <xliff:g id="SIZE">%1$s</xliff:g> звязаных файлаў мультымедыя."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Захаваць даныя праграмы (<xliff:g id="SIZE">%1$s</xliff:g>)."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Актыўныя выдаленні"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Нявыкананыя выдаленні"</string>
<string name="uninstalling" msgid="8709566347688966845">"Ідзе выдаленне…"</string>
diff --git a/packages/PackageInstaller/res/values-bg/strings.xml b/packages/PackageInstaller/res/values-bg/strings.xml
index 2b76bddce579..51a0e88446c2 100644
--- a/packages/PackageInstaller/res/values-bg/strings.xml
+++ b/packages/PackageInstaller/res/values-bg/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Искате ли да деинсталирате това приложение за потребителя <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Това приложение да се замени ли с фабричната версия? Всички данни ще бъдат премахнати."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Това приложение да се замени ли с фабричната версия? Всички данни ще бъдат премахнати. Промяната ще засегне всеки потребител на устройството, включително тези със служебни потребителски профили."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Премахване и на <xliff:g id="SIZE">%1$s</xliff:g> свързани мултимедийни файлове."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Запазване на <xliff:g id="SIZE">%1$s</xliff:g> данни от приложението."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Активни деинсталирания"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Неуспешни деинсталирания"</string>
<string name="uninstalling" msgid="8709566347688966845">"Деинсталира се..."</string>
diff --git a/packages/PackageInstaller/res/values-bn/strings.xml b/packages/PackageInstaller/res/values-bn/strings.xml
index ee264d91b944..2e610bb6f3e7 100644
--- a/packages/PackageInstaller/res/values-bn/strings.xml
+++ b/packages/PackageInstaller/res/values-bn/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"আপনি কি <xliff:g id="USERNAME">%1$s</xliff:g>-এর জন্য এই অ্যাপটি আনইনস্টল করতে চান?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ফ্যাক্টরি ভার্সন দিয়ে এই অ্যাপটিকে বদলাতে চান? সব ডেটা মুছে যাবে।"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ফ্যাক্টরি ভার্সন দিয়ে এই অ্যাপটিকে বদলাতে চান? সব ডেটা মুছে যাবে। এই ডিভাইসে কাজের প্রোফাইল আছে এমন ব্যবহারকারী সহ সবাই এর দ্বারা প্রভাবিত হবেন।"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"অ্যাপের সাথে সম্পর্কিত <xliff:g id="SIZE">%1$s</xliff:g> সাইজের মিডিয়া ফাইলগুলিও সরিয়ে দিন।"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"অ্যাপ ডেটার মধ্যে <xliff:g id="SIZE">%1$s</xliff:g> রেখে দিন।"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"আনইনস্টল করা হচ্ছে"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"আনইনস্টল করা যায়নি"</string>
<string name="uninstalling" msgid="8709566347688966845">"আনইনস্টল করা হচ্ছে…"</string>
diff --git a/packages/PackageInstaller/res/values-bs/strings.xml b/packages/PackageInstaller/res/values-bs/strings.xml
index 97ba693322e1..84a5a1671835 100644
--- a/packages/PackageInstaller/res/values-bs/strings.xml
+++ b/packages/PackageInstaller/res/values-bs/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Želite li deinstalirati ovu aplikaciju za korisnika <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Želite li ovu aplikaciju zamijeniti s fabričkom verzijom? Svi podaci će biti uklonjeni."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Želite li ovu aplikaciju zamijeniti s fabričkom verzijom? Svi podaci će biti uklonjeni. To će uticati na sve korisnike uređaja, uključujući i one s radnim profilima."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Također ukloni <xliff:g id="SIZE">%1$s</xliff:g> povezanih medijskih fajlova."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Zadržati <xliff:g id="SIZE">%1$s</xliff:g> podataka aplikacije."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Tekuća deinstaliranja"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neuspjela deinstaliranja"</string>
<string name="uninstalling" msgid="8709566347688966845">"Deinstaliranje..."</string>
diff --git a/packages/PackageInstaller/res/values-ca/strings.xml b/packages/PackageInstaller/res/values-ca/strings.xml
index a0908081e3cf..6c081619f03c 100644
--- a/packages/PackageInstaller/res/values-ca/strings.xml
+++ b/packages/PackageInstaller/res/values-ca/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Vols desinstal·lar aquesta aplicació per a l\'usuari <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Vols substituir aquesta aplicació per la versió de fàbrica? Se suprimiran totes les dades."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Vols substituir aquesta aplicació per la versió de fàbrica? Se suprimiran totes les dades. Això afectarà tots els usuaris d\'aquest dispositiu, inclosos els que tinguin un perfil professional."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Suprimeix també <xliff:g id="SIZE">%1$s</xliff:g> de fitxers multimèdia associats."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Conserva <xliff:g id="SIZE">%1$s</xliff:g> de dades de l\'aplicació."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Desinstal·lacions en curs"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Desinstal·lacions fallides"</string>
<string name="uninstalling" msgid="8709566347688966845">"S\'està desinstal·lant…"</string>
diff --git a/packages/PackageInstaller/res/values-cs/strings.xml b/packages/PackageInstaller/res/values-cs/strings.xml
index 1e46214b4b0c..8e4ce59cf3f1 100644
--- a/packages/PackageInstaller/res/values-cs/strings.xml
+++ b/packages/PackageInstaller/res/values-cs/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Chcete tuto aplikaci pro uživatele <xliff:g id="USERNAME">%1$s</xliff:g> odinstalovat?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Chcete tuto aplikaci nahradit tovární verzí? Všechna data budou odstraněna."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Chcete tuto aplikaci nahradit tovární verzí? Všechna data budou odstraněna. Tato akce ovlivní všechny uživatele zařízení, včetně uživatelů s pracovním profilem."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Odstranit také <xliff:g id="SIZE">%1$s</xliff:g> přidružených mediálních souborů."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Ponechat data aplikace o velikosti <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Probíhající odinstalace"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neúspěšné odinstalace"</string>
<string name="uninstalling" msgid="8709566347688966845">"Odinstalace…"</string>
diff --git a/packages/PackageInstaller/res/values-da/strings.xml b/packages/PackageInstaller/res/values-da/strings.xml
index d35fb9caa6f1..933ff3f70b31 100644
--- a/packages/PackageInstaller/res/values-da/strings.xml
+++ b/packages/PackageInstaller/res/values-da/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Vil du afinstallere denne app for brugeren <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Vil du erstatte denne app med fabriksversionen? Alle data fjernes."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Vil du erstatte denne app med fabriksversionen? Alle data fjernes. Dette påvirker alle brugere af denne enhed, bl.a. brugere med arbejdsprofiler."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Fjern også <xliff:g id="SIZE">%1$s</xliff:g> tilknyttede mediefiler."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Behold <xliff:g id="SIZE">%1$s</xliff:g> appdata."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Igangværende afinstallationer"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mislykkede afinstallationer"</string>
<string name="uninstalling" msgid="8709566347688966845">"Afinstallerer…"</string>
diff --git a/packages/PackageInstaller/res/values-de/strings.xml b/packages/PackageInstaller/res/values-de/strings.xml
index 367eb243e1e9..4ad9b7387898 100644
--- a/packages/PackageInstaller/res/values-de/strings.xml
+++ b/packages/PackageInstaller/res/values-de/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Möchtest du diese App für den Nutzer <xliff:g id="USERNAME">%1$s</xliff:g> deinstallieren?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Diese App durch die Werksversion ersetzen? Alle Daten werden entfernt."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Diese App durch die Werksversion ersetzen? Alle Daten werden entfernt. Dies betrifft alle Nutzer des Geräts, einschließlich Arbeitsprofilen."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Auch <xliff:g id="SIZE">%1$s</xliff:g> der verknüpften Mediendateien entfernen."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> an App-Daten behalten."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Laufende Deinstallationen"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Fehlgeschlagene Deinstallationen"</string>
<string name="uninstalling" msgid="8709566347688966845">"Wird deinstalliert..."</string>
diff --git a/packages/PackageInstaller/res/values-el/strings.xml b/packages/PackageInstaller/res/values-el/strings.xml
index d179acb0dbb9..36f9f2d4b2f5 100644
--- a/packages/PackageInstaller/res/values-el/strings.xml
+++ b/packages/PackageInstaller/res/values-el/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Θέλετε να απεγκαταστήσετε αυτήν την εφαρμογή για τον χρήστη <xliff:g id="USERNAME">%1$s</xliff:g>;"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Να αντικατασταθεί αυτή η εφαρμογή με την εργοστασιακή έκδοση; Όλα τα δεδομένα θα καταργηθούν."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Να αντικατασταθεί αυτή η εφαρμογή με την εργοστασιακή έκδοση; Όλα τα δεδομένα θα καταργηθούν. Αυτό επηρεάζει όλους τους χρήστες της συσκευής, συμπεριλαμβανομένων και των κατόχων προφίλ εργασίας."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Να καταργηθούν επίσης <xliff:g id="SIZE">%1$s</xliff:g> συσχετισμένων αρχείων μέσων."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Διατήρηση <xliff:g id="SIZE">%1$s</xliff:g> δεδομένων εφαρμογών."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Απεγκαταστάσεις σε εξέλιξη"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Αποτυχημένες απεγκαταστάσεις"</string>
<string name="uninstalling" msgid="8709566347688966845">"Απεγκατάσταση…"</string>
diff --git a/packages/PackageInstaller/res/values-en-rAU/strings.xml b/packages/PackageInstaller/res/values-en-rAU/strings.xml
index 4016288a420d..51e61d02f6a7 100644
--- a/packages/PackageInstaller/res/values-en-rAU/strings.xml
+++ b/packages/PackageInstaller/res/values-en-rAU/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Do you want to uninstall this app for the user <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Replace this app with the factory version? All data will be removed."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Replace this app with the factory version? All data will be removed. This affects all users of this device, including those with work profiles."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Also remove <xliff:g id="SIZE">%1$s</xliff:g> of associated media files."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Keep <xliff:g id="SIZE">%1$s</xliff:g> of app data."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Running uninstallations"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Failed uninstallations"</string>
<string name="uninstalling" msgid="8709566347688966845">"Uninstalling…"</string>
diff --git a/packages/PackageInstaller/res/values-en-rCA/strings.xml b/packages/PackageInstaller/res/values-en-rCA/strings.xml
index 4016288a420d..51e61d02f6a7 100644
--- a/packages/PackageInstaller/res/values-en-rCA/strings.xml
+++ b/packages/PackageInstaller/res/values-en-rCA/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Do you want to uninstall this app for the user <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Replace this app with the factory version? All data will be removed."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Replace this app with the factory version? All data will be removed. This affects all users of this device, including those with work profiles."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Also remove <xliff:g id="SIZE">%1$s</xliff:g> of associated media files."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Keep <xliff:g id="SIZE">%1$s</xliff:g> of app data."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Running uninstallations"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Failed uninstallations"</string>
<string name="uninstalling" msgid="8709566347688966845">"Uninstalling…"</string>
diff --git a/packages/PackageInstaller/res/values-en-rGB/strings.xml b/packages/PackageInstaller/res/values-en-rGB/strings.xml
index 4016288a420d..51e61d02f6a7 100644
--- a/packages/PackageInstaller/res/values-en-rGB/strings.xml
+++ b/packages/PackageInstaller/res/values-en-rGB/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Do you want to uninstall this app for the user <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Replace this app with the factory version? All data will be removed."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Replace this app with the factory version? All data will be removed. This affects all users of this device, including those with work profiles."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Also remove <xliff:g id="SIZE">%1$s</xliff:g> of associated media files."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Keep <xliff:g id="SIZE">%1$s</xliff:g> of app data."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Running uninstallations"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Failed uninstallations"</string>
<string name="uninstalling" msgid="8709566347688966845">"Uninstalling…"</string>
diff --git a/packages/PackageInstaller/res/values-en-rIN/strings.xml b/packages/PackageInstaller/res/values-en-rIN/strings.xml
index 4016288a420d..51e61d02f6a7 100644
--- a/packages/PackageInstaller/res/values-en-rIN/strings.xml
+++ b/packages/PackageInstaller/res/values-en-rIN/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Do you want to uninstall this app for the user <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Replace this app with the factory version? All data will be removed."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Replace this app with the factory version? All data will be removed. This affects all users of this device, including those with work profiles."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Also remove <xliff:g id="SIZE">%1$s</xliff:g> of associated media files."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Keep <xliff:g id="SIZE">%1$s</xliff:g> of app data."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Running uninstallations"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Failed uninstallations"</string>
<string name="uninstalling" msgid="8709566347688966845">"Uninstalling…"</string>
diff --git a/packages/PackageInstaller/res/values-en-rXC/strings.xml b/packages/PackageInstaller/res/values-en-rXC/strings.xml
index 68332630acff..de4b31eb85ad 100644
--- a/packages/PackageInstaller/res/values-en-rXC/strings.xml
+++ b/packages/PackageInstaller/res/values-en-rXC/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‎‎‎‏‎‎‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‎‎‏‏‎‏‎‏‏‎‏‎‏‎‎‎‎‏‏‏‎‎Do you want to uninstall this app for the user ‎‏‎‎‏‏‎<xliff:g id="USERNAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎?‎‏‎‎‏‎"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎Replace this app with the factory version? All data will be removed.‎‏‎‎‏‎"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‎‏‎‏‏‎Replace this app with the factory version? All data will be removed. This affects all users of this device, including those with work profiles.‎‏‎‎‏‎"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‎‏‎‎‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎Also remove ‎‏‎‎‏‏‎<xliff:g id="SIZE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ of associated media files.‎‏‎‎‏‎"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‏‎‏‎‏‏‏‎‎‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‎‎Keep ‎‏‎‎‏‏‎<xliff:g id="SIZE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ of app data.‎‏‎‎‏‎"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‎Running uninstalls‎‏‎‎‏‎"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‎‏‏‎‎‎‏‏‏‎‏‎‏‏‎‏‎‎‏‎‏‎‏‏‎‎‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‎‎Failed uninstalls‎‏‎‎‏‎"</string>
<string name="uninstalling" msgid="8709566347688966845">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‎‎‏‎‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‏‎‏‎‏‏‏‏‎‏‎Uninstalling…‎‏‎‎‏‎"</string>
diff --git a/packages/PackageInstaller/res/values-es-rUS/strings.xml b/packages/PackageInstaller/res/values-es-rUS/strings.xml
index dd45a791040c..ce8edfee4fae 100644
--- a/packages/PackageInstaller/res/values-es-rUS/strings.xml
+++ b/packages/PackageInstaller/res/values-es-rUS/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"¿Quieres desinstalar esta app para el usuario <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"¿Deseas reemplazar esta app con la versión de fábrica? Se quitarán todos los datos."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"¿Deseas reemplazar esta app con la versión de fábrica? Se quitarán todos los datos. Esta acción afectará a todos los usuarios de este dispositivo, incluidos los que tengan perfiles de trabajo."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"También quitar <xliff:g id="SIZE">%1$s</xliff:g> de archivos multimedia asociados."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Guardar <xliff:g id="SIZE">%1$s</xliff:g> en datos de apps"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Desinstalaciones activas"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Desinstalaciones con errores"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalando…"</string>
diff --git a/packages/PackageInstaller/res/values-es/strings.xml b/packages/PackageInstaller/res/values-es/strings.xml
index 7aef3333c13a..72351d6f494e 100644
--- a/packages/PackageInstaller/res/values-es/strings.xml
+++ b/packages/PackageInstaller/res/values-es/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"¿Quieres desinstalar esta aplicación para el usuario <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"¿Quieres sustituir esta aplicación con la versión de fábrica? Ten en cuenta que se borrarán todos los datos."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"¿Quieres sustituir esta aplicación con la versión de fábrica? Ten en cuenta que se borrarán todos los datos. Esto afecta a todos los usuarios del dispositivo, incluidos los que tienen perfiles de trabajo."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Eliminar también <xliff:g id="SIZE">%1$s</xliff:g> de archivos multimedia asociados."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Mantener <xliff:g id="SIZE">%1$s</xliff:g> de datos de aplicaciones."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Desinstalaciones en curso"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Desinstalaciones fallidas"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalando…"</string>
diff --git a/packages/PackageInstaller/res/values-et/strings.xml b/packages/PackageInstaller/res/values-et/strings.xml
index 873ac48343ed..41e428ac091d 100644
--- a/packages/PackageInstaller/res/values-et/strings.xml
+++ b/packages/PackageInstaller/res/values-et/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Kas soovite selle rakenduse kasutaja <xliff:g id="USERNAME">%1$s</xliff:g> kontolt desinstallida?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Kas asendada see rakendus tehaseversiooniga? Kõik andmed eemaldatakse."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Kas asendada see rakendus tehaseversiooniga? Kõik andmed eemaldatakse. See mõjutab kõiki seadme kasutajaid, sh neid, kellel on tööprofiilid."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Eemalda ka <xliff:g id="SIZE">%1$s</xliff:g> seotud meediafailidest."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Säilita rakenduse andmete hulk <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Käimasolevad desinstallimised"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Ebaõnnestunud desinstallimised"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstallimine …"</string>
diff --git a/packages/PackageInstaller/res/values-eu/strings.xml b/packages/PackageInstaller/res/values-eu/strings.xml
index 6e79ac86a957..30a366592fb4 100644
--- a/packages/PackageInstaller/res/values-eu/strings.xml
+++ b/packages/PackageInstaller/res/values-eu/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"<xliff:g id="USERNAME">%1$s</xliff:g> erabiltzaileari desinstalatu nahi diozu aplikazioa?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Aplikazio hau jatorrizko bertsioarekin ordeztu nahi duzu? Datu guztiak ezabatuko dira."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Aplikazio hau jatorrizko bertsioarekin ordeztu nahi duzu? Datu guztiak ezabatuko dira. Gailuaren erabiltzaile guztiengan izango du eragina, laneko profilak dituztenak barne."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Halaber, kendu erlazionatutako multimedia-fitxategiak (<xliff:g id="SIZE">%1$s</xliff:g>)."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Mantendu aplikazio-datuen <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Abian diren desinstalatze-eragiketak"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Desinstalatu ezin izan direnak"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalatzen…"</string>
diff --git a/packages/PackageInstaller/res/values-fa/strings.xml b/packages/PackageInstaller/res/values-fa/strings.xml
index 7a36387c968c..2353d4ac02a4 100644
--- a/packages/PackageInstaller/res/values-fa/strings.xml
+++ b/packages/PackageInstaller/res/values-fa/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"آیا می‌خواهید این برنامه را برای این کاربر <xliff:g id="USERNAME">%1$s</xliff:g> حذف نصب کنید؟"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"این برنامه با نسخه کارخانه جایگزین شود؟ همه داده‌ها پاک می‌شود."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"این برنامه با نسخه کارخانه جایگزین شود؟ همه داده‌ها پاک می‌شود. این کار همه کاربران این دستگاه (ازجمله کاربرانی که نمایه کاری دارند) را تحت تأثیر قرار خواهد داد."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"همچنین <xliff:g id="SIZE">%1$s</xliff:g> از فایل‌های رسانه مرتبط برداشته شود."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> از داده‌های برنامه را نگه‌دارید."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"حذف‌نصب‌های درحال انجام"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"حذف‌نصب‌های ناموفق"</string>
<string name="uninstalling" msgid="8709566347688966845">"درحال حذف نصب..."</string>
diff --git a/packages/PackageInstaller/res/values-fi/strings.xml b/packages/PackageInstaller/res/values-fi/strings.xml
index b73c50b8f370..f4f1c083db34 100644
--- a/packages/PackageInstaller/res/values-fi/strings.xml
+++ b/packages/PackageInstaller/res/values-fi/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Haluatko poistaa tämän sovelluksen käyttäjältä <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Haluatko korvata tämän sovelluksen tehdasversiolla? Kaikki data poistetaan."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Haluatko korvata tämän sovelluksen tehdasversiolla? Kaikki data poistetaan. Tämä vaikuttaa kaikkiin laitteen käyttäjiin, myös työprofiileihin."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Poista myös <xliff:g id="SIZE">%1$s</xliff:g> tähän liittyviä mediatiedostoja"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Säilytä <xliff:g id="SIZE">%1$s</xliff:g> sovellusdataa"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Käynnissä olevat poistot"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Epäonnistuneet poistot"</string>
<string name="uninstalling" msgid="8709566347688966845">"Poistetaan…"</string>
diff --git a/packages/PackageInstaller/res/values-fr-rCA/strings.xml b/packages/PackageInstaller/res/values-fr-rCA/strings.xml
index a6cd289223ee..78c04b3eb164 100644
--- a/packages/PackageInstaller/res/values-fr-rCA/strings.xml
+++ b/packages/PackageInstaller/res/values-fr-rCA/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Voulez-vous désinstaller cette application pour l\'utilisateur <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Remplacer cette application par la version d\'usine? Toutes les données seront supprimées."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Remplacer cette application par la version d\'usine? Toutes les données seront supprimées. Cela touchera tous les utilisateurs de cet appareil, y compris ceux qui utilisent un profil professionnel."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Aussi supprimer <xliff:g id="SIZE">%1$s</xliff:g> de fichiers médias connexes."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Garder <xliff:g id="SIZE">%1$s</xliff:g> de données d\'application."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Désinstallations en cours…"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Désinstallations échouées"</string>
<string name="uninstalling" msgid="8709566347688966845">"Désinstallation en cours…"</string>
diff --git a/packages/PackageInstaller/res/values-fr/strings.xml b/packages/PackageInstaller/res/values-fr/strings.xml
index d36322ad065c..7d69edf335e5 100644
--- a/packages/PackageInstaller/res/values-fr/strings.xml
+++ b/packages/PackageInstaller/res/values-fr/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Voulez-vous désinstaller cette application pour l\'utilisateur <xliff:g id="USERNAME">%1$s</xliff:g> ?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Remplacer cette application par la version d\'usine ? Toutes les données seront supprimées."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Remplacer cette application par la version d\'usine ? Toutes les données seront supprimées. Tous les utilisateurs de cet appareil seront affectés, y compris ceux qui ont un profil professionnel."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Supprimer également <xliff:g id="SIZE">%1$s</xliff:g> de fichiers multimédias associés."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Conserver <xliff:g id="SIZE">%1$s</xliff:g> de données d\'application."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Désinstallations en cours"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Échec des désinstallations"</string>
<string name="uninstalling" msgid="8709566347688966845">"Désinstallation…"</string>
diff --git a/packages/PackageInstaller/res/values-gl/strings.xml b/packages/PackageInstaller/res/values-gl/strings.xml
index a7b42789cf3a..fa010c2d335a 100644
--- a/packages/PackageInstaller/res/values-gl/strings.xml
+++ b/packages/PackageInstaller/res/values-gl/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Queres desinstalar esta aplicación para o usuario que se chama <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Queres substituír esta aplicación pola versión que viña de fábrica? Eliminaranse todos os datos."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Queres substituír esta aplicación pola versión que viña de fábrica? Eliminaranse todos os datos. Isto afectará a todos os usuarios do dispositivo, incluídos os que teñan perfís de traballo."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Quitar tamén <xliff:g id="SIZE">%1$s</xliff:g> de ficheiros multimedia asociados."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Conservar os datos da aplicación, que ocupan <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Desinstalacións en curso"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Erros nas desinstalacións"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalando…"</string>
diff --git a/packages/PackageInstaller/res/values-gu/strings.xml b/packages/PackageInstaller/res/values-gu/strings.xml
index 66e6fd166a8c..1b7e936235f2 100644
--- a/packages/PackageInstaller/res/values-gu/strings.xml
+++ b/packages/PackageInstaller/res/values-gu/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"શું તમે <xliff:g id="USERNAME">%1$s</xliff:g> વપરાશકર્તા માટે આ ઍપ્લિકેશનને અનઇન્સ્ટૉલ કરવા માગો છો?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"આ ઍપ્લિકેશનને ફેક્ટરી વર્ઝનથી બદલીએ? બધો ડેટા કાઢી નાખવામાં આવશે."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"આ ઍપ્લિકેશનને ફેક્ટરી વર્ઝનથી બદલીએ? બધો ડેટા કાઢી નાખવામાં આવશે. આનાથી કાર્યાલયની પ્રોફાઇલ ધરાવનારા વપરાશકર્તાઓ સહિત આ ડિવાઇસના બધા વપરાશકર્તાઓ પ્રભાવિત થશે."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"<xliff:g id="SIZE">%1$s</xliff:g>ની સંકળાયેલી મીડિયા ફાઇલોને પણ કાઢી નાખો."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g>નો ઍપ ડેટા રાખો."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ચાલી રહેલા અનઇન્સ્ટૉલ"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"નિષ્ફળ થયેલા અનઇન્સ્ટૉલ"</string>
<string name="uninstalling" msgid="8709566347688966845">"અનઇન્સ્ટૉલ કરી રહ્યાં છીએ…"</string>
diff --git a/packages/PackageInstaller/res/values-hi/strings.xml b/packages/PackageInstaller/res/values-hi/strings.xml
index 3c6031c92ad8..3ffa7e31fcea 100644
--- a/packages/PackageInstaller/res/values-hi/strings.xml
+++ b/packages/PackageInstaller/res/values-hi/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"क्या आप उपयोगकर्ता <xliff:g id="USERNAME">%1$s</xliff:g> के लिए इस ऐप्लिकेशन को अनइंस्टॉल करना चाहते हैं?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"इस ऐप्लिकेशन को फ़ैक्ट्री वर्शन से बदलें? सभी डेटा हटा दिया जाएगा."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"इस ऐप्लिकेशन को फ़ैक्ट्री वर्शन से बदलें? पूरा डेटा हटा दिया जाएगा. इसका असर इस डिवाइस के सभी उपयोगकर्ताओं पर पड़ेगा, जिनमें काम की प्रोफ़ाइलों वाले उपयोगकर्ता शामिल हैं."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"<xliff:g id="SIZE">%1$s</xliff:g> जुड़ी हुई मीडिया फ़ाइलें भी हटाएं."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> ऐप्लिकेशन डेटा रखें."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"वे अनइंस्टॉल जो चल रहे हैं"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"वे अनइंस्टॉल जो सफल नहीं रहे"</string>
<string name="uninstalling" msgid="8709566347688966845">"अनइंस्‍टॉल हो रहा है…"</string>
diff --git a/packages/PackageInstaller/res/values-hr/strings.xml b/packages/PackageInstaller/res/values-hr/strings.xml
index 380df4a67327..769001a83c99 100644
--- a/packages/PackageInstaller/res/values-hr/strings.xml
+++ b/packages/PackageInstaller/res/values-hr/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Želite li deinstalirati tu aplikaciju za korisnika <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Želite li tu aplikaciju zamijeniti tvorničkom verzijom? Izgubit ćete sve podatke."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Želite li tu aplikaciju zamijeniti tvorničkom verzijom? Izgubit ćete sve podatke. To se odnosi na sve korisnike uređaja, uključujući one s radnim profilima."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Ukloni i <xliff:g id="SIZE">%1$s</xliff:g> povezanih medijskih datoteka."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Zadrži <xliff:g id="SIZE">%1$s</xliff:g> podataka aplikacije."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Deinstaliranja u tijeku"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neuspjela deinstaliranja"</string>
<string name="uninstalling" msgid="8709566347688966845">"Deinstaliranje…"</string>
diff --git a/packages/PackageInstaller/res/values-hu/strings.xml b/packages/PackageInstaller/res/values-hu/strings.xml
index 9cbff8b831c6..9aceb8d2c9d3 100644
--- a/packages/PackageInstaller/res/values-hu/strings.xml
+++ b/packages/PackageInstaller/res/values-hu/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Eltávolítja ezt az alkalmazást <xliff:g id="USERNAME">%1$s</xliff:g> felhasználó esetében?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Lecseréli az alkalmazást a gyári verzióra? Minden adat törlődik."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Lecseréli az alkalmazást a gyári verzióra? Minden adat törlődik. Ez az eszköz összes felhasználóját érinti, így a munkaprofilokkal rendelkezőket is."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Távolítsa el a társított médiafájlokat is (összesen: <xliff:g id="SIZE">%1$s</xliff:g>)."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> alkalmazásadat megtartása."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Futó eltávolítások"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Sikertelen telepítések"</string>
<string name="uninstalling" msgid="8709566347688966845">"Eltávolítás…"</string>
diff --git a/packages/PackageInstaller/res/values-hy/strings.xml b/packages/PackageInstaller/res/values-hy/strings.xml
index 2e2c8559bff8..da1bf3cd16cb 100644
--- a/packages/PackageInstaller/res/values-hy/strings.xml
+++ b/packages/PackageInstaller/res/values-hy/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Ապատեղադրե՞լ այս հավելվածը <xliff:g id="USERNAME">%1$s</xliff:g> օգտատիրոջ համար:"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Փոխարինե՞լ այս հավելվածը գործարանային տարբերակով: Բոլոր տվյալները կհեռացվեն:"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Փոխարինե՞լ այս հավելվածը գործարանային տարբերակով: Բոլոր տվյալները կհեռացվեն: Դա վերաբերում է այս սարքի բոլոր օգտատերերին, այդ թվում նաև աշխատանքային պրոֆիլներ ունեցողներին:"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Նաև հեռացնել առնչվող մեդիա ֆայլերը (<xliff:g id="SIZE">%1$s</xliff:g>)"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Չհեռացնել հավելվածների տվյալները (<xliff:g id="SIZE">%1$s</xliff:g>):"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Ընթացիկ ապատեղադրումներ"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Ձախողված ապատեղադրումներ"</string>
<string name="uninstalling" msgid="8709566347688966845">"Ապատեղադրվում է…"</string>
diff --git a/packages/PackageInstaller/res/values-in/strings.xml b/packages/PackageInstaller/res/values-in/strings.xml
index fadff6148bc5..15f3b41df3ea 100644
--- a/packages/PackageInstaller/res/values-in/strings.xml
+++ b/packages/PackageInstaller/res/values-in/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Apakah Anda ingin meng-uninstal aplikasi ini untuk pengguna <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Ganti aplikasi ini dengan versi setelan pabrik? Semua data akan dihapus."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Ganti aplikasi ini dengan versi setelan pabrik? Semua data akan dihapus. Tindakan ini memengaruhi semua pengguna perangkat ini, termasuk yang memiliki profil kerja."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Hapus juga <xliff:g id="SIZE">%1$s</xliff:g> dari file media terkait."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Pertahankan data aplikasi sebesar <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Menjalankan proses uninstal"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Proses uninstal yang gagal"</string>
<string name="uninstalling" msgid="8709566347688966845">"Meng-uninstal..."</string>
diff --git a/packages/PackageInstaller/res/values-is/strings.xml b/packages/PackageInstaller/res/values-is/strings.xml
index a50714fe3be6..e27be00838d0 100644
--- a/packages/PackageInstaller/res/values-is/strings.xml
+++ b/packages/PackageInstaller/res/values-is/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Viltu fjarlægja þetta forrit fyrir notandann <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Viltu skipta þessu forriti út fyrir verksmiðjuútgáfuna? Öll gögn verða fjarlægð."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Viltu skipta þessu forriti út fyrir verksmiðjuútgáfuna? Öll gögn verða fjarlægð. Þetta hefur áhrif á alla notendur tækisins, þar á meðal þá sem eru með vinnusnið."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Fjarlægja einnig <xliff:g id="SIZE">%1$s</xliff:g> af tengdum efnisskrám."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Halda <xliff:g id="SIZE">%1$s</xliff:g> af forritagögnum."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Fjarlægingar í gangi"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Fjarlægingar sem mistókust"</string>
<string name="uninstalling" msgid="8709566347688966845">"Fjarlægir…"</string>
diff --git a/packages/PackageInstaller/res/values-it/strings.xml b/packages/PackageInstaller/res/values-it/strings.xml
index 5ca7edafb30d..9f67a58a0dae 100644
--- a/packages/PackageInstaller/res/values-it/strings.xml
+++ b/packages/PackageInstaller/res/values-it/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Disinstallare l\'app per l\'utente <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Sostituire questa app con la versione di fabbrica? Tutti i dati verranno rimossi."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Sostituire questa app con la versione di fabbrica? Tutti i dati verranno rimossi. Saranno interessati tutti gli utenti del dispositivo, inclusi quelli che hanno profili di lavoro."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Rimuovi anche <xliff:g id="SIZE">%1$s</xliff:g> di file multimediali associati."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Mantieni <xliff:g id="SIZE">%1$s</xliff:g> di dati delle app."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Disinstallazioni in esecuzione"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Disinstallazioni non riuscite"</string>
<string name="uninstalling" msgid="8709566347688966845">"Disinstallazione…"</string>
diff --git a/packages/PackageInstaller/res/values-iw/strings.xml b/packages/PackageInstaller/res/values-iw/strings.xml
index cd94cdaeae9b..628b33539584 100644
--- a/packages/PackageInstaller/res/values-iw/strings.xml
+++ b/packages/PackageInstaller/res/values-iw/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"האם ברצונך להסיר את התקנתה של אפליקציה זו עבור המשתמש <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"האם להחליף את האפליקציה הזאת בגרסת היצרן? כל הנתונים יוסרו."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"האם להחליף את האפליקציה הזאת בגרסת היצרן? כל הנתונים יוסרו. הפעולה תשפיע על כל משתמשי המכשיר, כולל משתמשים בעלי פרופיל עבודה."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"להסיר גם <xliff:g id="SIZE">%1$s</xliff:g> של קובצי מדיה משויכים."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"שמירת <xliff:g id="SIZE">%1$s</xliff:g> מנתוני האפליקציה."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"התקנות בתהליכי הסרה"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"הסרות התקנה שנכשלו"</string>
<string name="uninstalling" msgid="8709566347688966845">"מסיר התקנה..."</string>
diff --git a/packages/PackageInstaller/res/values-ja/strings.xml b/packages/PackageInstaller/res/values-ja/strings.xml
index 7496016e41ea..4e748bc5b6f1 100644
--- a/packages/PackageInstaller/res/values-ja/strings.xml
+++ b/packages/PackageInstaller/res/values-ja/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"<xliff:g id="USERNAME">%1$s</xliff:g> さんのアプリをアンインストールしますか?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"このアプリを出荷時の状態に戻しますか?データがすべて削除されます。"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"このアプリを出荷時の状態に戻しますか?データがすべて削除されます。これは、仕事用プロファイルを設定しているユーザーも含めて、この端末を使用するすべてのユーザーが対象となります。"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"関連付けられたメディア ファイル(<xliff:g id="SIZE">%1$s</xliff:g>)も削除する。"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"アプリのデータ(<xliff:g id="SIZE">%1$s</xliff:g>)を保持"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"アンインストールを実行しています"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"エラーになったアンインストール"</string>
<string name="uninstalling" msgid="8709566347688966845">"アンインストールしています…"</string>
diff --git a/packages/PackageInstaller/res/values-ka/strings.xml b/packages/PackageInstaller/res/values-ka/strings.xml
index aac14dca4d16..fc4ba2901b8c 100644
--- a/packages/PackageInstaller/res/values-ka/strings.xml
+++ b/packages/PackageInstaller/res/values-ka/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"გსურთ ამ აპის დეინსტალაცია <xliff:g id="USERNAME">%1$s</xliff:g>-ისთვის?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"გსურთ ამ აპის ჩანაცვლება ქარხნული ვერსიით? მონაცემები მთლიანად ამოიშლება."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"გსურთ ამ აპის ჩანაცვლება ქარხნული ვერსიით? მონაცემები მთლიანად ამოიშლება. ეს ქმედება აისახება ამ მოწყობილობის ყველა მომხმარებელზე, მათ შორის, სამსახურის პროფილებით მოსარგებლეებზეც."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"ასევე ამოიშალოს დაკავშირებული მედიაფაილების <xliff:g id="SIZE">%1$s</xliff:g>."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"შენარჩუნდეს აპების მონაცემების <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"გაშვებული დეინსტალაციები"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"შეუსრულებელი დეინსტალაციები"</string>
<string name="uninstalling" msgid="8709566347688966845">"მიმდინარეობს დეინსტალაცია…"</string>
diff --git a/packages/PackageInstaller/res/values-kk/strings.xml b/packages/PackageInstaller/res/values-kk/strings.xml
index a105a005f00f..cecc482c8a27 100644
--- a/packages/PackageInstaller/res/values-kk/strings.xml
+++ b/packages/PackageInstaller/res/values-kk/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"<xliff:g id="USERNAME">%1$s</xliff:g> үшін осы қолданба жойылсын ба?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Осы қолданбаны зауыттық нұсқамен ауыстыру керек пе? Барлық деректер жойылады."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Осы қолданбаны зауыттық нұсқамен ауыстыру керек пе? Барлық деректер жойылады. Бұл осы құрылғының барлық пайдаланушыларына, соның ішінде жұмыс профильдері бар пайдаланушыларға әсер етеді."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Байланыстырылған <xliff:g id="SIZE">%1$s</xliff:g> медиа файлдар да өшірілсін."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Қолданба деректерін (<xliff:g id="SIZE">%1$s</xliff:g>) сақтау."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Орындалып жатқан жою процестері"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Сәтсіз жою әрекеттері"</string>
<string name="uninstalling" msgid="8709566347688966845">"Жойылуда…"</string>
diff --git a/packages/PackageInstaller/res/values-km/strings.xml b/packages/PackageInstaller/res/values-km/strings.xml
index ce0db9108813..6bdc582efe1b 100644
--- a/packages/PackageInstaller/res/values-km/strings.xml
+++ b/packages/PackageInstaller/res/values-km/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"តើ​អ្នក​ចង់​លុប​កម្មវិធី​នេះ​សម្រាប់​អ្នកប្រើប្រាស់ <xliff:g id="USERNAME">%1$s</xliff:g> ដែរទេ?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ជំនួសកម្មវិធីនេះដោយប្រើកំណែរោងចក្រ? ទិន្នន័យទាំងអស់នឹងត្រូវបានលុប។"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ជំនួសកម្មវិធីនេះដោយប្រើកំណែរោងចក្រ? ទិន្នន័យទាំងអស់នឹងត្រូវបានលុប។ សកម្មភាព​នេះប៉ះពាល់ដល់អ្នកប្រើប្រាស់ទាំងអស់​របស់ឧបករណ៍នេះ រួម​ទាំងអ្នកប្រើប្រាស់ដែលមានកម្រង​ព័ត៌មាន​ការងារ​ផងដែរ។"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"ក៏លុប​ឯកសារ​មេឌៀ​ដែល​ពាក់ព័ន្ធ​ទំហំ <xliff:g id="SIZE">%1$s</xliff:g> ផងដែរ។"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"រក្សាទុក​ទិន្នន័យ​កម្មវិធីទំហំ <xliff:g id="SIZE">%1$s</xliff:g>។"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"កំពុង​ដំណើរការ​ការលុប"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ការលុប​ដែល​បរាជ័យ"</string>
<string name="uninstalling" msgid="8709566347688966845">"កំពុង​លុប…"</string>
diff --git a/packages/PackageInstaller/res/values-kn/strings.xml b/packages/PackageInstaller/res/values-kn/strings.xml
index 4c5373eb010b..d78d3687f7a9 100644
--- a/packages/PackageInstaller/res/values-kn/strings.xml
+++ b/packages/PackageInstaller/res/values-kn/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"<xliff:g id="USERNAME">%1$s</xliff:g> ಬಳಕೆದಾರರಿಗೆ ಈ ಆ್ಯಪ್‌ ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್‌ ಮಾಡಲು ನೀವು ಬಯಸುವಿರಾ?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ಈ ಆ್ಯಪ್‌ ಬದಲಿಗೆ ಫ್ಯಾಕ್ಟರಿ ಆವೃತ್ತಿಯನ್ನು ಬದಲಾಯಿಸುವುದೇ? ಎಲ್ಲಾ ಡೇಟಾ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ಈ ಆ್ಯಪ್‌ ಬದಲಿಗೆ ಫ್ಯಾಕ್ಟರಿ ಆವೃತ್ತಿಯನ್ನು ಬದಲಾಯಿಸುವುದೇ? ಎಲ್ಲಾ ಡೇಟಾ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. ಕೆಲಸದ ಪ್ರೊಫೈಲ್‌ಗಳನ್ನು ಹೊಂದಿರುವವುಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಈ ಸಾಧನದ ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗೆ ಇದು ಪರಿಣಾಮ ಬೀರುತ್ತದೆ."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"ಸಂಯೋಜಿತ ಮಾಧ್ಯಮ ಫೈಲ್‌ಗಳ <xliff:g id="SIZE">%1$s</xliff:g> ಗಾತ್ರವನ್ನು ಕೂಡ ತೆಗೆದುಹಾಕಿ"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"ಆ್ಯಪ್ ಡೇಟಾದಲ್ಲಿ <xliff:g id="SIZE">%1$s</xliff:g> ಇರಿಸಿಕೊಳ್ಳಿ."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ಚಾಲನೆಯಲ್ಲಿರುವ ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್‌ಗಳು"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ವಿಫಲಗೊಂಡ ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್‌ಗಳು"</string>
<string name="uninstalling" msgid="8709566347688966845">"ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ..."</string>
diff --git a/packages/PackageInstaller/res/values-ko/strings.xml b/packages/PackageInstaller/res/values-ko/strings.xml
index 1741b6e813e9..f5b4dc8a6ebe 100644
--- a/packages/PackageInstaller/res/values-ko/strings.xml
+++ b/packages/PackageInstaller/res/values-ko/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"<xliff:g id="USERNAME">%1$s</xliff:g>님의 기기에 설치된 앱을 제거하시겠습니까?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"이 앱을 초기 버전으로 바꾸시겠습니까? 모든 데이터가 삭제됩니다."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"이 앱을 초기 버전으로 바꾸시겠습니까? 모든 데이터가 삭제되며 직장 프로필 사용자를 포함해 이 기기의 모든 사용자에게 영향을 미칩니다."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"<xliff:g id="SIZE">%1$s</xliff:g>의 관련 미디어 파일도 삭제합니다."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"앱 데이터 크기를 <xliff:g id="SIZE">%1$s</xliff:g>로 유지합니다."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"실행 중인 제거 작업"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"실패한 제거 작업"</string>
<string name="uninstalling" msgid="8709566347688966845">"제거 중..."</string>
diff --git a/packages/PackageInstaller/res/values-ky/strings.xml b/packages/PackageInstaller/res/values-ky/strings.xml
index 6b4abb9b898e..77c05b069a9b 100644
--- a/packages/PackageInstaller/res/values-ky/strings.xml
+++ b/packages/PackageInstaller/res/values-ky/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Бул колдонмону <xliff:g id="USERNAME">%1$s</xliff:g> үчүн чыгарып саласызбы?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Бул колдонмонун баштапкы версиясы орнотулсунбу? Бардык дайындар өчүп калат."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Бул колдонмонун баштапкы версиясы орнотулсунбу? Түзмөктөгү бардык профилдердин, ошондой эле жумушчу профилдердин дайындары өчүп калат."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Ошондой эле, тиешелүү медиа файлдардын <xliff:g id="SIZE">%1$s</xliff:g> өчүрүү."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Колдонмонун <xliff:g id="SIZE">%1$s</xliff:g> дайындарын сактоо."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Чыгарылып салынууда"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Чыгарылып салынбай калгандар"</string>
<string name="uninstalling" msgid="8709566347688966845">"Чыгарылып салынууда…"</string>
diff --git a/packages/PackageInstaller/res/values-lo/strings.xml b/packages/PackageInstaller/res/values-lo/strings.xml
index aa55e3cb3200..df51634e823c 100644
--- a/packages/PackageInstaller/res/values-lo/strings.xml
+++ b/packages/PackageInstaller/res/values-lo/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"ທ່ານ​ຕ້ອງ​ການ​ຖອນ​ການ​ຕິດ​ຕັ້ງ​ແອັບ​ນີ້​ສຳ​ລັບ​ຜູ້​ໃຊ້ <xliff:g id="USERNAME">%1$s</xliff:g> ບໍ່?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ແທນທີ່ແອັບນີ້ດ້ວຍເວີຊັນທີ່ມາຈາກໂຮງງານບໍ? ຂໍ້ມູນທັງໝົດຈະຖືກລຶບອອກ."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ແທນທີ່ແອັບນີ້ດ້ວຍເວີຊັນທີ່ມາຈາກໂຮງງານບໍ? ຂໍ້ມູນທັງໝົດຈະຖືກລຶບອອກ ເຊິ່ງມີຜົນກັບຜູ້ໃຊ້ອຸປະກອນນີ້ທຸກຄົນ ຮວມທັງຄົນທີ່ມີໂປຣໄຟລ໌ບ່ອນເຮັດວຽກນຳ."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"ລຶບໄຟລ໌ມີເດຍ <xliff:g id="SIZE">%1$s</xliff:g> ທີ່ກ່ຽວຂ້ອງກັນອອກນຳບໍ."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"ຮັກສາຂະໜາດຂໍ້ມູນແອັບ <xliff:g id="SIZE">%1$s</xliff:g> ໄວ້."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ກຳລັງຖອນການຕິດຕັ້ງ"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ຖອນການຕິດຕັ້ງບໍ່ສຳເລັດ"</string>
<string name="uninstalling" msgid="8709566347688966845">"ກຳລັງຖອນການຕິດຕັ້ງ..."</string>
diff --git a/packages/PackageInstaller/res/values-lt/strings.xml b/packages/PackageInstaller/res/values-lt/strings.xml
index aec94c49825f..bec41451fa36 100644
--- a/packages/PackageInstaller/res/values-lt/strings.xml
+++ b/packages/PackageInstaller/res/values-lt/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Ar norite pašalinti šią naudotojo <xliff:g id="USERNAME">%1$s</xliff:g> programą?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Pakeisti šios programos versiją į gamyklinę? Visi duomenys bus pašalinti."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Pakeisti šios programos versiją į gamyklinę? Visi duomenys bus pašalinti. Tai paveiks visus šio įrenginio naudotojus, įskaitant turinčius darbo profilius."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Taip pat pašalinti <xliff:g id="SIZE">%1$s</xliff:g> susijusių medijos failų."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Palikti <xliff:g id="SIZE">%1$s</xliff:g> programų duomenų."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Vykdomi pašalinimai"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Nepavykę pašalinimai"</string>
<string name="uninstalling" msgid="8709566347688966845">"Pašalinama…"</string>
diff --git a/packages/PackageInstaller/res/values-lv/strings.xml b/packages/PackageInstaller/res/values-lv/strings.xml
index 76840cb35ea4..835af00c5bb9 100644
--- a/packages/PackageInstaller/res/values-lv/strings.xml
+++ b/packages/PackageInstaller/res/values-lv/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Vai vēlaties atinstalēt šo lietotni lietotājam <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Vai aizstāt šo lietotni ar rūpnīcas versiju? Visi dati tiks noņemti."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Vai aizstāt šo lietotni ar rūpnīcas versiju? Visi dati tiks noņemti. Tas ietekmēs visu šīs ierīces lietotāju datus, pat ja viņiem ir darba profili."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Noņemt arī saistītos multivides failus (<xliff:g id="SIZE">%1$s</xliff:g>)."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Iegūstiet <xliff:g id="SIZE">%1$s</xliff:g> (lietotnes dati)."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Pašreizējās atinstalēšanas operācijas"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Nesekmīgi atinstalēšanas mēģinājumi"</string>
<string name="uninstalling" msgid="8709566347688966845">"Notiek atinstalēšana…"</string>
diff --git a/packages/PackageInstaller/res/values-mk/strings.xml b/packages/PackageInstaller/res/values-mk/strings.xml
index 998850eb76ac..aa94284930ac 100644
--- a/packages/PackageInstaller/res/values-mk/strings.xml
+++ b/packages/PackageInstaller/res/values-mk/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Дали сакате да ја деинсталирате апликацијава за корисникот <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Сакате да ја замените оваа апликација со фабричката верзија? Сите податоци ќе се отстранат."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Сакате да ја замените оваа апликација со фабричката верзија? Сите податоци ќе се отстранат. Тоа важи за сите корисници на овој уред, вклучувајќи ги и тие со работни профили."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Отстрани и <xliff:g id="SIZE">%1$s</xliff:g> поврзани аудиовизуелни датотеки."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Задржи <xliff:g id="SIZE">%1$s</xliff:g> податоци на апликацијата."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Деинсталации во тек"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Неуспешни деинсталации"</string>
<string name="uninstalling" msgid="8709566347688966845">"Се деинсталира…"</string>
diff --git a/packages/PackageInstaller/res/values-ml/strings.xml b/packages/PackageInstaller/res/values-ml/strings.xml
index d2dbdcfef36f..1ef8d143a49b 100644
--- a/packages/PackageInstaller/res/values-ml/strings.xml
+++ b/packages/PackageInstaller/res/values-ml/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"<xliff:g id="USERNAME">%1$s</xliff:g> എന്ന ഉപയോക്താവിനായി ഈ ആപ്പ് അൺ ഇൻസ്‌റ്റാൾ ചെയ്യണോ?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ഫാക്‌ടറി പതിപ്പ് ഉപയോഗിച്ച് ഈ ആപ്പിന് പകരം വയ്ക്കണോ? എല്ലാ ഡാറ്റയും നീക്കം ചെയ്യപ്പെടും."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ഫാക്‌ടറി പതിപ്പ് ഉപയോഗിച്ച് ഈ ആപ്പിന് പകരം വയ്ക്കണോ? എല്ലാ ഡാറ്റയും നീക്കം ചെയ്യപ്പെടും. ഔദ്യോഗിക പ്രൊഫൈലുകൾ ഉള്ളവർ ഉൾപ്പെടെ, ഈ ഉപകരണത്തിന്റെ എല്ലാ ഉപയോക്താക്കളെയും ഇത് ബാധിക്കും."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"ബന്ധപ്പെട്ട മീഡിയ ഫയലുകളുടെ <xliff:g id="SIZE">%1$s</xliff:g>-യും നീക്കം ചെയ്യുക."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> ആപ്പ് ഡാറ്റ വയ്ക്കുക."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"നിലവിൽ അൺഇൻസ്‌റ്റാൾ ചെയ്യുന്നവ"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"അൺ ഇൻസ്‌റ്റാൾ ചെയ്യാൻ കഴിയാഞ്ഞവ"</string>
<string name="uninstalling" msgid="8709566347688966845">"അണ്‍‌ ഇൻസ്‌റ്റാൾ ചെയ്യുന്നു..."</string>
diff --git a/packages/PackageInstaller/res/values-mn/strings.xml b/packages/PackageInstaller/res/values-mn/strings.xml
index 56a2128499f2..ca15978d7b71 100644
--- a/packages/PackageInstaller/res/values-mn/strings.xml
+++ b/packages/PackageInstaller/res/values-mn/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Та энэ аппыг <xliff:g id="USERNAME">%1$s</xliff:g> хэрэглэгчийн өмнөөс устгахыг хүсэж байна уу?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Энэ аппыг үйлдвэрээс ирсэн хувилбараар солих уу? Бүх өгөгдөл устах болно."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Энэ аппыг үйлдвэрээс ирсэн хувилбараар солих уу? Бүх өгөгдөл устах болно. Энэ нь эдгээр ажлын профайлтай бүхий энэ төхөөрөмжийн бүх хэрэглэгчид нөлөөлнө."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Холбоотой медиа файлуудын <xliff:g id="SIZE">%1$s</xliff:g>-г мөн адил устгана уу."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Аппын өгөгдлийн <xliff:g id="SIZE">%1$s</xliff:g>-г үлдээнэ үү."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Устгаж байна"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Устгаж чадсангүй"</string>
<string name="uninstalling" msgid="8709566347688966845">"Устгаж байна…"</string>
diff --git a/packages/PackageInstaller/res/values-mr/strings.xml b/packages/PackageInstaller/res/values-mr/strings.xml
index 01f3e5b5bd82..218263135b20 100644
--- a/packages/PackageInstaller/res/values-mr/strings.xml
+++ b/packages/PackageInstaller/res/values-mr/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"तुम्हाला <xliff:g id="USERNAME">%1$s</xliff:g> वापरकर्त्यासाठी हे अ‍ॅप अनइंस्टॉल करायचे आहे का?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"फॅक्टरी आवृत्तीसह हे अ‍ॅप बदलायचे का? सर्व डेटा काढला जाईल."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"फॅक्टरी आवृत्तीसह हे अ‍ॅप बदलायचे? सर्व डेटा काढला जाईल. हे कार्य प्रोफाइल असलेल्यांसह या डिव्हाइसच्या सर्व वापरकर्त्यांना प्रभावित करते."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"<xliff:g id="SIZE">%1$s</xliff:g> आकाराच्या संबंधित मीडिया फायलीदेखील काढा."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"अॅप डेटा पैकी <xliff:g id="SIZE">%1$s</xliff:g> ठेवा."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"अनइंस्टॉल रन होत आहेत"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"अनइंस्टॉल करता आले नाही"</string>
<string name="uninstalling" msgid="8709566347688966845">"अनइंस्टॉल करत आहे…"</string>
diff --git a/packages/PackageInstaller/res/values-ms/strings.xml b/packages/PackageInstaller/res/values-ms/strings.xml
index 674f55b86b38..50e00d64b900 100644
--- a/packages/PackageInstaller/res/values-ms/strings.xml
+++ b/packages/PackageInstaller/res/values-ms/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Adakah anda ingin menyahpasang apl ini untuk pengguna <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Gantikan apl ini dengan versi kilang? Semua data akan dialih keluar."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Gantikan apl ini dengan versi kilang? Semua data akan dialih keluar. Tindakan ini melibatkan semua pengguna peranti ini, termasuk mereka yang mempunyai profil kerja."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Alih keluar juga <xliff:g id="SIZE">%1$s</xliff:g> fail media yang berkaitan."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Simpan <xliff:g id="SIZE">%1$s</xliff:g> data apl."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Penyahpasangan yang sedang berjalan"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Penyahpasangan yang gagal"</string>
<string name="uninstalling" msgid="8709566347688966845">"Menyahpasang…"</string>
diff --git a/packages/PackageInstaller/res/values-my/strings.xml b/packages/PackageInstaller/res/values-my/strings.xml
index 9c9295712b25..31c3f93dbdd7 100644
--- a/packages/PackageInstaller/res/values-my/strings.xml
+++ b/packages/PackageInstaller/res/values-my/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"သင်သည် အသုံးပြုသူ <xliff:g id="USERNAME">%1$s</xliff:g> အတွက် ဤအကောင့်ကို ဖယ်ရှားလိုပါသလား။"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ဤအက်ပ်ကို စက်ရုံထုတ်ဗားရှင်းဖြင့် အစားထိုးလိုပါသလား။ ဒေတာများအားလုံးကို ဖယ်ရှားလိုက်ပါမည်။"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ဤအက်ပ်ကို စက်ရုံထုတ်ဗားရှင်းဖြင့် အစားထိုးလိုသလား။ ဒေတာများအားလုံးကို ဖယ်ရှားလိုက်ပါမည်။ ၎င်းသည် အလုပ်ပရိုဖိုင်ဖြင့်သုံးသူများအပါအဝင် အသုံးပြုသူများအားလုံးကို အကျိုးသက်ရောက်စေပါမည်။"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"သက်ဆိုင်ရာ မီဒီယာဖိုင် <xliff:g id="SIZE">%1$s</xliff:g> ကိုလည်း ဖယ်ရှားပါ။"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"အက်ပ်ဒေတာများ၏ <xliff:g id="SIZE">%1$s</xliff:g> ကို ထားရှိရန်။"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ပရိုဂရမ်ကို ဖယ်ရှားနေပါသည်"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ပရိုဂရမ်ကို ဖယ်ရှား၍မရပါ"</string>
<string name="uninstalling" msgid="8709566347688966845">"ပရိုဂရမ်ကို ဖယ်ရှားနေသည်..."</string>
diff --git a/packages/PackageInstaller/res/values-nb/strings.xml b/packages/PackageInstaller/res/values-nb/strings.xml
index 0d3384eac5a0..34c20a1b860c 100644
--- a/packages/PackageInstaller/res/values-nb/strings.xml
+++ b/packages/PackageInstaller/res/values-nb/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Ønsker du å avinstallere denne appen for brukeren <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Vil du erstatte denne appen med den opprinnelige versjonen? Alle dataene fjernes."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Vil du erstatte denne appen med den opprinnelige versjonen? Alle dataene fjernes. Dette påvirker alle som bruker denne enheten – også personer med jobbprofiler."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Fjern også <xliff:g id="SIZE">%1$s</xliff:g> med tilknyttede mediefiler."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Behold <xliff:g id="SIZE">%1$s</xliff:g> med appdata."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Avinstalleringer som er i gang"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mislykkede avinstalleringer"</string>
<string name="uninstalling" msgid="8709566347688966845">"Avinstallerer …"</string>
diff --git a/packages/PackageInstaller/res/values-ne/strings.xml b/packages/PackageInstaller/res/values-ne/strings.xml
index a7abc17f538d..e55afd5ae8df 100644
--- a/packages/PackageInstaller/res/values-ne/strings.xml
+++ b/packages/PackageInstaller/res/values-ne/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"तपाईं प्रयोगकर्ता <xliff:g id="USERNAME">%1$s</xliff:g> का लागि यो अनुप्रयोगको स्थापना रद्द गर्न चाहनुहुन्छ?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"यस अनुप्रयोगलाई फ्याक्ट्रीको संस्करणले बदल्ने हो? सबै डेटा हटाइने छ।"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"यस अनुप्रयोगलाई फ्याक्ट्रीको संस्करणले बदल्ने हो? सबै डेटा हटाइने छ। यसले यस यन्त्रका कार्य प्रोफाइल भएका लगायत सबै प्रयोगकर्ताहरूमा असर पार्छ।"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"यसका साथै <xliff:g id="SIZE">%1$s</xliff:g> सम्बद्ध मिडिया फाइलहरू पनि हटाउनुहोस्।"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> अनुप्रयोगको डेटा राख्नुहोस्।"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"चलिरहेका स्थापना रद्द गर्ने कार्यहरू"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"असफल भएका स्थापना रद्द गर्ने कार्यहरू"</string>
<string name="uninstalling" msgid="8709566347688966845">"स्थापना रद्द गर्दै…"</string>
diff --git a/packages/PackageInstaller/res/values-nl/strings.xml b/packages/PackageInstaller/res/values-nl/strings.xml
index a7a5a34b2e3a..8423fda2e40f 100644
--- a/packages/PackageInstaller/res/values-nl/strings.xml
+++ b/packages/PackageInstaller/res/values-nl/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Wil je deze app verwijderen voor de gebruiker <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Deze app vervangen door de fabrieksversie? Alle gegevens worden verwijderd."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Deze app vervangen door de fabrieksversie? Alle gegevens worden verwijderd. Dit geldt voor alle gebruikers van het apparaat, dus ook voor gebruikers met een werkprofiel."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Ook <xliff:g id="SIZE">%1$s</xliff:g> aan gekoppelde mediabestanden verwijderen."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> aan app-gegevens behouden."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Actieve verwijderingen"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mislukte verwijderingen"</string>
<string name="uninstalling" msgid="8709566347688966845">"Verwijderen…"</string>
diff --git a/packages/PackageInstaller/res/values-or/strings.xml b/packages/PackageInstaller/res/values-or/strings.xml
index 348cc6109fa4..2fcf70e36c76 100644
--- a/packages/PackageInstaller/res/values-or/strings.xml
+++ b/packages/PackageInstaller/res/values-or/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"ୟୁଜର୍‌ <xliff:g id="USERNAME">%1$s</xliff:g>ଙ୍କ ପାଇଁ ଆପଣ ଏହି ଆପ୍‍ ଇନଷ୍ଟଲ୍‍ କରିବେ କି?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ଏହି ଆପ୍‍ ଫ୍ୟାକ୍ଟୋରୀ ଭର୍ସନ୍‍‍ ସହ ବଦଳାଇବେ? ସମସ୍ତ ଡାଟା କାଢ଼ିଦିଆଯିବ।"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ଏହି ଆପ୍‍ ଫ୍ୟାକ୍ଟୋରୀ ଭର୍ସନ୍‍‍ ସହ ବଦଳାଇବେ? ସମସ୍ତ ଡାଟା ବାହାର କରିଦିଆଯିବ। ୱର୍କ ପ୍ରୋଫାଇଲ୍‍ ଥିବା ସମେତ, ଏହାଦ୍ୱାରା ଡିଭାଇସରେ ଥିବା ସମସ୍ତ ୟୁଜର୍‌ ପ୍ରଭାବିତ ହେବେ।"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"<xliff:g id="SIZE">%1$s</xliff:g> ର ସମ୍ବନ୍ଧିତ ମିଡିଆ ଫାଇଲ୍‌ଗୁଡ଼ିକ ମଧ୍ୟ କାଢନ୍ତୁ।"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> ଆକାରର ଆପ୍‍ ଡାଟା ରଖନ୍ତୁୁ।"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ଅନଇନଷ୍ଟଲ୍‌ ଚାଲୁଛି"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ବିଫଳ ହୋଇଥିବା ଅନଇନଷ୍ଟଲ୍‌"</string>
<string name="uninstalling" msgid="8709566347688966845">"ଅନ୍‌ଇନଷ୍ଟଲ୍‌ କରାଯାଉଛି…"</string>
diff --git a/packages/PackageInstaller/res/values-pa/strings.xml b/packages/PackageInstaller/res/values-pa/strings.xml
index 7c519a036e04..ca8f73b79746 100644
--- a/packages/PackageInstaller/res/values-pa/strings.xml
+++ b/packages/PackageInstaller/res/values-pa/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"ਕੀ ਤੁਸੀਂ ਵਰਤੋਂਕਾਰ <xliff:g id="USERNAME">%1$s</xliff:g> ਲਈ ਇਸ ਐਪ ਨੂੰ ਅਣਸਥਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ਕੀ ਇਸ ਐਪ ਨੂੰ ਫੈਕਟਰੀ ਵਰਜਨ ਨਾਲ ਬਦਲਣਾ ਹੈ? ਸਾਰਾ ਡਾਟਾ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ਕੀ ਇਸ ਐਪ ਨੂੰ ਫੈਕਟਰੀ ਵਰਜਨ ਨਾਲ ਬਦਲਣਾ ਹੈ? ਸਾਰਾ ਡਾਟਾ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਇਹ ਇਸ ਡੀਵਾਈਸ ਦੇ ਸਾਰੇ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰੇਗਾ, ਜਿਸ ਵਿੱਚ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਵਾਲੇ ਵਰਤੋਂਕਾਰ ਵੀ ਸ਼ਾਮਲ ਹਨ।"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"<xliff:g id="SIZE">%1$s</xliff:g> ਦੀਆਂ ਸੰਬੰਧਿਤ ਮੀਡੀਆ ਫ਼ਾਈਲਾਂ ਵੀ ਹਟਾਓ।"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> ਐਪ ਡਾਟਾ ਰੱਖੋ।"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"ਚੱਲ ਰਹੀਆਂ ਅਣਸਥਾਪਨਾਵਾਂ"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ਅਸਫਲ ਅਣਸਥਾਪਨਾਵਾਂ"</string>
<string name="uninstalling" msgid="8709566347688966845">"ਅਣਸਥਾਪਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
diff --git a/packages/PackageInstaller/res/values-pl/strings.xml b/packages/PackageInstaller/res/values-pl/strings.xml
index 19b05a928e34..6bcf20a6cee2 100644
--- a/packages/PackageInstaller/res/values-pl/strings.xml
+++ b/packages/PackageInstaller/res/values-pl/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Chcesz odinstalować tę aplikację dla użytkownika <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Przywrócić fabryczną wersję tej aplikacji? Wszystkie dane zostaną usunięte."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Przywrócić fabryczną wersję tej aplikacji? Wszystkie dane zostaną usunięte. Dotyczy to wszystkich użytkowników tego urządzenia, również tych korzystających z profilu do pracy."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Usuń też <xliff:g id="SIZE">%1$s</xliff:g> powiązanych plików multimedialnych."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Zachowaj <xliff:g id="SIZE">%1$s</xliff:g> danych aplikacji."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Aktywne odinstalowania"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Nieudane odinstalowania"</string>
<string name="uninstalling" msgid="8709566347688966845">"Odinstalowuję…"</string>
diff --git a/packages/PackageInstaller/res/values-pt-rBR/strings.xml b/packages/PackageInstaller/res/values-pt-rBR/strings.xml
index 1a318374e2dc..7a0c7fb01576 100644
--- a/packages/PackageInstaller/res/values-pt-rBR/strings.xml
+++ b/packages/PackageInstaller/res/values-pt-rBR/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Quer desinstalar este app para o usuário <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Substituir este app pela versão de fábrica? Todos os dados serão removidos."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Substituir este app pela versão de fábrica? Todos os dados serão removidos. Isso afeta todos os usuários deste dispositivo, incluindo aqueles com perfis de trabalho."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Remover também <xliff:g id="SIZE">%1$s</xliff:g> de arquivos de mídia associados."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Manter <xliff:g id="SIZE">%1$s</xliff:g> de dados do app."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Executando desinstalações"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Falha nas desinstalações"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalando…"</string>
diff --git a/packages/PackageInstaller/res/values-pt-rPT/strings.xml b/packages/PackageInstaller/res/values-pt-rPT/strings.xml
index e27fed56a0a6..903db3e3ddd2 100644
--- a/packages/PackageInstaller/res/values-pt-rPT/strings.xml
+++ b/packages/PackageInstaller/res/values-pt-rPT/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Pretende desinstalar esta aplicação para o utilizador <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Pretende substituir esta aplicação pela versão de fábrica? Todos os dados são removidos."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Pretende substituir esta aplicação pela versão de fábrica? Todos os dados são removidos. Esta ação afeta todos os utilizadores deste dispositivo, incluindo os que têm perfis de trabalho."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Remover também <xliff:g id="SIZE">%1$s</xliff:g> de ficheiros multimédia associados."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Manter <xliff:g id="SIZE">%1$s</xliff:g> de dados da aplicação."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Desinstalações em execução"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Desinstalações com falha"</string>
<string name="uninstalling" msgid="8709566347688966845">"A desinstalar…"</string>
diff --git a/packages/PackageInstaller/res/values-pt/strings.xml b/packages/PackageInstaller/res/values-pt/strings.xml
index 1a318374e2dc..7a0c7fb01576 100644
--- a/packages/PackageInstaller/res/values-pt/strings.xml
+++ b/packages/PackageInstaller/res/values-pt/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Quer desinstalar este app para o usuário <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Substituir este app pela versão de fábrica? Todos os dados serão removidos."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Substituir este app pela versão de fábrica? Todos os dados serão removidos. Isso afeta todos os usuários deste dispositivo, incluindo aqueles com perfis de trabalho."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Remover também <xliff:g id="SIZE">%1$s</xliff:g> de arquivos de mídia associados."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Manter <xliff:g id="SIZE">%1$s</xliff:g> de dados do app."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Executando desinstalações"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Falha nas desinstalações"</string>
<string name="uninstalling" msgid="8709566347688966845">"Desinstalando…"</string>
diff --git a/packages/PackageInstaller/res/values-ro/strings.xml b/packages/PackageInstaller/res/values-ro/strings.xml
index 8bcc96919580..620a382cb9ed 100644
--- a/packages/PackageInstaller/res/values-ro/strings.xml
+++ b/packages/PackageInstaller/res/values-ro/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Dezinstalați această aplicație pentru utilizatorul <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Înlocuiți această aplicație cu versiunea din fabrică? Toate datele vor fi eliminate."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Înlocuiți această aplicație cu versiunea din fabrică? Toate datele vor fi eliminate. Această acțiune va afecta toți utilizatorii dispozitivului, inclusiv pe cei cu profiluri de serviciu."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Eliminați și <xliff:g id="SIZE">%1$s</xliff:g> de fișiere media asociate."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Păstrează <xliff:g id="SIZE">%1$s</xliff:g> din datele aplicației."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Dezinstalări în curs"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Dezinstalări nereușite"</string>
<string name="uninstalling" msgid="8709566347688966845">"Se dezinstalează…"</string>
diff --git a/packages/PackageInstaller/res/values-ru/strings.xml b/packages/PackageInstaller/res/values-ru/strings.xml
index 4e5d1ac0d72f..5aba2fadcfa0 100644
--- a/packages/PackageInstaller/res/values-ru/strings.xml
+++ b/packages/PackageInstaller/res/values-ru/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Удалить это приложение из профиля <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Установить исходную версию приложения? Все его данные будут удалены."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Установить исходную версию приложения? Его данные будут удалены из всех профилей устройства, в том числе рабочих."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Также удалить связанные медиафайлы (<xliff:g id="SIZE">%1$s</xliff:g>)"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Сохранить данные приложения (<xliff:g id="SIZE">%1$s</xliff:g>)"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Активные процессы удаления"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Ошибки удаления"</string>
<string name="uninstalling" msgid="8709566347688966845">"Удаление…"</string>
diff --git a/packages/PackageInstaller/res/values-si/strings.xml b/packages/PackageInstaller/res/values-si/strings.xml
index 7d854dc41bca..7f67a64e919c 100644
--- a/packages/PackageInstaller/res/values-si/strings.xml
+++ b/packages/PackageInstaller/res/values-si/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"<xliff:g id="USERNAME">%1$s</xliff:g> පරිශීලකයා සඳහා මෙම යෙදුම අස්ථාපනය කිරීමට ඔබට අවශ්‍යයද?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"මෙම යෙදුම කර්මාන්ත ශාලා අනුවාදයක් සමගින් ප්‍රතිස්ථාපනය කරන්නද? සියලු දත්ත ඉවත් කරනු ඇත."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"මෙම යෙදුම කර්මාන්ත ශාලා අනුවාදයක් සමගින් ප්‍රතිස්ථාපනය කරන්නද? සියලු දත්ත ඉවත් කරනු ඇත. මෙය කාර්යාල පැතිකඩවල් සහිත අය ඇතුළුව, මෙම උපාංගයෙහි සියලු පරිශීලකයන් වෙත බලපානු ඇත."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"ආශ්‍රිත මාධ්‍ය ගොනු <xliff:g id="SIZE">%1$s</xliff:g> ද ඉවත් කරන්න."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"යෙදුම් දත්තවලින් <xliff:g id="SIZE">%1$s</xliff:g> තබා ගන්න."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"අස්ථාපන ධාවනය කරමින්"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"අසාර්ථක වූ අස්ථාපන"</string>
<string name="uninstalling" msgid="8709566347688966845">"අස්ථාපනය කරමින්…"</string>
diff --git a/packages/PackageInstaller/res/values-sk/strings.xml b/packages/PackageInstaller/res/values-sk/strings.xml
index 36614bcc41c3..509dac5ed0b2 100644
--- a/packages/PackageInstaller/res/values-sk/strings.xml
+++ b/packages/PackageInstaller/res/values-sk/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Chcete túto aplikáciu odinštalovať pre používateľa <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Nahradiť túto aplikáciu výrobnou verziou? Všetky údaje sa odstránia."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Nahradiť túto aplikáciu výrobnou verziou? Všetky údaje sa odstránia. Ovplyvní to všetkých používateľov tohto zariadenia vrátane tých s pracovnými profilmi."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Odstrániť tiež <xliff:g id="SIZE">%1$s</xliff:g> prepojených súborov médií."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Zachovať nasledujúcu veľkosť dát aplikácie: <xliff:g id="SIZE">%1$s</xliff:g>."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Prebiehajúce odinštalovania"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neúspešné odinštalácie"</string>
<string name="uninstalling" msgid="8709566347688966845">"Prebieha odinštalovanie..."</string>
diff --git a/packages/PackageInstaller/res/values-sl/strings.xml b/packages/PackageInstaller/res/values-sl/strings.xml
index a679e089d188..6cd7d1b7c952 100644
--- a/packages/PackageInstaller/res/values-sl/strings.xml
+++ b/packages/PackageInstaller/res/values-sl/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Ali želite to aplikacijo odstraniti za uporabnika <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Želite to aplikacijo nadomestiti s tovarniško različico? Odstranjeni bodo vsi podatki."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Želite to aplikacijo nadomestiti s tovarniško različico? Odstranjeni bodo vsi podatki. To vpliva na vse uporabnike te naprave, vključno s tistimi z delovnimi profili."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Odstranite tudi <xliff:g id="SIZE">%1$s</xliff:g> povezanih predstavnostnih datotek."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Obdrži <xliff:g id="SIZE">%1$s</xliff:g> podatkov aplikacije."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Odstranitve v teku"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Neuspele odstranitve"</string>
<string name="uninstalling" msgid="8709566347688966845">"Odstranjevanje …"</string>
diff --git a/packages/PackageInstaller/res/values-sq/strings.xml b/packages/PackageInstaller/res/values-sq/strings.xml
index dd35024c7b37..2a592888d128 100644
--- a/packages/PackageInstaller/res/values-sq/strings.xml
+++ b/packages/PackageInstaller/res/values-sq/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Dëshiron ta çinstalosh këtë aplikacion për përdoruesin <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Të zëvendësohet ky aplikacion me versionin e fabrikës? Të gjitha të dhënat do të hiqen."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Të zëvendësohet ky aplikacion me versionin e fabrikës? Të gjitha të dhënat do të hiqen. Kjo ndikon te të gjithë përdoruesit e kësaj pajisjeje, duke përfshirë ata me profile të punës."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Hiq gjithashtu <xliff:g id="SIZE">%1$s</xliff:g> skedarë media të shoqëruar."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Mbaj <xliff:g id="SIZE">%1$s</xliff:g> nga të dhënat e aplikacionit."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Çinstalimet në ekzekutim"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Çinstalimet e dështuara"</string>
<string name="uninstalling" msgid="8709566347688966845">"Po çinstalohet…"</string>
diff --git a/packages/PackageInstaller/res/values-sr/strings.xml b/packages/PackageInstaller/res/values-sr/strings.xml
index c25b8e0fd422..7d889c4e41f7 100644
--- a/packages/PackageInstaller/res/values-sr/strings.xml
+++ b/packages/PackageInstaller/res/values-sr/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Желите ли да деинсталирате ову апликацију за корисника <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Желите ли да замените ову апликацију фабричком верзијом? Сви подаци ће бити уклоњени."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Желите ли да замените ову апликацију фабричком верзијом? Сви подаци ће бити уклоњени. Ово утиче на све кориснике овог уређаја, укључујући и оне са профилима за Work."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Уклони и <xliff:g id="SIZE">%1$s</xliff:g> повезаних медијских датотека."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Задржи <xliff:g id="SIZE">%1$s</xliff:g> података апликације."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Активна деинсталирања"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Неуспела деинсталирања"</string>
<string name="uninstalling" msgid="8709566347688966845">"Деинсталира се…"</string>
diff --git a/packages/PackageInstaller/res/values-sv/strings.xml b/packages/PackageInstaller/res/values-sv/strings.xml
index 0c66b53cf987..9902bdaa9e7f 100644
--- a/packages/PackageInstaller/res/values-sv/strings.xml
+++ b/packages/PackageInstaller/res/values-sv/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Vill du avinstallera appen för användaren <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Vill du ersätta den här appen med den version som var installerad när enheten var ny? All information tas bort."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Vill du ersätta den här appen med den version som var installerad när enheten var ny? All information tas bort. Detta påverkar alla som använder enheten, även dem med jobbprofiler."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Ta även bort <xliff:g id="SIZE">%1$s</xliff:g> tillhörande mediefiler."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Behåll <xliff:g id="SIZE">%1$s</xliff:g> appdata."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Avinstallationer som pågår"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Avinstallationer som misslyckats"</string>
<string name="uninstalling" msgid="8709566347688966845">"Avinstallerar …"</string>
diff --git a/packages/PackageInstaller/res/values-sw/strings.xml b/packages/PackageInstaller/res/values-sw/strings.xml
index 4557f662bec4..b4c2d8379710 100644
--- a/packages/PackageInstaller/res/values-sw/strings.xml
+++ b/packages/PackageInstaller/res/values-sw/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Je, ungependa kuondoa programu hii kwa mtumiaji <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Ungependa kubadilisha programu hii na toleo la kiwandani? Data yote itaondolewa."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Ungependa kubadilisha programu hii na toleo la kiwandani? Data yote itaondolewa. Hatua hii itaathiri watumiaji wote wa kifaa hiki, ikiwa ni pamoja na wale walio na wasifu za kazini."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Ondoa pia faili <xliff:g id="SIZE">%1$s</xliff:g> zinazohusiana za maudhui."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Dumisha <xliff:g id="SIZE">%1$s</xliff:g> ya data ya programu."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Programu zinazoondolewa"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mara ambazo programu haikuondolewa"</string>
<string name="uninstalling" msgid="8709566347688966845">"Inaondoa…"</string>
diff --git a/packages/PackageInstaller/res/values-ta/strings.xml b/packages/PackageInstaller/res/values-ta/strings.xml
index dab459a35606..b69ce166f86d 100644
--- a/packages/PackageInstaller/res/values-ta/strings.xml
+++ b/packages/PackageInstaller/res/values-ta/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"<xliff:g id="USERNAME">%1$s</xliff:g> என்ற பயனருக்கு இந்த ஆப்ஸை நிறுவல் நீக்க விரும்புகிறீர்களா?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ஆரம்பநிலைப் பதிப்புக்கு இந்த ஆப்ஸை மாற்றியமைக்கவா? அனைத்துத் தரவும் அகற்றப்படும்."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ஆரம்பநிலைப் பதிப்புக்கு இந்த ஆப்ஸை மாற்றியமைக்கவா? அனைத்துத் தரவும் அகற்றப்படும். பணிக் கணக்குகளுடன் உள்ளவர்கள் உட்பட இந்தச் சாதனத்தின் அனைத்துப் பயனர்களையும் இது பாதிக்கும்."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"இதனுடன் தொடர்புடைய <xliff:g id="SIZE">%1$s</xliff:g> மீடியா ஃபைல்களையும் அகற்று."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> ஆப்ஸ் தரவை வைத்திரு."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"இயக்கத்திலுள்ள நிறுவல் நீக்கங்கள்"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"தோல்வியுற்ற நிறுவல் நீக்கங்கள்"</string>
<string name="uninstalling" msgid="8709566347688966845">"நிறுவல் நீக்குகிறது…"</string>
diff --git a/packages/PackageInstaller/res/values-te/strings.xml b/packages/PackageInstaller/res/values-te/strings.xml
index 64c5da7ef36d..e13b893ac8a9 100644
--- a/packages/PackageInstaller/res/values-te/strings.xml
+++ b/packages/PackageInstaller/res/values-te/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"మీరు వినియోగదారు <xliff:g id="USERNAME">%1$s</xliff:g> కోసం ఈ యాప్‌ను అన్‌ఇన్‌స్టాల్ చేయాలనుకుంటున్నారా?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"ఈ యాప్‌ను ఫ్యాక్టరీ వెర్షన్‌తో భర్తీ చేయాలా? మొత్తం డేటా తీసివేయబడుతుంది."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"ఈ యాప్‌ను ఫ్యాక్టరీ వెర్షన్‌తో భర్తీ చేయాలా? మొత్తం డేటా తీసివేయబడుతుంది. దీని ప్రభావం కార్యాలయ ప్రొఫైల్‌లు కలిగి ఉన్నవారితో సహా ఈ పరికర వినియోగదారులందరిపై ఉంటుంది."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"అలాగే దానికి సంబంధించిన మీడియా ఫైల్‌ల డేటా <xliff:g id="SIZE">%1$s</xliff:g>ని కూడా తీసివేయి"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> యాప్ డేటాని ఉంచండి."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"అన్ఇన్‌స్టాల్ చేయబడుతున్నవి"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"విఫలమైన అన్‌ఇన్‌స్టాల్‌లు"</string>
<string name="uninstalling" msgid="8709566347688966845">"అన్ఇన్‌స్టాల్ చేస్తోంది…"</string>
diff --git a/packages/PackageInstaller/res/values-th/strings.xml b/packages/PackageInstaller/res/values-th/strings.xml
index b6595d0bd0c7..272571c829a5 100644
--- a/packages/PackageInstaller/res/values-th/strings.xml
+++ b/packages/PackageInstaller/res/values-th/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"ต้องการถอนการติดตั้งแอปนี้สำหรับผู้ใช้ <xliff:g id="USERNAME">%1$s</xliff:g> ไหม"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"แทนที่แอปนี้ด้วยเวอร์ชันเริ่มต้นไหม ระบบจะนำข้อมูลทั้งหมดออก"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"แทนที่แอปนี้ด้วยเวอร์ชันเริ่มต้นไหม ระบบจะนำข้อมูลทั้งหมดออก วิธีนี้จะส่งผลต่อผู้ใช้ทุกคนที่ใช้อุปกรณ์เครื่องนี้ รวมทั้งผู้ที่มีโปรไฟล์งาน"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"และนำไฟล์สื่อต่างๆ ที่เกี่ยวข้องซึ่งรวมแล้วมีขนาด <xliff:g id="SIZE">%1$s</xliff:g> ออกด้วย"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"เก็บข้อมูลแอปไว้ <xliff:g id="SIZE">%1$s</xliff:g>"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"กำลังเรียกใช้การถอนการติดตั้ง"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ถอนการติดตั้งไม่สำเร็จ"</string>
<string name="uninstalling" msgid="8709566347688966845">"กำลังถอนการติดตั้ง…"</string>
diff --git a/packages/PackageInstaller/res/values-tl/strings.xml b/packages/PackageInstaller/res/values-tl/strings.xml
index e7b15fa2688f..903b908a259e 100644
--- a/packages/PackageInstaller/res/values-tl/strings.xml
+++ b/packages/PackageInstaller/res/values-tl/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Gusto mo bang i-uninstall ang app na ito para sa user na si <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Gusto mo bang palitan ang app na ito ng factory na bersyon? Maaalis ang lahat ng data."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Gusto mo bang palitan ang app na ito ng factory na bersyon? Maaalis ang lahat ng data. Nakakaapekto ito sa lahat ng user ng device na ito, kabilang ang mga may profile sa trabaho."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Alisin din ang <xliff:g id="SIZE">%1$s</xliff:g> ng mga nauugnay na media file."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Panatilihin ang <xliff:g id="SIZE">%1$s</xliff:g> ng data ng app."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Mga kasalukuyang pag-uninstall"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Mga hindi na-uninstall"</string>
<string name="uninstalling" msgid="8709566347688966845">"Ina-uninstall…"</string>
diff --git a/packages/PackageInstaller/res/values-tr/strings.xml b/packages/PackageInstaller/res/values-tr/strings.xml
index 33dbc3a9161d..e372e11c2c33 100644
--- a/packages/PackageInstaller/res/values-tr/strings.xml
+++ b/packages/PackageInstaller/res/values-tr/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"<xliff:g id="USERNAME">%1$s</xliff:g> adlı kullanıcı için bu uygulamanın yüklemesini kaldırmak istiyor musunuz?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Bu uygulamayı fabrika sürümüyle değiştirmek istiyor musunuz? Tüm veriler silinecektir."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Bu uygulamayı fabrika sürümüyle değiştirmek istiyor musunuz? Tüm veriler silinecektir. Bu, çalışma profilleri olan kullanıcılar da dahil olmak üzere cihazı kullanan tüm kullanıcıları etkiler."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"<xliff:g id="SIZE">%1$s</xliff:g> boyutundaki ilişkili medya dosyalarını da kaldır."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Uygulama verilerinin <xliff:g id="SIZE">%1$s</xliff:g> kadarını sakla."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Devam eden yükleme kaldırma işlemleri"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Başarısız yükleme kaldırma işlemleri"</string>
<string name="uninstalling" msgid="8709566347688966845">"Yükleme kaldırılıyor…"</string>
diff --git a/packages/PackageInstaller/res/values-uk/strings.xml b/packages/PackageInstaller/res/values-uk/strings.xml
index d9cb954786a8..f04ead60b6dc 100644
--- a/packages/PackageInstaller/res/values-uk/strings.xml
+++ b/packages/PackageInstaller/res/values-uk/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Видалити цей додаток для користувача <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Відновити заводську версію цього додатка? Усі дані буде видалено."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Відновити заводську версію цього додатка? Усі дані буде видалено. Це вплине на всіх користувачів цього пристрою, зокрема на користувачів із робочими профілями."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Видалити пов’язані файли розміром у <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Залишити <xliff:g id="SIZE">%1$s</xliff:g> даних додатка."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Активні видалення"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Невиконані видалення"</string>
<string name="uninstalling" msgid="8709566347688966845">"Видалення..."</string>
diff --git a/packages/PackageInstaller/res/values-ur/strings.xml b/packages/PackageInstaller/res/values-ur/strings.xml
index 61b15790c3d9..c989a7c4aef5 100644
--- a/packages/PackageInstaller/res/values-ur/strings.xml
+++ b/packages/PackageInstaller/res/values-ur/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"کیا آپ اس ایپ کو صارف <xliff:g id="USERNAME">%1$s</xliff:g> کیلئے اَن انسٹال کرنا چاہتے ہیں؟"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"اس ایپ کو فیکٹری ورژن سے تبدیل کریں؟ تمام ڈیٹا ہٹا دیا جائے گا۔"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"اس ایپ کو فیکٹری ورژن سے تبدیل کریں؟ تمام ڈیٹا ہٹا دیا جائے گا۔ اس سے دفتری پروفائلز کے حاملین سمیت اس آلہ کے تمام صارفین متاثر ہوں گے۔"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"<xliff:g id="SIZE">%1$s</xliff:g> منسلکہ میڈیا فائلز بھی حذف کریں۔"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"ایپ ڈیٹا کا <xliff:g id="SIZE">%1$s</xliff:g> رکھیں۔"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"چل رہے اَن انسٹالز"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"ناکام اَن انسٹالز"</string>
<string name="uninstalling" msgid="8709566347688966845">"اَن انسٹال ہو رہا ہے…"</string>
diff --git a/packages/PackageInstaller/res/values-uz/strings.xml b/packages/PackageInstaller/res/values-uz/strings.xml
index dedf00c86330..3aad35d77d02 100644
--- a/packages/PackageInstaller/res/values-uz/strings.xml
+++ b/packages/PackageInstaller/res/values-uz/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Haqiqatdan ham <xliff:g id="USERNAME">%1$s</xliff:g> foydalanuvchi uchun ushbu ilovani olib tashlamoqchimisiz?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Bu ilova boshlang‘ich versiyasi bilan almashtirilsinmi? Barcha axborotlar o‘chirib tashlanadi."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Bu ilova boshlang‘ich versiyasi bilan almashtirilsinmi? Barcha axborotlar o‘chirib tashlanadi. Bu qurilmaning barcha foydalanuvchilariga, jumladan, ularning ishchi profillariga ham ta’sir qiladi."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Shuningdek, biriktirilgan media fayllarni ham olib tashlash (<xliff:g id="SIZE">%1$s</xliff:g>)."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"<xliff:g id="SIZE">%1$s</xliff:g> hajmdagi ilova axborotlari saqlab qolinsin"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Davom etayotganlar"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Amalga oshmaganlar"</string>
<string name="uninstalling" msgid="8709566347688966845">"O‘chirilmoqda…"</string>
diff --git a/packages/PackageInstaller/res/values-vi/strings.xml b/packages/PackageInstaller/res/values-vi/strings.xml
index 7043093c4347..84c02e2da658 100644
--- a/packages/PackageInstaller/res/values-vi/strings.xml
+++ b/packages/PackageInstaller/res/values-vi/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Bạn có muốn gỡ cài đặt ứng dụng này cho người dùng <xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Thay thế ứng dụng này bằng phiên bản gốc? Tất cả dữ liệu sẽ bị xóa."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Thay thế ứng dụng này bằng phiên bản gốc? Tất cả dữ liệu sẽ bị xóa. Điều này ảnh hưởng đến tất cả người dùng thiết bị này, bao gồm cả những người có hồ sơ công việc."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Đồng thời xóa <xliff:g id="SIZE">%1$s</xliff:g> tệp đa phương tiện liên kết."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Giữ lại <xliff:g id="SIZE">%1$s</xliff:g> dữ liệu ứng dụng."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Các quá trình gỡ cài đặt đang chạy"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Gỡ cài đặt không thành công"</string>
<string name="uninstalling" msgid="8709566347688966845">"Đang gỡ cài đặt..."</string>
diff --git a/packages/PackageInstaller/res/values-zh-rCN/strings.xml b/packages/PackageInstaller/res/values-zh-rCN/strings.xml
index a91f00f94f3a..04d6c3788a48 100644
--- a/packages/PackageInstaller/res/values-zh-rCN/strings.xml
+++ b/packages/PackageInstaller/res/values-zh-rCN/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"要为用户<xliff:g id="USERNAME">%1$s</xliff:g>卸载此应用吗?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"要将此应用替换为出厂版本吗?这样会移除所有数据。"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"要将此应用替换为出厂版本吗?这样会移除所有数据,并会影响此设备的所有用户(包括已设置工作资料的用户)。"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"同时移除 <xliff:g id="SIZE">%1$s</xliff:g> 的关联媒体文件。"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"保留 <xliff:g id="SIZE">%1$s</xliff:g> 的应用数据。"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"正在进行卸载操作"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"卸载操作失败"</string>
<string name="uninstalling" msgid="8709566347688966845">"正在卸载…"</string>
diff --git a/packages/PackageInstaller/res/values-zh-rHK/strings.xml b/packages/PackageInstaller/res/values-zh-rHK/strings.xml
index 286e360d601c..01440aea9907 100644
--- a/packages/PackageInstaller/res/values-zh-rHK/strings.xml
+++ b/packages/PackageInstaller/res/values-zh-rHK/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"您要為使用者<xliff:g id="USERNAME">%1$s</xliff:g>解除安裝此應用程式嗎?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"要將此應用程式回復至原廠版本嗎?系統會移除所有資料。"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"要將此應用程式回復至原廠版本嗎?系統會移除所有資料。此裝置的所有使用者 (包括使用工作設定檔的使用者) 亦會受影響。"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"同時移除相關的媒體檔案 (<xliff:g id="SIZE">%1$s</xliff:g>)。"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"保留應用程式資料 (<xliff:g id="SIZE">%1$s</xliff:g>)。"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"正在執行的解除安裝操作"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"失敗的解除安裝操作"</string>
<string name="uninstalling" msgid="8709566347688966845">"正在解除安裝…"</string>
diff --git a/packages/PackageInstaller/res/values-zh-rTW/strings.xml b/packages/PackageInstaller/res/values-zh-rTW/strings.xml
index b0de2c256ce3..048aa9cd6aa4 100644
--- a/packages/PackageInstaller/res/values-zh-rTW/strings.xml
+++ b/packages/PackageInstaller/res/values-zh-rTW/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"要為使用者 <xliff:g id="USERNAME">%1$s</xliff:g> 解除安裝這個應用程式嗎?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"要將應用程式換成原廠版本嗎?這麼做會移除所有資料。"</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"要將應用程式換成原廠版本嗎?這麼做會移除所有資料。凡是這個裝置的使用者 (包括設置工作資料夾的使用者),皆會受到影響。"</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"一併移除 <xliff:g id="SIZE">%1$s</xliff:g> 的相關媒體檔案。"</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"保留 <xliff:g id="SIZE">%1$s</xliff:g> 的應用程式資料。"</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"執行中的解除安裝作業"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"失敗的解除安裝作業"</string>
<string name="uninstalling" msgid="8709566347688966845">"解除安裝中…"</string>
diff --git a/packages/PackageInstaller/res/values-zu/strings.xml b/packages/PackageInstaller/res/values-zu/strings.xml
index 5d2847933323..bb0405c08b12 100644
--- a/packages/PackageInstaller/res/values-zu/strings.xml
+++ b/packages/PackageInstaller/res/values-zu/strings.xml
@@ -58,6 +58,8 @@
<string name="uninstall_application_text_user" msgid="498072714173920526">"Ingabe ufuna ukukhiphela lolu hlelo lokusebenza kumsebenzisi ongu-<xliff:g id="USERNAME">%1$s</xliff:g>?"</string>
<string name="uninstall_update_text" msgid="863648314632448705">"Shintshanisa lolu hlelo lokusebenza ngenguqulo yasekuqaleni? Yonke idatha izosuswa."</string>
<string name="uninstall_update_text_multiuser" msgid="8992883151333057227">"Shintshanisa lolu hlelo lokusebenza ngenguqulo yasekuqaleni? Yonke idatha izosuswa. Lokhu kuthinta bonke abasebenzisi bale divayisi, abafaka labo abanamaphrofayela wokusebenza."</string>
+ <string name="uninstall_remove_contributed_files" msgid="2048594420923203453">"Futhi susa u-<xliff:g id="SIZE">%1$s</xliff:g> wamafayela emidiya ahlobene."</string>
+ <string name="uninstall_keep_data" msgid="7002379587465487550">"Gcina u-<xliff:g id="SIZE">%1$s</xliff:g> wedatha yohlelo lokusebenza."</string>
<string name="uninstalling_notification_channel" msgid="840153394325714653">"Ukukhishwa okuqhubekayo"</string>
<string name="uninstall_failure_notification_channel" msgid="1136405866767576588">"Ukukhishwa okuhlulekile"</string>
<string name="uninstalling" msgid="8709566347688966845">"Iyakhipha..."</string>
diff --git a/packages/PrintSpooler/res/values-as/strings.xml b/packages/PrintSpooler/res/values-as/strings.xml
index ba4fd99e2b3c..a93fceb87959 100644
--- a/packages/PrintSpooler/res/values-as/strings.xml
+++ b/packages/PrintSpooler/res/values-as/strings.xml
@@ -45,12 +45,12 @@
<string name="collapse_handle" msgid="6886637989442507451">"হেণ্ডেল সংকুচিত কৰক"</string>
<string name="print_button" msgid="645164566271246268">"প্ৰিণ্ট কৰক"</string>
<string name="savetopdf_button" msgid="2976186791686924743">"PDFৰ জৰিয়তে ছেভ কৰক"</string>
- <string name="print_options_expanded" msgid="6944679157471691859">"প্ৰিণ্ট বিকল্পসমূহ বিস্তাৰ কৰা হ\'ল"</string>
- <string name="print_options_collapsed" msgid="7455930445670414332">"প্ৰিণ্ট বিকল্পসমূহ সংকুচিত কৰা হ\'ল"</string>
+ <string name="print_options_expanded" msgid="6944679157471691859">"প্ৰিণ্ট বিকল্পসমূহ বিস্তাৰ কৰা হ’ল"</string>
+ <string name="print_options_collapsed" msgid="7455930445670414332">"প্ৰিণ্ট বিকল্পসমূহ সংকুচিত কৰা হ’ল"</string>
<string name="search" msgid="5421724265322228497">"সন্ধান কৰক"</string>
<string name="all_printers_label" msgid="3178848870161526399">"সকলো প্ৰিণ্টাৰ"</string>
<string name="add_print_service_label" msgid="5356702546188981940">"সেৱা যোগ কৰক"</string>
- <string name="print_search_box_shown_utterance" msgid="7967404953901376090">"সন্ধান বাকচটো দেখুওৱা হ\'ল"</string>
+ <string name="print_search_box_shown_utterance" msgid="7967404953901376090">"সন্ধান বাকচটো দেখুওৱা হ’ল"</string>
<string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"সন্ধান বাকচটো ঢাক খাই আছে"</string>
<string name="print_add_printer" msgid="1088656468360653455">"প্ৰিণ্টাৰ যোগ কৰক"</string>
<string name="print_select_printer" msgid="7388760939873368698">"প্ৰিণ্টাৰ বাছনি কৰক"</string>
diff --git a/packages/Shell/res/values-as/strings.xml b/packages/Shell/res/values-as/strings.xml
index 0e59223857c3..6e80931e3619 100644
--- a/packages/Shell/res/values-as/strings.xml
+++ b/packages/Shell/res/values-as/strings.xml
@@ -19,7 +19,7 @@
<string name="app_label" msgid="3701846017049540910">"শ্বেল"</string>
<string name="bugreport_notification_channel" msgid="2574150205913861141">"বাগ সম্পৰ্কীয় প্ৰতিবেদন"</string>
<string name="bugreport_in_progress_title" msgid="4311705936714972757">"বাগ সম্পর্কীয় অভিযোগ <xliff:g id="ID">#%d</xliff:g> সৃষ্টি কৰি থকা হৈছে"</string>
- <string name="bugreport_finished_title" msgid="4429132808670114081">"বাগ সম্পর্কীয় অভিযোগ <xliff:g id="ID">#%d</xliff:g> ৰেকৰ্ড কৰা হ\'ল"</string>
+ <string name="bugreport_finished_title" msgid="4429132808670114081">"বাগ সম্পর্কীয় অভিযোগ <xliff:g id="ID">#%d</xliff:g> ৰেকৰ্ড কৰা হ’ল"</string>
<string name="bugreport_updating_title" msgid="4423539949559634214">"বাগ সম্পর্কীয় অভিযোগটোত বিশদ তথ্য যোগ কৰি থকা হৈছে"</string>
<string name="bugreport_updating_wait" msgid="3322151947853929470">"অনুগ্রহ কৰি অপেক্ষা কৰক…"</string>
<string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"ফ\'নত বাগ সম্পর্কীয় অভিযোগ অতি সোনকালে উপলব্ধ হ\'ব"</string>
diff --git a/packages/SystemUI/res-keyguard/values-as/strings.xml b/packages/SystemUI/res-keyguard/values-as/strings.xml
index 89c468dc58a8..258219abae5f 100644
--- a/packages/SystemUI/res-keyguard/values-as/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-as/strings.xml
@@ -71,7 +71,7 @@
<string name="kg_pattern_instructions" msgid="5547646893001491340">"আপোনাৰ আৰ্হি আঁকক"</string>
<string name="kg_sim_pin_instructions" msgid="6389000973113699187">"ছিমৰ পিন দিয়ক।"</string>
<string name="kg_sim_pin_instructions_multi" msgid="1643757228644271861">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\"ৰ ছিমৰ পিন দিয়ক।"</string>
- <string name="kg_sim_lock_esim_instructions" msgid="4416732549172148542">"<xliff:g id="PREVIOUS_MSG">%1$s</xliff:g> ম\'বাইল সেৱা অবিহনে ডিভাইচ ব্যৱহাৰ কৰিবলৈ ই-ছিম অক্ষম কৰক।"</string>
+ <string name="kg_sim_lock_esim_instructions" msgid="4416732549172148542">"<xliff:g id="PREVIOUS_MSG">%1$s</xliff:g> ম’বাইল সেৱা অবিহনে ডিভাইচ ব্যৱহাৰ কৰিবলৈ ই-ছিম অক্ষম কৰক।"</string>
<string name="kg_pin_instructions" msgid="4069609316644030034">"পিন দিয়ক"</string>
<string name="kg_password_instructions" msgid="136952397352976538">"পাছৱৰ্ড দিয়ক"</string>
<string name="kg_puk_enter_puk_hint" msgid="2288964170039899277">"ছিমখন বর্তমান অক্ষম অৱস্থাত আছে। অব্যাহত ৰাখিবলৈ PUK ক\'ড লিখক। সবিশেষ জানিবলৈ বাহকৰ সৈতে যোগাযোগ কৰক।"</string>
@@ -113,7 +113,7 @@
</plurals>
<string name="kg_password_pin_failed" msgid="8769990811451236223">"ছিম পিনৰ জৰিয়তে আনলক কৰিব পৰা নগ\'ল!"</string>
<string name="kg_password_puk_failed" msgid="1331621440873439974">"ছিম PUKৰ জৰিয়তে আনলক কৰিব পৰা নগ\'ল!"</string>
- <string name="kg_pin_accepted" msgid="7637293533973802143">"ক\'ড গ্ৰহণ কৰা হ\'ল!"</string>
+ <string name="kg_pin_accepted" msgid="7637293533973802143">"ক\'ড গ্ৰহণ কৰা হ’ল!"</string>
<string name="keyguard_carrier_default" msgid="4274828292998453695">"কোনো সেৱা নাই।"</string>
<string name="accessibility_ime_switch_button" msgid="2695096475319405612">"ইনপুট পদ্ধতি সলনি কৰক"</string>
<string name="airplane_mode" msgid="3807209033737676010">"এয়াৰপ্লেন ম\'ড"</string>
@@ -147,7 +147,7 @@
<item quantity="other">ছিমৰ পিন দিয়ক। আপুনি আৰু <xliff:g id="NUMBER_1">%d</xliff:g>বাৰ প্ৰয়াস কৰিব পাৰে।</item>
</plurals>
<plurals name="kg_password_default_puk_message" formatted="false" msgid="8744416410184198352">
- <item quantity="one">ছিমখন অক্ষম হ\'ল। অব্যাহত ৰাখিবলৈ PUK দিয়ক। ছিমখন স্থায়ীভাৱে ব্যৱহাৰৰ অনুপযোগী হোৱাৰ পূৰ্বে আপোনাৰ হাতত <xliff:g id="_NUMBER_1">%d</xliff:g>টা প্ৰয়াস বাকী আছে। সবিশেষ জানিবলৈ বাহকৰ সৈতে যোগাযোগ কৰক।</item>
- <item quantity="other">ছিমখন অক্ষম হ\'ল। অব্যাহত ৰাখিবলৈ PUK দিয়ক। ছিমখন স্থায়ীভাৱে ব্যৱহাৰৰ অনুপযোগী হোৱাৰ পূৰ্বে আপোনাৰ হাতত <xliff:g id="_NUMBER_1">%d</xliff:g>টা প্ৰয়াস বাকী আছে। সবিশেষ জানিবলৈ বাহকৰ সৈতে যোগাযোগ কৰক।</item>
+ <item quantity="one">ছিমখন অক্ষম হ’ল। অব্যাহত ৰাখিবলৈ PUK দিয়ক। ছিমখন স্থায়ীভাৱে ব্যৱহাৰৰ অনুপযোগী হোৱাৰ পূৰ্বে আপোনাৰ হাতত <xliff:g id="_NUMBER_1">%d</xliff:g>টা প্ৰয়াস বাকী আছে। সবিশেষ জানিবলৈ বাহকৰ সৈতে যোগাযোগ কৰক।</item>
+ <item quantity="other">ছিমখন অক্ষম হ’ল। অব্যাহত ৰাখিবলৈ PUK দিয়ক। ছিমখন স্থায়ীভাৱে ব্যৱহাৰৰ অনুপযোগী হোৱাৰ পূৰ্বে আপোনাৰ হাতত <xliff:g id="_NUMBER_1">%d</xliff:g>টা প্ৰয়াস বাকী আছে। সবিশেষ জানিবলৈ বাহকৰ সৈতে যোগাযোগ কৰক।</item>
</plurals>
</resources>
diff --git a/packages/SystemUI/res-keyguard/values-ne/strings.xml b/packages/SystemUI/res-keyguard/values-ne/strings.xml
index 041e9904e0e9..c21faead879d 100644
--- a/packages/SystemUI/res-keyguard/values-ne/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-ne/strings.xml
@@ -28,8 +28,8 @@
<string name="keyguard_password_entry_touch_hint" msgid="5790410752696806482"><font size="17">"पासवर्ड टाइप गर्न छुनुहोस्"</font></string>
<string name="keyguard_password_enter_password_code" msgid="595980919238127672">"अनलक गर्न पासवर्ड टाइप गर्नुहोस्"</string>
<string name="keyguard_password_enter_pin_password_code" msgid="7504123374204446086">"अनलक गर्न PIN कोड टाइप गर्नुहोस्"</string>
- <string name="keyguard_enter_your_pin" msgid="7152989016739952871">"आफ्नो PIN प्रविष्ट गर्नुहोस्"</string>
- <string name="keyguard_enter_your_pattern" msgid="4297890206109830353">"आफ्नो ढाँचा प्रविष्ट गर्नुहोस्"</string>
+ <string name="keyguard_enter_your_pin" msgid="7152989016739952871">"आफ्नो PIN प्रविष्टि गर्नुहोस्"</string>
+ <string name="keyguard_enter_your_pattern" msgid="4297890206109830353">"आफ्नो ढाँचा प्रविष्टि गर्नुहोस्"</string>
<string name="keyguard_enter_your_password" msgid="5397328359341314506">"आफ्नो पासवर्ड प्रविष्ट गर्नु…"</string>
<string name="keyguard_password_wrong_pin_code" msgid="6535018036285012028">"PIN कोड गलत छ।"</string>
<string name="keyguard_sim_error_message_short" msgid="592109500618448312">"अमान्य कार्ड।"</string>
@@ -70,18 +70,18 @@
</plurals>
<string name="kg_pattern_instructions" msgid="5547646893001491340">"आफ्नो ढाँचा कोर्नुहोस्"</string>
<string name="kg_sim_pin_instructions" msgid="6389000973113699187">"SIM को PIN प्रविष्टि गर्नुहोस्।"</string>
- <string name="kg_sim_pin_instructions_multi" msgid="1643757228644271861">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" को SIM को PIN प्रविष्ट गर्नुहोस्।"</string>
+ <string name="kg_sim_pin_instructions_multi" msgid="1643757228644271861">"\"<xliff:g id="CARRIER">%1$s</xliff:g>\" को SIM को PIN प्रविष्टि गर्नुहोस्।"</string>
<string name="kg_sim_lock_esim_instructions" msgid="4416732549172148542">"<xliff:g id="PREVIOUS_MSG">%1$s</xliff:g> मोबाइल सेवा बिना यन्त्रको प्रयोग गर्न eSIM लाई असक्षम पार्नुहोस्।"</string>
<string name="kg_pin_instructions" msgid="4069609316644030034">"PIN प्रविष्टि गर्नुहोस्"</string>
- <string name="kg_password_instructions" msgid="136952397352976538">"पासवर्ड प्रविष्ट गर्नुहोस्"</string>
- <string name="kg_puk_enter_puk_hint" msgid="2288964170039899277">"SIM कार्ड अहिले असक्षम छ। सुचारु गर्नको लागि PUK कोड प्रविष्ट गर्नुहोस्। विवरणको लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।"</string>
- <string name="kg_puk_enter_puk_hint_multi" msgid="1373131883510840794">"SIM <xliff:g id="CARRIER">%1$s</xliff:g> अहिले असक्षम छ। सुचारु गर्नको लागि PUK कोड प्रविष्ट गर्नुहोस्। विवरणका लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।"</string>
+ <string name="kg_password_instructions" msgid="136952397352976538">"पासवर्ड प्रविष्टि गर्नुहोस्"</string>
+ <string name="kg_puk_enter_puk_hint" msgid="2288964170039899277">"SIM कार्ड अहिले असक्षम छ। सुचारु गर्नको लागि PUK कोड प्रविष्टि गर्नुहोस्। विवरणको लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।"</string>
+ <string name="kg_puk_enter_puk_hint_multi" msgid="1373131883510840794">"SIM <xliff:g id="CARRIER">%1$s</xliff:g> अहिले असक्षम छ। सुचारु गर्नको लागि PUK कोड प्रविष्टि गर्नुहोस्। विवरणका लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।"</string>
<string name="kg_puk_enter_pin_hint" msgid="3137789674920391087">"रूचाइएको PIN कोड प्रविष्टि गर्नुहोस्"</string>
<string name="kg_enter_confirm_pin_hint" msgid="3089485999116759671">"रूचाइएको PIN कोड पुष्टि गर्नुहोस्"</string>
<string name="kg_sim_unlock_progress_dialog_message" msgid="4471738151810900114">"SIM कार्ड अनलक गरिँदै..."</string>
<string name="kg_invalid_sim_pin_hint" msgid="3057533256729513335">"४ देखि ८ वटा नम्बर भएको एउटा PIN टाइप गर्नुहोस्।"</string>
<string name="kg_invalid_sim_puk_hint" msgid="6003602401368264144">"PUK कोड ८ वा सो भन्दा बढी नम्बरको हुनु पर्छ।"</string>
- <string name="kg_invalid_puk" msgid="5399287873762592502">"PUK कोड पुन: प्रविष्ट गर्नुहोस्। पटक-पटकको प्रयासले SIM सदाका लागि असक्षम हुनेछ।"</string>
+ <string name="kg_invalid_puk" msgid="5399287873762592502">"PUK कोड पुन: प्रविष्टि गर्नुहोस्। पटक-पटकको प्रयासले SIM सदाका लागि असक्षम हुनेछ।"</string>
<string name="kg_invalid_confirm_pin_hint" product="default" msgid="5672736555427444330">"PIN कोडहरू मिलेनन्"</string>
<string name="kg_login_too_many_attempts" msgid="6604574268387867255">"अत्यन्त धेरै ढाँचा कोर्ने प्रयासहरू"</string>
<string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8637788033282252027">"तपाईंले <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक गलत तरिकाले आफ्नो PIN प्रविष्ट गर्नुभएको छ। \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> सेकेन्डमा फेरि प्रयास गर्नुहोस्।"</string>
@@ -143,11 +143,11 @@
<string name="kg_fingerprint_not_recognized" msgid="7854413849848459418">"पहिचान भएन"</string>
<string name="kg_face_not_recognized" msgid="6382535088345875294">"पहिचान भएन"</string>
<plurals name="kg_password_default_pin_message" formatted="false" msgid="3739658416797652781">
- <item quantity="other">SIM को PIN प्रविष्ट गर्नुहोस्। तपाईंसँग <xliff:g id="NUMBER_1">%d</xliff:g>  प्रयासहरू बाँकी छन्।</item>
- <item quantity="one">SIM को PIN प्रविष्ट गर्नुहोस्। तपाईंसँग <xliff:g id="NUMBER_0">%d</xliff:g> प्रयास बाँकी छ, त्यसपछि भने आफ्नो यन्त्र अनलक गर्नका लागि तपाईंले अनिवार्य रूपमा आफ्नो सेवा प्रदायकलाई सम्पर्क गर्नु पर्ने हुन्छ।</item>
+ <item quantity="other">SIM को PIN प्रविष्टि गर्नुहोस्। तपाईंसँग <xliff:g id="NUMBER_1">%d</xliff:g>  प्रयासहरू बाँकी छन्।</item>
+ <item quantity="one">SIM को PIN प्रविष्टि गर्नुहोस्। तपाईंसँग <xliff:g id="NUMBER_0">%d</xliff:g> प्रयास बाँकी छ, त्यसपछि भने आफ्नो यन्त्र अनलक गर्नका लागि तपाईंले अनिवार्य रूपमा आफ्नो सेवा प्रदायकलाई सम्पर्क गर्नु पर्ने हुन्छ।</item>
</plurals>
<plurals name="kg_password_default_puk_message" formatted="false" msgid="8744416410184198352">
- <item quantity="other">SIM लाई असक्षम पारिएको छ। जारी राख्न PUK कोड प्रविष्ट गर्नुहोस्। तपाईंसँग <xliff:g id="_NUMBER_1">%d</xliff:g> प्रयासहरू बाँकी छन्, त्यसपछि SIM सदाका लागि प्रयोग गर्न नमिल्ने हुन्छ। विवरणहरूका लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।</item>
- <item quantity="one">SIM लाई असक्षम पारिएको छ। जारी राख्न PUK कोड प्रविष्ट गर्नुहोस्। तपाईंसँग <xliff:g id="_NUMBER_0">%d</xliff:g> प्रयास बाँकी छ, त्यसपछि SIM सदाका लागि प्रयोग गर्न नमिल्ने हुन्छ। विवरणहरूका लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।</item>
+ <item quantity="other">SIM लाई असक्षम पारिएको छ। जारी राख्न PUK कोड प्रविष्टि गर्नुहोस्। तपाईंसँग <xliff:g id="_NUMBER_1">%d</xliff:g> प्रयासहरू बाँकी छन्, त्यसपछि SIM सदाका लागि प्रयोग गर्न नमिल्ने हुन्छ। विवरणहरूका लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।</item>
+ <item quantity="one">SIM लाई असक्षम पारिएको छ। जारी राख्न PUK कोड प्रविष्टि गर्नुहोस्। तपाईंसँग <xliff:g id="_NUMBER_0">%d</xliff:g> प्रयास बाँकी छ, त्यसपछि SIM सदाका लागि प्रयोग गर्न नमिल्ने हुन्छ। विवरणहरूका लागि सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।</item>
</plurals>
</resources>
diff --git a/packages/SystemUI/res/drawable/ic_home_button_outline.xml b/packages/SystemUI/res/drawable/ic_home_button_outline.xml
deleted file mode 100644
index 5bf345d4f73b..000000000000
--- a/packages/SystemUI/res/drawable/ic_home_button_outline.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--
- ~ Copyright (C) 2018 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="28dp"
- android:height="10dp"
- android:viewportWidth="28"
- android:viewportHeight="10">
- <path
- android:pathData="M23,1H5C2.7909,1 1,2.7909 1,5C1,7.2091 2.7909,9 5,9H23C25.2091,9 27,7.2091 27,5C27,2.7909 25.2091,1 23,1ZM5,0C2.2386,0 0,2.2386 0,5C0,7.7614 2.2386,10 5,10H23C25.7614,10 28,7.7614 28,5C28,2.2386 25.7614,0 23,0H5Z"
- android:fillColor="?attr/wallpaperTextColor"
- android:fillType="evenOdd"/>
-</vector>
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 6b2538770360..eed44dd0d8a4 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Swerwing"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Werkmodus is aangeskakel."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Databespaarder is afgeskakel."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Databespaarder is aangeskakel."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensorprivaatheid is afgeskakel."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensorprivaatheid is aangeskakel."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Skermhelderheid"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Laai tans"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G-data is laat wag"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> ander programme</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> ander program</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensors is af"</string>
+ <string name="device_services" msgid="1191212554435440592">"Toesteldienste"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index db97510ef57b..7c09112b3fb2 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5ጂ"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5ጂ+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"በማዛወር ላይ"</string>
<string name="data_connection_edge" msgid="871835227939216682">"ኤጅ"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"የሥራ ሁነታ በርቷል።"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ውሂብ ቆጣቢ ጠፍቷል።"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ውሂብ ቆጣቢ በርቷል።"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"የዳሳሽ ግላዊነት ጠፍቷል።"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"የዳሳሽ ግላዊነት በርቷል።"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ብሩህነት ያሳዩ"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"ኃይል በመሙላት ላይ"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2ጂ-3ጂ ውሂብ ላፍታ ቆሟል"</string>
@@ -884,4 +888,8 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> ሌሎች መተግበሪያዎች</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> ሌሎች መተግበሪያዎች</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"ዳሳሾች ጠፍተዋል"</string>
+ <string name="device_services" msgid="1191212554435440592">"የመሣሪያ አገልግሎቶች"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index ff98366e8f00..16abb680d45e 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"شبكة الجيل الرابع أو أحدث"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+‎"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"‏شبكة 5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"‏شبكة 5G‎ والأحدث"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"التجوال"</string>
<string name="data_connection_edge" msgid="871835227939216682">"‏شبكة EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"تم تشغيل وضع العمل."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"تم إيقاف توفير البيانات."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"تم تشغيل توفير البيانات."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"تم إيقاف \"خصوصية أجهزة الاستشعار\"."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"تم تفعيل \"خصوصية أجهزة الاستشعار\"."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"سطوع الشاشة"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"جارٍ الشحن"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"بيانات شبكات الجيل الثاني والثالث متوقفة مؤقتًا"</string>
@@ -908,4 +912,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> تطبيق آخر</item>
<item quantity="one">تطبيق واحد (<xliff:g id="NUM_APPS_0">%d</xliff:g>) آخر</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"إيقاف أجهزة الاستشعار"</string>
+ <string name="device_services" msgid="1191212554435440592">"خدمات الأجهزة"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml
index d7b218d1c7c7..25f7b5b02370 100644
--- a/packages/SystemUI/res/values-as/strings.xml
+++ b/packages/SystemUI/res/values-as/strings.xml
@@ -42,7 +42,7 @@
<string name="status_bar_settings_mute_label" msgid="554682549917429396">"মিউট"</string>
<string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"স্বয়ং"</string>
<string name="status_bar_settings_notifications" msgid="397146176280905137">"জাননীসমূহ"</string>
- <string name="bluetooth_tethered" msgid="7094101612161133267">"ব্লুটুথ টেডাৰিং কৰা হ\'ল"</string>
+ <string name="bluetooth_tethered" msgid="7094101612161133267">"ব্লুটুথ টেডাৰিং কৰা হ’ল"</string>
<string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"ইনপুট পদ্ধতি ছেট আপ কৰক"</string>
<string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"বাস্তৱিক কীব\'ৰ্ড"</string>
<string name="usb_device_permission_prompt" msgid="1825685909587559679">"<xliff:g id="USB_DEVICE">%2$s</xliff:g>ত প্ৰৱেশ কৰিবলৈ <xliff:g id="APPLICATION">%1$s</xliff:g>ক অনুমতি দিবনে?"</string>
@@ -64,7 +64,7 @@
<string name="global_action_screenshot" msgid="8329831278085426283">"স্ক্ৰীণশ্বট"</string>
<string name="screenshot_saving_ticker" msgid="7403652894056693515">"স্ক্ৰীণশ্বট ছেভ কৰি থকা হৈছে…"</string>
<string name="screenshot_saving_title" msgid="8242282144535555697">"স্ক্ৰীণশ্বট ছেভ কৰি থকা হৈছে…"</string>
- <string name="screenshot_saved_title" msgid="5637073968117370753">"স্ক্ৰীণশ্বট ছেভ কৰা হ\'ল"</string>
+ <string name="screenshot_saved_title" msgid="5637073968117370753">"স্ক্ৰীণশ্বট ছেভ কৰা হ’ল"</string>
<string name="screenshot_saved_text" msgid="7574667448002050363">"আপোনাৰ স্ক্ৰীণশ্বট চাবলৈ টিপক"</string>
<string name="screenshot_failed_title" msgid="7612509838919089748">"স্ক্ৰীণশ্বট ছেভ কৰিব পৰা নগ\'ল"</string>
<string name="screenshot_failed_to_save_unknown_text" msgid="3637758096565605541">"স্ক্ৰীণশ্বট আকৌ ল\'বলৈ চেষ্টা কৰক"</string>
@@ -81,10 +81,10 @@
<string name="screenrecord_cancel_label" msgid="3385204992871088609">"বাতিল কৰক"</string>
<string name="screenrecord_share_label" msgid="4197867360204019389">"শ্বেয়াৰ কৰক"</string>
<string name="screenrecord_delete_label" msgid="7893716870917824013">"মচক"</string>
- <string name="screenrecord_cancel_success" msgid="7768976011702614782">"স্ক্রীণ ৰেকৰ্ড কৰাটো বাতিল কৰা হ\'ল"</string>
- <string name="screenrecord_save_message" msgid="4733982661301846778">"স্ক্রীণ ৰেকৰ্ডিং ছেভ কৰা হ\'ল, চাবলৈ টিপক"</string>
- <string name="screenrecord_delete_description" msgid="5743190456090354585">"স্ক্রীণ ৰেকৰ্ডিং মচা হ\'ল"</string>
- <string name="screenrecord_delete_error" msgid="8154904464563560282">"স্ক্রীণ ৰেকৰ্ডিং মচি থাকোঁতে কিবা আসোঁৱাহ হ\'ল"</string>
+ <string name="screenrecord_cancel_success" msgid="7768976011702614782">"স্ক্রীণ ৰেকৰ্ড কৰাটো বাতিল কৰা হ’ল"</string>
+ <string name="screenrecord_save_message" msgid="4733982661301846778">"স্ক্রীণ ৰেকৰ্ডিং ছেভ কৰা হ’ল, চাবলৈ টিপক"</string>
+ <string name="screenrecord_delete_description" msgid="5743190456090354585">"স্ক্রীণ ৰেকৰ্ডিং মচা হ’ল"</string>
+ <string name="screenrecord_delete_error" msgid="8154904464563560282">"স্ক্রীণ ৰেকৰ্ডিং মচি থাকোঁতে কিবা আসোঁৱাহ হ’ল"</string>
<string name="screenrecord_permission_error" msgid="1526755299469001000">"অনুমতি পাব পৰা নগ\'ল"</string>
<string name="usb_preference_title" msgid="6551050377388882787">"ইউএছবিৰে ফাইল স্থানান্তৰণৰ বিকল্পসমূহ"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"মিডিয়া প্লেয়াৰ (এমটিপি) হিচাপে সংলগ্ন কৰক"</string>
@@ -120,8 +120,8 @@
<string name="accessibility_face_dialog_face_icon" msgid="2658119009870383490">"মুখমণ্ডলৰ আইকন"</string>
<string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"উপযোগিতা অনুসৰি জুম কৰা বুটাম।"</string>
<string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"স্ক্ৰীণৰ আকাৰ ডাঙৰ কৰিবলৈ জুম কৰক।"</string>
- <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"ব্লুটুথ সংযোগ হ\'ল।"</string>
- <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"ব্লুটুথ সংযোগ বিচ্ছিন্ন কৰা হ\'ল।"</string>
+ <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"ব্লুটুথ সংযোগ হ’ল।"</string>
+ <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"ব্লুটুথ সংযোগ বিচ্ছিন্ন কৰা হ’ল।"</string>
<string name="accessibility_no_battery" msgid="358343022352820946">"বেটাৰি শেষ"</string>
<string name="accessibility_battery_one_bar" msgid="7774887721891057523">"বেটাৰিৰ এডাল দণ্ড।"</string>
<string name="accessibility_battery_two_bars" msgid="8500650438735009973">"বেটাৰিৰ দুডাল দণ্ড।"</string>
@@ -137,9 +137,9 @@
<string name="accessibility_data_two_bars" msgid="6166018492360432091">"ডেটা ছংনেলৰ তিনিডাল দণ্ড।"</string>
<string name="accessibility_data_three_bars" msgid="9167670452395038520">"ডেটা ছিংগনেলত তিনিডাল দণ্ড আছে।"</string>
<string name="accessibility_data_signal_full" msgid="2708384608124519369">"ডেটা ছিগনেল পূৰা আছে।"</string>
- <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g>ৰ লগত সংযোগ কৰা হ\'ল।"</string>
- <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g>ৰ লগত সংযোগ কৰা হ\'ল।"</string>
- <string name="accessibility_cast_name" msgid="4026393061247081201">"<xliff:g id="CAST">%s</xliff:g>ত সংযোগ হ\'ল।"</string>
+ <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g>ৰ লগত সংযোগ কৰা হ’ল।"</string>
+ <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g>ৰ লগত সংযোগ কৰা হ’ল।"</string>
+ <string name="accessibility_cast_name" msgid="4026393061247081201">"<xliff:g id="CAST">%s</xliff:g>ত সংযোগ হ’ল।"</string>
<string name="accessibility_no_wimax" msgid="4329180129727630368">"কোনো WiMAX নাই।"</string>
<string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAXৰ এডাল দণ্ড৷"</string>
<string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAXৰ দুডাল দণ্ড আছে।"</string>
@@ -167,14 +167,16 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"এলটিই"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"এলটিই+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"ৰ\'মিং"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
<string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"ৱাই-ফাই"</string>
<string name="accessibility_no_sim" msgid="8274017118472455155">"ছিম নাই।"</string>
- <string name="accessibility_cell_data" msgid="5326139158682385073">"ম\'বাইল ডেটা"</string>
- <string name="accessibility_cell_data_on" msgid="5927098403452994422">"ম\'বাইল ডেটা অন অৱস্থাত আছে"</string>
- <string name="cell_data_off_content_description" msgid="4356113230238585072">"ম\'বাইল ডেটা অফ অৱস্থাত আছে"</string>
+ <string name="accessibility_cell_data" msgid="5326139158682385073">"ম’বাইল ডেটা"</string>
+ <string name="accessibility_cell_data_on" msgid="5927098403452994422">"ম’বাইল ডেটা অন অৱস্থাত আছে"</string>
+ <string name="cell_data_off_content_description" msgid="4356113230238585072">"ম’বাইল ডেটা অফ অৱস্থাত আছে"</string>
<string name="cell_data_off" msgid="1051264981229902873">"অফ অৱস্থাত আছে"</string>
<string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ব্লুটুথ টেডাৰিং।"</string>
<string name="accessibility_airplane_mode" msgid="834748999790763092">"এয়াৰপ্লেইন ম\'ড।"</string>
@@ -206,30 +208,30 @@
<string name="accessibility_desc_work_lock" msgid="4288774420752813383">"কৰ্মস্থানৰ প্ৰ\'ফাইলৰ লক স্ক্ৰীণ"</string>
<string name="accessibility_desc_close" msgid="7479755364962766729">"বন্ধ কৰক"</string>
<string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string>
- <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"ৱাই-ফাই অফ কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_wifi_changed_on" msgid="6440117170789528622">"ৱাই-ফাই অন কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"ম\'বাইল <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
+ <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"ৱাই-ফাই অফ কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_wifi_changed_on" msgid="6440117170789528622">"ৱাই-ফাই অন কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"ম’বাইল <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
<string name="accessibility_quick_settings_battery" msgid="1480931583381408972">"বেটাৰি <xliff:g id="STATE">%s</xliff:g>।"</string>
<string name="accessibility_quick_settings_airplane_off" msgid="7786329360056634412">"এয়াৰপ্লেইন ম\'ড অফ হৈ আছে৷"</string>
<string name="accessibility_quick_settings_airplane_on" msgid="6406141469157599296">"এয়াৰপ্লেইন ম\'ড অন হৈ আছে৷"</string>
- <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"এয়াৰপ্লেইন ম\'ড অফ কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"এয়াৰপ্লেইন ম\'ড অন কৰা হ\'ল।"</string>
+ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"এয়াৰপ্লেইন ম\'ড অফ কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"এয়াৰপ্লেইন ম\'ড অন কৰা হ’ল।"</string>
<string name="accessibility_quick_settings_dnd_none_on" msgid="2960643943620637020">"সম্পূৰ্ণ নিৰৱতা"</string>
<string name="accessibility_quick_settings_dnd_alarms_on" msgid="3357131899365865386">"কেৱল এলাৰ্মবোৰৰ বাবে"</string>
<string name="accessibility_quick_settings_dnd" msgid="6607873236717185815">"অসুবিধা নিদিব।"</string>
- <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"অসুবিধা নিদিব বন্ধ কৰা হ\'ল।"</string>
+ <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"অসুবিধা নিদিব বন্ধ কৰা হ’ল।"</string>
<string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"অসুবিধা নিদিব অন কৰা হৈছে।"</string>
<string name="accessibility_quick_settings_bluetooth" msgid="6341675755803320038">"ব্লুটুথ।"</string>
<string name="accessibility_quick_settings_bluetooth_off" msgid="2133631372372064339">"ব্লুটুথ অফ হৈ আছে।"</string>
<string name="accessibility_quick_settings_bluetooth_on" msgid="7681999166216621838">"ব্লুটুথ অন হৈ আছে।"</string>
<string name="accessibility_quick_settings_bluetooth_connecting" msgid="6953242966685343855">"ব্লুটুথ সংযোগ কৰি থকা হৈছে।"</string>
- <string name="accessibility_quick_settings_bluetooth_connected" msgid="4306637793614573659">"ব্লুটুথ সংযোগ কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_bluetooth_changed_off" msgid="2730003763480934529">"ব্লুটুথ অফ কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="8722351798763206577">"ব্লুটুথ অন কৰা হ\'ল।"</string>
+ <string name="accessibility_quick_settings_bluetooth_connected" msgid="4306637793614573659">"ব্লুটুথ সংযোগ কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_bluetooth_changed_off" msgid="2730003763480934529">"ব্লুটুথ অফ কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="8722351798763206577">"ব্লুটুথ অন কৰা হ’ল।"</string>
<string name="accessibility_quick_settings_location_off" msgid="5119080556976115520">"অৱস্থান সবিশেষ অফ হৈ আছে।"</string>
<string name="accessibility_quick_settings_location_on" msgid="5809937096590102036">"অৱস্থান সবিশেষ অন হৈ আছে।"</string>
- <string name="accessibility_quick_settings_location_changed_off" msgid="8526845571503387376">"অৱস্থান সবিশেষ অফ কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_location_changed_on" msgid="339403053079338468">"অৱস্থান সবিশেষ অন কৰা হ\'ল।"</string>
+ <string name="accessibility_quick_settings_location_changed_off" msgid="8526845571503387376">"অৱস্থান সবিশেষ অফ কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_location_changed_on" msgid="339403053079338468">"অৱস্থান সবিশেষ অন কৰা হ’ল।"</string>
<string name="accessibility_quick_settings_alarm" msgid="3959908972897295660">"<xliff:g id="TIME">%s</xliff:g>ৰ বাবে এলাৰ্ম ছেট কৰা হৈছে।"</string>
<string name="accessibility_quick_settings_close" msgid="3115847794692516306">"পেনেল বন্ধ কৰক।"</string>
<string name="accessibility_quick_settings_more_time" msgid="3659274935356197708">"অধিক সময়।"</string>
@@ -237,26 +239,28 @@
<string name="accessibility_quick_settings_flashlight_off" msgid="4936432000069786988">"ফ্লাশ্বলাইট অফ হৈ আছে।"</string>
<string name="accessibility_quick_settings_flashlight_unavailable" msgid="8012811023312280810">"ফ্লাশ্বলাইট উপলব্ধ নহয়।"</string>
<string name="accessibility_quick_settings_flashlight_on" msgid="2003479320007841077">"ফ্লাশ্বলাইট অন হৈ আছে৷"</string>
- <string name="accessibility_quick_settings_flashlight_changed_off" msgid="3303701786768224304">"ফ্লাশ্বলাইট অফ কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_flashlight_changed_on" msgid="6531793301533894686">"ফ্লাশ্বলাইট অন কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_color_inversion_changed_off" msgid="4406577213290173911">"ৰং বিপৰীতকৰণ অফ কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_color_inversion_changed_on" msgid="6897462320184911126">"ৰং বিপৰীতকৰণ অন কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"ম\'বাইল হ\'টস্প\'ট অফ কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"ম\'বাইল হ\'টস্প\'ট অন কৰা হ\'ল।"</string>
- <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"স্ক্ৰীণ কাষ্টিং বন্ধ কৰা হ\'ল।"</string>
+ <string name="accessibility_quick_settings_flashlight_changed_off" msgid="3303701786768224304">"ফ্লাশ্বলাইট অফ কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_flashlight_changed_on" msgid="6531793301533894686">"ফ্লাশ্বলাইট অন কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_color_inversion_changed_off" msgid="4406577213290173911">"ৰং বিপৰীতকৰণ অফ কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_color_inversion_changed_on" msgid="6897462320184911126">"ৰং বিপৰীতকৰণ অন কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"ম’বাইল হ\'টস্প\'ট অফ কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"ম’বাইল হ\'টস্প\'ট অন কৰা হ’ল।"</string>
+ <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"স্ক্ৰীণ কাষ্টিং বন্ধ কৰা হ’ল।"</string>
<string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"কৰ্মস্থান ম\'ড অফ হৈ আছে।"</string>
<string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"কৰ্মস্থান ম\'ড অন হৈ আছে।"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"কৰ্মস্থান ম\'ড অফ কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"কৰ্মস্থান ম\'ড অন কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ডেটা সঞ্চয়কাৰী সুবিধা অফ কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ডেটা সঞ্চয়কাৰী সুবিধা অন কৰা হ\'ল।"</string>
+ <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"কৰ্মস্থান ম\'ড অফ কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"কৰ্মস্থান ম\'ড অন কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ডেটা সঞ্চয়কাৰী সুবিধা অফ কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ডেটা সঞ্চয়কাৰী সুবিধা অন কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"ছেন্সৰৰ গোপনীয়তা অফ কৰা হৈছে।"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"ছেন্সৰৰ গোপনীয়তা অন কৰা হৈছে।"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ডিছপ্লেৰ উজ্জ্বলতা"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"চ্চার্জ কৰি থকা হৈছে"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ডেটা পজ কৰা হৈছে"</string>
<string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G ডেটা পজ কৰা হৈছে"</string>
- <string name="data_usage_disabled_dialog_mobile_title" msgid="6801382439018099779">"ম\'বাইল ডেটা পজ কৰা হৈছে"</string>
+ <string name="data_usage_disabled_dialog_mobile_title" msgid="6801382439018099779">"ম’বাইল ডেটা পজ কৰা হৈছে"</string>
<string name="data_usage_disabled_dialog_title" msgid="3932437232199671967">"ডেটা পজ কৰা হৈছে"</string>
- <string name="data_usage_disabled_dialog" msgid="4919541636934603816">"আপুনি নির্ধাৰণ কৰা ডেটাৰ সীমা শেষ হৈছে। আপুনি এতিয়া ম\'বাইল ডেটা ব্যৱহাৰ কৰিব নোৱাৰে। \n\nযদিহে আপুনি আকৌ ম\'বাইল ডেটা ব্যৱহাৰ কৰে তেন্তে ডেটাৰ ব্যৱহাৰৰ বাবে মাচুল ভৰিবলগীয়া হ\'ব পাৰে।"</string>
+ <string name="data_usage_disabled_dialog" msgid="4919541636934603816">"আপুনি নির্ধাৰণ কৰা ডেটাৰ সীমা শেষ হৈছে। আপুনি এতিয়া ম’বাইল ডেটা ব্যৱহাৰ কৰিব নোৱাৰে। \n\nযদিহে আপুনি আকৌ ম’বাইল ডেটা ব্যৱহাৰ কৰে তেন্তে ডেটাৰ ব্যৱহাৰৰ বাবে মাচুল ভৰিবলগীয়া হ’ব পাৰে।"</string>
<string name="data_usage_disabled_dialog_enable" msgid="1412395410306390593">"পুনৰ আৰম্ভ কৰক"</string>
<string name="gps_notification_searching_text" msgid="8574247005642736060">"জিপিএছ সন্ধান কৰি থকা হৈছে"</string>
<string name="gps_notification_found_text" msgid="4619274244146446464">"জিপিএছএ অৱস্থান ছেট কৰিছে"</string>
@@ -271,8 +275,8 @@
<string name="status_bar_notification_inspect_item_title" msgid="5668348142410115323">"জাননীৰ ছেটিংসমূহ"</string>
<string name="status_bar_notification_app_settings_title" msgid="5525260160341558869">"<xliff:g id="APP_NAME">%s</xliff:g> ছেটিংসমূহ"</string>
<string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"আপোনাৰ ফ\'নৰ স্ক্ৰীণ স্বয়ংক্ৰিয়ভাৱে ঘূৰিব৷"</string>
- <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"স্ক্ৰীণ লেণ্ডস্কেপ দিশত লক কৰা হ\'ল।"</string>
- <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"স্ক্ৰীণ প\'ৰ্ট্ৰেইট দিশত লক কৰা হ\'ল।"</string>
+ <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"স্ক্ৰীণ লেণ্ডস্কেপ দিশত লক কৰা হ’ল।"</string>
+ <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"স্ক্ৰীণ প\'ৰ্ট্ৰেইট দিশত লক কৰা হ’ল।"</string>
<string name="accessibility_rotation_lock_off_changed" msgid="8134601071026305153">"আপোনাৰ ফ\'নৰ স্ক্ৰীণ এতিয়া স্বয়ংক্ৰিয়ভাৱে ঘূৰিব৷"</string>
<string name="accessibility_rotation_lock_on_landscape_changed" msgid="3135965553707519743">"স্ক্ৰীণখন এতিয়া লেণ্ডস্কেইপ দিশত লক কৰা অৱস্থাত আছে।"</string>
<string name="accessibility_rotation_lock_on_portrait_changed" msgid="8922481981834012126">"স্ক্ৰীণখন এতিয়া প\'ৰ্ট্ৰেইট দিশত লক কৰা অৱস্থাত আছে।"</string>
@@ -299,7 +303,7 @@
<string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"স্বয়ং-ঘূৰ্ণন"</string>
<string name="accessibility_quick_settings_rotation" msgid="4231661040698488779">"স্বয়ং-ঘূৰ্ণন স্ক্ৰীণ"</string>
<string name="accessibility_quick_settings_rotation_value" msgid="8187398200140760213">"<xliff:g id="ID_1">%s</xliff:g> ম\'ড"</string>
- <string name="quick_settings_rotation_locked_label" msgid="6359205706154282377">"ঘূৰ্ণন লক কৰা হ\'ল"</string>
+ <string name="quick_settings_rotation_locked_label" msgid="6359205706154282377">"ঘূৰ্ণন লক কৰা হ’ল"</string>
<string name="quick_settings_rotation_locked_portrait_label" msgid="5102691921442135053">"প\'ৰ্ট্ৰেইট"</string>
<string name="quick_settings_rotation_locked_landscape_label" msgid="8553157770061178719">"লেণ্ডস্কেইপ"</string>
<string name="quick_settings_ime_label" msgid="7073463064369468429">"ইনপুট পদ্ধতি"</string>
@@ -331,7 +335,7 @@
<string name="quick_settings_inversion_label" msgid="8790919884718619648">"ৰং ওলোটা কৰক"</string>
<string name="quick_settings_color_space_label" msgid="853443689745584770">"ৰং শুধৰণী কৰা ম\'ড"</string>
<string name="quick_settings_more_settings" msgid="326112621462813682">"অধিক ছেটিং"</string>
- <string name="quick_settings_done" msgid="3402999958839153376">"সম্পন্ন কৰা হ\'ল"</string>
+ <string name="quick_settings_done" msgid="3402999958839153376">"সম্পন্ন কৰা হ’ল"</string>
<string name="quick_settings_connected" msgid="1722253542984847487">"সংযোগ কৰা হ’ল"</string>
<string name="quick_settings_connected_battery_level" msgid="4136051440381328892">"সংযুক্ত, বেটাৰি <xliff:g id="BATTERY_LEVEL_AS_PERCENTAGE">%1$s</xliff:g>"</string>
<string name="quick_settings_connecting" msgid="47623027419264404">"সংযোগ কৰি থকা হৈছে..."</string>
@@ -345,7 +349,7 @@
</plurals>
<string name="quick_settings_notifications_label" msgid="4818156442169154523">"জাননীসমূহ"</string>
<string name="quick_settings_flashlight_label" msgid="2133093497691661546">"ফ্লাশ্বলাইট"</string>
- <string name="quick_settings_cellular_detail_title" msgid="3661194685666477347">"ম\'বাইল ডেটা"</string>
+ <string name="quick_settings_cellular_detail_title" msgid="3661194685666477347">"ম’বাইল ডেটা"</string>
<string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"ডেটা ব্যৱহাৰ"</string>
<string name="quick_settings_cellular_detail_remaining_data" msgid="722715415543541249">"বাকী থকা ডেটা"</string>
<string name="quick_settings_cellular_detail_over_limit" msgid="967669665390990427">"সর্ব্বোচ সীমা"</string>
@@ -364,7 +368,7 @@
<string name="recents_swipe_up_onboarding" msgid="3824607135920170001">"আনটো এপ্ ব্য়ৱহাৰ কৰিবলৈ ওপৰলৈ ছোৱাইপ কৰক"</string>
<string name="recents_quick_scrub_onboarding" msgid="2778062804333285789">"খৰতকীয়াকৈ আনটো এপ্ ব্য়ৱহাৰ কৰিবলৈ সোঁফালে টানক"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7171470775439860480">"অৱলোকন ট’গল কৰক"</string>
- <string name="expanded_header_battery_charged" msgid="5945855970267657951">"চ্চার্জ হ\'ল"</string>
+ <string name="expanded_header_battery_charged" msgid="5945855970267657951">"চ্চার্জ হ’ল"</string>
<string name="expanded_header_battery_charging" msgid="205623198487189724">"চ্চার্জ হৈ আছে"</string>
<string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"বেটাৰিৰ চ্চাৰ্জ সম্পূর্ণ হ\'বলৈ <xliff:g id="CHARGING_TIME">%s</xliff:g> বাকী"</string>
<string name="expanded_header_battery_not_charging" msgid="4798147152367049732">"চ্চার্জ কৰি থকা নাই"</string>
@@ -419,7 +423,7 @@
<string name="user_logout_notification_text" msgid="3350262809611876284">"বর্তমানৰ ব্যৱহাৰকাৰীক লগ আউট কৰক"</string>
<string name="user_logout_notification_action" msgid="1195428991423425062">"ব্যৱহাৰকাৰীক লগ আউট কৰক"</string>
<string name="user_add_user_title" msgid="4553596395824132638">"নতুন ব্যৱহাৰকাৰী যোগ কৰিবনে?"</string>
- <string name="user_add_user_message_short" msgid="2161624834066214559">"আপুনি যেতিয়া এজন নতুন ব্যৱহাৰকাৰী যোগ কৰে, তেওঁ নিজৰ স্থান ছেট আপ কৰা প্ৰয়োজন।\n\nযিকোনো ব্যৱহাৰকাৰীয়ে নিজৰ লগতে আন ব্যৱহাৰকাৰীৰো এপ্ আপডেট কৰিব পাৰে।"</string>
+ <string name="user_add_user_message_short" msgid="2161624834066214559">"আপুনি যেতিয়া এজন নতুন ব্যৱহাৰকাৰী যোগ কৰে, তেওঁ নিজৰ স্থান ছেট আপ কৰা প্ৰয়োজন।\n\nযিকোনো ব্যৱহাৰকাৰীয়ে নিজৰ লগতে আন ব্যৱহাৰকাৰীৰো এপ্ আপডে’ট কৰিব পাৰে।"</string>
<string name="user_limit_reached_title" msgid="7374910700117359177">"অধিকতম ব্যৱহাৰকাৰী সৃষ্টি কৰা হ’ল"</string>
<plurals name="user_limit_reached_message" formatted="false" msgid="1855040563671964242">
<item quantity="one">আপুনি <xliff:g id="COUNT">%d</xliff:g> জনলৈকে ব্যৱহাৰকাৰী যোগ কৰিব পাৰে।</item>
@@ -507,7 +511,7 @@
<string name="accessibility_volume_expand" msgid="5946812790999244205">"সম্প্ৰসাৰণ কৰক"</string>
<string name="accessibility_volume_collapse" msgid="3609549593031810875">"সংকুচিত কৰক"</string>
<string name="accessibility_output_chooser" msgid="8185317493017988680">"আউটপুট ডিভাইচ সলনি কৰক"</string>
- <string name="screen_pinning_title" msgid="3273740381976175811">"স্ক্ৰীণ পিন কৰা হ\'ল"</string>
+ <string name="screen_pinning_title" msgid="3273740381976175811">"স্ক্ৰীণ পিন কৰা হ’ল"</string>
<string name="screen_pinning_description" msgid="8909878447196419623">"এই কাৰ্যই আপুনি আনপিন নকৰালৈকে ইয়াক দেখা পোৱা অৱস্থাত ৰাখে। আনপিন কৰিবলৈ \'পিছলৈ যাওক\' আৰু \'অৱলোকন\'-ত স্পৰ্শ কৰি থাকক।"</string>
<string name="screen_pinning_description_recents_invisible" msgid="8281145542163727971">"এই কাৰ্যই আপুনি আনপিন নকৰালৈকে ইয়াক দেখা পোৱা অৱস্থাত ৰাখে। আনপিন কৰিবলৈ পিছলৈ যাওক আৰু হ\'মত স্পৰ্শ কৰি সেঁচি ধৰক।"</string>
<string name="screen_pinning_description_accessible" msgid="426190689254018656">"এই কাৰ্যই আপুনি আনপিন নকৰালৈকে ইয়াক দেখা পোৱা অৱস্থাত ৰাখে। আনপিন কৰিবলৈ \'অৱলোকন\'-ত স্পৰ্শ কৰি থাকক।"</string>
@@ -516,8 +520,8 @@
<string name="screen_pinning_toast_recents_invisible" msgid="8252402309499161281">"এই স্ক্ৰীণখন আনপিন কৰিবলৈ পিছলৈ যাওক আৰু হ\'ম বুটামত স্পৰ্শ কৰি হেঁচি ধৰক।"</string>
<string name="screen_pinning_positive" msgid="3783985798366751226">"বুজি পালোঁ"</string>
<string name="screen_pinning_negative" msgid="3741602308343880268">"নালাগে, ধন্যবাদ"</string>
- <string name="screen_pinning_start" msgid="1022122128489278317">"স্ক্ৰীণ পিন কৰা হ\'ল"</string>
- <string name="screen_pinning_exit" msgid="5187339744262325372">"স্ক্ৰীণ আনপিন কৰা হ\'ল"</string>
+ <string name="screen_pinning_start" msgid="1022122128489278317">"স্ক্ৰীণ পিন কৰা হ’ল"</string>
+ <string name="screen_pinning_exit" msgid="5187339744262325372">"স্ক্ৰীণ আনপিন কৰা হ’ল"</string>
<string name="quick_settings_reset_confirmation_title" msgid="748792586749897883">"<xliff:g id="TILE_LABEL">%1$s</xliff:g> লুকুৱাবনে?"</string>
<string name="quick_settings_reset_confirmation_message" msgid="2235970126803317374">"আপুনি ইয়াক পৰৱৰ্তী সময়ত ছেটিংসমূহত অন কৰিলে ই পুনৰ প্ৰকট হ\'ব।"</string>
<string name="quick_settings_reset_confirmation_button" msgid="2660339101868367515">"লুকুৱাওক"</string>
@@ -576,8 +580,8 @@
<string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"হ\'টস্প\'ট"</string>
<string name="accessibility_managed_profile" msgid="6613641363112584120">"কৰ্মস্থানৰ প্ৰ\'ফাইল"</string>
<string name="tuner_warning_title" msgid="7094689930793031682">"কিছুমানৰ বাবে আমোদজনক হয় কিন্তু সকলোৰে বাবে নহয়"</string>
- <string name="tuner_warning" msgid="8730648121973575701">"System UI Tunerএ আপোনাক Android ব্যৱহাৰকাৰী ইণ্টাৰফেইচ সলনি কৰিবলৈ আৰু নিজৰ উপযোগিতা অনুসৰি ব্যৱহাৰ কৰিবলৈ অতিৰিক্ত সুবিধা প্ৰদান কৰে। এই পৰীক্ষামূলক সুবিধাসমূহ সলনি হ\'ব পাৰে, সেইবোৰে কাম নকৰিব পাৰে বা আগন্তুক সংস্কৰণসমূহত সেইবোৰ অন্তৰ্ভুক্ত কৰা নহ\'ব পাৰে। সাৱধানেৰে আগবাঢ়ক।"</string>
- <string name="tuner_persistent_warning" msgid="8597333795565621795">"এই পৰীক্ষামূলক সুবিধাসমূহ সলনি হ\'ব পাৰে, সেইবোৰে কাম নকৰিব পাৰে বা আগন্তুক সংস্কৰণসমূহত সেইবোৰ অন্তৰ্ভুক্ত কৰা নহ\'ব পাৰে। সাৱধানেৰে আগবাঢ়ক।"</string>
+ <string name="tuner_warning" msgid="8730648121973575701">"System UI Tunerএ আপোনাক Android ব্যৱহাৰকাৰী ইণ্টাৰফেইচ সলনি কৰিবলৈ আৰু নিজৰ উপযোগিতা অনুসৰি ব্যৱহাৰ কৰিবলৈ অতিৰিক্ত সুবিধা প্ৰদান কৰে। এই পৰীক্ষামূলক সুবিধাসমূহ সলনি হ\'ব পাৰে, সেইবোৰে কাম নকৰিব পাৰে বা আগন্তুক সংস্কৰণসমূহত সেইবোৰ অন্তৰ্ভুক্ত কৰা নহ’ব পাৰে। সাৱধানেৰে আগবাঢ়ক।"</string>
+ <string name="tuner_persistent_warning" msgid="8597333795565621795">"এই পৰীক্ষামূলক সুবিধাসমূহ সলনি হ\'ব পাৰে, সেইবোৰে কাম নকৰিব পাৰে বা আগন্তুক সংস্কৰণসমূহত সেইবোৰ অন্তৰ্ভুক্ত কৰা নহ’ব পাৰে। সাৱধানেৰে আগবাঢ়ক।"</string>
<string name="got_it" msgid="2239653834387972602">"বুজি পালোঁ"</string>
<string name="tuner_toast" msgid="603429811084428439">"অভিনন্দন! ছেটিংসমূহত System UI Tuner যোগ কৰা হৈছে"</string>
<string name="remove_from_settings" msgid="8389591916603406378">"ছেটিংসমূহৰ পৰা আঁতৰাওক"</string>
@@ -600,7 +604,7 @@
<string name="tuner_full_importance_settings_off" msgid="8208165412614935229">"অফ"</string>
<string name="power_notification_controls_description" msgid="4372459941671353358">"জাননী নিয়ন্ত্ৰণৰ অধিক কৰ্তৃত্বৰ সৈতে আপুনি এটা এপৰ জাননীৰ গুৰুত্বৰ স্তৰ ০ৰ পৰা ৫লৈ ছেট কৰিব পাৰে।\n\n"<b>"স্তৰ ৫"</b>" \n- জাননী তালিকাৰ একেবাৰে ওপৰত দেখুৱাওক \n- সম্পূৰ্ণ স্ক্ৰীণত থাকোঁতে ব্যাঘাত জন্মাবলৈ অনুমতি দিয়ক\n- সদায় ভুমুকি মাৰিবলৈ দিয়ক\n\n"<b>"স্তৰ ৪"</b>" \n- সম্পূৰ্ণ স্ক্ৰীণত থাকোঁতে ব্যাঘাত জন্মাবলৈ নিদিব\n- সদায় ভুমুকি মাৰিবলৈ দিয়ক\n\n"<b>"স্তৰ ৩"</b>" \n- সম্পূৰ্ণ স্ক্ৰীণত থাকোঁতে ব্যাঘাত জন্মাবলৈ নিদিব\n- কেতিয়াও ভুমুকি মাৰিবলৈ নিদিব\n\n"<b>"স্তৰ ২"</b>" \n- সম্পূর্ণ স্ক্ৰীণত থাকোঁতে ব্যাঘাত জন্মাবলৈ নিদিব \n- কেতিয়াও ভুমুকি মাৰিবলৈ নিদিব\n- কেতিয়াও শব্দ আৰু কম্পন কৰিবলৈ নিদিব\n\n"<b>" স্তৰ ১"</b>" \n- সম্পূৰ্ণ স্ক্ৰীণত থাকোঁতে ব্যাঘাত জন্মাবলৈ নিদিব\n- কেতিয়াও ভুমুকি মাৰিবলৈ নিদিব\n-কেতিয়াও শব্দ আৰু কম্পন কৰিবলৈ নিদিব \n- লক স্ক্ৰীণ আৰু স্থিতি দণ্ডৰ পৰা লুকুৱাই ৰাখক \n- জাননী তালিকাৰ একেবাৰে তলত দেখুৱাওক\n\n"<b>"স্তৰ ০"</b>" \n- এই এপৰ সকলো জাননী অৱৰোধ কৰক"</string>
<string name="notification_header_default_channel" msgid="7506845022070889909">"জাননীসমূহ"</string>
- <string name="notification_channel_disabled" msgid="344536703863700565">"আপোনাক এই জাননীসমূহ আৰু দেখুওৱা নহ\'ব"</string>
+ <string name="notification_channel_disabled" msgid="344536703863700565">"আপোনাক এই জাননীসমূহ আৰু দেখুওৱা নহ’ব"</string>
<string name="notification_channel_minimized" msgid="1664411570378910931">"এই জাননীসমূহ মিনিমাইজ কৰি থোৱা হ\'ব"</string>
<string name="notification_channel_silenced" msgid="2877199534497961942">"এই জাননী নিৰৱে দেখুওৱা হ’ব"</string>
<string name="notification_channel_unsilenced" msgid="4790904571552394137">"এই জাননীবোৰে আপোনাক সতৰ্ক কৰিব"</string>
@@ -635,7 +639,7 @@
<string name="notification_channel_switch_accessibility" msgid="3420796005601900717">"এই চ্চেনেলৰ পৰা জাননী দিবলৈ অনুমতি দিয়ক"</string>
<string name="notification_more_settings" msgid="816306283396553571">"অধিক ছেটিং"</string>
<string name="notification_app_settings" msgid="420348114670768449">"নিজৰ উপযোগিতা অনুসৰি"</string>
- <string name="notification_done" msgid="5279426047273930175">"সম্পন্ন হ\'ল"</string>
+ <string name="notification_done" msgid="5279426047273930175">"সম্পন্ন হ’ল"</string>
<string name="inline_undo" msgid="558916737624706010">"আনডু কৰক"</string>
<string name="notification_menu_accessibility" msgid="2046162834248888553">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="MENU_DESCRIPTION">%2$s</xliff:g>"</string>
<string name="notification_menu_gear_description" msgid="2204480013726775108">"জাননীৰ নিয়ন্ত্ৰণসমূহ"</string>
@@ -783,8 +787,8 @@
<string name="accessibility_quick_settings_settings" msgid="6132460890024942157">"ছেটিংসমূহ খোলক।"</string>
<string name="accessibility_quick_settings_expand" msgid="2375165227880477530">"ক্ষিপ্ৰ ছেটিংসমূহ খোলক।"</string>
<string name="accessibility_quick_settings_collapse" msgid="1792625797142648105">"ক্ষিপ্ৰ ছেটিংসমূহ বন্ধ কৰক।"</string>
- <string name="accessibility_quick_settings_alarm_set" msgid="1863000242431528676">"এলার্ম ছেট কৰা হ\'ল।"</string>
- <string name="accessibility_quick_settings_user" msgid="1567445362870421770">"<xliff:g id="ID_1">%s</xliff:g> হিচাপে ছাইন ইন হ\'ল"</string>
+ <string name="accessibility_quick_settings_alarm_set" msgid="1863000242431528676">"এলার্ম ছেট কৰা হ’ল।"</string>
+ <string name="accessibility_quick_settings_user" msgid="1567445362870421770">"<xliff:g id="ID_1">%s</xliff:g> হিচাপে ছাইন ইন হ’ল"</string>
<string name="data_connection_no_internet" msgid="4503302451650972989">"ইণ্টাৰনেট সংযোগ নাই"</string>
<string name="accessibility_quick_settings_open_details" msgid="4230931801728005194">"বিৱৰণসমূহ খোলক।"</string>
<string name="accessibility_quick_settings_not_available" msgid="4190068184294019846">"<xliff:g id="REASON">%s</xliff:g>ৰ বাবে উপলব্ধ নহয়"</string>
@@ -806,9 +810,9 @@
<string name="pip_skip_to_prev" msgid="1955311326688637914">"আগৰটো মিডিয়ালৈ যাওক"</string>
<string name="thermal_shutdown_title" msgid="4458304833443861111">"আপোনাৰ ফ\'নটো গৰম হোৱাৰ কাৰণে অফ কৰা হৈছিল"</string>
<string name="thermal_shutdown_message" msgid="9006456746902370523">"আপোনাৰ ফ\'নটো এতিয়া স্বাভাৱিকভাৱে চলি আছে"</string>
- <string name="thermal_shutdown_dialog_message" msgid="566347880005304139">"আপোনাৰ ফ\'নটো অত্যধিক গৰম হোৱাৰ বাবে ইয়াক ঠাণ্ডা কৰিবলৈ অফ কৰা হৈছিল। আপোনাৰ ফ\'নটো এতিয়া স্বাভাৱিকভাৱে চলি আছে।\n\nআপোনাৰ ফ\'নটো গৰম হ\'ব পাৰে, যদিহে আপুনি:\n • ফ\'নটোৰ হাৰ্ডৱেৰ অত্যধিক মাত্ৰাত ব্যৱহাৰ কৰা এপসমূহ চলালে (যেনে, ভিডিঅ\' গেইম, ভিডিঅ\', দিক্-নিৰ্দেশনা এপসমূহ)\n • খুউব ডাঙৰ আকাৰৰ ফাইল আপল\'ড বা ডাউনল\'ড কৰিলে\n • আপোনাৰ ফ\'নটো উচ্চ তাপমাত্ৰাৰ পৰিৱেশত ব্যৱহাৰ কৰিলে"</string>
+ <string name="thermal_shutdown_dialog_message" msgid="566347880005304139">"আপোনাৰ ফ\'নটো অত্যধিক গৰম হোৱাৰ বাবে ইয়াক ঠাণ্ডা কৰিবলৈ অফ কৰা হৈছিল। আপোনাৰ ফ\'নটো এতিয়া স্বাভাৱিকভাৱে চলি আছে।\n\nআপোনাৰ ফ\'নটো গৰম হ\'ব পাৰে, যদিহে আপুনি:\n • ফ\'নটোৰ হাৰ্ডৱেৰ অত্যধিক মাত্ৰাত ব্যৱহাৰ কৰা এপসমূহ চলালে (যেনে, ভিডিঅ\' গেইম, ভিডিঅ\', দিক্-নিৰ্দেশনা এপসমূহ)\n • খুউব ডাঙৰ আকাৰৰ ফাইল আপল\'ড বা ডাউনল’ড কৰিলে\n • আপোনাৰ ফ\'নটো উচ্চ তাপমাত্ৰাৰ পৰিৱেশত ব্যৱহাৰ কৰিলে"</string>
<string name="high_temp_title" msgid="4589508026407318374">"ফ\'নটো গৰম হ\'বলৈ ধৰিছে"</string>
- <string name="high_temp_notif_message" msgid="5642466103153429279">"ফ\'নটো ঠাণ্ডা হৈ থকা সময়ত কিছুমান সুবিধা উপলব্ধ নহ\'ব"</string>
+ <string name="high_temp_notif_message" msgid="5642466103153429279">"ফ\'নটো ঠাণ্ডা হৈ থকা সময়ত কিছুমান সুবিধা উপলব্ধ নহ’ব"</string>
<string name="high_temp_dialog_message" msgid="6840700639374113553">"আপোনাৰ ফ\'নটোৱে নিজে নিজে ঠাণ্ডা হ\'বলৈ স্বয়ংক্ৰিয়ভাৱে চেষ্টা কৰিব। আপুনি ফ\'নটো ব্যৱহাৰ কৰি থাকিব পাৰে কিন্তু ই লাহে লাহে চলিব পাৰে।\n\nফ\'নটো সম্পূৰ্ণভাৱে ঠাণ্ডা হোৱাৰ পিছত ই আগৰ নিচিনাকৈয়েই চলিব।"</string>
<string name="lockscreen_shortcut_left" msgid="2182769107618938629">"বাওঁ শ্বৰ্টকাট"</string>
<string name="lockscreen_shortcut_right" msgid="3328683699505226536">"সোঁ শ্বৰ্টকাট"</string>
@@ -836,7 +840,7 @@
<string name="instant_apps_message_with_help" msgid="6179830437630729747">"ইনষ্ট\'ল নকৰাকৈয়েই এপটো খোলা হৈছে। অধিক জানিবলৈ টিপক।"</string>
<string name="app_info" msgid="6856026610594615344">"এপ্ সম্পৰ্কীয় তথ্য"</string>
<string name="go_to_web" msgid="2650669128861626071">"ব্ৰাউজাৰলৈ যাওক"</string>
- <string name="mobile_data" msgid="7094582042819250762">"ম\'বাইল ডেটা"</string>
+ <string name="mobile_data" msgid="7094582042819250762">"ম’বাইল ডেটা"</string>
<string name="mobile_data_text_format" msgid="3526214522670876454">"<xliff:g id="ID_1">%1$s</xliff:g> — <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="wifi_is_off" msgid="1838559392210456893">"ৱাই-ফাই অফ অৱস্থাত আছে"</string>
<string name="bt_is_off" msgid="2640685272289706392">"ব্লুটুথ অফ অৱস্থাত আছে"</string>
@@ -884,4 +888,9 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g>টা অন্য এপ্</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g>টা অন্য এপ্</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"ছেন্সৰ অফ হৈ আছে"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index 9c2cbb96bdaa..907e19d787d2 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Rominq"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"İş rejimi yanılıdır."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Data Qənaəti deaktiv edildi."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Data Qənaəti aktiv edildi."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor Məxfiliyi deaktivdir."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor Məxfiliyi aktivdir."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Display brightness"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Enerji yığır"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G məlumatlarına fasilə verildi"</string>
@@ -884,4 +888,7 @@
<item quantity="other">Digər <xliff:g id="NUM_APPS_1">%d</xliff:g> tətbiq</item>
<item quantity="one">Digər <xliff:g id="NUM_APPS_0">%d</xliff:g> tətbiq</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensorlar deaktivdir"</string>
+ <string name="device_services" msgid="1191212554435440592">"Cihaz Xidmətləri"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Başlıq yoxdur"</string>
</resources>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index 13919bb75d78..8668c6baf9c8 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Režim rada je uključen."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Ušteda podataka je isključena."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Ušteda podataka je uključena."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Isključena je privatnost senzora."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Uključena je privatnost senzora."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Osvetljenost ekrana"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Puni se"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G podaci su pauzirani"</string>
@@ -890,4 +894,7 @@
<item quantity="few">I još <xliff:g id="NUM_APPS_1">%d</xliff:g> aplikacije</item>
<item quantity="other">I još <xliff:g id="NUM_APPS_1">%d</xliff:g> aplikacija</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Senzori su isključeni"</string>
+ <string name="device_services" msgid="1191212554435440592">"Usluge za uređaje"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Bez naslova"</string>
</resources>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index 2f2f5602b6f9..4cc91d2c9517 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Роўмінг"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -252,6 +254,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Рэжым працы ўключаны."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Эканомія трафіку адключана."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Эканомія трафіку ўключана."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Прыватнасць датчыкаў выключана."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Прыватнасць датчыкаў уключана."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Яркасць дысплэя"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Ідзе зарадка"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Перадача даных 2G-3G прыпынена"</string>
@@ -898,4 +902,8 @@
<item quantity="many">яшчэ <xliff:g id="NUM_APPS_1">%d</xliff:g> праграм</item>
<item quantity="other">яшчэ <xliff:g id="NUM_APPS_1">%d</xliff:g> праграмы</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Датчыкі выкл."</string>
+ <string name="device_services" msgid="1191212554435440592">"Сэрвісы прылады"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index d985976e4ad9..ede7af9a2084 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Роуминг"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Работният режим е включен."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Функцията „Икономия на данни“ е изключена."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Функцията „Икономия на данни“ е включена."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Настройката Sensor Privacy е изключена."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Настройката Sensor Privacy е включена."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Яркост на екрана"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Зарежда се"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Данните от 2G – 3G са поставени на пауза"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> други приложения</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> друго приложение</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Сензорите са изключени"</string>
+ <string name="device_services" msgid="1191212554435440592">"Услуги за устройството"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index 504b3facb1d5..76a344f78893 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"রোমিং"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"কাজের মোড চালু আছে"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ডেটা সেভার বন্ধ আছে।"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ডেটা সেভার চালু আছে।"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"সেন্সরের গোপনীয়তা বন্ধ আছে।"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"সেন্সরের গোপনীয়তা চালু আছে।"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"প্রদর্শনের উজ্জ্বলতা"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"চার্জ হচ্ছে"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ডেটা বিরতি দেওয়া হয়েছে"</string>
@@ -884,4 +888,8 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g>টি অন্য অ্যাপ</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g>টি অন্য অ্যাপ</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"সেন্সর বন্ধ"</string>
+ <string name="device_services" msgid="1191212554435440592">"ডিভাইস সংক্রান্ত পরিষেবা"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index cdb0c65d12aa..77429a0d074f 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Poslovni režim je uključen."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Ušteda podataka je isključena."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Ušteda podataka je uključena."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Privatnost senzora je isključena."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Privatnost senzora je uključena."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Osvjetljenje ekrana"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Punjenje"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G prijenos podataka je pauzirano"</string>
@@ -892,4 +896,7 @@
<item quantity="few"><xliff:g id="NUM_APPS_1">%d</xliff:g> druge aplikacije​</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> drugih aplikacija​</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Senzori su isključeni"</string>
+ <string name="device_services" msgid="1191212554435440592">"Usluge uređaja"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Bez naslova"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 16770dced872..69550b07de0b 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Itinerància"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"S\'ha activat el mode de feina."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"S\'ha desactivat l\'Economitzador de dades."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"S\'ha activat l\'Economitzador de dades."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"El sensor de privadesa està desactivat."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"El sensor de privadesa està activat."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Brillantor de la pantalla"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"S\'està carregant"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Les dades 2G-3G estan aturades"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> aplicacions més</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> aplicació més</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensors desactivats"</string>
+ <string name="device_services" msgid="1191212554435440592">"Serveis per a dispositius"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 7d1976baf186..cf116e3211f7 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Pracovní režim je zapnutý."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Spořič dat byl vypnut."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Spořič dat byl zapnut."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Ochrana soukromí obsahu ze senzorů je vypnuta."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Ochrana soukromí obsahu ze senzorů je zapnuta."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Jas displeje"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Nabíjení"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Data 2G a 3G jsou pozastavena"</string>
@@ -896,4 +900,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> dalších aplikací​</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> dalších aplikací</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Senzory jsou vypnuty"</string>
+ <string name="device_services" msgid="1191212554435440592">"Služby zařízení"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 0a9ca2e1c631..ce9a8212dc00 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Arbejdstilstand er slået til."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Datasparefunktionen er slået fra."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Datasparefunktionen er slået til."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Privat sensortilstand blev deaktiveret."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Privat sensortilstand blev aktiveret."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Skærmens lysstyrke"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Oplader"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G-data er sat på pause"</string>
@@ -884,4 +888,8 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> anden app</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> andre apps​</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Deaktiver sensorer"</string>
+ <string name="device_services" msgid="1191212554435440592">"Enhedstjenester"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index 23336de5218f..447f8b9b840c 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -254,6 +256,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Arbeitsmodus aktiviert."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Der Datensparmodus ist deaktiviert."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Der Datensparmodus ist aktiviert."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor Privacy deaktiviert."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor Privacy aktiviert."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Helligkeit des Displays"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Wird aufgeladen"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-/3G-Daten pausiert"</string>
@@ -888,4 +892,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> weitere Apps</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> weitere App</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensoren aus"</string>
+ <string name="device_services" msgid="1191212554435440592">"Gerätedienste"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index 48f6d367262a..7468b3a9bcce 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Περιαγωγή"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Η λειτουργία εργασίας ενεργοποιήθηκε."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Η Εξοικονόμηση δεδομένων είναι ανενεργή."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Η Εξοικονόμηση δεδομένων είναι ενεργή."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Το απόρρητο του αισθητήρα είναι ανενεργό."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Το απόρρητο του αισθητήρα είναι ενεργό."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Φωτεινότητα οθόνης"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Φόρτιση"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Τα δεδομένα 2G-3G τέθηκαν σε παύση"</string>
@@ -884,4 +888,7 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> εφαρμογές ακόμα</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> εφαρμογή ακόμα</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Αισθητήρες ανενεργοί"</string>
+ <string name="device_services" msgid="1191212554435440592">"Υπηρεσίες συσκευής"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Χωρίς τίτλο"</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index c9a984bfa83f..5e2fb036b04b 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Work mode turned on."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Data Saver turned off."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Data Saver turned on."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor Privacy turned off."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor Privacy turned on."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Display brightness"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Charging"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G data is paused"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> other apps</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> other app</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensors off"</string>
+ <string name="device_services" msgid="1191212554435440592">"Device Services"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml
index effbb0b862f3..38915694b3a4 100644
--- a/packages/SystemUI/res/values-en-rCA/strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Work mode turned on."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Data Saver turned off."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Data Saver turned on."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor Privacy turned off."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor Privacy turned on."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Display brightness"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Charging"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G data is paused"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> other apps</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> other app</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensors off"</string>
+ <string name="device_services" msgid="1191212554435440592">"Device Services"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index c9a984bfa83f..5e2fb036b04b 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Work mode turned on."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Data Saver turned off."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Data Saver turned on."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor Privacy turned off."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor Privacy turned on."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Display brightness"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Charging"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G data is paused"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> other apps</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> other app</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensors off"</string>
+ <string name="device_services" msgid="1191212554435440592">"Device Services"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index c9a984bfa83f..5e2fb036b04b 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Work mode turned on."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Data Saver turned off."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Data Saver turned on."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor Privacy turned off."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor Privacy turned on."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Display brightness"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Charging"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G data is paused"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> other apps</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> other app</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensors off"</string>
+ <string name="device_services" msgid="1191212554435440592">"Device Services"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-en-rXC/strings.xml b/packages/SystemUI/res/values-en-rXC/strings.xml
index 094aa51ed3ff..d53d61bbf7a4 100644
--- a/packages/SystemUI/res/values-en-rXC/strings.xml
+++ b/packages/SystemUI/res/values-en-rXC/strings.xml
@@ -166,6 +166,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‏‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‏‏‎‎‎4G+‎‏‎‎‏‎"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‎‎‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎LTE‎‏‎‎‏‎"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‏‎‎‏‎‏‏‎‎‏‎‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎LTE+‎‏‎‎‏‎"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‎‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎5G‎‏‎‎‏‎"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‏‎5G+‎‏‎‎‏‎"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‏‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‎1X‎‏‎‎‏‎"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‎‏‎‎Roaming‎‏‎‎‏‎"</string>
<string name="data_connection_edge" msgid="871835227939216682">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‎‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‏‎‏‎‎EDGE‎‏‎‎‏‎"</string>
@@ -249,6 +251,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎Work mode turned on.‎‏‎‎‏‎"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‏‎‎‎‎‏‎‏‏‎‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‏‎‎‏‎‏‎‏‎‎‏‎Data Saver turned off.‎‏‎‎‏‎"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎‎‎‏‎‎‎‏‏‏‎Data Saver turned on.‎‏‎‎‏‎"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‎‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‏‎‏‎‎‏‎‎Sensor Privacy turned off.‎‏‎‎‏‎"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‎‎‏‎‎‏‏‏‏‎‎‎‎‎‏‎‎‏‏‎‎‏‏‎Sensor Privacy turned on.‎‏‎‎‏‎"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‏‏‎‎‎‎‎‏‏‏‎‏‎‏‏‏‎Display brightness‎‏‎‎‏‎"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎Charging‎‏‎‎‏‎"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‎2G-3G data is paused‎‏‎‎‏‎"</string>
@@ -884,4 +888,7 @@
<item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‎‎‏‎‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="NUM_APPS_1">%d</xliff:g>‎‏‎‎‏‏‏‎ other apps‎‏‎‎‏‎</item>
<item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‎‎‏‎‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="NUM_APPS_0">%d</xliff:g>‎‏‎‎‏‏‏‎ other app‎‏‎‎‏‎</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‏‏‏‏‏‎‎Sensors off‎‏‎‎‏‎"</string>
+ <string name="device_services" msgid="1191212554435440592">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‎‏‎‎‎‎‎Device Services‎‏‎‎‏‎"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‎‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‏‏‎‏‏‎No title‎‏‎‎‏‎"</string>
</resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 4d44e0d279e8..9ef6a83b0754 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Se activó el modo de trabajo."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Se desactivó el Ahorro de datos."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Se activó el Ahorro de datos."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Se desactivó el modo de privacidad del sensor."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Se activó el modo de privacidad del sensor."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Brillo de pantalla"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Cargando"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Datos 2G-3G pausados"</string>
@@ -884,4 +888,9 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> apps más</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> app más</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Se desactivaron los sensores"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 9c0919690f65..f4e107ddfa4e 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Itinerancia"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modo de trabajo activado."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Ahorro de datos desactivado."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Ahorro de datos activado."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Se ha desactivado el sensor de privacidad."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Se ha activado el sensor de privacidad."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Brillo de la pantalla"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Cargando"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Datos 2G-3G pausados"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> aplicaciones más</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> aplicación más</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensores desactivados"</string>
+ <string name="device_services" msgid="1191212554435440592">"Servicios del dispositivo"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index 8c755b9889c7..d8568df45ce0 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Rändlus"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Töörežiim on sisse lülitatud."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Andmeside mahu säästja on välja lülitatud."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Andmeside mahu säästja on sisse lülitatud."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Andur Privaatsus on välja lülitatud."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Andur Privaatsus on sisse lülitatud."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Ekraani heledus"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Laadimine"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G andmekasutus on peatatud"</string>
@@ -884,4 +888,8 @@
<item quantity="other">Veel <xliff:g id="NUM_APPS_1">%d</xliff:g> rakendust</item>
<item quantity="one">Veel <xliff:g id="NUM_APPS_0">%d</xliff:g> rakendus</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Andurid on välja lülitatud"</string>
+ <string name="device_services" msgid="1191212554435440592">"Seadme teenused"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index 51a7935e06c4..cfdf7a580e9c 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Ibiltaritza"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Aktibatuta dago lan modua."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Desaktibatuta dago datu-aurrezlea."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Aktibatuta dago datu-aurrezlea."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Desaktibatu da sentsoreen pribatutasuna."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Aktibatu da sentsoreen pribatutasuna."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Bistaratu distira"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Kargatzen"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G datuen erabilera eten da"</string>
@@ -884,4 +888,8 @@
<item quantity="other">beste <xliff:g id="NUM_APPS_1">%d</xliff:g> aplikazio</item>
<item quantity="one">beste <xliff:g id="NUM_APPS_0">%d</xliff:g> aplikazio</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sentsoreak desaktibatuta daude"</string>
+ <string name="device_services" msgid="1191212554435440592">"Gailuetarako zerbitzuak"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index e31a07b1b0f9..e89f90629988 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+‎"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+‎"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"رومینگ"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"حالت کار روشن شد."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"صرفه‌جویی داده خاموش شد."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"صرفه‌جویی داده روشن شد."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"«حریم خصوصی حسگر» خاموش است."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"«حریم خصوصی حسگر» روشن است."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"روشنایی نمایشگر"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"درحال شارژ شدن"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"‏داده 2G-3G موقتاً متوقف شده است"</string>
@@ -884,4 +888,7 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> برنامه دیگر</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> برنامه دیگر</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"حسگرها خاموش است"</string>
+ <string name="device_services" msgid="1191212554435440592">"سرویس‌های دستگاه"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"بدون عنوان"</string>
</resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index d4e59aed2742..cd92d45cb721 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Työtila otettiin käyttöön."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Data Saver poistettiin käytöstä."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Data Saver otettiin käyttöön."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Anturien yksityisyystila ei käytössä"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Anturien yksityisyystila käytössä"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Näytön kirkkaus"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Ladataan"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G-tiedonsiirto keskeytettiin"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> muuta sovellusta</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> muu sovellus</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Anturit pois päältä"</string>
+ <string name="device_services" msgid="1191212554435440592">"Laitepalvelut"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 31cc6d3791c1..695a6a561466 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Itinérance"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Le mode Travail est activé."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Mode Économiseur de données désactivé."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Mode Économiseur de données activé."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"La confidentialité des capteurs est désactivée."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"La confidentialité des capteurs est désactivée."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Luminosité de l\'écran"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"En cours de charge"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Données 2G/3G désactivées"</string>
@@ -884,4 +888,8 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> autre application</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> autres applications</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Capteurs désactivés"</string>
+ <string name="device_services" msgid="1191212554435440592">"Services de l\'appareil"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index db6ffd932b06..a1a0352a89e7 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Itinérance"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Le mode Travail est activé."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"L\'économiseur de données est désactivé."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"L\'économiseur de données est activé."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Confidentialité des capteurs désactivée."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Confidentialité des capteurs activée."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Luminosité de l\'affichage"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"En charge…"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Données 2G-3G désactivées"</string>
@@ -884,4 +888,8 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> autre application</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> autres applications</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Capteurs désactivés"</string>
+ <string name="device_services" msgid="1191212554435440592">"Services pour l\'appareil"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index 5dccba3ca2ba..7f111e8ca4ed 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Itinerancia"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Activouse o modo de traballo."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Desactivouse o Economizador de datos."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Activouse o Economizador de datos."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Desactivouse a privacidade dos sensores."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Activouse a privacidade dos sensores."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Brillo de pantalla"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Cargando"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Os datos 2G-3G están en pausa"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> aplicacións máis</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> aplicación máis</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Desactivar sensores"</string>
+ <string name="device_services" msgid="1191212554435440592">"Servizos do dispositivo"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index 1e6e733898d7..8525094cc1df 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"રોમિંગ"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"કાર્ય મોડ ચાલુ કર્યો."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ડેટા સેવર બંધ કર્યું."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ડેટા સેવર ચાલુ કર્યું."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"સેન્સર પ્રાઇવસી બંધ કરવામાં આવી છે."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"સેન્સર પ્રાઇવસી ચાલુ કરવામાં આવી છે."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"પ્રદર્શન તેજ"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"ચાર્જ થઈ રહ્યું છે"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ડેટા થોભાવ્યો છે"</string>
@@ -884,4 +888,9 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> અન્ય ઍપ</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> અન્ય ઍપ</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"સેન્સર બંધ છે"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index 57709aa55168..1c6991049b1f 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"एलटीई"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"रोमिंग"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"कार्य मोड चालू किया गया."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"डेटा बचाने की सेटिंग बंद कर दी गई है."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"डेटा बचाने की सेटिंग चालू कर दी गई है."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"सेंसर निजता को बंद कर दिया गया है."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"सेंसर निजता को चालू कर दिया गया है."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"स्क्रीन की स्क्रीन की रोशनी"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"चार्ज हो रही है"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G डेटा रोक दिया गया है"</string>
@@ -599,7 +603,7 @@
<string name="tuner_full_importance_settings_on" msgid="7545060756610299966">"चालू"</string>
<string name="tuner_full_importance_settings_off" msgid="8208165412614935229">"बंद"</string>
<string name="power_notification_controls_description" msgid="4372459941671353358">"पावर सूचना नियंत्रण के ज़रिये, आप किसी ऐप की सूचना को उसकी अहमियत के हिसाब से 0 से 5 के लेवल पर सेट कर सकते हैं.\n\n"<b>"लेवल 5"</b>" \n- सूचना सूची में सबसे ऊपर दिखाएं \n- पूरे स्क्रीन को ढंकने की अनुमति दें \n- लगातार देखते रहें \n\n"<b>" लेवल 4"</b>" \n- पूरे स्क्रीन को ढंकें \n- लगातार देखते रहें \n\n"<b>"लेवल 3"</b>" \n- पूरे स्क्रीन को ढंकने से रोकें \n-कभी भी न देखें \n\n"<b>"लेवल 2"</b>" \n- पूरे स्क्रीन को ढंकने से रोकें \n- कभी भी देखें \n- कभी भी आवाज़ या कंपन (वाइब्रेशन) न करें \n\n"<b>"लेवल 1"</b>" \n- पूरे स्क्रीन को ढंकने से रोकें \n- कभी भी न देखें \n- कभी भी आवाज़ या कंपन (वाइब्रेशन) न करें \n- लॉक स्क्रीन और स्टेटस बार से छिपाएं \n- सूचना सूची के नीचे दिखाएं \n\n"<b>"लेवल 0"</b>" \n- ऐप्लिकेशन की सभी सूचनाएं रोक दें"</string>
- <string name="notification_header_default_channel" msgid="7506845022070889909">"सूचना"</string>
+ <string name="notification_header_default_channel" msgid="7506845022070889909">"सूचनाएं"</string>
<string name="notification_channel_disabled" msgid="344536703863700565">"अब आपको ये सूचनाएं दिखाई नहीं देंगी"</string>
<string name="notification_channel_minimized" msgid="1664411570378910931">"इन सूचनाओं को छोटा कर दिया जाएगा"</string>
<string name="notification_channel_silenced" msgid="2877199534497961942">"ये सूचनाएं बिना आवाज़ के दिखाई जाएंगी"</string>
@@ -834,7 +838,7 @@
<string name="instant_apps_title" msgid="8738419517367449783">"<xliff:g id="APP">%1$s</xliff:g> चल रहा है"</string>
<string name="instant_apps_message" msgid="1183313016396018086">"ऐप्लिकेशन इंस्टॉल किए बिना ही खुल गया है."</string>
<string name="instant_apps_message_with_help" msgid="6179830437630729747">"ऐप्लिकेशन इंस्टॉल किए बिना ही खुल गया है. ज़्यादा जानने के लिए टैप करें."</string>
- <string name="app_info" msgid="6856026610594615344">"ऐप की जानकारी"</string>
+ <string name="app_info" msgid="6856026610594615344">"ऐप्लिकेशन की जानकारी"</string>
<string name="go_to_web" msgid="2650669128861626071">"ब्राउज़र पर जाएं"</string>
<string name="mobile_data" msgid="7094582042819250762">"मोबाइल डेटा"</string>
<string name="mobile_data_text_format" msgid="3526214522670876454">"<xliff:g id="ID_1">%1$s</xliff:g> — <xliff:g id="ID_2">%2$s</xliff:g>"</string>
@@ -884,4 +888,7 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> दूसरे ऐप्लिकेशन</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> दूसरे ऐप्लिकेशन</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"सेंसर बंद हैं"</string>
+ <string name="device_services" msgid="1191212554435440592">"डिवाइस सेवाएं"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"कोई शीर्षक नहीं"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 40d9932df4a7..8f3a11b63ec9 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G i više"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Način rada uključen."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Štednja podatkovnog prometa isključena."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Štednja podatkovnog prometa uključena."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Isključena je privatnost senzora."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Uključena je privatnost senzora."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Svjetlina zaslona"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Punjenje"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G – 3G podaci pauzirani"</string>
@@ -890,4 +894,7 @@
<item quantity="few">Još <xliff:g id="NUM_APPS_1">%d</xliff:g> aplikacije</item>
<item quantity="other">Još <xliff:g id="NUM_APPS_1">%d</xliff:g> aplikacija​</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Senzori su isključeni"</string>
+ <string name="device_services" msgid="1191212554435440592">"Usluge uređaja"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Bez naslova"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index e1cdc0be578c..ae12412a6cf0 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Barangolás"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Munka mód bekapcsolva."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Adatforgalom-csökkentő kikapcsolva."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Adatforgalom-csökkentő bekapcsolva."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Kikapcsolta a Szenzoradatok védelmét."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Bekapcsolta a Szenzoradatok védelmét."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"A kijelző fényereje"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Töltés folyamatban…"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"A 2G és 3G adatforgalom szünetel."</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> további alkalmazás</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> további alkalmazás</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Érzékelők kikapcsolva"</string>
+ <string name="device_services" msgid="1191212554435440592">"Eszközszolgáltatások"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index f5921dc2d7ef..ffcc762ccfa1 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Ռոումինգ"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Աշխատանքային ռեժիմը միացվեց:"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Տվյալների խնայումն անջատվեց:"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Թրաֆիկի տնտեսումը միացվեց:"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Տվիչների գաղտնիությունն անջատած է:"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Տվիչների գաղտնիությունը միացված է:"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Ցուցադրել պայծառությունը"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Լիցքավորում"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2Գ-3Գ տվյալների օգտագործումը դադարեցված է"</string>
@@ -884,4 +888,8 @@
<item quantity="one">Եվս <xliff:g id="NUM_APPS_1">%d</xliff:g> հավելված</item>
<item quantity="other">Եվս <xliff:g id="NUM_APPS_1">%d</xliff:g> հավելված</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Տվիչներն անջատած են"</string>
+ <string name="device_services" msgid="1191212554435440592">"Սարքի ծառայություններ"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 06609e3363da..eb99a6cc698c 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Mode kerja diaktifkan."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Penghemat Kuota nonaktif."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Penghemat Kuota diaktifkan."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Privasi Sensor dinonaktifkan."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Privasi Sensor diaktifkan."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Kecerahan tampilan"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Mengisi daya"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Data 2G-3G dijeda"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> aplikasi lain</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> aplikasi lain</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensor nonaktif"</string>
+ <string name="device_services" msgid="1191212554435440592">"Layanan Perangkat"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml
index 83c75e462453..0040c3c723a7 100644
--- a/packages/SystemUI/res/values-is/strings.xml
+++ b/packages/SystemUI/res/values-is/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Reiki"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Kveikt á vinnustillingu."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Slökkt var á gagnasparnaði."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Kveikt var á gagnasparnaði."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Slökkt á persónvuernd skynjara."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Kveikt á persónuvernd fyrir skynjara."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Birtustig skjás"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Í hleðslu"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Slökkt er á 2G- og 3G-gögnum"</string>
@@ -884,4 +888,8 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> forrit í viðbót</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> forrit í viðbót</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Slökkt á skynjurum"</string>
+ <string name="device_services" msgid="1191212554435440592">"Tækjaþjónusta"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 4c512fe63176..83956e83f90d 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modalità Lavoro attivata."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Funzione Risparmio dati disattivata."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Funzione Risparmio dati attivata."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Privacy per i sensori disattivata."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Privacy per i sensori attiva."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Luminosità dello schermo"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"In carica"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Dati 2G-3G sospesi"</string>
@@ -884,4 +888,8 @@
<item quantity="other">Altre <xliff:g id="NUM_APPS_1">%d</xliff:g> app</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> altra app</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensori disattivati"</string>
+ <string name="device_services" msgid="1191212554435440592">"Servizi del dispositivo"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 37fb1f713072..d43551d214a8 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"+4G"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"+LTE"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"‏+G‏5"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"נדידה"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"מצב עבודה הופעל."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"‏חוסך הנתונים (Data Saver) כובה."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"‏חוסך הנתונים (Data Saver) הופעל."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"התכונה \'פרטיות חיישנים\' כבויה."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"התכונה \'פרטיות חיישנים\' פועלת."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"בהירות תצוגה"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"הסוללה נטענת"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"‏השימוש בנתוני 2G-3G מושהה"</string>
@@ -896,4 +900,7 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> אפליקציות נוספות</item>
<item quantity="one">אפליקציה נוספת (<xliff:g id="NUM_APPS_0">%d</xliff:g>)</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"החיישנים כבויים"</string>
+ <string name="device_services" msgid="1191212554435440592">"שירותים למכשיר"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"ללא שם"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 519d333fe8fa..f7d52ed16c50 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"ローミング"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Work モードをオンにしました。"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"データセーバーが OFF になりました。"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"データセーバーが ON になりました。"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"センサー プライバシーを OFF にしました。"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"センサー プライバシーを ON にしました。"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ディスプレイの明るさ"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"充電しています"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G~3Gデータは一時停止中です"</string>
@@ -884,4 +888,8 @@
<item quantity="other">他 <xliff:g id="NUM_APPS_1">%d</xliff:g> 個のアプリ</item>
<item quantity="one">他 <xliff:g id="NUM_APPS_0">%d</xliff:g> 個のアプリ</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"センサー OFF"</string>
+ <string name="device_services" msgid="1191212554435440592">"デバイス サービス"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml
index 50a25bd4f3b4..e1ee20eb12ba 100644
--- a/packages/SystemUI/res/values-ka/strings.xml
+++ b/packages/SystemUI/res/values-ka/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"როუმინგი"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"სამსახურის რეჟიმი ჩართულია."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"მონაცემთა დამზოგველი გამორთულია."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"მონაცემთა დამზოგველი ჩართულია."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"სენსორების კონფიდენციალურობა გამორთულია."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"სენსორების კონფიდენციალურობა ჩართულია."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ეკრანის სიკაშკაშე"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"იტენება"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G მონაცემები შეჩერებულია"</string>
@@ -884,4 +888,7 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> სხვა აპი</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> სხვა აპი</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"სენსორების გამორთვა"</string>
+ <string name="device_services" msgid="1191212554435440592">"მოწყობილობის სერვისები"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"უსათაურო"</string>
</resources>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index b7e02a22e807..a1788fcb551d 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Роуминг"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Жұмыс режимі қосылды."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Трафикті үнемдеу функциясы өшірілді."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Трафикті үнемдеу функциясы қосылды."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor Privacy функциясы өшірулі."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor Privacy функциясы қосулы."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Дисплей жарықтығы"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Зарядтау"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G деректері кідіртілді"</string>
@@ -884,4 +888,8 @@
<item quantity="other">Тағы <xliff:g id="NUM_APPS_1">%d</xliff:g> қолданба</item>
<item quantity="one">Тағы <xliff:g id="NUM_APPS_0">%d</xliff:g> қолданба</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Датчиктер өшірулі"</string>
+ <string name="device_services" msgid="1191212554435440592">"Құрылғы қызметтері"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index 1330f3683f74..0cbd06c1d89e 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"រ៉ូ​មីង"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"បានបើករបៀបការងារ"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"បានបិទកម្មវិធីសន្សំសំចៃទិន្នន័យ"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"បានបើកកម្មវិធីសន្សំសំចៃទិន្នន័យ"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"បានបិទ​ឯកជនភាព​ឧបករណ៍​ចាប់សញ្ញា។"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"បានបើក​ឯកជនភាព​ឧបករណ៍​ចាប់សញ្ញា។"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ពន្លឺ​ការ​បង្ហាញ"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"កំពុង​សាក​ថ្ម"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"ទិន្នន័យ 2G-3G ត្រូវបានផ្អាក"</string>
@@ -884,4 +888,8 @@
<item quantity="other">កម្មវិធី <xliff:g id="NUM_APPS_1">%d</xliff:g> ទៀត</item>
<item quantity="one">កម្មវិធី <xliff:g id="NUM_APPS_0">%d</xliff:g> ទៀត</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"បិទឧបករណ៍​ចាប់សញ្ញា"</string>
+ <string name="device_services" msgid="1191212554435440592">"សេវាកម្មឧបករណ៍"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index 58d2fb80aa08..9f46742928dc 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"ರೋಮಿಂಗ್"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"ಕೆಲಸದ ಮೋಡ್ ಆನ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ಡೇಟಾ ಸೇವರ್ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ಡೇಟಾ ಸೇವರ್ ಆನ್ ಮಾಡಲಾಗಿದೆ."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"ಸೆನ್ಸರ್ ಗೌಪ್ಯತೆ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"ಸೆನ್ಸರ್ ಗೌಪ್ಯತೆ ಆನ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ಹೊಳಪನ್ನು ಪ್ರದರ್ಶಿಸಿ"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ಡೇಟಾವನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ"</string>
@@ -884,4 +888,9 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> ಇತರ ಆ್ಯಪ್‌ಗಳು</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> ಇತರ ಆ್ಯಪ್‌ಗಳು</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"ಸೆನ್ಸರ್‌ಗಳು ಆಫ್"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 76fcaf5b22a2..581ffa9cb1f4 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G 이상"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"로밍"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"작업 모드가 사용 설정되었습니다."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"데이터 절약 모드를 사용 중지했습니다."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"데이터 절약 모드를 사용 설정했습니다."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"센서 개인정보 보호가 사용 중지되었습니다."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"센서 개인정보 보호가 사용 설정되었습니다."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"디스플레이 밝기"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"충전 중"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G 데이터 사용 중지됨"</string>
@@ -884,4 +888,8 @@
<item quantity="other">기타 앱 <xliff:g id="NUM_APPS_1">%d</xliff:g>개</item>
<item quantity="one">기타 앱 <xliff:g id="NUM_APPS_0">%d</xliff:g>개</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"센서 사용 안함"</string>
+ <string name="device_services" msgid="1191212554435440592">"기기 서비스"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index 54f8da33970e..ba5a0ace7d69 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Роуминг"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Иштөө режими күйгүзүлдү."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Трафикти үнөмдөө режими өчүрүлдү."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Трафикти үнөмдөө режими күйгүзүлдү."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Сенсордун купуялыгы өчүрүлдү."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Сенсордун купуялыгы күйгүзүлдү."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Жарыктыгын көрсөтүү"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Кубатталууда"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G дайындары тындырылды."</string>
@@ -884,4 +888,8 @@
<item quantity="other">Дагы <xliff:g id="NUM_APPS_1">%d</xliff:g> колдонмо</item>
<item quantity="one">Дагы <xliff:g id="NUM_APPS_0">%d</xliff:g> колдонмо</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Сенсорлорду өчүрүү"</string>
+ <string name="device_services" msgid="1191212554435440592">"Түзмөк кызматтары"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index 8cc18e91c1a6..a4ffffb4ea30 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"ໂຣມມິງ"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"ໂໝດການເຮັດວຽກເປີດຢູ່."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ປິດຕົວປະຢັດອິນເຕີເນັດແລ້ວ."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ເປີດຕົວປະຢັດອິນເຕີເນັດແລ້ວ."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"ປິດການຮັບຮູ້ຄວາມເປັນສ່ວນຕົວແລ້ວ."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"ເປີດການຮັບຮູ້ຄວາມເປັນສ່ວນຕົວແລ້ວ."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"​ຄວາມ​ແຈ້ງ​​ຂອງ​ຈໍ"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"ກຳລັງສາກໄຟ"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"ຂໍ້​ມູນ 2G​-3G ຢຸດ​ຊົ່ວ​ຄາວແລ້ວ"</string>
@@ -884,4 +888,7 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> ແອັບອື່ນໆ</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> ແອັບອື່ນໆ</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"ປິດການຮັບຮູ້ຢູ່"</string>
+ <string name="device_services" msgid="1191212554435440592">"ບໍລິການອຸປະກອນ"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"ບໍ່ມີຊື່"</string>
</resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index e8d6438d6a0f..46cd3f070f8c 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Tarptinklinis ryšys"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Darbo režimas įjungtas."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Duomenų taupymo priemonė išjungta."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Duomenų taupymo priemonė įjungta."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Jutiklių privatumo funkcija išjungta."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Jutiklių privatumo funkcija įjungta."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Ekrano šviesumas"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Įkrovimas"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G duomenys pristabdyti"</string>
@@ -896,4 +900,9 @@
<item quantity="many">Dar <xliff:g id="NUM_APPS_1">%d</xliff:g> programos</item>
<item quantity="other">Dar <xliff:g id="NUM_APPS_1">%d</xliff:g> programų</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Jutikliai išjungti"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 4c6282dd5029..a1203d503401 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Viesabonēšana"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Darba režīms ir ieslēgts."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Datu lietojuma samazinātājs ir izslēgts."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Datu lietojuma samazinātājs ir ieslēgts."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensoru konfidencialitāte ir izslēgta."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensoru konfidencialitāte ir ieslēgta."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Ekrāna spilgtums"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Notiek uzlāde"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G datu lietojums ir apturēts"</string>
@@ -890,4 +894,8 @@
<item quantity="one">Vēl <xliff:g id="NUM_APPS_1">%d</xliff:g> lietotne</item>
<item quantity="other">Vēl <xliff:g id="NUM_APPS_1">%d</xliff:g> lietotnes</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensori izslēgti"</string>
+ <string name="device_services" msgid="1191212554435440592">"Ierīces pakalpojumi"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index 8591932caf42..a3fd2d5fb8bd 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Роаминг"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Режимот на работа е вклучен."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Штедачот на интернет е исклучен."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Штедачот на интернет е вклучен."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Сензорот „Приватност“ е исклучен."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Сензорот „Приватност“ е вклучен."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Осветленост на екранот"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Се полни"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Податоците 2G-3G се паузирани"</string>
@@ -884,4 +888,8 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> друга апликација</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> други апликации</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Сензорите се исклучени"</string>
+ <string name="device_services" msgid="1191212554435440592">"Услуги за уредот"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index 51ebb2e134c6..f3075b8cc5dd 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"റോമിംഗ്"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDG"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"പ്രവർത്തന മോഡ് ഓണാക്കി."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ഡാറ്റ സേവർ ഓഫാക്കി."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ഡാറ്റ സേവർ ഓണാക്കി."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"സെൻസർ സ്വകാര്യത ഓഫാക്കി."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"സെൻസർ സ്വകാര്യത ഓഫാണ്."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ഡിസ്പ്ലേ തെളിച്ചം"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"ചാർജ്ജുചെയ്യുന്നു"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ഡാറ്റ താൽക്കാലികമായി നിർത്തി"</string>
@@ -884,4 +888,8 @@
<item quantity="other">മറ്റ് <xliff:g id="NUM_APPS_1">%d</xliff:g> ആപ്പുകൾ</item>
<item quantity="one">മറ്റ് <xliff:g id="NUM_APPS_0">%d</xliff:g> ആപ്പ്</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"സെൻസറുകൾ ഓഫാണ്"</string>
+ <string name="device_services" msgid="1191212554435440592">"ഉപകരണ സേവനങ്ങള്‍"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index 6be0e713efdd..723689365fe3 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Роуминг"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Ажлын горимыг асаасан."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Дата хэмнэгчийг унтраасан."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Дата хэмнэгчийг асаасан."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Мэдрэгчийн нууцлалыг унтраасан."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Мэдрэгчийн нууцлалыг асаасан."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Дэлгэцийн гэрэлтэлт"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Цэнэглэж байна"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G дата-г түр зогсоосон байна"</string>
@@ -884,4 +888,8 @@
<item quantity="other">Бусад <xliff:g id="NUM_APPS_1">%d</xliff:g> апп</item>
<item quantity="one">Бусад <xliff:g id="NUM_APPS_0">%d</xliff:g> апп</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Мэдрэгчийг унтраах"</string>
+ <string name="device_services" msgid="1191212554435440592">"Төхөөрөмжийн үйлчилгээ"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index 6fb44ccf0e07..59e481ccc6fc 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"४G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"१X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"रोमिंग"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"कार्य मोड चालू केला."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"डेटा सर्व्हर बंद केला."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"डेटा सर्व्हर चालू केला."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"सेन्सर गोपनीयता बंद केली आहे."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"सेन्सर गोपनीयता सुरू केली आहे."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"डिस्प्ले चमक"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"चार्ज होत आहे"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G डेटास विराम दिला आहे"</string>
@@ -884,4 +888,9 @@
<item quantity="one">इतर <xliff:g id="NUM_APPS_1">%d</xliff:g> अॅ​प</item>
<item quantity="other">इतर <xliff:g id="NUM_APPS_1">%d</xliff:g> अ‍ॅप्स</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"सेन्सर बंद आहेत"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index 58a417d364b9..e77771d23508 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Perayauan"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Mod kerja dihidupkan."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Penjimat Data dimatikan."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Penjimat Data dihidupkan."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Privasi penderia dimatikan."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Privasi penderia dihidupkan."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Kecerahan paparan"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Mengecas"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Data 2G-3G dijeda"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> apl lain</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g>apl lain</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Penderia dimatikan"</string>
+ <string name="device_services" msgid="1191212554435440592">"Perkhidmatan Peranti"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index aa52f7b8d672..e5561e81daf6 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"ပြင်ပကွန်ရက်နှင့် ချိတ်ဆက်ခြင်း"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"အလုပ် မုဒ်ကို ဖွင့်ထားပါသည်။"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ဒေတာချွေတာမှု ပိတ်ထားသည်။"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ဒေတာချွေတာမှု ဖွင့်ထားသည်။"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"\'အာရုံခံကိရိယာ ကန့်သတ်ရန်ဆက်တင်\' ကို ပိတ်ထားသည်။"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"\'အာရုံခံကိရိယာ ကန့်သတ်ရန်ဆက်တင်\' ကို ဖွင့်ထားသည်။"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"တောက်ပမှုကို ပြရန်"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"အားသွင်းနေသည်"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ဒေတာ ခေတ္တရပ်တန့်သည်"</string>
@@ -884,4 +888,8 @@
<item quantity="other">အခြားအက်ပ် <xliff:g id="NUM_APPS_1">%d</xliff:g> ခု</item>
<item quantity="one">အခြားအက်ပ် <xliff:g id="NUM_APPS_0">%d</xliff:g> ခု</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"အာရုံခံကိရိယာများ ပိတ်ထားသည်"</string>
+ <string name="device_services" msgid="1191212554435440592">"စက်ပစ္စည်းဝန်ဆောင်မှုများ"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 558fd9b7382d..a1a12bdfacee 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Arbeidsmodusen er slått på."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Datasparing er slått av."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Datasparing er slått på."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor Privacy er slått av."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor Privacy er slått på."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Lysstyrken på skjermen"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Lader"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G- og 3G-data er satt på pause"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> andre apper</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> annen app</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensorer er av"</string>
+ <string name="device_services" msgid="1191212554435440592">"Enhetstjenester"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index b82642067132..096db56c74ad 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"रोमिङ"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"कार्य मोड सक्रिय भयो।"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"डेटा सेभरलाई निष्क्रिय पारियो।"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"डेटा सेभरलाई सक्रिय गरियो।"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"सेन्सरको गोपनियता निष्क्रिय पारिएको छ।"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"सेन्सरको गोपनियता सक्रिय गरिएको छ।"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"प्रदर्शन चमक"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"चार्ज गर्दै"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G डेटा रोकिएको छ"</string>
@@ -431,7 +435,7 @@
<string name="battery_saver_notification_title" msgid="8614079794522291840">"ब्याट्री सेभर सक्रिय छ"</string>
<string name="battery_saver_notification_text" msgid="820318788126672692">"प्रदर्शन र पृष्ठभूमि डेटा घटाउँनुहोस्"</string>
<string name="battery_saver_notification_action_text" msgid="132118784269455533">"ब्याट्री सेभर निष्क्रिय पार्नुहोस्"</string>
- <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ले आफ्नो स्क्रीनमा प्रदर्शित हुने सबै खिच्न शुरू गर्नेछ।"</string>
+ <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ले आफ्नो स्क्रीनमा प्रदर्शित हुने सबै खिच्न शुरू गर्ने छ।"</string>
<string name="media_projection_remember_text" msgid="3103510882172746752">"फेरि नदेखाउनुहोस्"</string>
<string name="clear_all_notifications_text" msgid="814192889771462828">"सबै हटाउनुहोस्"</string>
<string name="manage_notifications_text" msgid="2386728145475108753">"व्यवस्थित गर्नुहोस्"</string>
@@ -700,7 +704,7 @@
<string name="tuner_full_zen_title" msgid="4540823317772234308">"भोल्युम नियन्त्रणसहित देखाउनुहोस्"</string>
<string name="volume_and_do_not_disturb" msgid="3373784330208603030">"बाधा नपुर्याउनुहोस्"</string>
<string name="volume_dnd_silent" msgid="4363882330723050727">"भोल्युम बटनका सर्टकट"</string>
- <string name="volume_up_silent" msgid="7141255269783588286">"भोल्युम बढाउनेमा बाधा नपुर्याउनुहोस् प्रविष्ट गर्नुहोस्"</string>
+ <string name="volume_up_silent" msgid="7141255269783588286">"भोल्युम बढाउनेमा बाधा नपुर्याउनुहोस् प्रविष्टि गर्नुहोस्"</string>
<string name="battery" msgid="7498329822413202973">"ब्याट्री"</string>
<string name="clock" msgid="7416090374234785905">"घडी"</string>
<string name="headset" msgid="4534219457597457353">"हेडसेट"</string>
@@ -809,7 +813,7 @@
<string name="thermal_shutdown_dialog_message" msgid="566347880005304139">"तपाईंको फोन अति नै तातिएकाले चिसिन बन्द भयो। तपाईंको फोन अब सामान्य ढंगले चल्दै छ।\n\nतपाईंले निम्न कुराहरू गर्नुभयो भने तपाईंको फोन अत्यन्त तातो हुनसक्छ:\n • धेरै संसाधन खपत गर्ने अनुप्रयोगहरूको प्रयोग (जस्तै गेमिङ, भिडियो वा नेभिगेसन अनुप्रयोगहरू)\n • ठूला फाइलहरूको डाउनलोड वा अपलोड\n • उच्च तापक्रममा फोनको प्रयोग"</string>
<string name="high_temp_title" msgid="4589508026407318374">"फोन तातो भइरहेको छ"</string>
<string name="high_temp_notif_message" msgid="5642466103153429279">"फोन चिसो हुँदै गर्दा केही विशेषताहरूलाई सीमित गरिन्छ"</string>
- <string name="high_temp_dialog_message" msgid="6840700639374113553">"तपाईंको फोन स्वतः चिसो हुने प्रयास गर्नेछ। तपाईं अझै पनि आफ्नो फोनको प्रयोग गर्न सक्नुहुन्छ तर त्यो अझ ढिलो चल्न सक्छ।\n\nचिसो भएपछि तपाईंको फोन सामान्य गतिमा चल्नेछ।"</string>
+ <string name="high_temp_dialog_message" msgid="6840700639374113553">"तपाईंको फोन स्वतः चिसो हुने प्रयास गर्ने छ। तपाईं अझै पनि आफ्नो फोनको प्रयोग गर्न सक्नुहुन्छ तर त्यो अझ ढिलो चल्न सक्छ।\n\nचिसो भएपछि तपाईंको फोन सामान्य गतिमा चल्नेछ।"</string>
<string name="lockscreen_shortcut_left" msgid="2182769107618938629">"बायाँतिरको सर्टकट"</string>
<string name="lockscreen_shortcut_right" msgid="3328683699505226536">"दायाँतिरको सर्टकट"</string>
<string name="lockscreen_unlock_left" msgid="2043092136246951985">"बायाँतिरको सर्टकटले पनि अनलक गर्छ"</string>
@@ -884,4 +888,9 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g>अन्य अनुप्रयोगहरू</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> अन्य अनुप्रयोग</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"सेन्सरहरू निष्क्रिय छन्"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 06467b85a687..3607ff8fff59 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Werkmodus ingeschakeld."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Databesparing is uitgeschakeld."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Databesparing is ingeschakeld."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensorprivacy uitgeschakeld."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensorprivacy ingeschakeld."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Helderheid van het scherm"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Opladen"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G/3G-data zijn onderbroken"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> andere apps</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> andere app</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensoren uit"</string>
+ <string name="device_services" msgid="1191212554435440592">"Apparaatservices"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml
index de7f3b2317a7..5cb98eeae88c 100644
--- a/packages/SystemUI/res/values-or/strings.xml
+++ b/packages/SystemUI/res/values-or/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"ରୋମିଙ୍ଗ"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"ୱର୍କ ମୋଡ୍‌କୁ ଅନ୍‍ କରାଯାଇଛି।"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ଡାଟା ସେଭର୍‌ ଅଫ୍‍ କରାଗଲା।"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ଡାଟା ସେଭର୍‌ ଅନ୍‍ କରାଗଲା।"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"ସେନ୍ସର୍‍ ଗୋପନୀୟତାକୁ ବନ୍ଦ କରିଦିଆଯାଇଛି।"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"ସେନ୍ସର୍‍ ଗୋପନୀୟତାକୁ ଚାଲୁ କରାଯାଇଛି।"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ଡିସ୍‌ପ୍ଲେ ଉଜ୍ଜ୍ୱଳତା"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"ଚାର୍ଜ କରାଯାଉଛି"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ଡାଟା ପଜ୍‍ କରାଯାଇଛି"</string>
@@ -884,4 +888,9 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g>ଟି ଅନ୍ୟ ଆପ୍‍</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g>ଟି ଅନ୍ୟ ଆପ୍‍</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"ସେନ୍ସର୍‍ଗୁଡ଼ିକ ବନ୍ଦ ଅଛି"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index 7883bbd0c55a..3702e2bb8ddf 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"ਰੋਮਿੰਗ"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"ਕੰਮ ਮੋਡ ਚਾਲੂ ਕੀਤਾ ਗਿਆ।"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ਡਾਟਾ ਸੇਵਰ ਬੰਦ ਕੀਤਾ ਗਿਆ।"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ਡਾਟਾ ਸੇਵਰ ਚਾਲੂ ਕੀਤਾ ਗਿਆ।"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"ਸੈਂਸਰ ਪਰਦੇਦਾਰੀ ਬੰਦ ਹੈ।"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"ਸੈਂਸਰ ਪਰਦੇਦਾਰੀ ਚਾਲੂ ਹੈ।"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ਡਿਸਪਲੇ ਚਮਕ"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੈ"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ਡਾਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string>
@@ -884,4 +888,9 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> ਹੋਰ ਐਪ</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> ਹੋਰ ਐਪਾਂ</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"ਸੈਂਸਰ ਬੰਦ ਕਰੋ"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 81c26890f009..4ece82c79e29 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Tryb pracy włączony."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Oszczędzanie danych jest wyłączone."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Oszczędzanie danych jest włączone."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Wyłączono ustawienia prywatności czujników."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Włączono ustawienia prywatności czujników."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Jasność wyświetlacza"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Ładowanie"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Transmisja danych 2G-3G została wstrzymana"</string>
@@ -896,4 +900,9 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> inne aplikacje</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> inna aplikacja</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Wyłącz czujniki"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 05fcfb8d5df0..ac6991774daa 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modo de trabalho ativado."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Economia de dados desativada."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Economia de dados ativada."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor de privacidade desativado."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor de privacidade ativado."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Brilho da tela"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Carregando"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Os dados 2G e 3G foram pausados"</string>
@@ -884,4 +888,7 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> outro app</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> outros apps</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensores desativados"</string>
+ <string name="device_services" msgid="1191212554435440592">"Serviços do dispositivo"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Sem título"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index fafdad0d3759..375f5e8f94d2 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"O modo de trabalho foi ativado."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Poupança de dados desativada."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Poupança de dados ativada."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor Privacidade desativado."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor Privacidade ativado."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Brilho do visor"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"A carregar…"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Dados 2G-3G em pausa"</string>
@@ -884,4 +888,9 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> outras aplicações</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> outra aplicação</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensores desativados"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 05fcfb8d5df0..ac6991774daa 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modo de trabalho ativado."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Economia de dados desativada."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Economia de dados ativada."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor de privacidade desativado."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor de privacidade ativado."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Brilho da tela"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Carregando"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Os dados 2G e 3G foram pausados"</string>
@@ -884,4 +888,7 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> outro app</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> outros apps</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensores desativados"</string>
+ <string name="device_services" msgid="1191212554435440592">"Serviços do dispositivo"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Sem título"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index cb9b5740df48..24254f67eccd 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modul de lucru a fost activat."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Economizorul de date a fost dezactivat."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Economizorul de date a fost activat."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Confidențialitatea senzorilor este dezactivată."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Confidențialitatea senzorilor este activată."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Luminozitatea ecranului"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Se încarcă"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Conexiunea de date 2G – 3G este întreruptă"</string>
@@ -890,4 +894,8 @@
<item quantity="other">Alte <xliff:g id="NUM_APPS_1">%d</xliff:g> de aplicații</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> altă aplicație</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Senzori dezactivați"</string>
+ <string name="device_services" msgid="1191212554435440592">"Servicii pentru dispozitiv"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index f9de77c751c4..a5d40598047b 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Роуминг"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Рабочий режим включен."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Режим экономии трафика отключен."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Режим экономии трафика включен."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Функция Sensor Privacy отключена."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Функция Sensor Privacy включена."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Яркость экрана"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Зарядка батареи"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Передача данных 2G и 3G приостановлена"</string>
@@ -896,4 +900,8 @@
<item quantity="many">Ещё <xliff:g id="NUM_APPS_1">%d</xliff:g> приложений</item>
<item quantity="other">Ещё <xliff:g id="NUM_APPS_1">%d</xliff:g> другого приложения</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Датчики отключены"</string>
+ <string name="device_services" msgid="1191212554435440592">"Сервисы устройства"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index cd24df62b60d..cb22f3d431a2 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"රෝමිං"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"වැඩ ප්‍රකාරය ක්‍රියාත්මක කරන ලදී."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"දත්ත සුරැකුම ක්‍රියාවිරහිත කරන ලදී."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"දත්ත සුරැකුම ක්‍රියාත්මක කරන ලදී."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"සංවේදක රහස්‍යතාව ක්‍රියාවිරහිතයි."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"සංවේදක රහස්‍යතාව ක්‍රියාත්මකයි."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"සංදර්ශක දීප්තිය"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"ආරෝපණය වෙමින්"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G දත්ත විරාම කර ඇත"</string>
@@ -884,4 +888,7 @@
<item quantity="one">වෙනත් යෙදුම් <xliff:g id="NUM_APPS_1">%d</xliff:g></item>
<item quantity="other">වෙනත් යෙදුම් <xliff:g id="NUM_APPS_1">%d</xliff:g></item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"සංවේදක ක්‍රියාවිරහිතයි"</string>
+ <string name="device_services" msgid="1191212554435440592">"උපාංග සේවා"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"මාතෘකාවක් නැත"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 941e9c7a0839..d9ba8de2240f 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Pracovný režim je zapnutý."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Šetrič dát bol vypnutý."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Šetrič dát bol zapnutý."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Senzor ochrany súkromia je vypnutý."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Senzor ochrany súkromia je zapnutý."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Jas displeja"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Nabíja sa"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Dátové prenosy 2G a 3G sú pozastavené"</string>
@@ -896,4 +900,9 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> ďalších aplikácií</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> ďalšia aplikácia</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Senzory sú vypnuté"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index e5555c7828ad..50482272c0c1 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Gostovanje"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Način za delo je vklopljen."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Varčevanje s podatki je izklopljeno."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Varčevanje s podatki je vklopljeno."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Zasebnost tipal je izklopljena."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Zasebnost tipal je vklopljena."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Svetlost zaslona"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Polnjenje"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Prenos podatkov v omrežju 2G/3G je zaustavljen"</string>
@@ -896,4 +900,8 @@
<item quantity="few">in še <xliff:g id="NUM_APPS_1">%d</xliff:g> aplikacije</item>
<item quantity="other">in še <xliff:g id="NUM_APPS_1">%d</xliff:g> aplikacij​</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Izklop za tipala"</string>
+ <string name="device_services" msgid="1191212554435440592">"Storitve naprave"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index ba1f117007ec..66a577811bf5 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modaliteti i punës është i aktivizuar."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Kursyesi i të dhënave është çaktivizuar."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Kursyesi i të dhënave është aktivizuar."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Privatësia e sensorëve është çaktivizuar."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Privatësia e sensorëve është aktivizuar."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Ndriçimi i ekranit"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Po ngarkohet"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Të dhënat 2G-3G janë ndërprerë"</string>
@@ -884,4 +888,7 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> aplikacione të tjera</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> aplikacion tjetër</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensorët joaktivë"</string>
+ <string name="device_services" msgid="1191212554435440592">"Shërbimet e pajisjes"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Pa titull"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 64dd9a45b9a1..1ff65d782fc0 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Роминг"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Режим рада је укључен."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Уштеда података је искључена."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Уштеда података је укључена."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Искључена је приватност сензора."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Укључена је приватност сензора."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Осветљеност екрана"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Пуни се"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G подаци су паузирани"</string>
@@ -890,4 +894,7 @@
<item quantity="few">И још <xliff:g id="NUM_APPS_1">%d</xliff:g> апликације</item>
<item quantity="other">И још <xliff:g id="NUM_APPS_1">%d</xliff:g> апликација</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Сензори су искључени"</string>
+ <string name="device_services" msgid="1191212554435440592">"Услуге за уређаје"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Без наслова"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index dd3af059e1ca..22ffa812d3e9 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Arbetsläget har aktiverats."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Databesparing har inaktiverats."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Databesparing har aktiverats."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensorsekretess har inaktiverats."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensorsekretess har aktiverats."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Skärmens ljusstyrka"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Laddas"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G- och 3G-data har pausats"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> andra appar</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> annan app</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensorer har inaktiverats"</string>
+ <string name="device_services" msgid="1191212554435440592">"Enhetstjänster"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 517009543a7c..69b3be7ffbc4 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Mitandao ya ng\'ambo"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Hali ya kazi imewashwa."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Kiokoa Data kimezimwa."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Kiokoa Data kimewashwa."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Umezima mipangilio ya Faragha ya Vitambuzi."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Umewasha mipangilio ya Faragha ya Vitambuzi."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Ung\'aavu wa skrini"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Inachaji"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Data ya 2G-3G imesitishwa"</string>
@@ -884,4 +888,7 @@
<item quantity="other">Programu zingine <xliff:g id="NUM_APPS_1">%d</xliff:g></item>
<item quantity="one">Programu nyingine <xliff:g id="NUM_APPS_0">%d</xliff:g></item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Umezima vitambuzi"</string>
+ <string name="device_services" msgid="1191212554435440592">"Huduma za Kifaa"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Wimbo hauna jina"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml
index 9f3d7ca200d8..a35c78c9da6a 100644
--- a/packages/SystemUI/res/values-ta/strings.xml
+++ b/packages/SystemUI/res/values-ta/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"ரோமிங்"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"பணிப் பயன்முறை இயக்கப்பட்டது."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"டேட்டா சேமிப்பான் முடக்கப்பட்டது."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"டேட்டா சேமிப்பான் இயக்கப்பட்டது."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"\'சென்சார் தனியுரிமை\' ஆஃப் செய்யப்பட்டது."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"’சென்சார் தனியுரிமை’ ஆன் செய்யப்பட்டது."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"திரை பிரகாசம்"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"சார்ஜ் ஆகிறது"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G டேட்டா இடைநிறுத்தப்பட்டது"</string>
@@ -884,4 +888,9 @@
<item quantity="other">வேறு <xliff:g id="NUM_APPS_1">%d</xliff:g> ஆப்ஸ்</item>
<item quantity="one">வேறு <xliff:g id="NUM_APPS_0">%d</xliff:g> ஆப்ஸ்</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"சென்சார்களை ஆஃப் செய்தல்"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index 318410754750..e7eafbe7595b 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"రోమింగ్"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"పని మోడ్ ఆన్ చేయబడింది."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"డేటా సేవర్ ఆఫ్ చేయబడింది."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"డేటా సేవర్ ఆన్ చేయబడింది."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"సెన్సార్ గోప్యత ఆఫ్ చేయబడింది."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"సెన్సార్ గోప్యత ఆన్ చేయబడింది."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ప్రదర్శన ప్రకాశం"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"ఛార్జ్ అవుతోంది"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G డేటా పాజ్ చేయబడింది"</string>
@@ -884,4 +888,9 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> ఇతర యాప్‌లు</item>
<item quantity="one">మరో <xliff:g id="NUM_APPS_0">%d</xliff:g> యాప్</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"సెన్సార్‌లు ఆఫ్"</string>
+ <!-- no translation found for device_services (1191212554435440592) -->
+ <skip />
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index bf3b1314f8eb..05df7bd2aa06 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"โรมมิ่ง"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"เปิดโหมดการทำงานแล้ว"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ปิดโปรแกรมประหยัดอินเทอร์เน็ตแล้ว"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"เปิดโปรแกรมประหยัดอินเทอร์เน็ตแล้ว"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"ปิดความเป็นส่วนตัวสำหรับเซ็นเซอร์แล้ว"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"เปิดความเป็นส่วนตัวสำหรับเซ็นเซอร์แล้ว"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ความสว่างของหน้าจอ"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"กำลังชาร์จ"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"หยุดการใช้ข้อมูล 2G-3G ชั่วคราวแล้ว"</string>
@@ -884,4 +888,8 @@
<item quantity="other">แอปอื่น <xliff:g id="NUM_APPS_1">%d</xliff:g> แอป</item>
<item quantity="one">แอปอื่น <xliff:g id="NUM_APPS_0">%d</xliff:g> แอป</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"เซ็นเซอร์ปิดอยู่"</string>
+ <string name="device_services" msgid="1191212554435440592">"บริการของอุปกรณ์"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index fcfd1cd119fa..3bd6ea6708dd 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Roaming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Na-on ang work mode."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Na-off ang Data Saver."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Na-on ang Data Saver."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Naka-off ang Privacy ng Sensor."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Naka-on ang Privacy ng Sensor."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Liwanag ng display"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Nagcha-charge"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Naka-pause ang 2G-3G data"</string>
@@ -884,4 +888,8 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> (na) iba pang app</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> (na) iba pang app</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Naka-off ang mga sensor"</string>
+ <string name="device_services" msgid="1191212554435440592">"Mga Serbisyo ng Device"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index c8368751de70..4962b167b5d0 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Dolaşım"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Çalışma modu açıldı."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Veri Tasarrufu kapatıldı."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Veri Tasarrufu açıldı."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensör Gizliliği kapatıldı."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensör Gizliliği açıldı."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Ekran parlaklığı"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Şarj oluyor"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G veri kullanımı duraklatıldı"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> diğer uygulama</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> diğer uygulama</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensörler kapalı"</string>
+ <string name="device_services" msgid="1191212554435440592">"Cihaz Hizmetleri"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 6864034ebe7a..a298c6a26589 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Роумінг"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Робочий режим увімкнено."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Заощадження трафіку вимкнено."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Заощадження трафіку ввімкнено."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Конфіденційність датчиків вимкнено."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Конфіденційність датчиків увімкнено."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Яскравість дисплея"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Заряджається"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Передавання даних 2G–3G призупинено"</string>
@@ -896,4 +900,7 @@
<item quantity="many">Ще <xliff:g id="NUM_APPS_1">%d</xliff:g> додатків​</item>
<item quantity="other">Щ​е <xliff:g id="NUM_APPS_1">%d</xliff:g> додатка</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Датчики вимкнено"</string>
+ <string name="device_services" msgid="1191212554435440592">"Сервіси на пристрої"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Без назви"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index 4738bcd9fcb0..3a59029f15e1 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+‎"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+‎"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+‎"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X‎"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"رومنگ"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"کام موڈ آن ہو گیا۔"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ڈیٹا سیور آف ہو گیا۔"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ڈیٹا سرور آن ہو گیا۔"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"سینسر کی رازداری آف ہے۔"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"سینسر کی رازداری آن ہے۔"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"ڈسپلے کی چمک"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"چارج ہو رہا ہے"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"‏2G-3G ڈیٹا موقوف کر دیا گیا"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> دیگر ایپس</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> دیگر ایپ</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"سینسرز آف ہیں"</string>
+ <string name="device_services" msgid="1191212554435440592">"آلہ کی سروس"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index 53a29e0de71a..3388bcb63561 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Rouming"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Ishchi rejim yoqildi."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Trafik tejash rejimi o‘chirib qo‘yildi."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Trafik tejash rejimi yoqildi."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Sensor Privacy funksiyasi nofaol."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Sensor Privacy funksiyasi nofaol."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Ekran yorqinligi"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Quvvat olmoqda"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G internet to‘xtatib qo‘yildi"</string>
@@ -884,4 +888,8 @@
<item quantity="other">Yana <xliff:g id="NUM_APPS_1">%d</xliff:g> ta ilova</item>
<item quantity="one">Yana <xliff:g id="NUM_APPS_0">%d</xliff:g> ta ilova</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Sensorlar nofaol"</string>
+ <string name="device_services" msgid="1191212554435440592">"Qurilma xizmatlari"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index ce3da2ac7241..3ebb8dd667cb 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G trở lên"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Chuyển vùng"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Chế độ làm việc đã bật."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Đã tắt Trình tiết kiệm dữ liệu."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Đã bật Trình tiết kiệm dữ liệu."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Đã tắt Bảo mật cảm biến."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Đã bật Bảo mật cảm biến."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Độ sáng màn hình"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Đang sạc"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Đã tạm dừng dữ liệu 2G-3G"</string>
@@ -884,4 +888,8 @@
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> ứng dụng khác</item>
<item quantity="one"><xliff:g id="NUM_APPS_0">%d</xliff:g> ứng dụng khác</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Tắt cảm biến"</string>
+ <string name="device_services" msgid="1191212554435440592">"Dịch vụ cho thiết bị"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index b9abd4040ea0..d480a8af7384 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"漫游"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"工作模式已开启。"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"流量节省程序已关闭。"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"流量节省程序已开启。"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"已关闭传感器隐私设置。"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"已开启传感器隐私设置。"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"屏幕亮度"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"正在充电"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G 数据网络已暂停使用"</string>
@@ -296,7 +300,7 @@
<skip />
<string name="quick_settings_bluetooth_secondary_label_transient" msgid="4551281899312150640">"正在开启…"</string>
<string name="quick_settings_brightness_label" msgid="6968372297018755815">"亮度"</string>
- <string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"自动旋转"</string>
+ <string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"自动旋转屏幕"</string>
<string name="accessibility_quick_settings_rotation" msgid="4231661040698488779">"自动旋转屏幕"</string>
<string name="accessibility_quick_settings_rotation_value" msgid="8187398200140760213">"<xliff:g id="ID_1">%s</xliff:g>模式"</string>
<string name="quick_settings_rotation_locked_label" msgid="6359205706154282377">"屏幕方向:锁定"</string>
@@ -884,4 +888,8 @@
<item quantity="other">另外 <xliff:g id="NUM_APPS_1">%d</xliff:g> 个应用</item>
<item quantity="one">另外 <xliff:g id="NUM_APPS_0">%d</xliff:g> 个应用</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"已关闭传感器"</string>
+ <string name="device_services" msgid="1191212554435440592">"设备服务"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 5d89c84f0ac1..5c2a5d271071 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"漫遊"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"已開啟工作模式。"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"已關閉數據節省模式。"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"已開啟數據節省模式。"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"閂咗感應器私隱功能。"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"開咗感應器私隱功能。"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"顯示光暗度"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"正在充電"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"已暫停 2G-3G 數據"</string>
@@ -884,4 +888,7 @@
<item quantity="other">其他 <xliff:g id="NUM_APPS_1">%d</xliff:g> 個應用程式</item>
<item quantity="one">其他 <xliff:g id="NUM_APPS_0">%d</xliff:g> 個應用程式</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"感應器已關閉"</string>
+ <string name="device_services" msgid="1191212554435440592">"裝置服務"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"無標題"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index bffa9ce5ca88..7ff70d9558d4 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"漫遊"</string>
<string name="data_connection_edge" msgid="871835227939216682">"EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"工作模式已開啟。"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Data Saver 已關閉。"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Data Saver 已開啟。"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"已關閉感應器隱私設定。"</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"已開啟感應器隱私設定。"</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"螢幕亮度"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"充電中"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"已暫停 2G-3G 數據連線"</string>
@@ -884,4 +888,8 @@
<item quantity="other">另外 <xliff:g id="NUM_APPS_1">%d</xliff:g> 個應用程式</item>
<item quantity="one">另外 <xliff:g id="NUM_APPS_0">%d</xliff:g> 個應用程式</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"已關閉感應器"</string>
+ <string name="device_services" msgid="1191212554435440592">"裝置服務"</string>
+ <!-- no translation found for music_controls_no_title (5236895307087002011) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index f7369a80c77e..098ed0167c70 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -167,6 +167,8 @@
<string name="data_connection_4g_plus" msgid="1148687201877800700">"4G+"</string>
<string name="data_connection_lte" msgid="2694876797724028614">"I-LTE"</string>
<string name="data_connection_lte_plus" msgid="3423013208570937424">"I-LTE+"</string>
+ <string name="data_connection_5g" msgid="6357743323196864504">"5G"</string>
+ <string name="data_connection_5g_plus" msgid="3284146603743732965">"5G+"</string>
<string name="data_connection_cdma" msgid="8176597308239086780">"1X"</string>
<string name="data_connection_roaming" msgid="6037232010953697354">"Iyazulazula"</string>
<string name="data_connection_edge" msgid="871835227939216682">"I-EDGE"</string>
@@ -250,6 +252,8 @@
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Imodi yomsebenzi ivuliwe."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Iseva yedatha ivaliwe."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Iseva yedatha ivuliwe."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_off" msgid="5152819588955163090">"Inzwa yobumfihlo ivaliwe."</string>
+ <string name="accessibility_quick_settings_sensor_privacy_changed_on" msgid="529705259565826355">"Inzwa yobumfihlo ivuliwe."</string>
<string name="accessibility_brightness" msgid="8003681285547803095">"Bonisa ukukhanya"</string>
<string name="accessibility_ambient_display_charging" msgid="9084521679384069087">"Iyashaja"</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G idatha imisiwe"</string>
@@ -884,4 +888,7 @@
<item quantity="one"><xliff:g id="NUM_APPS_1">%d</xliff:g> ezinye izinhlelo zokusebenza</item>
<item quantity="other"><xliff:g id="NUM_APPS_1">%d</xliff:g> ezinye izinhlelo zokusebenza</item>
</plurals>
+ <string name="sensor_privacy_mode" msgid="8982771253020769598">"Izinzwa zivaliwe"</string>
+ <string name="device_services" msgid="1191212554435440592">"Amasevisi edivayisi"</string>
+ <string name="music_controls_no_title" msgid="5236895307087002011">"Asikho isihloko"</string>
</resources>
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
index 576660431d82..669e6fff525b 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
@@ -208,9 +208,11 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
android.app.slice.SliceItem.FORMAT_IMAGE);
if (icon != null) {
iconDrawable = icon.getIcon().loadDrawable(mContext);
- final int width = (int) (iconDrawable.getIntrinsicWidth()
- / (float) iconDrawable.getIntrinsicHeight() * mIconSize);
- iconDrawable.setBounds(0, 0, Math.max(width, 1), mIconSize);
+ if (iconDrawable != null) {
+ final int width = (int) (iconDrawable.getIntrinsicWidth()
+ / (float) iconDrawable.getIntrinsicHeight() * mIconSize);
+ iconDrawable.setBounds(0, 0, Math.max(width, 1), mIconSize);
+ }
}
button.setCompoundDrawables(iconDrawable, null, null, null);
button.setOnClickListener(this);
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
index 8bac7c590249..b3e2cffba4fb 100644
--- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
@@ -56,6 +56,7 @@ import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.util.InjectionInflationController;
+import com.android.systemui.util.leak.GarbageMonitor;
import com.android.systemui.volume.VolumeDialogComponent;
import java.util.function.Consumer;
@@ -237,5 +238,8 @@ public class SystemUIFactory {
* ViewCreator generates all Views that need injection.
*/
InjectionInflationController.ViewCreator createViewCreator();
+
+ @Singleton
+ GarbageMonitor createGarbageMonitor();
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
index c8595ebb5fca..881aa18285ff 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
@@ -33,7 +33,6 @@ import android.view.WindowManager;
import android.widget.FrameLayout;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.statusbar.notification.NotificationData;
import com.android.systemui.statusbar.phone.StatusBarWindowController;
@@ -122,12 +121,12 @@ public class BubbleController {
}
@Inject
- public BubbleController(Context context) {
+ public BubbleController(Context context, StatusBarWindowController statusBarWindowController) {
mContext = context;
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
mDisplaySize = new Point();
wm.getDefaultDisplay().getSize(mDisplaySize);
- mStatusBarWindowController = Dependency.get(StatusBarWindowController.class);
+ mStatusBarWindowController = statusBarWindowController;
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/dock/DockManager.java b/packages/SystemUI/src/com/android/systemui/dock/DockManager.java
new file mode 100644
index 000000000000..233b9c678085
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/dock/DockManager.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.dock;
+
+/**
+ * Allows an app to handle dock events
+ */
+public interface DockManager {
+
+ /**
+ * Uninitialized / unknow dock states
+ */
+ int STATE_NONE = 0;
+ /**
+ * The state for docking
+ */
+ int STATE_DOCKING = 1;
+ /**
+ * The state for undocking
+ */
+ int STATE_UNDOCKING = 2;
+
+ /**
+ * Add a dock event listener into manager
+ *
+ * @param callback A {@link #DockEventListener} which want to add
+ */
+ void addListener(DockEventListener callback);
+
+ /**
+ * Remove the added listener from dock manager
+ *
+ * @param callback A {@link #DockEventListener} which want to remove
+ */
+ void removeListener(DockEventListener callback);
+
+ /** Callback for receiving dock events */
+ interface DockEventListener {
+ /**
+ * Override to handle dock events
+ *
+ * Events reference: {@link #DockState}
+ */
+ void onEvent(int event);
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeDockHandler.java b/packages/SystemUI/src/com/android/systemui/doze/DozeDockHandler.java
new file mode 100644
index 000000000000..fa33cb847880
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeDockHandler.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.doze;
+
+import android.content.Context;
+import android.os.Handler;
+import android.util.Log;
+
+import com.android.internal.hardware.AmbientDisplayConfiguration;
+import com.android.systemui.SysUiServiceProvider;
+import com.android.systemui.dock.DockManager;
+
+import java.io.PrintWriter;
+
+/**
+ * Handles dock events for ambient state changes.
+ */
+public class DozeDockHandler implements DozeMachine.Part {
+
+ private static final String TAG = "DozeDockHandler";
+ private static final boolean DEBUG = DozeService.DEBUG;
+
+ private final Context mContext;
+ private final DozeMachine mMachine;
+ private final DozeHost mDozeHost;
+ private final AmbientDisplayConfiguration mConfig;
+ private final Handler mHandler;
+ private final DockEventListener mDockEventListener = new DockEventListener();
+ private final DockManager mDockManager;
+
+ private boolean mDocking;
+
+ public DozeDockHandler(Context context, DozeMachine machine, DozeHost dozeHost,
+ AmbientDisplayConfiguration config, Handler handler) {
+ mContext = context;
+ mMachine = machine;
+ mDozeHost = dozeHost;
+ mConfig = config;
+ mHandler = handler;
+ mDockManager = SysUiServiceProvider.getComponent(context, DockManager.class);
+ }
+
+ @Override
+ public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) {
+ switch (newState) {
+ case INITIALIZED:
+ mDockEventListener.register();
+ break;
+ case DOZE:
+ case DOZE_AOD:
+ mHandler.post(() -> requestPulse());
+ break;
+ case FINISH:
+ mDockEventListener.unregister();
+ break;
+ default:
+ }
+ }
+
+ private void requestPulse() {
+ if (!mDocking || mDozeHost.isPulsingBlocked() || !canPulse()) {
+ return;
+ }
+
+ mMachine.requestPulse(DozeLog.PULSE_REASON_DOCKING);
+ }
+
+ private boolean canPulse() {
+ return mMachine.getState() == DozeMachine.State.DOZE
+ || mMachine.getState() == DozeMachine.State.DOZE_AOD;
+ }
+
+ private void requestPulseOutNow() {
+ final DozeMachine.State state = mMachine.getState();
+ final int pulseReason = mMachine.getPulseReason();
+
+ if ((state == DozeMachine.State.DOZE_PULSING
+ || state == DozeMachine.State.DOZE_REQUEST_PULSE)
+ && pulseReason == DozeLog.PULSE_REASON_DOCKING) {
+ mDozeHost.stopPulsing();
+ }
+ }
+
+ @Override
+ public void dump(PrintWriter pw) {
+ pw.print(" DozeDockTriggers docking="); pw.println(mDocking);
+ }
+
+ private class DockEventListener implements DockManager.DockEventListener {
+ private boolean mRegistered;
+
+ @Override
+ public void onEvent(int event) {
+ if (DEBUG) Log.d(TAG, "dock event = " + event);
+ switch (event) {
+ case DockManager.STATE_DOCKING:
+ mDocking = true;
+ requestPulse();
+ break;
+ case DockManager.STATE_UNDOCKING:
+ mDocking = false;
+ requestPulseOutNow();
+ break;
+ default:
+ // no-op
+ }
+ }
+
+ void register() {
+ if (mRegistered) {
+ return;
+ }
+
+ if (mDockManager != null) {
+ mDockManager.addListener(this);
+ }
+ mRegistered = true;
+ }
+
+ void unregister() {
+ if (!mRegistered) {
+ return;
+ }
+ if (mDockManager != null) {
+ mDockManager.removeListener(this);
+ }
+ mRegistered = false;
+ }
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
index d93ed1785a0a..58ae555dbff1 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
@@ -68,7 +68,8 @@ public class DozeFactory {
new DozeScreenState(wrappedService, handler, params, wakeLock),
createDozeScreenBrightness(context, wrappedService, sensorManager, host, params,
handler),
- new DozeWallpaperState(context)
+ new DozeWallpaperState(context),
+ new DozeDockHandler(context, machine, host, config, handler)
});
return machine;
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java b/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java
index 461aef1fa54c..4cb1feebcce4 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java
@@ -45,6 +45,11 @@ public interface DozeHost {
void onIgnoreTouchWhilePulsing(boolean ignore);
+ /**
+ * Leaves pulsing state, going back to ambient UI.
+ */
+ void stopPulsing();
+
interface Callback {
/**
* Called when a high priority notification is added.
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
index 974cd8804841..50003e3a6a38 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
@@ -35,7 +35,7 @@ public class DozeLog {
private static final int SIZE = Build.IS_DEBUGGABLE ? 400 : 50;
static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM-dd HH:mm:ss.SSS");
- private static final int REASONS = 7;
+ private static final int REASONS = 9;
public static final int PULSE_REASON_NONE = -1;
public static final int PULSE_REASON_INTENT = 0;
@@ -44,7 +44,9 @@ public class DozeLog {
public static final int PULSE_REASON_SENSOR_PICKUP = 3;
public static final int PULSE_REASON_SENSOR_DOUBLE_TAP = 4;
public static final int PULSE_REASON_SENSOR_LONG_PRESS = 5;
- public static final int REASON_SENSOR_WAKE_UP = 6;
+ public static final int PULSE_REASON_DOCKING = 6;
+ public static final int REASON_SENSOR_WAKE_UP = 7;
+ public static final int PULSE_REASON_SENSOR_WAKE_LOCK_SCREEN = 8;
private static boolean sRegisterKeyguardCallback = true;
@@ -177,15 +179,6 @@ public class DozeLog {
}
/**
- * Appends lock screen wake up event to the logs.
- * @param wake if we're waking up or sleeping.
- */
- public static void traceLockScreenWakeUp(boolean wake) {
- if (!ENABLED) return;
- log("wakeLockScreen " + wake);
- }
-
- /**
* Appends wake-display event to the logs.
* @param wake if we're waking up or sleeping.
*/
@@ -211,6 +204,8 @@ public class DozeLog {
case PULSE_REASON_SENSOR_PICKUP: return "pickup";
case PULSE_REASON_SENSOR_DOUBLE_TAP: return "doubletap";
case PULSE_REASON_SENSOR_LONG_PRESS: return "longpress";
+ case PULSE_REASON_DOCKING: return "docking";
+ case PULSE_REASON_SENSOR_WAKE_LOCK_SCREEN: return "wakelockscreen";
case REASON_SENSOR_WAKE_UP: return "wakeup";
default: throw new IllegalArgumentException("bad reason: " + pulseReason);
}
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
index c2676d099481..35b64ed35158 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
@@ -17,6 +17,7 @@
package com.android.systemui.doze;
import static com.android.systemui.plugins.SensorManagerPlugin.Sensor.TYPE_WAKE_DISPLAY;
+import static com.android.systemui.plugins.SensorManagerPlugin.Sensor.TYPE_WAKE_LOCK_SCREEN;
import android.annotation.AnyThread;
import android.app.ActivityManager;
@@ -115,10 +116,17 @@ public class DozeSensors {
new PluginSensor(
new SensorManagerPlugin.Sensor(TYPE_WAKE_DISPLAY),
Settings.Secure.DOZE_WAKE_SCREEN_GESTURE,
- true /* configured */,
+ mConfig.wakeScreenGestureAvailable(),
DozeLog.REASON_SENSOR_WAKE_UP,
false /* reports touch coordinates */,
false /* touchscreen */),
+ new PluginSensor(
+ new SensorManagerPlugin.Sensor(TYPE_WAKE_LOCK_SCREEN),
+ Settings.Secure.DOZE_WAKE_LOCK_SCREEN_GESTURE,
+ mConfig.wakeScreenGestureAvailable(),
+ DozeLog.PULSE_REASON_SENSOR_WAKE_LOCK_SCREEN,
+ false /* reports touch coordinates */,
+ false /* touchscreen */),
};
mProxSensor = new ProxSensor(policy);
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
index 1e228f201d74..6a9b6899d509 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
@@ -135,11 +135,12 @@ public class DozeTriggers implements DozeMachine.Part {
boolean isPickup = pulseReason == DozeLog.PULSE_REASON_SENSOR_PICKUP;
boolean isLongPress = pulseReason == DozeLog.PULSE_REASON_SENSOR_LONG_PRESS;
boolean isWakeDisplay = pulseReason == DozeLog.REASON_SENSOR_WAKE_UP;
+ boolean isWakeLockScreen = pulseReason == DozeLog.PULSE_REASON_SENSOR_WAKE_LOCK_SCREEN;
boolean wakeEvent = rawValues != null && rawValues.length > 0 && rawValues[0] != 0;
if (isWakeDisplay) {
onWakeScreen(wakeEvent);
- } else if (isLongPress) {
+ } else if (isLongPress || isWakeLockScreen) {
requestPulse(pulseReason, sensorPerformedProxCheck);
} else {
proximityCheckThenCall((result) -> {
@@ -156,7 +157,6 @@ public class DozeTriggers implements DozeMachine.Part {
mDozeHost.extendPulse();
}
}, sensorPerformedProxCheck, pulseReason);
- return;
}
if (isPickup) {
diff --git a/packages/SystemUI/src/com/android/systemui/doze/LockScreenWakeUpController.java b/packages/SystemUI/src/com/android/systemui/doze/LockScreenWakeUpController.java
deleted file mode 100644
index 70143e2af50e..000000000000
--- a/packages/SystemUI/src/com/android/systemui/doze/LockScreenWakeUpController.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.doze;
-
-import android.content.Context;
-import android.os.Handler;
-import android.os.PowerManager;
-import android.os.SystemClock;
-import android.os.UserHandle;
-import android.util.Log;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.hardware.AmbientDisplayConfiguration;
-import com.android.systemui.Dependency;
-import com.android.systemui.plugins.SensorManagerPlugin;
-import com.android.systemui.statusbar.StatusBarState;
-import com.android.systemui.statusbar.StatusBarStateController;
-import com.android.systemui.util.AsyncSensorManager;
-
-/**
- * Controller responsible for waking up or making the device sleep based on ambient sensors.
- */
-public class LockScreenWakeUpController implements StatusBarStateController.StateListener,
- SensorManagerPlugin.SensorEventListener {
-
- private static final String TAG = LockScreenWakeUpController.class.getSimpleName();
- private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
-
- private final AsyncSensorManager mAsyncSensorManager;
- private final SensorManagerPlugin.Sensor mSensor;
- private final AmbientDisplayConfiguration mAmbientConfiguration;
- private final PowerManager mPowerManager;
- private final DozeHost mDozeHost;
- private final Handler mHandler;
- private boolean mRegistered;
- private boolean mDozing;
-
- public LockScreenWakeUpController(Context context, DozeHost dozeHost) {
- this(Dependency.get(AsyncSensorManager.class),
- new SensorManagerPlugin.Sensor(SensorManagerPlugin.Sensor.TYPE_WAKE_LOCK_SCREEN),
- new AmbientDisplayConfiguration(context),
- context.getSystemService(PowerManager.class),
- dozeHost, Dependency.get(StatusBarStateController.class), new Handler());
- }
-
- @VisibleForTesting
- public LockScreenWakeUpController(AsyncSensorManager asyncSensorManager,
- SensorManagerPlugin.Sensor sensor, AmbientDisplayConfiguration ambientConfiguration,
- PowerManager powerManager, DozeHost dozeHost,
- StatusBarStateController statusBarStateController, Handler handler) {
- mAsyncSensorManager = asyncSensorManager;
- mSensor = sensor;
- mAmbientConfiguration = ambientConfiguration;
- mPowerManager = powerManager;
- mDozeHost = dozeHost;
- mHandler = handler;
- statusBarStateController.addCallback(this);
- }
-
- @Override
- public void onStateChanged(int newState) {
- boolean isLockScreen = newState == StatusBarState.KEYGUARD
- || newState == StatusBarState.SHADE_LOCKED;
-
- if (!mAmbientConfiguration.wakeLockScreenGestureEnabled(UserHandle.USER_CURRENT)) {
- if (mRegistered) {
- mAsyncSensorManager.unregisterPluginListener(mSensor, this);
- mRegistered = false;
- }
- return;
- }
-
- if (isLockScreen && !mRegistered) {
- mAsyncSensorManager.registerPluginListener(mSensor, this);
- mRegistered = true;
- } else if (!isLockScreen && mRegistered) {
- mAsyncSensorManager.unregisterPluginListener(mSensor, this);
- mRegistered = false;
- }
- }
-
- @Override
- public void onDozingChanged(boolean isDozing) {
- mDozing = isDozing;
- }
-
- @Override
- public void onSensorChanged(SensorManagerPlugin.SensorEvent event) {
- mHandler.post(()-> {
- float[] rawValues = event.getValues();
- boolean wakeEvent = rawValues != null && rawValues.length > 0 && rawValues[0] != 0;
-
- DozeLog.traceLockScreenWakeUp(wakeEvent);
- if (wakeEvent && mDozing) {
- if (DEBUG) Log.d(TAG, "Wake up.");
- mPowerManager.wakeUp(SystemClock.uptimeMillis(), "com.android.systemui:NODOZE");
- } else if (!wakeEvent && !mDozing) {
- if (DEBUG) Log.d(TAG, "Nap time.");
- mPowerManager.goToSleep(SystemClock.uptimeMillis(),
- PowerManager.GO_TO_SLEEP_REASON_SLEEP_BUTTON, 0);
- } else if (DEBUG) {
- Log.d(TAG, "Skip sensor event. Wake? " + wakeEvent + " dozing: " + mDozing);
- }
- });
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
index 538e0f0de415..81757d0aadd4 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
@@ -44,7 +44,6 @@ import android.util.Log;
import android.view.MotionEvent;
import com.android.internal.policy.ScreenDecorationsUtils;
-import com.android.systemui.Dependency;
import com.android.systemui.Dumpable;
import com.android.systemui.Prefs;
import com.android.systemui.SysUiServiceProvider;
@@ -90,8 +89,7 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
private final Handler mHandler;
private final Runnable mConnectionRunnable = this::internalConnectToCurrentUser;
private final ComponentName mRecentsComponentName;
- private final DeviceProvisionedController mDeviceProvisionedController
- = Dependency.get(DeviceProvisionedController.class);
+ private final DeviceProvisionedController mDeviceProvisionedController;
private final List<OverviewProxyListener> mConnectionCallbacks = new ArrayList<>();
private final Intent mQuickStepIntent;
@@ -343,9 +341,10 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
= this::cleanupAfterDeath;
@Inject
- public OverviewProxyService(Context context) {
+ public OverviewProxyService(Context context, DeviceProvisionedController provisionController) {
mContext = context;
mHandler = new Handler();
+ mDeviceProvisionedController = provisionController;
mConnectionBackoffAttempts = 0;
mRecentsComponentName = ComponentName.unflattenFromString(context.getString(
com.android.internal.R.string.config_recentsComponentName));
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SmartReplyController.java b/packages/SystemUI/src/com/android/systemui/statusbar/SmartReplyController.java
index 6f1548d2fb5f..9e91133aff09 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SmartReplyController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SmartReplyController.java
@@ -21,7 +21,6 @@ import android.util.ArraySet;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.statusbar.NotificationVisibility;
-import com.android.systemui.Dependency;
import com.android.systemui.statusbar.notification.NotificationData;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
@@ -36,15 +35,16 @@ import javax.inject.Singleton;
*/
@Singleton
public class SmartReplyController {
- private IStatusBarService mBarService;
+ private final IStatusBarService mBarService;
+ private final NotificationEntryManager mEntryManager;
private Set<String> mSendingKeys = new ArraySet<>();
private Callback mCallback;
- private final NotificationEntryManager mEntryManager =
- Dependency.get(NotificationEntryManager.class);
@Inject
- public SmartReplyController() {
- mBarService = Dependency.get(IStatusBarService.class);
+ public SmartReplyController(NotificationEntryManager entryManager,
+ IStatusBarService statusBarService) {
+ mBarService = statusBarService;
+ mEntryManager = entryManager;
}
public void setCallback(Callback callback) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
index eb1fc30843b3..75bad6d20a2f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
@@ -27,7 +27,6 @@ import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.statusbar.NotificationVisibility;
-import com.android.systemui.Dependency;
import com.android.systemui.UiOffloadThread;
import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.StatusBarStateController;
@@ -59,11 +58,9 @@ public class NotificationLogger implements StateListener {
new ArraySet<>();
// Dependencies:
- private final NotificationListenerService mNotificationListener =
- Dependency.get(NotificationListener.class);
- private final UiOffloadThread mUiOffloadThread = Dependency.get(UiOffloadThread.class);
- protected NotificationEntryManager mEntryManager
- = Dependency.get(NotificationEntryManager.class);
+ private final NotificationListenerService mNotificationListener;
+ private final UiOffloadThread mUiOffloadThread;
+ protected NotificationEntryManager mEntryManager;
protected Handler mHandler = new Handler();
protected IStatusBarService mBarService;
@@ -150,11 +147,17 @@ public class NotificationLogger implements StateListener {
};
@Inject
- public NotificationLogger() {
+ public NotificationLogger(NotificationListener notificationListener,
+ UiOffloadThread uiOffloadThread,
+ NotificationEntryManager entryManager,
+ StatusBarStateController statusBarStateController) {
+ mNotificationListener = notificationListener;
+ mUiOffloadThread = uiOffloadThread;
+ mEntryManager = entryManager;
mBarService = IStatusBarService.Stub.asInterface(
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
// Not expected to be destroyed, don't need to unsubscribe
- Dependency.get(StatusBarStateController.class).addCallback(this);
+ statusBarStateController.addCallback(this);
}
public void setUpWithContainer(NotificationListContainer listContainer) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
index 92a9efe743d0..6f2b63d2e64d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
@@ -158,8 +158,11 @@ public class DozeParameters implements TunerService.Tunable {
* @return duration in millis.
*/
public long getWallpaperAodDuration() {
- return shouldControlScreenOff() ? DozeScreenState.ENTER_DOZE_HIDE_WALLPAPER_DELAY
- : mAlwaysOnPolicy.wallpaperVisibilityDuration;
+ if (mAmbientDisplayConfiguration.wakeLockScreenGestureEnabled(UserHandle.USER_CURRENT)
+ || shouldControlScreenOff()) {
+ return DozeScreenState.ENTER_DOZE_HIDE_WALLPAPER_DELAY;
+ }
+ return mAlwaysOnPolicy.wallpaperVisibilityDuration;
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java
index cfa751cec613..280dda0cd1dc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java
@@ -65,10 +65,11 @@ public class DozeScrimController implements StateListener {
if (!mDozing) {
return;
}
- // All pulses except notifications should time out on their own. Pulses due to
- // notifications should instead be managed externally based off the notification's
- // lifetime.
- if (mPulseReason != DozeLog.PULSE_REASON_NOTIFICATION) {
+ // Notifications should time out on their own. Pulses due to notifications should
+ // instead be managed externally based off the notification's lifetime.
+ // Dock also controls the time out by self.
+ if (mPulseReason != DozeLog.PULSE_REASON_NOTIFICATION
+ && mPulseReason != DozeLog.PULSE_REASON_DOCKING) {
mHandler.postDelayed(mPulseOut, mDozeParameters.getPulseVisibleDuration());
mHandler.postDelayed(mPulseOutExtended,
mDozeParameters.getPulseVisibleDurationExtended());
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
index 21c506b68319..2e9d9bcda61e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
@@ -19,7 +19,6 @@ package com.android.systemui.statusbar.phone;
import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK;
import static android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
-import static com.android.systemui.doze.util.BurnInHelperKt.getBurnInOffset;
import static com.android.systemui.tuner.LockscreenFragment.LOCKSCREEN_LEFT_BUTTON;
import static com.android.systemui.tuner.LockscreenFragment.LOCKSCREEN_LEFT_UNLOCK;
import static com.android.systemui.tuner.LockscreenFragment.LOCKSCREEN_RIGHT_BUTTON;
@@ -54,7 +53,6 @@ import android.telecom.TelecomManager;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
-import android.util.MathUtils;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
@@ -172,8 +170,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
private boolean mDozing;
private int mIndicationBottomMargin;
private float mDarkAmount;
- private int mBurnInXOffset;
- private int mBurnInYOffset;
public KeyguardBottomAreaView(Context context) {
this(context, null);
@@ -250,8 +246,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
mIndicationText = findViewById(R.id.keyguard_indication_text);
mIndicationBottomMargin = getResources().getDimensionPixelSize(
R.dimen.keyguard_indication_margin_bottom);
- mBurnInYOffset = getResources().getDimensionPixelSize(
- R.dimen.default_burn_in_prevention_offset);
updateCameraVisibility();
mUnlockMethodCache = UnlockMethodCache.getInstance(getContext());
mUnlockMethodCache.addListener(this);
@@ -322,8 +316,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
super.onConfigurationChanged(newConfig);
mIndicationBottomMargin = getResources().getDimensionPixelSize(
R.dimen.keyguard_indication_margin_bottom);
- mBurnInYOffset = getResources().getDimensionPixelSize(
- R.dimen.default_burn_in_prevention_offset);
MarginLayoutParams mlp = (MarginLayoutParams) mIndicationArea.getLayoutParams();
if (mlp.bottomMargin != mIndicationBottomMargin) {
mlp.bottomMargin = mIndicationBottomMargin;
@@ -569,7 +561,15 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
mDarkAmount = darkAmount;
mIndicationController.setDarkAmount(darkAmount);
mLockIcon.setDarkAmount(darkAmount);
- dozeTimeTick();
+ }
+
+ /**
+ * When keyguard is in pulsing (AOD2) state.
+ * @param pulsing {@code true} when pulsing.
+ * @param animated if transition should be animated.
+ */
+ public void setPulsing(boolean pulsing, boolean animated) {
+ mLockIcon.setPulsing(pulsing, animated);
}
private static boolean isSuccessfulLaunch(int result) {
@@ -830,6 +830,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
updateCameraVisibility();
updateLeftAffordanceIcon();
+ mLockIcon.setDozing(dozing);
if (dozing) {
mOverlayContainer.setVisibility(INVISIBLE);
@@ -841,21 +842,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
}
}
- public void dozeTimeTick() {
- // Move views every minute to avoid burn-in
- int burnInYOffset = -getBurnInOffset(mBurnInYOffset, false /* xAxis */);
- burnInYOffset = (int) MathUtils.lerp(0, burnInYOffset, mDarkAmount);
- mLockIcon.setTranslationY(burnInYOffset);
- }
-
- public void setBurnInXOffset(int burnInXOffset) {
- if (mBurnInXOffset == burnInXOffset) {
- return;
- }
- mBurnInXOffset = burnInXOffset;
- mLockIcon.setTranslationX(burnInXOffset);
- }
-
private class DefaultLeftButton implements IntentButton {
private IconState mIconState = new IconState();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java
index e156e770cb72..6632d5851119 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java
@@ -25,7 +25,6 @@ import android.graphics.Rect;
import android.view.View;
import com.android.internal.colorextraction.ColorExtractor.GradientColors;
-import com.android.systemui.Dependency;
import com.android.systemui.Dumpable;
import com.android.systemui.R;
import com.android.systemui.statusbar.policy.BatteryController;
@@ -83,10 +82,11 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
private final Context mContext;
@Inject
- public LightBarController(Context ctx) {
+ public LightBarController(Context ctx, DarkIconDispatcher darkIconDispatcher,
+ BatteryController batteryController) {
mDarkModeColor = Color.valueOf(ctx.getColor(R.color.dark_mode_icon_color_single_tone));
- mStatusBarIconController = Dependency.get(DarkIconDispatcher.class);
- mBatteryController = Dependency.get(BatteryController.class);
+ mStatusBarIconController = darkIconDispatcher;
+ mBatteryController = batteryController;
mBatteryController.addCallback(this);
mContext = ctx;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
index 1be39750d561..d934d952c4c4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
@@ -45,8 +45,6 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
private static final int STATE_FACE_UNLOCK = 2;
private static final int STATE_FINGERPRINT = 3;
private static final int STATE_FINGERPRINT_ERROR = 4;
- private static final boolean HOLLOW_PILL = SystemProperties
- .getBoolean("persist.sysui.hollow_pill", false);
private int mLastState = 0;
private boolean mLastDeviceInteractive;
@@ -60,6 +58,8 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
private boolean mHasFingerPrintIcon;
private boolean mHasFaceUnlockIcon;
private int mDensity;
+ private boolean mPulsing;
+ private boolean mDozing;
private final Runnable mDrawOffTimeout = () -> update(true /* forceUpdate */);
private float mDarkAmount;
@@ -159,6 +159,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
mLastScreenOn = mScreenOn;
}
+ setVisibility(mDozing && !mPulsing ? GONE : VISIBLE);
updateClickability();
}
@@ -224,16 +225,6 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
throw new IllegalArgumentException();
}
- if (HOLLOW_PILL && deviceInteractive) {
- switch (state) {
- case STATE_FINGERPRINT:
- case STATE_LOCK_OPEN:
- case STATE_LOCKED:
- case STATE_FACE_UNLOCK:
- iconRes = R.drawable.ic_home_button_outline;
- }
- }
-
return mContext.getDrawable(iconRes);
}
@@ -281,6 +272,24 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
updateDarkTint();
}
+ /**
+ * When keyguard is in pulsing (AOD2) state.
+ * @param pulsing {@code true} when pulsing.
+ * @param animated if transition should be animated.
+ */
+ public void setPulsing(boolean pulsing, boolean animated) {
+ mPulsing = pulsing;
+ update();
+ }
+
+ /**
+ * Sets the dozing state of the keyguard.
+ */
+ public void setDozing(boolean dozing) {
+ mDozing = dozing;
+ update();
+ }
+
private void updateDarkTint() {
Drawable drawable = getDrawable().mutate();
int color = ColorUtils.blendARGB(Color.TRANSPARENT, Color.WHITE, mDarkAmount);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 242573de76f7..1b18c6cf8440 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -579,7 +579,6 @@ public class NotificationPanelView extends PanelView implements
}
mNotificationStackScroller.setIntrinsicPadding(stackScrollerPadding);
mNotificationStackScroller.setAntiBurnInOffsetX(mClockPositionResult.clockX);
- mKeyguardBottomArea.setBurnInXOffset(mClockPositionResult.clockX);
mStackScrollerMeasuringPass++;
requestScrollerTopPaddingUpdate(animate);
@@ -2806,6 +2805,7 @@ public class NotificationPanelView extends PanelView implements
}
mNotificationStackScroller.setPulsing(pulsing, animatePulse);
mKeyguardStatusView.setPulsing(pulsing, animatePulse);
+ mKeyguardBottomArea.setPulsing(pulsing, animatePulse);
}
public void setAmbientIndicationBottomPadding(int ambientIndicationBottomPadding) {
@@ -2818,7 +2818,6 @@ public class NotificationPanelView extends PanelView implements
public void dozeTimeTick() {
mKeyguardStatusBar.dozeTimeTick();
mKeyguardStatusView.dozeTimeTick();
- mKeyguardBottomArea.dozeTimeTick();
if (mInterpolatedDarkAmount > 0) {
positionClockAndNotifications();
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index 6a4da98e483f..e25c8292b637 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -93,12 +93,12 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
* A scrim varies its opacity based on a busyness factor, for example
* how many notifications are currently visible.
*/
- public static final float GRADIENT_SCRIM_ALPHA_BUSY = 0.70f;
+ public static final float GRADIENT_SCRIM_ALPHA_BUSY = 0.7f;
/**
- * A scrim varies its opacity based on a busyness factor, for example
- * how many notifications are currently visible.
+ * Scrim opacity when a wallpaper doesn't support ambient mode.
*/
- public static final float GRADIENT_SCRIM_DARK_KEYGUARD = 0.80f;
+ public static final float PULSING_WALLPAPER_SCRIM_ALPHA = 0.6f;
+
/**
* The most common scrim, the one under the keyguard.
*/
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
index 226665e40ed2..fb3c4aa16ef5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
@@ -141,7 +141,8 @@ public enum ScrimState {
@Override
public float getBehindAlpha(float busyness) {
- return mWallpaperSupportsAmbientMode && !mHasBackdrop ? 0f : 1f;
+ return mWallpaperSupportsAmbientMode && !mHasBackdrop ? 0f
+ : ScrimController.PULSING_WALLPAPER_SCRIM_ALPHA;
}
},
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 465187d038ad..cf12fc772c80 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -148,7 +148,6 @@ import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.doze.DozeHost;
import com.android.systemui.doze.DozeLog;
import com.android.systemui.doze.DozeReceiver;
-import com.android.systemui.doze.LockScreenWakeUpController;
import com.android.systemui.fragments.ExtensionFragmentListener;
import com.android.systemui.fragments.FragmentHostManager;
import com.android.systemui.keyguard.KeyguardSliceProvider;
@@ -588,7 +587,6 @@ public class StatusBar extends SystemUI implements DemoMode,
protected NotificationPresenter mPresenter;
private NotificationActivityStarter mNotificationActivityStarter;
private boolean mPulsing;
- private LockScreenWakeUpController mLockScreenWakeUpController;
@Override
public void onActiveStateChanged(int code, int uid, String packageName, boolean active) {
@@ -999,7 +997,6 @@ public class StatusBar extends SystemUI implements DemoMode,
for (int i = 0; i < pattern.length; i++) {
mCameraLaunchGestureVibePattern[i] = pattern[i];
}
- mLockScreenWakeUpController = new LockScreenWakeUpController(mContext, mDozeServiceHost);
// receive broadcasts
IntentFilter filter = new IntentFilter();
@@ -4066,6 +4063,13 @@ public class StatusBar extends SystemUI implements DemoMode,
}
@Override
+ public void stopPulsing() {
+ if (mDozeScrimController.isPulsing()) {
+ mDozeScrimController.pulseOutNow();
+ }
+ }
+
+ @Override
public void setAnimateWakeup(boolean animateWakeup) {
if (mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_AWAKE
|| mWakefulnessLifecycle.getWakefulness() == WAKEFULNESS_WAKING) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
index 5d61f4aa7fcb..6190c8fff8cc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
@@ -30,7 +30,6 @@ import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settingslib.fuelgauge.BatterySaverUtils;
import com.android.settingslib.utils.PowerUtil;
-import com.android.systemui.Dependency;
import com.android.systemui.power.EnhancedEstimates;
import com.android.systemui.power.Estimate;
@@ -55,7 +54,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
private static final int UPDATE_GRANULARITY_MSEC = 1000 * 60;
- private final EnhancedEstimates mEstimates = Dependency.get(EnhancedEstimates.class);
+ private final EnhancedEstimates mEstimates;
private final ArrayList<BatteryController.BatteryStateChangeCallback> mChangeCallbacks = new ArrayList<>();
private final PowerManager mPowerManager;
private final Handler mHandler;
@@ -73,15 +72,17 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
private long mLastEstimateTimestamp = -1;
@Inject
- public BatteryControllerImpl(Context context) {
- this(context, context.getSystemService(PowerManager.class));
+ public BatteryControllerImpl(Context context, EnhancedEstimates enhancedEstimates) {
+ this(context, enhancedEstimates, context.getSystemService(PowerManager.class));
}
@VisibleForTesting
- BatteryControllerImpl(Context context, PowerManager powerManager) {
+ BatteryControllerImpl(Context context, EnhancedEstimates enhancedEstimates,
+ PowerManager powerManager) {
mContext = context;
mHandler = new Handler();
mPowerManager = powerManager;
+ mEstimates = enhancedEstimates;
registerReceiver();
updatePowerSave();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BluetoothControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BluetoothControllerImpl.java
index c8550003d2f4..8916242b682b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BluetoothControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BluetoothControllerImpl.java
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.policy;
import static com.android.systemui.Dependency.BG_LOOPER_NAME;
+import android.annotation.Nullable;
import android.app.ActivityManager;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
@@ -34,7 +35,6 @@ import com.android.settingslib.bluetooth.BluetoothCallback;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
-import com.android.systemui.Dependency;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -73,8 +73,9 @@ public class BluetoothControllerImpl implements BluetoothController, BluetoothCa
/**
*/
@Inject
- public BluetoothControllerImpl(Context context, @Named(BG_LOOPER_NAME) Looper bgLooper) {
- mLocalBluetoothManager = Dependency.get(LocalBluetoothManager.class);
+ public BluetoothControllerImpl(Context context, @Named(BG_LOOPER_NAME) Looper bgLooper,
+ @Nullable LocalBluetoothManager localBluetoothManager) {
+ mLocalBluetoothManager = localBluetoothManager;
mBgHandler = new Handler(bgLooper);
if (mLocalBluetoothManager != null) {
mLocalBluetoothManager.getEventManager().registerCallback(this);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceProvisionedControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceProvisionedControllerImpl.java
index c995162c8bb1..f5e745f650a9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceProvisionedControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceProvisionedControllerImpl.java
@@ -14,6 +14,8 @@
package com.android.systemui.statusbar.policy;
+import static com.android.systemui.Dependency.MAIN_HANDLER_NAME;
+
import android.app.ActivityManager;
import android.content.ContentResolver;
import android.content.Context;
@@ -21,13 +23,14 @@ import android.database.ContentObserver;
import android.net.Uri;
import android.provider.Settings.Global;
import android.provider.Settings.Secure;
+import android.os.Handler;
-import com.android.systemui.Dependency;
import com.android.systemui.settings.CurrentUserTracker;
import java.util.ArrayList;
import javax.inject.Inject;
+import javax.inject.Named;
import javax.inject.Singleton;
/**
@@ -41,16 +44,28 @@ public class DeviceProvisionedControllerImpl extends CurrentUserTracker implemen
private final Context mContext;
private final Uri mDeviceProvisionedUri;
private final Uri mUserSetupUri;
+ protected final ContentObserver mSettingsObserver;
/**
*/
@Inject
- public DeviceProvisionedControllerImpl(Context context) {
+ public DeviceProvisionedControllerImpl(Context context,
+ @Named(MAIN_HANDLER_NAME) Handler mainHandler) {
super(context);
mContext = context;
mContentResolver = context.getContentResolver();
mDeviceProvisionedUri = Global.getUriFor(Global.DEVICE_PROVISIONED);
mUserSetupUri = Secure.getUriFor(Secure.USER_SETUP_COMPLETE);
+ mSettingsObserver = new ContentObserver(mainHandler) {
+ @Override
+ public void onChange(boolean selfChange, Uri uri, int userId) {
+ if (mUserSetupUri.equals(uri)) {
+ notifySetupChanged();
+ } else {
+ notifyProvisionedChanged();
+ }
+ }
+ };
}
@Override
@@ -127,17 +142,4 @@ public class DeviceProvisionedControllerImpl extends CurrentUserTracker implemen
mListeners.get(i).onDeviceProvisionedChanged();
}
}
-
- protected final ContentObserver mSettingsObserver = new ContentObserver(Dependency.get(
- Dependency.MAIN_HANDLER)) {
-
- @Override
- public void onChange(boolean selfChange, Uri uri, int userId) {
- if (mUserSetupUri.equals(uri)) {
- notifySetupChanged();
- } else {
- notifyProvisionedChanged();
- }
- }
- };
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
index 420abe88f455..f043a395c573 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
@@ -16,20 +16,22 @@
package com.android.systemui.statusbar.policy;
+import static com.android.systemui.Dependency.MAIN_HANDLER_NAME;
+
import android.app.ActivityManager;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
+import android.os.Handler;
import android.os.UserManager;
import android.util.Log;
-import com.android.systemui.Dependency;
-
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.inject.Inject;
+import javax.inject.Named;
import javax.inject.Singleton;
/**
@@ -43,6 +45,7 @@ public class HotspotControllerImpl implements HotspotController, WifiManager.Sof
private final ArrayList<Callback> mCallbacks = new ArrayList<>();
private final ConnectivityManager mConnectivityManager;
private final WifiManager mWifiManager;
+ private final Handler mMainHandler;
private final Context mContext;
private int mHotspotState;
@@ -52,11 +55,12 @@ public class HotspotControllerImpl implements HotspotController, WifiManager.Sof
/**
*/
@Inject
- public HotspotControllerImpl(Context context) {
+ public HotspotControllerImpl(Context context, @Named(MAIN_HANDLER_NAME) Handler mainHandler) {
mContext = context;
mConnectivityManager =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
+ mMainHandler = mainHandler;
}
@Override
@@ -121,7 +125,7 @@ public class HotspotControllerImpl implements HotspotController, WifiManager.Sof
if (shouldListen) {
mWifiManager.registerSoftApCallback(
this,
- Dependency.get(Dependency.MAIN_HANDLER));
+ mMainHandler);
} else {
mWifiManager.unregisterSoftApCallback(this);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.java
index 2a10db620096..630bd18c6ad6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.java
@@ -21,7 +21,6 @@ import android.content.Context;
import android.content.res.Configuration;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.systemui.Dependency;
import com.android.systemui.SysUiServiceProvider;
import com.android.systemui.qs.QSFragment;
import com.android.systemui.statusbar.CommandQueue;
@@ -44,11 +43,12 @@ public class RemoteInputQuickSettingsDisabler
@VisibleForTesting CommandQueue mCommandQueue;
@Inject
- public RemoteInputQuickSettingsDisabler(Context context) {
+ public RemoteInputQuickSettingsDisabler(Context context,
+ ConfigurationController configController) {
mContext = context;
mCommandQueue = SysUiServiceProvider.getComponent(context, CommandQueue.class);
mLastOrientation = mContext.getResources().getConfiguration().orientation;
- Dependency.get(ConfigurationController.class).addCallback(this);
+ configController.addCallback(this);
}
public int adjustDisableFlags(int state) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java
index e0259c9f5af7..d88ae78c5afb 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java
@@ -15,6 +15,8 @@
*/
package com.android.systemui.statusbar.policy;
+import static com.android.systemui.Dependency.BG_HANDLER_NAME;
+
import android.app.ActivityManager;
import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
@@ -47,7 +49,6 @@ import android.util.SparseArray;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.net.LegacyVpnInfo;
import com.android.internal.net.VpnConfig;
-import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.settings.CurrentUserTracker;
@@ -56,6 +57,7 @@ import java.io.PrintWriter;
import java.util.ArrayList;
import javax.inject.Inject;
+import javax.inject.Named;
import javax.inject.Singleton;
/**
@@ -84,6 +86,7 @@ public class SecurityControllerImpl extends CurrentUserTracker implements Securi
private final DevicePolicyManager mDevicePolicyManager;
private final PackageManager mPackageManager;
private final UserManager mUserManager;
+ private final Handler mBgHandler;
@GuardedBy("mCallbacks")
private final ArrayList<SecurityControllerCallback> mCallbacks = new ArrayList<>();
@@ -99,13 +102,15 @@ public class SecurityControllerImpl extends CurrentUserTracker implements Securi
/**
*/
@Inject
- public SecurityControllerImpl(Context context) {
- this(context, null);
+ public SecurityControllerImpl(Context context, @Named(BG_HANDLER_NAME) Handler bgHandler) {
+ this(context, bgHandler, null);
}
- public SecurityControllerImpl(Context context, SecurityControllerCallback callback) {
+ public SecurityControllerImpl(Context context, Handler bgHandler,
+ SecurityControllerCallback callback) {
super(context);
mContext = context;
+ mBgHandler = bgHandler;
mDevicePolicyManager = (DevicePolicyManager)
context.getSystemService(Context.DEVICE_POLICY_SERVICE);
mConnectivityManager = (ConnectivityManager)
@@ -121,7 +126,7 @@ public class SecurityControllerImpl extends CurrentUserTracker implements Securi
IntentFilter filter = new IntentFilter();
filter.addAction(KeyChain.ACTION_TRUST_STORE_CHANGED);
context.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter, null,
- new Handler(Dependency.get(Dependency.BG_LOOPER)));
+ bgHandler);
// TODO: re-register network callback on user change.
mConnectivityManager.registerNetworkCallback(REQUEST, mNetworkCallback);
@@ -413,7 +418,7 @@ public class SecurityControllerImpl extends CurrentUserTracker implements Securi
return new Pair<Integer, Boolean>(userId[0], hasCACerts);
} catch (RemoteException | InterruptedException | AssertionError e) {
Log.i(TAG, "failed to get CA certs", e);
- new Handler(Dependency.get(Dependency.BG_LOOPER)).postDelayed(
+ mBgHandler.postDelayed(
() -> new CACertLoader().execute(userId[0]),
CA_CERT_LOADING_RETRY_TIME_IN_MS);
return new Pair<Integer, Boolean>(userId[0], null);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
index e412e09fe519..9343bf12cc7e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
@@ -51,7 +51,6 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.util.UserIcons;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.Utils;
-import com.android.systemui.Dependency;
import com.android.systemui.Dumpable;
import com.android.systemui.GuestResumeSessionReceiver;
import com.android.systemui.Prefs;
@@ -597,7 +596,7 @@ public class UserSwitcherController implements Dumpable {
protected BaseUserAdapter(UserSwitcherController controller) {
mController = controller;
- mKeyguardMonitor = Dependency.get(KeyguardMonitor.class);
+ mKeyguardMonitor = controller.mKeyguardMonitor;
controller.addAdapter(new WeakReference<>(this));
}
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/TunablePadding.java b/packages/SystemUI/src/com/android/systemui/tuner/TunablePadding.java
index 81d77a64c1f0..8f3a8f6ec960 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/TunablePadding.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/TunablePadding.java
@@ -38,8 +38,9 @@ public class TunablePadding implements Tunable {
private final View mView;
private final int mDefaultSize;
private final float mDensity;
+ private final TunerService mTunerService;
- private TunablePadding(String key, int def, int flags, View view) {
+ private TunablePadding(String key, int def, int flags, View view, TunerService tunerService) {
mDefaultSize = def;
mFlags = flags;
mView = view;
@@ -47,7 +48,8 @@ public class TunablePadding implements Tunable {
view.getContext().getSystemService(WindowManager.class)
.getDefaultDisplay().getMetrics(metrics);
mDensity = metrics.density;
- Dependency.get(TunerService.class).addTunable(this, key);
+ mTunerService = tunerService;
+ mTunerService.addTunable(this, key);
}
@Override
@@ -69,7 +71,7 @@ public class TunablePadding implements Tunable {
}
public void destroy() {
- Dependency.get(TunerService.class).removeTunable(this);
+ mTunerService.removeTunable(this);
}
/**
@@ -78,17 +80,20 @@ public class TunablePadding implements Tunable {
@Singleton
public static class TunablePaddingService {
+ private final TunerService mTunerService;
+
/**
*/
@Inject
- public TunablePaddingService() {
+ public TunablePaddingService(TunerService tunerService) {
+ mTunerService = tunerService;
}
public TunablePadding add(View view, String key, int defaultSize, int flags) {
if (view == null) {
throw new IllegalArgumentException();
}
- return new TunablePadding(key, defaultSize, flags, view);
+ return new TunablePadding(key, defaultSize, flags, view, mTunerService);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java b/packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java
index 0a47f19ac2f5..6185063e7966 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java
@@ -15,6 +15,8 @@
*/
package com.android.systemui.tuner;
+import static com.android.systemui.Dependency.BG_HANDLER_NAME;
+
import android.app.ActivityManager;
import android.content.ContentResolver;
import android.content.Context;
@@ -33,7 +35,6 @@ import android.util.ArraySet;
import com.android.internal.util.ArrayUtils;
import com.android.systemui.DemoMode;
-import com.android.systemui.Dependency;
import com.android.systemui.qs.QSTileHost;
import com.android.systemui.settings.CurrentUserTracker;
import com.android.systemui.statusbar.phone.StatusBarIconController;
@@ -44,6 +45,7 @@ import java.util.HashSet;
import java.util.Set;
import javax.inject.Inject;
+import javax.inject.Named;
import javax.inject.Singleton;
@@ -71,6 +73,7 @@ public class TunerServiceImpl extends TunerService {
// Set of all tunables, used for leak detection.
private final HashSet<Tunable> mTunables = LeakDetector.ENABLED ? new HashSet<>() : null;
private final Context mContext;
+ private final LeakDetector mLeakDetector;
private ContentResolver mContentResolver;
private int mCurrentUser;
@@ -79,14 +82,16 @@ public class TunerServiceImpl extends TunerService {
/**
*/
@Inject
- public TunerServiceImpl(Context context) {
+ public TunerServiceImpl(Context context, @Named(BG_HANDLER_NAME) Handler bgHandler,
+ LeakDetector leakDetector) {
mContext = context;
mContentResolver = mContext.getContentResolver();
+ mLeakDetector = leakDetector;
for (UserInfo user : UserManager.get(mContext).getUsers()) {
mCurrentUser = user.getUserHandle().getIdentifier();
if (getValue(TUNER_VERSION, 0) != CURRENT_TUNER_VERSION) {
- upgradeTuner(getValue(TUNER_VERSION, 0), CURRENT_TUNER_VERSION);
+ upgradeTuner(getValue(TUNER_VERSION, 0), CURRENT_TUNER_VERSION, bgHandler);
}
}
@@ -107,7 +112,7 @@ public class TunerServiceImpl extends TunerService {
mUserTracker.stopTracking();
}
- private void upgradeTuner(int oldVersion, int newVersion) {
+ private void upgradeTuner(int oldVersion, int newVersion, Handler bgHandler) {
if (oldVersion < 1) {
String blacklistStr = getValue(StatusBarIconController.ICON_BLACKLIST);
if (blacklistStr != null) {
@@ -129,7 +134,7 @@ public class TunerServiceImpl extends TunerService {
if (oldVersion < 4) {
// Delay this so that we can wait for everything to be registered first.
final int user = mCurrentUser;
- new Handler(Dependency.get(Dependency.BG_LOOPER)).postDelayed(
+ bgHandler.postDelayed(
() -> clearAllFromUser(user), 5000);
}
setValue(TUNER_VERSION, newVersion);
@@ -176,7 +181,7 @@ public class TunerServiceImpl extends TunerService {
mTunableLookup.get(key).add(tunable);
if (LeakDetector.ENABLED) {
mTunables.add(tunable);
- Dependency.get(LeakDetector.class).trackCollection(mTunables, "TunerService.mTunables");
+ mLeakDetector.trackCollection(mTunables, "TunerService.mTunables");
}
Uri uri = Settings.Secure.getUriFor(key);
if (!mListeningUris.containsKey(uri)) {
diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java b/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java
index 7bc96261782d..0328c7b0fb84 100644
--- a/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java
+++ b/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java
@@ -43,9 +43,9 @@ import android.text.format.DateUtils;
import android.util.Log;
import android.util.LongSparseArray;
-import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.SystemUI;
+import com.android.systemui.SystemUIFactory;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.tileimpl.QSTileImpl;
@@ -348,7 +348,7 @@ public class GarbageMonitor {
public MemoryTile(QSHost host) {
super(host);
- gm = Dependency.get(GarbageMonitor.class);
+ gm = SystemUIFactory.getInstance().getRootComponent().createGarbageMonitor();
}
@Override
@@ -453,7 +453,8 @@ public class GarbageMonitor {
Settings.Secure.getInt(
mContext.getContentResolver(), FORCE_ENABLE_LEAK_REPORTING, 0)
!= 0;
- mGarbageMonitor = Dependency.get(GarbageMonitor.class);
+ mGarbageMonitor = SystemUIFactory.getInstance().getRootComponent()
+ .createGarbageMonitor();
if (LEAK_REPORTING_ENABLED || forceEnable) {
mGarbageMonitor.startLeakMonitor();
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
index 16ef63f1848a..8f2b2d065f72 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
@@ -144,8 +144,7 @@ public class BubbleControllerTest extends SysuiTestCase {
TestableBubbleController(Context context,
StatusBarWindowController statusBarWindowController) {
- super(context);
- mStatusBarWindowController = statusBarWindowController;
+ super(context, statusBarWindowController);
}
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/dock/DockManagerFake.java b/packages/SystemUI/tests/src/com/android/systemui/dock/DockManagerFake.java
new file mode 100644
index 000000000000..b368876d2ae7
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/dock/DockManagerFake.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.dock;
+
+/**
+ * A rudimentary fake for DockManager.
+ */
+public class DockManagerFake implements DockManager {
+ DockEventListener mCallback;
+
+ @Override
+ public void addListener(DockEventListener callback) {
+ this.mCallback = callback;
+ }
+
+ @Override
+ public void removeListener(DockEventListener callback) {
+ this.mCallback = null;
+ }
+
+ public void setDockEvent(int event) {
+ mCallback.onEvent(event);
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeDockHandlerTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeDockHandlerTest.java
new file mode 100644
index 000000000000..e1c0cd4dc7e9
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeDockHandlerTest.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.doze;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Instrumentation;
+import android.os.Handler;
+import android.os.Looper;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
+import android.testing.TestableLooper.RunWithLooper;
+
+import com.android.internal.hardware.AmbientDisplayConfiguration;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.dock.DockManager;
+import com.android.systemui.dock.DockManagerFake;
+
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@SmallTest
+@RunWith(AndroidTestingRunner.class)
+@RunWithLooper
+public class DozeDockHandlerTest extends SysuiTestCase {
+ private DozeDockHandler mDockHandler;
+ private DozeMachine mMachine;
+ private DozeHostFake mHost;
+ private AmbientDisplayConfiguration mConfig;
+ private Instrumentation mInstrumentation;
+ private DockManagerFake mDockManagerFake;
+
+ @BeforeClass
+ public static void setupSuite() {
+ // We can't use KeyguardUpdateMonitor from tests.
+ DozeLog.setRegisterKeyguardCallback(false);
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ mInstrumentation = InstrumentationRegistry.getInstrumentation();
+ mMachine = mock(DozeMachine.class);
+ mHost = spy(new DozeHostFake());
+ mConfig = DozeConfigurationUtil.createMockConfig();
+
+ mDockManagerFake = spy(new DockManagerFake());
+ mContext.putComponent(DockManager.class, mDockManagerFake);
+
+ mDockHandler = new DozeDockHandler(mContext, mMachine, mHost, mConfig,
+ Handler.createAsync(Looper.myLooper()));
+ }
+
+ @Test
+ public void testDockEventListener_registerAndUnregister() throws Exception {
+ mDockHandler.transitionTo(DozeMachine.State.UNINITIALIZED, DozeMachine.State.INITIALIZED);
+
+ verify(mDockManagerFake).addListener(any());
+
+ mDockHandler.transitionTo(DozeMachine.State.DOZE, DozeMachine.State.FINISH);
+
+ verify(mDockManagerFake).removeListener(any());
+ }
+
+ @Test
+ public void testOnEvent_dockingWhenDoze_requestPulse() throws Exception {
+ mDockHandler.transitionTo(DozeMachine.State.UNINITIALIZED, DozeMachine.State.INITIALIZED);
+ when(mMachine.getState()).thenReturn(DozeMachine.State.DOZE);
+
+ mDockManagerFake.setDockEvent(DockManager.STATE_DOCKING);
+
+ verify(mMachine).requestPulse(eq(DozeLog.PULSE_REASON_DOCKING));
+ }
+
+ @Test
+ public void testOnEvent_dockingWhenPausing_neverRequestPulse() throws Exception {
+ mDockHandler.transitionTo(DozeMachine.State.UNINITIALIZED, DozeMachine.State.INITIALIZED);
+ when(mMachine.getState()).thenReturn(DozeMachine.State.DOZE_AOD_PAUSING);
+
+ mDockManagerFake.setDockEvent(DockManager.STATE_DOCKING);
+
+ verify(mMachine, never()).requestPulse(eq(DozeLog.PULSE_REASON_DOCKING));
+ }
+
+ @Test
+ public void testOnEvent_undockedWhenPulsing_requestPulseOut() throws Exception {
+ mDockHandler.transitionTo(DozeMachine.State.UNINITIALIZED, DozeMachine.State.INITIALIZED);
+ when(mMachine.getState()).thenReturn(DozeMachine.State.DOZE_PULSING);
+ when(mMachine.getPulseReason()).thenReturn(DozeLog.PULSE_REASON_DOCKING);
+
+ mDockManagerFake.setDockEvent(DockManager.STATE_UNDOCKING);
+
+ verify(mHost).stopPulsing();
+ }
+
+ @Test
+ public void testOnEvent_undockedWhenDoze_neverRequestPulseOut() throws Exception {
+ mDockHandler.transitionTo(DozeMachine.State.UNINITIALIZED, DozeMachine.State.INITIALIZED);
+ when(mMachine.getState()).thenReturn(DozeMachine.State.DOZE_PULSING);
+
+ mDockManagerFake.setDockEvent(DockManager.STATE_UNDOCKING);
+
+ verify(mHost, never()).stopPulsing();
+ }
+
+ @Test
+ public void testTransitionToDozeWhenDocking_RequestPulse() throws Exception {
+ mDockHandler.transitionTo(DozeMachine.State.UNINITIALIZED, DozeMachine.State.INITIALIZED);
+ mDockManagerFake.setDockEvent(DockManager.STATE_DOCKING);
+ mDockHandler.transitionTo(DozeMachine.State.DOZE_AOD_PAUSING, DozeMachine.State.DOZE);
+ when(mMachine.getState()).thenReturn(DozeMachine.State.DOZE);
+
+ TestableLooper.get(this).processAllMessages();
+
+ verify(mMachine).requestPulse(eq(DozeLog.PULSE_REASON_DOCKING));
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeHostFake.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeHostFake.java
index f3cb27f8d010..ce28b50436eb 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeHostFake.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeHostFake.java
@@ -17,7 +17,6 @@
package com.android.systemui.doze;
import android.annotation.NonNull;
-import android.app.PendingIntent;
/**
* A rudimentary fake for DozeHost.
@@ -92,6 +91,9 @@ class DozeHostFake implements DozeHost {
}
@Override
+ public void stopPulsing() {}
+
+ @Override
public void setAnimateWakeup(boolean animateWakeup) {
this.animateWakeup = animateWakeup;
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/LockScreenWakeUpControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/LockScreenWakeUpControllerTest.java
deleted file mode 100644
index 8963b5930d50..000000000000
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/LockScreenWakeUpControllerTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.doze;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyLong;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.os.Handler;
-import android.os.PowerManager;
-import android.support.test.filters.SmallTest;
-
-import com.android.internal.hardware.AmbientDisplayConfiguration;
-import com.android.systemui.SysuiTestCase;
-import com.android.systemui.plugins.SensorManagerPlugin;
-import com.android.systemui.statusbar.StatusBarState;
-import com.android.systemui.statusbar.StatusBarStateController;
-import com.android.systemui.util.AsyncSensorManager;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@RunWith(JUnit4.class)
-@SmallTest
-public class LockScreenWakeUpControllerTest extends SysuiTestCase {
-
- @Mock
- private AsyncSensorManager mAsyncSensorManager;
- @Mock
- private SensorManagerPlugin.Sensor mSensor;
- @Mock
- private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
- @Mock
- private PowerManager mPowerManager;
- @Mock
- private DozeHost mDozeHost;
- @Mock
- private StatusBarStateController mStatusBarStateController;
- @Mock
- private Handler mHandler;
-
- private LockScreenWakeUpController mLockScreenWakeUpController;
-
- @Before
- public void setup() {
- MockitoAnnotations.initMocks(this);
- doAnswer(invocation -> {
- ((Runnable) invocation.getArgument(0)).run();
- return null;
- }).when(mHandler).post(any());
-
- mLockScreenWakeUpController = new LockScreenWakeUpController(mAsyncSensorManager, mSensor,
- mAmbientDisplayConfiguration, mPowerManager, mDozeHost, mStatusBarStateController,
- mHandler);
- }
-
- @Test
- public void testOnStateChanged_registersUnregistersListener() {
- when(mAmbientDisplayConfiguration.wakeLockScreenGestureEnabled(anyInt())).thenReturn(true);
- mLockScreenWakeUpController.onStateChanged(StatusBarState.KEYGUARD);
- mLockScreenWakeUpController.onStateChanged(StatusBarState.SHADE);
-
- verify(mAsyncSensorManager, times(1)).registerPluginListener(eq(mSensor),
- eq(mLockScreenWakeUpController));
-
- mLockScreenWakeUpController.onStateChanged(StatusBarState.SHADE);
- verify(mAsyncSensorManager).unregisterPluginListener(eq(mSensor),
- eq(mLockScreenWakeUpController));
- }
-
- @Test
- public void testOnStateChanged_disabledSensor() {
- when(mAmbientDisplayConfiguration.wakeLockScreenGestureEnabled(anyInt()))
- .thenReturn(false);
- mLockScreenWakeUpController.onStateChanged(StatusBarState.KEYGUARD);
- mLockScreenWakeUpController.onStateChanged(StatusBarState.SHADE);
-
- verify(mAsyncSensorManager, never()).registerPluginListener(eq(mSensor),
- eq(mLockScreenWakeUpController));
- }
-
- @Test
- public void testOnSensorChanged_postsToMainThread() {
- SensorManagerPlugin.SensorEvent event = new SensorManagerPlugin.SensorEvent(mSensor, 0);
- mLockScreenWakeUpController.onSensorChanged(event);
-
- verify(mHandler).post(any());
- }
-
- @Test
- public void testOnSensorChanged_wakeUpWhenDozing() {
- SensorManagerPlugin.SensorEvent event =
- new SensorManagerPlugin.SensorEvent(mSensor, 0, new float[] {1});
- mLockScreenWakeUpController.onSensorChanged(event);
- verify(mPowerManager, never()).wakeUp(anyLong(), any());
-
- mLockScreenWakeUpController.onDozingChanged(true);
- mLockScreenWakeUpController.onSensorChanged(event);
- verify(mPowerManager).wakeUp(anyLong(), any());
- }
-
- @Test
- public void testOnSensorChanged_sleepsWhenAwake() {
- boolean[] goToSleep = new boolean[] {false};
- doAnswer(invocation -> goToSleep[0] = true)
- .when(mPowerManager).goToSleep(anyLong(), anyInt(), anyInt());
- SensorManagerPlugin.SensorEvent event =
- new SensorManagerPlugin.SensorEvent(mSensor, 0, new float[] {0});
- mLockScreenWakeUpController.onDozingChanged(true);
- mLockScreenWakeUpController.onSensorChanged(event);
- Assert.assertFalse("goToSleep should have never been called.", goToSleep[0]);
-
- mLockScreenWakeUpController.onDozingChanged(false);
- mLockScreenWakeUpController.onSensorChanged(event);
- Assert.assertTrue("goToSleep should have been called.", goToSleep[0]);
- }
-}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
index 45e49dfd8cf2..bbf2032785b5 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
@@ -38,6 +38,7 @@ import com.android.systemui.SystemUIFactory;
import com.android.systemui.SysuiBaseFragmentTest;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.policy.Clock;
+import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.util.InjectionInflationController;
@@ -124,7 +125,8 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
@Override
protected Fragment instantiate(Context context, String className, Bundle arguments) {
- return new QSFragment(new RemoteInputQuickSettingsDisabler(context),
+ return new QSFragment(
+ new RemoteInputQuickSettingsDisabler(context, mock(ConfigurationController.class)),
new InjectionInflationController(SystemUIFactory.getInstance().getRootComponent()),
context);
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java
index 14e611a26b4c..1244310ebfd2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/SmartReplyControllerTest.java
@@ -70,9 +70,9 @@ public class SmartReplyControllerTest extends SysuiTestCase {
MockitoAnnotations.initMocks(this);
mDependency.injectTestDependency(NotificationEntryManager.class,
mNotificationEntryManager);
- mDependency.injectTestDependency(IStatusBarService.class, mIStatusBarService);
- mSmartReplyController = new SmartReplyController();
+ mSmartReplyController = new SmartReplyController(mNotificationEntryManager,
+ mIStatusBarService);
mDependency.injectTestDependency(SmartReplyController.class,
mSmartReplyController);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java
index 512acd073a84..caa3ca6cc63a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java
@@ -19,6 +19,7 @@ package com.android.systemui.statusbar.notification.logging;
import static org.junit.Assert.assertArrayEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -36,9 +37,12 @@ import android.testing.TestableLooper;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.statusbar.NotificationVisibility;
+import com.android.systemui.Dependency;
import com.android.systemui.SysuiTestCase;
+import com.android.systemui.UiOffloadThread;
import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationPresenter;
+import com.android.systemui.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.notification.NotificationData;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
@@ -91,7 +95,8 @@ public class NotificationLoggerTest extends SysuiTestCase {
mEntry = new NotificationData.Entry(mSbn);
mEntry.setRow(mRow);
- mLogger = new TestableNotificationLogger(mBarService);
+ mLogger = new TestableNotificationLogger(mListener, Dependency.get(UiOffloadThread.class),
+ mEntryManager, mock(StatusBarStateController.class), mBarService);
mLogger.setUpWithContainer(mListContainer);
}
@@ -153,7 +158,12 @@ public class NotificationLoggerTest extends SysuiTestCase {
private class TestableNotificationLogger extends NotificationLogger {
- public TestableNotificationLogger(IStatusBarService barService) {
+ public TestableNotificationLogger(NotificationListener notificationListener,
+ UiOffloadThread uiOffloadThread,
+ NotificationEntryManager entryManager,
+ StatusBarStateController statusBarStateController,
+ IStatusBarService barService) {
+ super(notificationListener, uiOffloadThread, entryManager, statusBarStateController);
mBarService = barService;
// Make this on the current thread so we can wait for it during tests.
mHandler = Handler.createAsync(Looper.myLooper());
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
index 728723b4094c..babd452475d4 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java
@@ -40,7 +40,6 @@ import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
-import com.android.systemui.statusbar.policy.DeviceProvisionedControllerImpl;
import org.junit.Before;
import org.junit.Test;
@@ -105,7 +104,7 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest {
@Override
protected Fragment instantiate(Context context, String className, Bundle arguments) {
DeviceProvisionedController deviceProvisionedController =
- new DeviceProvisionedControllerImpl(context);
+ mock(DeviceProvisionedController.class);
assertNotNull(mAccessibilityWrapper);
return new NavigationBarFragment(mAccessibilityWrapper,
deviceProvisionedController,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
index 0bc304ee41b2..146c5d647198 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
@@ -220,9 +220,9 @@ public class ScrimControllerTest extends SysuiTestCase {
mScrimController.transitionTo(ScrimState.PULSING);
mScrimController.finishAnimationsImmediately();
// Front scrim should be transparent
- // Back scrim should be visible with tint
+ // Back scrim should be semi-transparent so the user can see the wallpaper
// Pulse callback should have been invoked
- assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_FULLY_OPAQUE);
+ assertScrimVisibility(VISIBILITY_FULLY_TRANSPARENT, VISIBILITY_SEMI_TRANSPARENT);
assertScrimTint(mScrimBehind, true /* tinted */);
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
index c584d026f62b..fd795e5d5fc7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
@@ -68,6 +68,7 @@ import com.android.systemui.ForegroundServiceController;
import com.android.systemui.InitController;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
+import com.android.systemui.UiOffloadThread;
import com.android.systemui.appops.AppOpsController;
import com.android.systemui.appops.AppOpsControllerImpl;
import com.android.systemui.assist.AssistManager;
@@ -195,8 +196,10 @@ public class StatusBarTest extends SysuiTestCase {
mMetricsLogger = new FakeMetricsLogger();
mDependency.injectTestDependency(MetricsLogger.class, mMetricsLogger);
+ mEntryManager = new TestableNotificationEntryManager(mPowerManager, mContext);
+ mNotificationLogger = new NotificationLogger(mNotificationListener,
+ Dependency.get(UiOffloadThread.class), mEntryManager, mStatusBarStateController);
mDependency.injectTestDependency(NotificationLogger.class, mNotificationLogger);
- mNotificationLogger = new NotificationLogger();
DozeLog.traceDozing(mContext, false /* dozing */);
mCommandQueue = mock(CommandQueue.class);
@@ -225,7 +228,6 @@ public class StatusBarTest extends SysuiTestCase {
mNotificationInterruptionStateProvider.setUpWithPresenter(mNotificationPresenter,
mHeadsUpManager, mHeadsUpSuppressor);
- mEntryManager = new TestableNotificationEntryManager(mPowerManager, mContext);
when(mRemoteInputManager.getController()).thenReturn(mRemoteInputController);
mStatusBar = new TestableStatusBar(mStatusBarKeyguardViewManager, mUnlockMethodCache,
mKeyguardIndicationController, mStackScroller, mHeadsUpManager,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java
index d54c29582247..e626d083d366 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java
@@ -16,6 +16,7 @@
package com.android.systemui.statusbar.policy;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import android.content.Intent;
@@ -26,6 +27,7 @@ import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import com.android.systemui.SysuiTestCase;
+import com.android.systemui.power.EnhancedEstimates;
import org.junit.Assert;
import org.junit.Before;
@@ -47,7 +49,8 @@ public class BatteryControllerTest extends SysuiTestCase {
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mBatteryController = new BatteryControllerImpl(getContext(), mPowerManager);
+ mBatteryController = new BatteryControllerImpl(getContext(), mock(EnhancedEstimates.class),
+ mPowerManager);
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BluetoothControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BluetoothControllerImplTest.java
index d2463502cb19..b65b0f7afa0b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BluetoothControllerImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BluetoothControllerImplTest.java
@@ -74,7 +74,8 @@ public class BluetoothControllerImplTest extends SysuiTestCase {
.thenReturn(mock(LocalBluetoothProfileManager.class));
mBluetoothControllerImpl = new BluetoothControllerImpl(mContext,
- mTestableLooper.getLooper());
+ mTestableLooper.getLooper(),
+ mMockBluetoothManager);
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java
index 3b47eae03fa0..e3a41bead26c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java
@@ -29,6 +29,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.policy.ConfigurationController;
import org.junit.Before;
import org.junit.Test;
@@ -49,7 +50,8 @@ public class RemoteInputQuickSettingsDisablerTest extends SysuiTestCase {
mCommandQueue = mock(CommandQueue.class);
mContext.putComponent(CommandQueue.class, mCommandQueue);
- mRemoteInputQuickSettingsDisabler = new RemoteInputQuickSettingsDisabler(mContext);
+ mRemoteInputQuickSettingsDisabler = new RemoteInputQuickSettingsDisabler(mContext,
+ mock(ConfigurationController.class));
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SecurityControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SecurityControllerTest.java
index f76de5a03d2d..3ac42de911a9 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SecurityControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SecurityControllerTest.java
@@ -39,6 +39,8 @@ import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
+import android.os.Handler;
+import android.os.Looper;
import android.os.UserManager;
import android.security.IKeyChainService;
import android.support.test.runner.AndroidJUnit4;
@@ -98,7 +100,10 @@ public class SecurityControllerTest extends SysuiTestCase implements SecurityCon
// Wait for callbacks from 1) the CACertLoader and 2) the onUserSwitched() function in the
// constructor of mSecurityController
mStateChangedLatch = new CountDownLatch(2);
- mSecurityController = new SecurityControllerImpl(mContext, this);
+ // TODO: Migrate this test to TestableLooper and use a handler attached
+ // to that.
+ mSecurityController = new SecurityControllerImpl(mContext,
+ new Handler(Looper.getMainLooper()), this);
}
@After
diff --git a/packages/SystemUI/tests/src/com/android/systemui/tuner/TunablePaddingTest.java b/packages/SystemUI/tests/src/com/android/systemui/tuner/TunablePaddingTest.java
index 3bfefe7b4d9b..1e27915c1bb2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/tuner/TunablePaddingTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/tuner/TunablePaddingTest.java
@@ -48,7 +48,9 @@ public class TunablePaddingTest extends LeakCheckedTest {
mView = mock(View.class);
when(mView.getContext()).thenReturn(mContext);
- mTunerService = mDependency.injectMockDependency(TunerService.class);
+ mTunerService = mock(TunerService.class);
+ mDependency.injectTestDependency(TunablePadding.TunablePaddingService.class,
+ new TunablePadding.TunablePaddingService(mTunerService));
Tracker tracker = mLeakCheck.getTracker("tuner");
doAnswer(invocation -> {
tracker.getLeakInfo(invocation.getArguments()[0]).addAllocation(new Throwable());
@@ -118,4 +120,4 @@ public class TunablePaddingTest extends LeakCheckedTest {
mTunablePadding.destroy();
}
-} \ No newline at end of file
+}
diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
index bf95210195b7..9684f4c4ae19 100644
--- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java
+++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
@@ -944,6 +944,10 @@ public class NetworkMonitor extends StateMachine {
private class WaitingForNextProbeState extends State {
@Override
public void enter() {
+ scheduleNextProbe();
+ }
+
+ private void scheduleNextProbe() {
final Message msg = obtainMessage(CMD_REEVALUATE, ++mReevaluateToken, 0);
sendMessageDelayed(msg, mReevaluateDelayMs);
mReevaluateDelayMs *= 2;
diff --git a/services/core/java/com/android/server/connectivity/PacManager.java b/services/core/java/com/android/server/connectivity/PacManager.java
index c370959dd2cf..3ea9810f2d76 100644
--- a/services/core/java/com/android/server/connectivity/PacManager.java
+++ b/services/core/java/com/android/server/connectivity/PacManager.java
@@ -43,8 +43,6 @@ import com.android.net.IProxyCallback;
import com.android.net.IProxyPortListener;
import com.android.net.IProxyService;
-import libcore.io.Streams;
-
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URL;
@@ -71,6 +69,11 @@ public class PacManager {
private static final int DELAY_LONG = 4;
private static final long MAX_PAC_SIZE = 20 * 1000 * 1000;
+ // Return values for #setCurrentProxyScriptUrl
+ enum ToSendOrNotToSendBroadcast {
+ DONT_SEND_BROADCAST, DO_SEND_BROADCAST
+ }
+
private String mCurrentPac;
@GuardedBy("mProxyLock")
private volatile Uri mPacUrl = Uri.EMPTY;
@@ -171,13 +174,13 @@ public class PacManager {
* PacManager will trigger a new broadcast when it is ready.
*
* @param proxy Proxy information that is about to be broadcast.
- * @return Returns true when the broadcast should not be sent
+ * @return Returns whether the broadcast should be sent : either DO_ or DONT_SEND_BROADCAST
*/
- synchronized boolean setCurrentProxyScriptUrl(ProxyInfo proxy) {
+ synchronized ToSendOrNotToSendBroadcast setCurrentProxyScriptUrl(ProxyInfo proxy) {
if (!Uri.EMPTY.equals(proxy.getPacFileUrl())) {
if (proxy.getPacFileUrl().equals(mPacUrl) && (proxy.getPort() > 0)) {
// Allow to send broadcast, nothing to do.
- return false;
+ return ToSendOrNotToSendBroadcast.DO_SEND_BROADCAST;
}
mPacUrl = proxy.getPacFileUrl();
mCurrentDelay = DELAY_1;
@@ -185,7 +188,7 @@ public class PacManager {
mHasDownloaded = false;
getAlarmManager().cancel(mPacRefreshIntent);
bind();
- return true;
+ return ToSendOrNotToSendBroadcast.DONT_SEND_BROADCAST;
} else {
getAlarmManager().cancel(mPacRefreshIntent);
synchronized (mProxyLock) {
@@ -201,7 +204,7 @@ public class PacManager {
}
}
}
- return false;
+ return ToSendOrNotToSendBroadcast.DO_SEND_BROADCAST;
}
}
@@ -296,7 +299,7 @@ public class PacManager {
Intent intent = new Intent();
intent.setClassName(PAC_PACKAGE, PAC_SERVICE);
if ((mProxyConnection != null) && (mConnection != null)) {
- // Already bound no need to bind again, just download the new file.
+ // Already bound: no need to bind again, just download the new file.
mNetThreadHandler.post(mPacDownloader);
return;
}
diff --git a/services/core/java/com/android/server/connectivity/ProxyTracker.java b/services/core/java/com/android/server/connectivity/ProxyTracker.java
index 15468ff05c08..fdddccd20714 100644
--- a/services/core/java/com/android/server/connectivity/ProxyTracker.java
+++ b/services/core/java/com/android/server/connectivity/ProxyTracker.java
@@ -208,7 +208,10 @@ public class ProxyTracker {
public void sendProxyBroadcast() {
final ProxyInfo defaultProxy = getDefaultProxy();
final ProxyInfo proxyInfo = null != defaultProxy ? defaultProxy : new ProxyInfo("", 0, "");
- if (mPacManager.setCurrentProxyScriptUrl(proxyInfo)) return;
+ if (mPacManager.setCurrentProxyScriptUrl(proxyInfo)
+ == PacManager.ToSendOrNotToSendBroadcast.DONT_SEND_BROADCAST) {
+ return;
+ }
if (DBG) Slog.d(TAG, "sending Proxy Broadcast for " + proxyInfo);
Intent intent = new Intent(Proxy.PROXY_CHANGE_ACTION);
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING |
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index fb6eaa0b85e6..292aae81b421 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -179,6 +179,7 @@ import java.nio.charset.StandardCharsets;
import java.security.InvalidParameterException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -553,10 +554,6 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
*/
private InputMethodSubtype mCurrentSubtype;
- // This list contains the pairs of InputMethodInfo and InputMethodSubtype.
- private final ArrayMap<InputMethodInfo, ArrayList<InputMethodSubtype>>
- mShortcutInputMethodsAndSubtypes = new ArrayMap<>();
-
// Was the keyguard locked when this client became current?
private boolean mCurClientInKeyguard;
@@ -2535,7 +2532,6 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
Slog.w(TAG, "Unknown input method from prefs: " + id, e);
resetCurrentMethodAndClient(UnbindReason.SWITCH_IME_FAILED);
}
- mShortcutInputMethodsAndSubtypes.clear();
} else {
// There is no longer an input method set, so stop any current one.
resetCurrentMethodAndClient(UnbindReason.NO_IME);
@@ -3092,10 +3088,10 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
}
}
- @Override
- public void setInputMethodAndSubtype(IBinder token, String id, InputMethodSubtype subtype) {
+ @BinderThread
+ private void setInputMethodAndSubtype(IBinder token, String id, InputMethodSubtype subtype) {
synchronized (mMethodMap) {
- if (!calledFromValidUserLocked()) {
+ if (!calledWithValidTokenLocked(token)) {
return;
}
if (subtype != null) {
@@ -3626,34 +3622,23 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
return false;
}
- @GuardedBy("mMethodMap")
- void buildInputMethodListLocked(boolean resetDefaultEnabledIme) {
- if (DEBUG) {
- Slog.d(TAG, "--- re-buildInputMethodList reset = " + resetDefaultEnabledIme
- + " \n ------ caller=" + Debug.getCallers(10));
- }
- if (!mSystemReady) {
- Slog.e(TAG, "buildInputMethodListLocked is not allowed until system is ready");
- return;
- }
- mMethodList.clear();
- mMethodMap.clear();
- mMethodMapUpdateCount++;
- mMyPackageMonitor.clearKnownImePackageNamesLocked();
-
- // Use for queryIntentServicesAsUser
- final PackageManager pm = mContext.getPackageManager();
+ static void queryInputMethodServicesInternal(Context context,
+ @UserIdInt int userId, ArrayMap<String, List<InputMethodSubtype>> additionalSubtypeMap,
+ ArrayMap<String, InputMethodInfo> methodMap, ArrayList<InputMethodInfo> methodList) {
+ methodList.clear();
+ methodMap.clear();
// Note: We do not specify PackageManager.MATCH_ENCRYPTION_* flags here because the default
// behavior of PackageManager is exactly what we want. It by default picks up appropriate
// services depending on the unlock state for the specified user.
- final List<ResolveInfo> services = pm.queryIntentServicesAsUser(
+ final List<ResolveInfo> services = context.getPackageManager().queryIntentServicesAsUser(
new Intent(InputMethod.SERVICE_INTERFACE),
PackageManager.GET_META_DATA | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS,
- mSettings.getCurrentUserId());
+ userId);
+
+ methodList.ensureCapacity(services.size());
+ methodMap.ensureCapacity(services.size());
- final ArrayMap<String, List<InputMethodSubtype>> additionalSubtypeMap =
- mFileManager.getAllAdditionalInputMethodSubtypes();
for (int i = 0; i < services.size(); ++i) {
ResolveInfo ri = services.get(i);
ServiceInfo si = ri.serviceInfo;
@@ -3667,20 +3652,35 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
if (DEBUG) Slog.d(TAG, "Checking " + imeId);
- final List<InputMethodSubtype> additionalSubtypes = additionalSubtypeMap.get(imeId);
try {
- InputMethodInfo p = new InputMethodInfo(mContext, ri, additionalSubtypes);
- mMethodList.add(p);
- final String id = p.getId();
- mMethodMap.put(id, p);
-
+ final InputMethodInfo imi = new InputMethodInfo(context, ri,
+ additionalSubtypeMap.get(imeId));
+ methodList.add(imi);
+ methodMap.put(imi.getId(), imi);
if (DEBUG) {
- Slog.d(TAG, "Found an input method " + p);
+ Slog.d(TAG, "Found an input method " + imi);
}
} catch (Exception e) {
Slog.wtf(TAG, "Unable to load input method " + imeId, e);
}
}
+ }
+
+ @GuardedBy("mMethodMap")
+ void buildInputMethodListLocked(boolean resetDefaultEnabledIme) {
+ if (DEBUG) {
+ Slog.d(TAG, "--- re-buildInputMethodList reset = " + resetDefaultEnabledIme
+ + " \n ------ caller=" + Debug.getCallers(10));
+ }
+ if (!mSystemReady) {
+ Slog.e(TAG, "buildInputMethodListLocked is not allowed until system is ready");
+ return;
+ }
+ mMethodMapUpdateCount++;
+ mMyPackageMonitor.clearKnownImePackageNamesLocked();
+
+ queryInputMethodServicesInternal(mContext, mSettings.getCurrentUserId(),
+ mFileManager.getAllAdditionalInputMethodSubtypes(), mMethodMap, mMethodList);
// Construct the set of possible IME packages for onPackageChanged() to avoid false
// negatives when the package state remains to be the same but only the component state is
@@ -3689,9 +3689,10 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
// Here we intentionally use PackageManager.MATCH_DISABLED_COMPONENTS since the purpose
// of this query is to avoid false negatives. PackageManager.MATCH_ALL could be more
// conservative, but it seems we cannot use it for now (Issue 35176630).
- final List<ResolveInfo> allInputMethodServices = pm.queryIntentServicesAsUser(
- new Intent(InputMethod.SERVICE_INTERFACE),
- PackageManager.MATCH_DISABLED_COMPONENTS, mSettings.getCurrentUserId());
+ final List<ResolveInfo> allInputMethodServices =
+ mContext.getPackageManager().queryIntentServicesAsUser(
+ new Intent(InputMethod.SERVICE_INTERFACE),
+ PackageManager.MATCH_DISABLED_COMPONENTS, mSettings.getCurrentUserId());
final int N = allInputMethodServices.size();
for (int i = 0; i < N; ++i) {
final ServiceInfo si = allInputMethodServices.get(i).serviceInfo;
@@ -4089,86 +4090,6 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
setSelectedInputMethodAndSubtypeLocked(imi, lastSubtypeId, false);
}
- // If there are no selected shortcuts, tries finding the most applicable ones.
- private Pair<InputMethodInfo, InputMethodSubtype>
- findLastResortApplicableShortcutInputMethodAndSubtypeLocked(String mode) {
- List<InputMethodInfo> imis = mSettings.getEnabledInputMethodListLocked();
- InputMethodInfo mostApplicableIMI = null;
- InputMethodSubtype mostApplicableSubtype = null;
- boolean foundInSystemIME = false;
-
- // Search applicable subtype for each InputMethodInfo
- for (InputMethodInfo imi: imis) {
- final String imiId = imi.getId();
- if (foundInSystemIME && !imiId.equals(mCurMethodId)) {
- continue;
- }
- InputMethodSubtype subtype = null;
- final List<InputMethodSubtype> enabledSubtypes =
- mSettings.getEnabledInputMethodSubtypeListLocked(mContext, imi, true);
- // 1. Search by the current subtype's locale from enabledSubtypes.
- if (mCurrentSubtype != null) {
- subtype = InputMethodUtils.findLastResortApplicableSubtypeLocked(
- mRes, enabledSubtypes, mode, mCurrentSubtype.getLocale(), false);
- }
- // 2. Search by the system locale from enabledSubtypes.
- // 3. Search the first enabled subtype matched with mode from enabledSubtypes.
- if (subtype == null) {
- subtype = InputMethodUtils.findLastResortApplicableSubtypeLocked(
- mRes, enabledSubtypes, mode, null, true);
- }
- final ArrayList<InputMethodSubtype> overridingImplicitlyEnabledSubtypes =
- InputMethodUtils.getOverridingImplicitlyEnabledSubtypes(imi, mode);
- final ArrayList<InputMethodSubtype> subtypesForSearch =
- overridingImplicitlyEnabledSubtypes.isEmpty()
- ? InputMethodUtils.getSubtypes(imi)
- : overridingImplicitlyEnabledSubtypes;
- // 4. Search by the current subtype's locale from all subtypes.
- if (subtype == null && mCurrentSubtype != null) {
- subtype = InputMethodUtils.findLastResortApplicableSubtypeLocked(
- mRes, subtypesForSearch, mode, mCurrentSubtype.getLocale(), false);
- }
- // 5. Search by the system locale from all subtypes.
- // 6. Search the first enabled subtype matched with mode from all subtypes.
- if (subtype == null) {
- subtype = InputMethodUtils.findLastResortApplicableSubtypeLocked(
- mRes, subtypesForSearch, mode, null, true);
- }
- if (subtype != null) {
- if (imiId.equals(mCurMethodId)) {
- // The current input method is the most applicable IME.
- mostApplicableIMI = imi;
- mostApplicableSubtype = subtype;
- break;
- } else if (!foundInSystemIME) {
- // The system input method is 2nd applicable IME.
- mostApplicableIMI = imi;
- mostApplicableSubtype = subtype;
- if ((imi.getServiceInfo().applicationInfo.flags
- & ApplicationInfo.FLAG_SYSTEM) != 0) {
- foundInSystemIME = true;
- }
- }
- }
- }
- if (DEBUG) {
- if (mostApplicableIMI != null) {
- Slog.w(TAG, "Most applicable shortcut input method was:"
- + mostApplicableIMI.getId());
- if (mostApplicableSubtype != null) {
- Slog.w(TAG, "Most applicable shortcut input method subtype was:"
- + "," + mostApplicableSubtype.getMode() + ","
- + mostApplicableSubtype.getLocale());
- }
- }
- }
- if (mostApplicableIMI != null) {
- return new Pair<> (mostApplicableIMI, mostApplicableSubtype);
- } else {
- return null;
- }
- }
-
/**
* @return Return the current subtype of this input method.
*/
@@ -4222,35 +4143,6 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
return mCurrentSubtype;
}
- // TODO: We should change the return type from List to List<Parcelable>
- @SuppressWarnings("rawtypes")
- @Override
- public List getShortcutInputMethodsAndSubtypes() {
- synchronized (mMethodMap) {
- ArrayList<Object> ret = new ArrayList<>();
- if (mShortcutInputMethodsAndSubtypes.size() == 0) {
- // If there are no selected shortcut subtypes, the framework will try to find
- // the most applicable subtype from all subtypes whose mode is
- // SUBTYPE_MODE_VOICE. This is an exceptional case, so we will hardcode the mode.
- Pair<InputMethodInfo, InputMethodSubtype> info =
- findLastResortApplicableShortcutInputMethodAndSubtypeLocked(
- InputMethodUtils.SUBTYPE_MODE_VOICE);
- if (info != null) {
- ret.add(info.first);
- ret.add(info.second);
- }
- return ret;
- }
- for (InputMethodInfo imi: mShortcutInputMethodsAndSubtypes.keySet()) {
- ret.add(imi);
- for (InputMethodSubtype subtype: mShortcutInputMethodsAndSubtypes.get(imi)) {
- ret.add(subtype);
- }
- }
- return ret;
- }
- }
-
@Override
public boolean setCurrentInputMethodSubtype(InputMethodSubtype subtype) {
synchronized (mMethodMap) {
@@ -4696,6 +4588,25 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
@Nullable FileDescriptor err,
@NonNull String[] args, @Nullable ShellCallback callback,
@NonNull ResultReceiver resultReceiver) throws RemoteException {
+ final int callingUid = Binder.getCallingUid();
+ // Reject any incoming calls from non-shell users, including ones from the system user.
+ if (callingUid != Process.ROOT_UID && callingUid != Process.SHELL_UID) {
+ // Note that Binder#onTransact() will automatically close "in", "out", and "err" when
+ // returned from this method, hence there is no need to close those FDs.
+ // "resultReceiver" is the only thing that needs to be taken care of here.
+ if (resultReceiver != null) {
+ resultReceiver.send(ShellCommandResult.FAILURE, null);
+ }
+ final String errorMsg = "InputMethodManagerService does not support shell commands from"
+ + " non-shell users. callingUid=" + callingUid
+ + " args=" + Arrays.toString(args);
+ if (Process.isCoreUid(callingUid)) {
+ // Let's not crash the calling process if the caller is one of core components.
+ Slog.e(TAG, errorMsg);
+ return;
+ }
+ throw new SecurityException(errorMsg);
+ }
new ShellCommandImpl(this).exec(
this, in, out, err, args, callback, resultReceiver);
}
@@ -4863,16 +4774,12 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
final boolean previouslyEnabled;
synchronized (mMethodMap) {
- if (mContext.checkCallingOrSelfPermission(
- android.Manifest.permission.WRITE_SECURE_SETTINGS)
- != PackageManager.PERMISSION_GRANTED) {
- shellCommand.getErrPrintWriter().print(
- "Caller must have WRITE_SECURE_SETTINGS permission");
- throw new SecurityException(
- "Requires permission "
- + android.Manifest.permission.WRITE_SECURE_SETTINGS);
+ if (!calledFromValidUserLocked()) {
+ shellCommand.getErrPrintWriter().print("Must be called from the foreground user or"
+ + " with INTERACT_ACROSS_USERS_FULL");
+ return ShellCommandResult.FAILURE;
}
-
+ mContext.enforceCallingPermission(Manifest.permission.WRITE_SECURE_SETTINGS, null);
final long ident = Binder.clearCallingIdentity();
try {
previouslyEnabled = setInputMethodEnabledLocked(id, enabled);
@@ -4916,15 +4823,12 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
@RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
private int handleShellCommandResetInputMethod(@NonNull ShellCommand shellCommand) {
synchronized (mMethodMap) {
- if (mContext.checkCallingOrSelfPermission(
- android.Manifest.permission.WRITE_SECURE_SETTINGS)
- != PackageManager.PERMISSION_GRANTED) {
- shellCommand.getErrPrintWriter().print(
- "Caller must have WRITE_SECURE_SETTINGS permission");
- throw new SecurityException(
- "Requires permission "
- + android.Manifest.permission.WRITE_SECURE_SETTINGS);
+ if (!calledFromValidUserLocked()) {
+ shellCommand.getErrPrintWriter().print("Must be called from the foreground user or"
+ + " with INTERACT_ACROSS_USERS_FULL");
+ return ShellCommandResult.FAILURE;
}
+ mContext.enforceCallingPermission(Manifest.permission.WRITE_SECURE_SETTINGS, null);
final String nextIme;
final List<InputMethodInfo> nextEnabledImes;
final long ident = Binder.clearCallingIdentity();
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodUtils.java b/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
index 918dc07835be..1137bf967d24 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
@@ -63,7 +63,6 @@ final class InputMethodUtils {
public static final int NOT_A_SUBTYPE_ID = -1;
public static final String SUBTYPE_MODE_ANY = null;
public static final String SUBTYPE_MODE_KEYBOARD = "keyboard";
- public static final String SUBTYPE_MODE_VOICE = "voice";
private static final String TAG = "InputMethodUtils";
private static final Locale ENGLISH_LOCALE = new Locale("en");
private static final String NOT_A_SUBTYPE_ID_STR = String.valueOf(NOT_A_SUBTYPE_ID);
@@ -375,19 +374,6 @@ final class InputMethodUtils {
return subtypes;
}
- public static ArrayList<InputMethodSubtype> getOverridingImplicitlyEnabledSubtypes(
- InputMethodInfo imi, String mode) {
- ArrayList<InputMethodSubtype> subtypes = new ArrayList<>();
- final int subtypeCount = imi.getSubtypeCount();
- for (int i = 0; i < subtypeCount; ++i) {
- final InputMethodSubtype subtype = imi.getSubtypeAt(i);
- if (subtype.overridesImplicitlyEnabledSubtype() && subtype.getMode().equals(mode)) {
- subtypes.add(subtype);
- }
- }
- return subtypes;
- }
-
public static InputMethodInfo getMostApplicableDefaultIME(List<InputMethodInfo> enabledImes) {
if (enabledImes == null || enabledImes.isEmpty()) {
return null;
diff --git a/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java
index 5edb5c8e3286..ffe14d9f2877 100644
--- a/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java
@@ -50,7 +50,6 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.ShellCallback;
-import android.os.SystemProperties;
import android.os.UserHandle;
import android.provider.Settings;
import android.text.TextUtils;
@@ -65,6 +64,7 @@ import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnectionInspector.MissingMethodFlags;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodSubtype;
+import android.view.inputmethod.InputMethodSystemProperty;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.inputmethod.IMultiClientInputMethod;
@@ -99,20 +99,6 @@ public final class MultiClientInputMethodManagerService {
static final String TAG = "MultiClientInputMethodManagerService";
static final boolean DEBUG = false;
- /**
- * System property key for the production use. The value must be either empty or a valid
- * (flattened) component name of the multi-client IME.
- */
- private static final String PROP_PROD_MULTI_CLIENT_IME = "ro.sys.multi_client_ime";
-
- /**
- * System property key for debugging purpose. The value must be either empty or a valid
- * (flattened) component name of the multi-client IME.
- *
- * <p>This value will be ignored when {@link Build#IS_DEBUGGABLE} returns {@code false}</p>
- */
- private static final String PROP_DEBUG_MULTI_CLIENT_IME = "persist.debug.multi_client_ime";
-
private static final long RECONNECT_DELAY_MSEC = 1000;
/**
@@ -125,36 +111,8 @@ public final class MultiClientInputMethodManagerService {
| Context.BIND_NOT_FOREGROUND
| Context.BIND_FOREGROUND_SERVICE;
- /**
- * Inner class to read system property on demand, not when
- * {@link MultiClientInputMethodManagerService} class is accessed.
- */
- private static final class ImeComponentName {
- private static ComponentName evaluate() {
- if (Build.IS_DEBUGGABLE) {
- // If debuggable, allow developers to override the multi-client IME component name
- // with a different (writable) key.
- final ComponentName debugIme = ComponentName.unflattenFromString(
- SystemProperties.get(PROP_DEBUG_MULTI_CLIENT_IME, ""));
- if (debugIme != null) {
- return debugIme;
- }
- }
- return ComponentName.unflattenFromString(
- SystemProperties.get(PROP_PROD_MULTI_CLIENT_IME, ""));
- }
-
- /**
- * {@link ComponentName} of the multi-client IME. {@code null} when the system is not
- * configured to use multi-client IME.
- */
- @Nullable
- static final ComponentName sValue = evaluate();
- }
-
- public static boolean isConfiguredToUse() {
- return ImeComponentName.sValue != null;
- }
+ private static final ComponentName sImeComponentName =
+ InputMethodSystemProperty.sMultiClientImeComponentName;
private static void reportNotSupported() {
if (DEBUG) {
@@ -270,10 +228,10 @@ public final class MultiClientInputMethodManagerService {
return;
}
- final InputMethodInfo imi = queryInputMethod(mContext, userId, ImeComponentName.sValue);
+ final InputMethodInfo imi = queryInputMethod(mContext, userId, sImeComponentName);
if (imi == null) {
Slog.w(TAG, "Multi-client InputMethod is not found. component="
- + ImeComponentName.sValue);
+ + sImeComponentName);
synchronized (data.mLock) {
switch (data.mState) {
case PerUserState.USER_LOCKED:
@@ -518,9 +476,9 @@ public final class MultiClientInputMethodManagerService {
return;
}
final String packageName = uri.getSchemeSpecificPart();
- if (ImeComponentName.sValue == null
+ if (sImeComponentName == null
|| packageName == null
- || !TextUtils.equals(ImeComponentName.sValue.getPackageName(), packageName)) {
+ || !TextUtils.equals(sImeComponentName.getPackageName(), packageName)) {
return;
}
final int userId = UserHandle.getUserId(intent.getIntExtra(Intent.EXTRA_UID, 0));
@@ -1303,13 +1261,6 @@ public final class MultiClientInputMethodManagerService {
@BinderThread
@Override
- public List getShortcutInputMethodsAndSubtypes() {
- reportNotSupported();
- return null;
- }
-
- @BinderThread
- @Override
public boolean showSoftInput(
IInputMethodClient client, int flags, ResultReceiver resultReceiver) {
final int callingUid = Binder.getCallingUid();
@@ -1568,12 +1519,6 @@ public final class MultiClientInputMethodManagerService {
@BinderThread
@Override
- public void setInputMethodAndSubtype(IBinder token, String id, InputMethodSubtype subtype) {
- reportNotSupported();
- }
-
- @BinderThread
- @Override
public void registerSuggestionSpansForNotification(SuggestionSpan[] suggestionSpans) {
reportNotSupported();
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 0bde80a2a344..2ef331558588 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -447,6 +447,7 @@ public class PackageManagerService extends IPackageManager.Stub
private static final int BLUETOOTH_UID = Process.BLUETOOTH_UID;
private static final int SHELL_UID = Process.SHELL_UID;
private static final int SE_UID = Process.SE_UID;
+ private static final int NETWORKSTACK_UID = Process.NETWORK_STACK_UID;
static final int SCAN_NO_DEX = 1 << 0;
static final int SCAN_UPDATE_SIGNATURE = 1 << 1;
@@ -2171,6 +2172,8 @@ public class PackageManagerService extends IPackageManager.Stub
ApplicationInfo.FLAG_SYSTEM, ApplicationInfo.PRIVATE_FLAG_PRIVILEGED);
mSettings.addSharedUserLPw("android.uid.se", SE_UID,
ApplicationInfo.FLAG_SYSTEM, ApplicationInfo.PRIVATE_FLAG_PRIVILEGED);
+ mSettings.addSharedUserLPw("android.uid.networkstack", NETWORKSTACK_UID,
+ ApplicationInfo.FLAG_SYSTEM, ApplicationInfo.PRIVATE_FLAG_PRIVILEGED);
String separateProcesses = SystemProperties.get("debug.separate_processes");
if (separateProcesses != null && separateProcesses.length() > 0) {
@@ -15458,10 +15461,15 @@ public class PackageManagerService extends IPackageManager.Stub
return result;
}
+ /**
+ * Compare the newly scanned package with current system state to see which of its declared
+ * shared libraries should be allowed to be added to the system.
+ */
private static List<SharedLibraryInfo> getAllowedSharedLibInfos(
ScanResult scanResult,
Map<String, LongSparseArray<SharedLibraryInfo>> existingSharedLibraries) {
- final PackageParser.Package pkg = scanResult.pkgSetting.pkg;
+ // Let's used the parsed package as scanResult.pkgSetting may be null
+ final PackageParser.Package pkg = scanResult.request.pkg;
if (scanResult.staticSharedLibraryInfo == null
&& scanResult.dynamicSharedLibraryInfos == null) {
return null;
@@ -15493,8 +15501,12 @@ public class PackageManagerService extends IPackageManager.Stub
// have allowed apps on the device which aren't compatible
// with it. Better to just have the restriction here, be
// conservative, and create many fewer cases that can negatively
- // impact the user experience.
- final PackageSetting sysPs = scanResult.request.disabledPkgSetting;
+ // impact the user experience. We may not yet have disabled the
+ // updated package yet, so be sure to grab the current setting if
+ // that's the case.
+ final PackageSetting sysPs = scanResult.request.disabledPkgSetting == null
+ ? scanResult.request.oldPkgSetting
+ : scanResult.request.disabledPkgSetting;
if (sysPs.pkg != null && sysPs.pkg.libraryNames != null) {
for (int j = 0; j < sysPs.pkg.libraryNames.size(); j++) {
if (name.equals(sysPs.pkg.libraryNames.get(j))) {
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 409e7f4d6bdb..781e1c4a41d9 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -9293,19 +9293,14 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
InputMethodManager inputMethodManager =
mContext.getSystemService(InputMethodManager.class);
List<InputMethodInfo> imes = inputMethodManager.getInputMethodList();
- long id = mInjector.binderClearCallingIdentity();
- try {
- if (imes != null) {
- for (InputMethodInfo ime : imes) {
- ServiceInfo serviceInfo = ime.getServiceInfo();
- ApplicationInfo applicationInfo = serviceInfo.applicationInfo;
- if ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
- result.add(serviceInfo.packageName);
- }
+ if (imes != null) {
+ for (InputMethodInfo ime : imes) {
+ ServiceInfo serviceInfo = ime.getServiceInfo();
+ ApplicationInfo applicationInfo = serviceInfo.applicationInfo;
+ if ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
+ result.add(serviceInfo.packageName);
}
}
- } finally {
- mInjector.binderRestoreCallingIdentity(id);
}
}
return result;
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index 046c9912dee3..333b3e37ff2a 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -63,6 +63,7 @@ import android.util.EventLog;
import android.util.Slog;
import android.util.TimingsTraceLog;
import android.view.WindowManager;
+import android.view.inputmethod.InputMethodSystemProperty;
import com.android.internal.R;
import com.android.internal.logging.MetricsLogger;
@@ -1019,7 +1020,7 @@ public final class SystemServer {
// Bring up services needed for UI.
if (mFactoryTestMode != FactoryTest.FACTORY_TEST_LOW_LEVEL) {
traceBeginAndSlog("StartInputMethodManagerLifecycle");
- if (MultiClientInputMethodManagerService.isConfiguredToUse()) {
+ if (InputMethodSystemProperty.MULTI_CLIENT_IME_ENABLED) {
mSystemServiceManager.startService(
MultiClientInputMethodManagerService.Lifecycle.class);
} else {
@@ -1263,6 +1264,16 @@ public final class SystemServer {
}
traceEnd();
+ traceBeginAndSlog("StartNetworkStack");
+ try {
+ final android.net.NetworkStack networkStack =
+ context.getSystemService(android.net.NetworkStack.class);
+ networkStack.start(context);
+ } catch (Throwable e) {
+ reportWtf("starting Network Stack", e);
+ }
+ traceEnd();
+
traceBeginAndSlog("StartNsdService");
try {
serviceDiscovery = NsdService.create(context);
diff --git a/telephony/java/android/telephony/CellIdentityCdma.java b/telephony/java/android/telephony/CellIdentityCdma.java
index 598f56769ca3..fa198674c58a 100644
--- a/telephony/java/android/telephony/CellIdentityCdma.java
+++ b/telephony/java/android/telephony/CellIdentityCdma.java
@@ -16,7 +16,6 @@
package android.telephony;
-import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.telephony.cdma.CdmaCellLocation;
@@ -71,30 +70,13 @@ public final class CellIdentityCdma extends CellIdentity {
* to 2592000
* @param lat Latitude is a decimal number ranges from -1296000
* to 1296000
- *
- * @hide
- */
- @UnsupportedAppUsage
- public CellIdentityCdma(int nid, int sid, int bid, int lon, int lat) {
- this(nid, sid, bid, lon, lat, null, null);
- }
-
- /**
- * public constructor
- * @param nid Network Id 0..65535
- * @param sid CDMA System Id 0..32767
- * @param bid Base Station Id 0..65535
- * @param lon Longitude is a decimal number ranges from -2592000
- * to 2592000
- * @param lat Latitude is a decimal number ranges from -1296000
- * to 1296000
* @param alphal long alpha Operator Name String or Enhanced Operator Name String
* @param alphas short alpha Operator Name String or Enhanced Operator Name String
*
* @hide
*/
- public CellIdentityCdma(int nid, int sid, int bid, int lon, int lat, String alphal,
- String alphas) {
+ public CellIdentityCdma(
+ int nid, int sid, int bid, int lon, int lat, String alphal, String alphas) {
super(TAG, CellInfo.TYPE_CDMA, null, null, alphal, alphas);
mNetworkId = nid;
mSystemId = sid;
@@ -107,6 +89,17 @@ public final class CellIdentityCdma extends CellIdentity {
}
}
+ /** @hide */
+ public CellIdentityCdma(android.hardware.radio.V1_0.CellIdentityCdma cid) {
+ this(cid.networkId, cid.systemId, cid.baseStationId, cid.longitude, cid.latitude, "", "");
+ }
+
+ /** @hide */
+ public CellIdentityCdma(android.hardware.radio.V1_2.CellIdentityCdma cid) {
+ this(cid.base.networkId, cid.base.systemId, cid.base.baseStationId, cid.base.longitude,
+ cid.base.latitude, cid.operatorNames.alphaLong, cid.operatorNames.alphaShort);
+ }
+
private CellIdentityCdma(CellIdentityCdma cid) {
this(cid.mNetworkId, cid.mSystemId, cid.mBasestationId, cid.mLongitude, cid.mLatitude,
cid.mAlphaLong, cid.mAlphaShort);
diff --git a/telephony/java/android/telephony/CellIdentityGsm.java b/telephony/java/android/telephony/CellIdentityGsm.java
index c8a899b339c6..9a24e47288c3 100644
--- a/telephony/java/android/telephony/CellIdentityGsm.java
+++ b/telephony/java/android/telephony/CellIdentityGsm.java
@@ -36,10 +36,8 @@ public final class CellIdentityGsm extends CellIdentity {
// 16-bit GSM Cell Identity described in TS 27.007, 0..65535
private final int mCid;
// 16-bit GSM Absolute RF Channel Number
- @UnsupportedAppUsage
private final int mArfcn;
// 6-bit Base Station Identity Code
- @UnsupportedAppUsage
private final int mBsic;
/**
@@ -53,34 +51,6 @@ public final class CellIdentityGsm extends CellIdentity {
mArfcn = CellInfo.UNAVAILABLE;
mBsic = CellInfo.UNAVAILABLE;
}
- /**
- * public constructor
- * @param mcc 3-digit Mobile Country Code, 0..999
- * @param mnc 2 or 3-digit Mobile Network Code, 0..999
- * @param lac 16-bit Location Area Code, 0..65535
- * @param cid 16-bit GSM Cell Identity or 28-bit UMTS Cell Identity
- *
- * @hide
- */
- public CellIdentityGsm(int mcc, int mnc, int lac, int cid) {
- this(lac, cid, CellInfo.UNAVAILABLE, CellInfo.UNAVAILABLE,
- String.valueOf(mcc), String.valueOf(mnc), null, null);
- }
-
- /**
- * public constructor
- * @param mcc 3-digit Mobile Country Code, 0..999
- * @param mnc 2 or 3-digit Mobile Network Code, 0..999
- * @param lac 16-bit Location Area Code, 0..65535
- * @param cid 16-bit GSM Cell Identity or 28-bit UMTS Cell Identity
- * @param arfcn 16-bit GSM Absolute RF Channel Number
- * @param bsic 6-bit Base Station Identity Code
- *
- * @hide
- */
- public CellIdentityGsm(int mcc, int mnc, int lac, int cid, int arfcn, int bsic) {
- this(lac, cid, arfcn, bsic, String.valueOf(mcc), String.valueOf(mnc), null, null);
- }
/**
* public constructor
@@ -101,9 +71,21 @@ public final class CellIdentityGsm extends CellIdentity {
mLac = lac;
mCid = cid;
mArfcn = arfcn;
- // In RIL BSIC is a UINT8, so 0xFF is the 'INVALID' designator
- // for inbound parcels
- mBsic = (bsic == 0xFF) ? CellInfo.UNAVAILABLE : bsic;
+ mBsic = bsic;
+ }
+
+ /** @hide */
+ public CellIdentityGsm(android.hardware.radio.V1_0.CellIdentityGsm cid) {
+ this(cid.lac, cid.cid, cid.arfcn,
+ cid.bsic == (byte) 0xFF ? CellInfo.UNAVAILABLE : cid.bsic,
+ cid.mcc, cid.mnc, "", "");
+ }
+
+ /** @hide */
+ public CellIdentityGsm(android.hardware.radio.V1_2.CellIdentityGsm cid) {
+ this(cid.base.lac, cid.base.cid, cid.base.arfcn,
+ cid.base.bsic == (byte) 0xFF ? CellInfo.UNAVAILABLE : cid.base.bsic, cid.base.mcc,
+ cid.base.mnc, cid.operatorNames.alphaLong, cid.operatorNames.alphaShort);
}
private CellIdentityGsm(CellIdentityGsm cid) {
diff --git a/telephony/java/android/telephony/CellIdentityLte.java b/telephony/java/android/telephony/CellIdentityLte.java
index 8e1877d8e35f..d957d077e016 100644
--- a/telephony/java/android/telephony/CellIdentityLte.java
+++ b/telephony/java/android/telephony/CellIdentityLte.java
@@ -38,7 +38,6 @@ public final class CellIdentityLte extends CellIdentity {
// 16-bit tracking area code
private final int mTac;
// 18-bit Absolute RF Channel Number
- @UnsupportedAppUsage
private final int mEarfcn;
// cell bandwidth, in kHz
private final int mBandwidth;
@@ -74,22 +73,6 @@ public final class CellIdentityLte extends CellIdentity {
/**
*
- * @param mcc 3-digit Mobile Country Code, 0..999
- * @param mnc 2 or 3-digit Mobile Network Code, 0..999
- * @param ci 28-bit Cell Identity
- * @param pci Physical Cell Id 0..503
- * @param tac 16-bit Tracking Area Code
- * @param earfcn 18-bit LTE Absolute RF Channel Number
- *
- * @hide
- */
- public CellIdentityLte(int mcc, int mnc, int ci, int pci, int tac, int earfcn) {
- this(ci, pci, tac, earfcn, CellInfo.UNAVAILABLE, String.valueOf(mcc), String.valueOf(mnc),
- null, null);
- }
-
- /**
- *
* @param ci 28-bit Cell Identity
* @param pci Physical Cell Id 0..503
* @param tac 16-bit Tracking Area Code
@@ -112,6 +95,18 @@ public final class CellIdentityLte extends CellIdentity {
mBandwidth = bandwidth;
}
+ /** @hide */
+ public CellIdentityLte(android.hardware.radio.V1_0.CellIdentityLte cid) {
+ this(cid.ci, cid.pci, cid.tac, cid.earfcn, CellInfo.UNAVAILABLE, cid.mcc, cid.mnc, "", "");
+ }
+
+ /** @hide */
+ public CellIdentityLte(android.hardware.radio.V1_2.CellIdentityLte cid) {
+ this(cid.base.ci, cid.base.pci, cid.base.tac, cid.base.earfcn, cid.bandwidth,
+ cid.base.mcc, cid.base.mnc, cid.operatorNames.alphaLong,
+ cid.operatorNames.alphaShort);
+ }
+
private CellIdentityLte(CellIdentityLte cid) {
this(cid.mCi, cid.mPci, cid.mTac, cid.mEarfcn, cid.mBandwidth, cid.mMccStr,
cid.mMncStr, cid.mAlphaLong, cid.mAlphaShort);
diff --git a/telephony/java/android/telephony/CellIdentityTdscdma.java b/telephony/java/android/telephony/CellIdentityTdscdma.java
index f77c468d2f5e..38143335dbf1 100644
--- a/telephony/java/android/telephony/CellIdentityTdscdma.java
+++ b/telephony/java/android/telephony/CellIdentityTdscdma.java
@@ -51,22 +51,6 @@ public final class CellIdentityTdscdma extends CellIdentity {
}
/**
- * @param mcc 3-digit Mobile Country Code, 0..999
- * @param mnc 2 or 3-digit Mobile Network Code, 0..999
- * @param lac 16-bit Location Area Code, 0..65535, CellInfo.UNAVAILABLE if unknown
- * @param cid 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, CellInfo.
- * UNAVAILABLE if unknown
- * @param cpid 8-bit Cell Parameters ID described in TS 25.331, 0..127, CellInfo.UNAVAILABLE
- * if unknown
- * @param uarfcn 16-bit UMTS Absolute RF Channel Number described in TS 25.101 sec. 5.4.3
- *
- * @hide
- */
- public CellIdentityTdscdma(int mcc, int mnc, int lac, int cid, int cpid, int uarfcn) {
- this(String.valueOf(mcc), String.valueOf(mnc), lac, cid, cpid, uarfcn, null, null);
- }
-
- /**
* @param mcc 3-digit Mobile Country Code in string format
* @param mnc 2 or 3-digit Mobile Network Code in string format
* @param lac 16-bit Location Area Code, 0..65535, CellInfo.UNAVAILABLE if unknown
@@ -94,6 +78,17 @@ public final class CellIdentityTdscdma extends CellIdentity {
cid.mCpid, cid.mUarfcn, cid.mAlphaLong, cid.mAlphaShort);
}
+ /** @hide */
+ public CellIdentityTdscdma(android.hardware.radio.V1_0.CellIdentityTdscdma cid) {
+ this(cid.mcc, cid.mnc, cid.lac, cid.cid, cid.cpid, CellInfo.UNAVAILABLE, "", "");
+ }
+
+ /** @hide */
+ public CellIdentityTdscdma(android.hardware.radio.V1_2.CellIdentityTdscdma cid) {
+ this(cid.base.mcc, cid.base.mnc, cid.base.lac, cid.base.cid, cid.base.cpid,
+ cid.uarfcn, cid.operatorNames.alphaLong, cid.operatorNames.alphaShort);
+ }
+
CellIdentityTdscdma copy() {
return new CellIdentityTdscdma(this);
}
diff --git a/telephony/java/android/telephony/CellIdentityWcdma.java b/telephony/java/android/telephony/CellIdentityWcdma.java
index 31f9e6d5bb90..6e0978434a57 100644
--- a/telephony/java/android/telephony/CellIdentityWcdma.java
+++ b/telephony/java/android/telephony/CellIdentityWcdma.java
@@ -51,35 +51,6 @@ public final class CellIdentityWcdma extends CellIdentity {
mPsc = CellInfo.UNAVAILABLE;
mUarfcn = CellInfo.UNAVAILABLE;
}
- /**
- * public constructor
- * @param mcc 3-digit Mobile Country Code, 0..999
- * @param mnc 2 or 3-digit Mobile Network Code, 0..999
- * @param lac 16-bit Location Area Code, 0..65535
- * @param cid 28-bit UMTS Cell Identity
- * @param psc 9-bit UMTS Primary Scrambling Code
- *
- * @hide
- */
- public CellIdentityWcdma (int mcc, int mnc, int lac, int cid, int psc) {
- this(lac, cid, psc, CellInfo.UNAVAILABLE, String.valueOf(mcc), String.valueOf(mnc),
- null, null);
- }
-
- /**
- * public constructor
- * @param mcc 3-digit Mobile Country Code, 0..999
- * @param mnc 2 or 3-digit Mobile Network Code, 0..999
- * @param lac 16-bit Location Area Code, 0..65535
- * @param cid 28-bit UMTS Cell Identity
- * @param psc 9-bit UMTS Primary Scrambling Code
- * @param uarfcn 16-bit UMTS Absolute RF Channel Number described in TS 25.101 sec. 5.4.3
- *
- * @hide
- */
- public CellIdentityWcdma (int mcc, int mnc, int lac, int cid, int psc, int uarfcn) {
- this(lac, cid, psc, uarfcn, String.valueOf(mcc), String.valueOf(mnc), null, null);
- }
/**
* public constructor
@@ -103,6 +74,18 @@ public final class CellIdentityWcdma extends CellIdentity {
mUarfcn = uarfcn;
}
+ /** @hide */
+ public CellIdentityWcdma(android.hardware.radio.V1_0.CellIdentityWcdma cid) {
+ this(cid.lac, cid.cid, cid.psc, cid.uarfcn, cid.mcc, cid.mnc, "", "");
+ }
+
+ /** @hide */
+ public CellIdentityWcdma(android.hardware.radio.V1_2.CellIdentityWcdma cid) {
+ this(cid.base.lac, cid.base.cid, cid.base.psc, cid.base.uarfcn,
+ cid.base.mcc, cid.base.mnc, cid.operatorNames.alphaLong,
+ cid.operatorNames.alphaShort);
+ }
+
private CellIdentityWcdma(CellIdentityWcdma cid) {
this(cid.mLac, cid.mCid, cid.mPsc, cid.mUarfcn, cid.mMccStr,
cid.mMncStr, cid.mAlphaLong, cid.mAlphaShort);
diff --git a/telephony/java/android/telephony/CellInfo.java b/telephony/java/android/telephony/CellInfo.java
index d0b268766314..b761bd7bf70c 100644
--- a/telephony/java/android/telephony/CellInfo.java
+++ b/telephony/java/android/telephony/CellInfo.java
@@ -132,7 +132,8 @@ public abstract class CellInfo implements Parcelable {
/** Connection status is unknown. */
public static final int CONNECTION_UNKNOWN = Integer.MAX_VALUE;
- private int mCellConnectionStatus = CONNECTION_NONE;
+ /** A cell connection status */
+ private int mCellConnectionStatus;
// True if device is mRegistered to the mobile network
private boolean mRegistered;
@@ -144,6 +145,7 @@ public abstract class CellInfo implements Parcelable {
protected CellInfo() {
this.mRegistered = false;
this.mTimeStamp = Long.MAX_VALUE;
+ mCellConnectionStatus = CONNECTION_NONE;
}
/** @hide */
@@ -300,4 +302,44 @@ public abstract class CellInfo implements Parcelable {
return new CellInfo[size];
}
};
+
+ /** @hide */
+ protected CellInfo(android.hardware.radio.V1_0.CellInfo ci) {
+ this.mRegistered = ci.registered;
+ this.mTimeStamp = ci.timeStamp;
+ this.mCellConnectionStatus = CONNECTION_UNKNOWN;
+ }
+
+ /** @hide */
+ protected CellInfo(android.hardware.radio.V1_2.CellInfo ci) {
+ this.mRegistered = ci.registered;
+ this.mTimeStamp = ci.timeStamp;
+ this.mCellConnectionStatus = ci.connectionStatus;
+ }
+
+ /** @hide */
+ public static CellInfo create(android.hardware.radio.V1_0.CellInfo ci) {
+ if (ci == null) return null;
+ switch(ci.cellInfoType) {
+ case android.hardware.radio.V1_0.CellInfoType.GSM: return new CellInfoGsm(ci);
+ case android.hardware.radio.V1_0.CellInfoType.CDMA: return new CellInfoCdma(ci);
+ case android.hardware.radio.V1_0.CellInfoType.LTE: return new CellInfoLte(ci);
+ case android.hardware.radio.V1_0.CellInfoType.WCDMA: return new CellInfoWcdma(ci);
+ case android.hardware.radio.V1_0.CellInfoType.TD_SCDMA: return new CellInfoTdscdma(ci);
+ default: return null;
+ }
+ }
+
+ /** @hide */
+ public static CellInfo create(android.hardware.radio.V1_2.CellInfo ci) {
+ if (ci == null) return null;
+ switch(ci.cellInfoType) {
+ case android.hardware.radio.V1_0.CellInfoType.GSM: return new CellInfoGsm(ci);
+ case android.hardware.radio.V1_0.CellInfoType.CDMA: return new CellInfoCdma(ci);
+ case android.hardware.radio.V1_0.CellInfoType.LTE: return new CellInfoLte(ci);
+ case android.hardware.radio.V1_0.CellInfoType.WCDMA: return new CellInfoWcdma(ci);
+ case android.hardware.radio.V1_0.CellInfoType.TD_SCDMA: return new CellInfoTdscdma(ci);
+ default: return null;
+ }
+ }
}
diff --git a/telephony/java/android/telephony/CellInfoCdma.java b/telephony/java/android/telephony/CellInfoCdma.java
index f67733d63ef2..8c76eae0b544 100644
--- a/telephony/java/android/telephony/CellInfoCdma.java
+++ b/telephony/java/android/telephony/CellInfoCdma.java
@@ -48,6 +48,24 @@ public final class CellInfoCdma extends CellInfo implements Parcelable {
this.mCellSignalStrengthCdma = ci.mCellSignalStrengthCdma.copy();
}
+ /** @hide */
+ public CellInfoCdma(android.hardware.radio.V1_0.CellInfo ci) {
+ super(ci);
+ final android.hardware.radio.V1_0.CellInfoCdma cic = ci.cdma.get(0);
+ mCellIdentityCdma = new CellIdentityCdma(cic.cellIdentityCdma);
+ mCellSignalStrengthCdma =
+ new CellSignalStrengthCdma(cic.signalStrengthCdma, cic.signalStrengthEvdo);
+ }
+
+ /** @hide */
+ public CellInfoCdma(android.hardware.radio.V1_2.CellInfo ci) {
+ super(ci);
+ final android.hardware.radio.V1_2.CellInfoCdma cic = ci.cdma.get(0);
+ mCellIdentityCdma = new CellIdentityCdma(cic.cellIdentityCdma);
+ mCellSignalStrengthCdma =
+ new CellSignalStrengthCdma(cic.signalStrengthCdma, cic.signalStrengthEvdo);
+ }
+
@Override
public CellIdentityCdma getCellIdentity() {
return mCellIdentityCdma;
diff --git a/telephony/java/android/telephony/CellInfoGsm.java b/telephony/java/android/telephony/CellInfoGsm.java
index 7211de1798da..ad16dfae7295 100644
--- a/telephony/java/android/telephony/CellInfoGsm.java
+++ b/telephony/java/android/telephony/CellInfoGsm.java
@@ -43,8 +43,24 @@ public final class CellInfoGsm extends CellInfo implements Parcelable {
/** @hide */
public CellInfoGsm(CellInfoGsm ci) {
super(ci);
- this.mCellIdentityGsm = ci.mCellIdentityGsm.copy();
- this.mCellSignalStrengthGsm = ci.mCellSignalStrengthGsm.copy();
+ mCellIdentityGsm = ci.mCellIdentityGsm.copy();
+ mCellSignalStrengthGsm = ci.mCellSignalStrengthGsm.copy();
+ }
+
+ /** @hide */
+ public CellInfoGsm(android.hardware.radio.V1_0.CellInfo ci) {
+ super(ci);
+ final android.hardware.radio.V1_0.CellInfoGsm cig = ci.gsm.get(0);
+ mCellIdentityGsm = new CellIdentityGsm(cig.cellIdentityGsm);
+ mCellSignalStrengthGsm = new CellSignalStrengthGsm(cig.signalStrengthGsm);
+ }
+
+ /** @hide */
+ public CellInfoGsm(android.hardware.radio.V1_2.CellInfo ci) {
+ super(ci);
+ final android.hardware.radio.V1_2.CellInfoGsm cig = ci.gsm.get(0);
+ mCellIdentityGsm = new CellIdentityGsm(cig.cellIdentityGsm);
+ mCellSignalStrengthGsm = new CellSignalStrengthGsm(cig.signalStrengthGsm);
}
@Override
diff --git a/telephony/java/android/telephony/CellInfoLte.java b/telephony/java/android/telephony/CellInfoLte.java
index 7d5388b7b7f4..8ca6a1a6815b 100644
--- a/telephony/java/android/telephony/CellInfoLte.java
+++ b/telephony/java/android/telephony/CellInfoLte.java
@@ -51,6 +51,24 @@ public final class CellInfoLte extends CellInfo implements Parcelable {
this.mCellConfig = new CellConfigLte(ci.mCellConfig);
}
+ /** @hide */
+ public CellInfoLte(android.hardware.radio.V1_0.CellInfo ci) {
+ super(ci);
+ final android.hardware.radio.V1_0.CellInfoLte cil = ci.lte.get(0);
+ mCellIdentityLte = new CellIdentityLte(cil.cellIdentityLte);
+ mCellSignalStrengthLte = new CellSignalStrengthLte(cil.signalStrengthLte);
+ mCellConfig = new CellConfigLte();
+ }
+
+ /** @hide */
+ public CellInfoLte(android.hardware.radio.V1_2.CellInfo ci) {
+ super(ci);
+ final android.hardware.radio.V1_2.CellInfoLte cil = ci.lte.get(0);
+ mCellIdentityLte = new CellIdentityLte(cil.cellIdentityLte);
+ mCellSignalStrengthLte = new CellSignalStrengthLte(cil.signalStrengthLte);
+ mCellConfig = new CellConfigLte();
+ }
+
@Override
public CellIdentityLte getCellIdentity() {
if (DBG) log("getCellIdentity: " + mCellIdentityLte);
diff --git a/telephony/java/android/telephony/CellInfoTdscdma.java b/telephony/java/android/telephony/CellInfoTdscdma.java
index 40cadde364dc..a8c49b7bf68e 100644
--- a/telephony/java/android/telephony/CellInfoTdscdma.java
+++ b/telephony/java/android/telephony/CellInfoTdscdma.java
@@ -48,8 +48,23 @@ public final class CellInfoTdscdma extends CellInfo implements Parcelable {
this.mCellSignalStrengthTdscdma = ci.mCellSignalStrengthTdscdma.copy();
}
- @Override
- public CellIdentityTdscdma getCellIdentity() {
+ /** @hide */
+ public CellInfoTdscdma(android.hardware.radio.V1_0.CellInfo ci) {
+ super(ci);
+ final android.hardware.radio.V1_0.CellInfoTdscdma cit = ci.tdscdma.get(0);
+ mCellIdentityTdscdma = new CellIdentityTdscdma(cit.cellIdentityTdscdma);
+ mCellSignalStrengthTdscdma = new CellSignalStrengthTdscdma(cit.signalStrengthTdscdma);
+ }
+
+ /** @hide */
+ public CellInfoTdscdma(android.hardware.radio.V1_2.CellInfo ci) {
+ super(ci);
+ final android.hardware.radio.V1_2.CellInfoTdscdma cit = ci.tdscdma.get(0);
+ mCellIdentityTdscdma = new CellIdentityTdscdma(cit.cellIdentityTdscdma);
+ mCellSignalStrengthTdscdma = new CellSignalStrengthTdscdma(cit.signalStrengthTdscdma);
+ }
+
+ @Override public CellIdentityTdscdma getCellIdentity() {
return mCellIdentityTdscdma;
}
/** @hide */
diff --git a/telephony/java/android/telephony/CellInfoWcdma.java b/telephony/java/android/telephony/CellInfoWcdma.java
index 4f9dcb1a0637..a427e80fd65c 100644
--- a/telephony/java/android/telephony/CellInfoWcdma.java
+++ b/telephony/java/android/telephony/CellInfoWcdma.java
@@ -47,6 +47,22 @@ public final class CellInfoWcdma extends CellInfo implements Parcelable {
this.mCellSignalStrengthWcdma = ci.mCellSignalStrengthWcdma.copy();
}
+ /** @hide */
+ public CellInfoWcdma(android.hardware.radio.V1_0.CellInfo ci) {
+ super(ci);
+ final android.hardware.radio.V1_0.CellInfoWcdma ciw = ci.wcdma.get(0);
+ mCellIdentityWcdma = new CellIdentityWcdma(ciw.cellIdentityWcdma);
+ mCellSignalStrengthWcdma = new CellSignalStrengthWcdma(ciw.signalStrengthWcdma);
+ }
+
+ /** @hide */
+ public CellInfoWcdma(android.hardware.radio.V1_2.CellInfo ci) {
+ super(ci);
+ final android.hardware.radio.V1_2.CellInfoWcdma ciw = ci.wcdma.get(0);
+ mCellIdentityWcdma = new CellIdentityWcdma(ciw.cellIdentityWcdma);
+ mCellSignalStrengthWcdma = new CellSignalStrengthWcdma(ciw.signalStrengthWcdma);
+ }
+
@Override
public CellIdentityWcdma getCellIdentity() {
return mCellIdentityWcdma;
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 3b2a05b081c2..d8b430f0f083 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -3196,6 +3196,29 @@ public class TelephonyManager {
}
/**
+ * Gets information about currently inserted UICCs and eUICCs. See {@link UiccCardInfo} for more
+ * details on the kind of information available.
+ *
+ * @return UiccCardInfo an array of UiccCardInfo objects, representing information on the
+ * currently inserted UICCs and eUICCs.
+ *
+ * @hide
+ */
+ @SystemApi
+ @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+ public UiccCardInfo[] getUiccCardsInfo() {
+ try {
+ ITelephony telephony = getITelephony();
+ if (telephony == null) {
+ return null;
+ }
+ return telephony.getUiccCardsInfo();
+ } catch (RemoteException e) {
+ return null;
+ }
+ }
+
+ /**
* Gets all the UICC slots. The objects in the array can be null if the slot info is not
* available, which is possible between phone process starting and getting slot info from modem.
*
diff --git a/telephony/java/android/telephony/UiccCardInfo.aidl b/telephony/java/android/telephony/UiccCardInfo.aidl
new file mode 100644
index 000000000000..882c2333909f
--- /dev/null
+++ b/telephony/java/android/telephony/UiccCardInfo.aidl
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.telephony;
+
+parcelable UiccCardInfo;
diff --git a/telephony/java/android/telephony/UiccCardInfo.java b/telephony/java/android/telephony/UiccCardInfo.java
new file mode 100644
index 000000000000..45e4704e8894
--- /dev/null
+++ b/telephony/java/android/telephony/UiccCardInfo.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.telephony;
+
+import android.annotation.SystemApi;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.Objects;
+
+/**
+ * The UiccCardInfo represents information about a currently inserted UICC or embedded eUICC.
+ * @hide
+ */
+@SystemApi
+public class UiccCardInfo implements Parcelable {
+
+ private final boolean mIsEuicc;
+ private final int mCardId;
+ private final String mEid;
+ private final String mIccId;
+ private final int mSlotIndex;
+
+ public static final Creator<UiccCardInfo> CREATOR = new Creator<UiccCardInfo>() {
+ @Override
+ public UiccCardInfo createFromParcel(Parcel in) {
+ return new UiccCardInfo(in);
+ }
+
+ @Override
+ public UiccCardInfo[] newArray(int size) {
+ return new UiccCardInfo[size];
+ }
+ };
+
+ private UiccCardInfo(Parcel in) {
+ mIsEuicc = in.readByte() != 0;
+ mCardId = in.readInt();
+ mEid = in.readString();
+ mIccId = in.readString();
+ mSlotIndex = in.readInt();
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeByte((byte) (mIsEuicc ? 1 : 0));
+ dest.writeInt(mCardId);
+ dest.writeString(mEid);
+ dest.writeString(mIccId);
+ dest.writeInt(mSlotIndex);
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ public UiccCardInfo(boolean isEuicc, int cardId, String eid, String iccId, int slotIndex) {
+ this.mIsEuicc = isEuicc;
+ this.mCardId = cardId;
+ this.mEid = eid;
+ this.mIccId = iccId;
+ this.mSlotIndex = slotIndex;
+ }
+
+ /**
+ * Return whether the UiccCardInfo is an eUICC.
+ * @return true if the UICC is an eUICC.
+ */
+ public boolean isEuicc() {
+ return mIsEuicc;
+ }
+
+ /**
+ * Get the card ID of the UICC. See {@link TelephonyManager#getCardIdForDefaultEuicc()} for more
+ * details on card ID.
+ */
+ public int getCardId() {
+ return mCardId;
+ }
+
+ /**
+ * Get the embedded ID (EID) of the eUICC. If the UiccCardInfo is not an eUICC
+ * (see {@link #isEuicc()}), returns null.
+ */
+ public String getEid() {
+ if (!mIsEuicc) {
+ return null;
+ }
+ return mEid;
+ }
+
+ /**
+ * Get the ICCID of the UICC.
+ */
+ public String getIccId() {
+ return mIccId;
+ }
+
+ /**
+ * Gets the slot index for the slot that the UICC is currently inserted in.
+ */
+ public int getSlotIndex() {
+ return mSlotIndex;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null || getClass() != obj.getClass()) {
+ return false;
+ }
+
+ UiccCardInfo that = (UiccCardInfo) obj;
+ return ((mIsEuicc == that.mIsEuicc)
+ && (mCardId == that.mCardId)
+ && (Objects.equals(mEid, that.mEid))
+ && (Objects.equals(mIccId, that.mIccId))
+ && (mSlotIndex == that.mSlotIndex));
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mIsEuicc, mCardId, mEid, mIccId, mSlotIndex);
+ }
+
+ @Override
+ public String toString() {
+ return "UiccCardInfo (mIsEuicc="
+ + mIsEuicc
+ + ", mCardId="
+ + mCardId
+ + ", mEid="
+ + mEid
+ + ", mIccId="
+ + mIccId
+ + ", mSlotIndex="
+ + mSlotIndex
+ + ")";
+ }
+}
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index 399e2553804b..c5d82c5949f0 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -56,6 +56,7 @@ import com.android.internal.telephony.OperatorInfo;
import java.util.List;
import java.util.Map;
+import android.telephony.UiccCardInfo;
import android.telephony.UiccSlotInfo;
/**
@@ -1494,6 +1495,17 @@ interface ITelephony {
int getCardIdForDefaultEuicc(int subId, String callingPackage);
/**
+ * Gets information about currently inserted UICCs and eUICCs. See {@link UiccCardInfo} for more
+ * details on the kind of information available.
+ *
+ * @return UiccCardInfo an array of UiccCardInfo objects, representing information on the
+ * currently inserted UICCs and eUICCs.
+ *
+ * @hide
+ */
+ UiccCardInfo[] getUiccCardsInfo();
+
+ /**
* Get slot info for all the UICC slots.
* @return UiccSlotInfo array.
* @hide
diff --git a/wifi/java/android/net/wifi/WpsInfo.java b/wifi/java/android/net/wifi/WpsInfo.java
index d12cce174192..ae3104bd5567 100644
--- a/wifi/java/android/net/wifi/WpsInfo.java
+++ b/wifi/java/android/net/wifi/WpsInfo.java
@@ -16,63 +16,42 @@
package android.net.wifi;
-import android.os.Parcelable;
import android.os.Parcel;
+import android.os.Parcelable;
/**
* A class representing Wi-Fi Protected Setup
- * @deprecated This class is no longer supported.
+ *
* {@see WifiP2pConfig}
*/
-@Deprecated
public class WpsInfo implements Parcelable {
- /** Push button configuration
- * @deprecated This is no longer supported.*/
- @Deprecated
+ /** Push button configuration */
public static final int PBC = 0;
- /** Display pin method configuration - pin is generated and displayed on device
- * @deprecated This is no longer supported.*/
- @Deprecated
+ /** Display pin method configuration - pin is generated and displayed on device */
public static final int DISPLAY = 1;
- /** Keypad pin method configuration - pin is entered on device
- * @deprecated This is no longer supported.*/
- @Deprecated
+ /** Keypad pin method configuration - pin is entered on device */
public static final int KEYPAD = 2;
- /** Label pin method configuration - pin is labelled on device
- * @deprecated This is no longer supported.*/
- @Deprecated
+ /** Label pin method configuration - pin is labelled on device */
public static final int LABEL = 3;
- /** Invalid configuration
- * @deprecated This is no longer supported.*/
- @Deprecated
+ /** Invalid configuration */
public static final int INVALID = 4;
- /** Wi-Fi Protected Setup. www.wi-fi.org/wifi-protected-setup has details
- * @deprecated This is no longer supported.*/
- @Deprecated
+ /** Wi-Fi Protected Setup. www.wi-fi.org/wifi-protected-setup has details */
public int setup;
- /** Passed with pin method KEYPAD
- * @deprecated This is no longer supported.*/
- @Deprecated
+ /** Passed with pin method KEYPAD */
public String BSSID;
- /** Passed with pin method configuration
- * @deprecated This is no longer supported.*/
- @Deprecated
+ /** Passed with pin method configuration */
public String pin;
- /** @deprecated This API is no longer supported.*/
- @Deprecated
public WpsInfo() {
setup = INVALID;
BSSID = null;
pin = null;
}
- /** @deprecated This API is no longer supported.*/
- @Deprecated
public String toString() {
StringBuffer sbuf = new StringBuffer();
sbuf.append(" setup: ").append(setup);
@@ -84,16 +63,12 @@ public class WpsInfo implements Parcelable {
return sbuf.toString();
}
- /** Implement the Parcelable interface
- * @deprecated This API is no longer supported.*/
- @Deprecated
+ /** Implement the Parcelable interface */
public int describeContents() {
return 0;
}
- /* Copy constructor
- * @deprecated This API is no longer supported.*/
- @Deprecated
+ /* Copy constructor */
public WpsInfo(WpsInfo source) {
if (source != null) {
setup = source.setup;
@@ -102,22 +77,16 @@ public class WpsInfo implements Parcelable {
}
}
- /** Implement the Parcelable interface
- * @deprecated This API is no longer supported. */
- @Deprecated
+ /** Implement the Parcelable interface */
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(setup);
dest.writeString(BSSID);
dest.writeString(pin);
}
- /** Implement the Parcelable interface
- * @deprecated This API is no longer supported.*/
- @Deprecated
+ /** Implement the Parcelable interface */
public static final Creator<WpsInfo> CREATOR =
new Creator<WpsInfo>() {
- /** @deprecated This API is nolonger supported.*/
- @Deprecated
public WpsInfo createFromParcel(Parcel in) {
WpsInfo config = new WpsInfo();
config.setup = in.readInt();
@@ -126,8 +95,6 @@ public class WpsInfo implements Parcelable {
return config;
}
- /** @deprecated This API is nolonger supported.*/
- @Deprecated
public WpsInfo[] newArray(int size) {
return new WpsInfo[size];
}
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
index e0442f2fd5ae..068b959f14ca 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
@@ -311,12 +311,19 @@ public class WifiP2pManager {
"android.net.wifi.p2p.EXTRA_HANDOVER_MESSAGE";
/**
- * The lookup key for a calling package returned by the WifiP2pService.
+ * The lookup key for a calling package name from WifiP2pManager
* @hide
*/
public static final String CALLING_PACKAGE =
"android.net.wifi.p2p.CALLING_PACKAGE";
+ /**
+ * The lookup key for a calling package binder from WifiP2pManager
+ * @hide
+ */
+ public static final String CALLING_BINDER =
+ "android.net.wifi.p2p.CALLING_BINDER";
+
IWifiP2pManager mService;
private static final int BASE = Protocol.BASE_WIFI_P2P_MANAGER;
@@ -536,6 +543,9 @@ public class WifiP2pManager {
/** @hide */
public static final int RESPONSE_NETWORK_INFO = BASE + 95;
+ /** @hide */
+ public static final int UPDATE_CHANNEL_INFO = BASE + 96;
+
/**
* Create a new WifiP2pManager instance. Applications use
* {@link android.content.Context#getSystemService Context.getSystemService()} to retrieve
@@ -1098,6 +1108,11 @@ public class WifiP2pManager {
Channel c = new Channel(srcContext, srcLooper, listener, binder, this);
if (c.mAsyncChannel.connectSync(srcContext, c.mHandler, messenger)
== AsyncChannel.STATUS_SUCCESSFUL) {
+ Bundle bundle = new Bundle();
+ bundle.putString(CALLING_PACKAGE, c.mContext.getOpPackageName());
+ bundle.putBinder(CALLING_BINDER, binder);
+ c.mAsyncChannel.sendMessage(UPDATE_CHANNEL_INFO, 0,
+ c.putListener(null), bundle);
return c;
} else {
c.close();
@@ -1124,6 +1139,7 @@ public class WifiP2pManager {
* @param c is the channel created at {@link #initialize}
* @param listener for callbacks on success or failure. Can be null.
*/
+ @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)
public void discoverPeers(Channel c, ActionListener listener) {
checkChannel(c);
c.mAsyncChannel.sendMessage(DISCOVER_PEERS, 0, c.putListener(listener));
@@ -1167,6 +1183,7 @@ public class WifiP2pManager {
* @param config options as described in {@link WifiP2pConfig} class
* @param listener for callbacks on success or failure. Can be null.
*/
+ @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)
public void connect(Channel c, WifiP2pConfig config, ActionListener listener) {
checkChannel(c);
checkP2pConfig(config);
@@ -1208,6 +1225,7 @@ public class WifiP2pManager {
* @param c is the channel created at {@link #initialize}
* @param listener for callbacks on success or failure. Can be null.
*/
+ @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)
public void createGroup(Channel c, ActionListener listener) {
checkChannel(c);
c.mAsyncChannel.sendMessage(CREATE_GROUP, WifiP2pGroup.PERSISTENT_NET_ID,
@@ -1238,6 +1256,7 @@ public class WifiP2pManager {
* @param config the configuration of a p2p group.
* @param listener for callbacks on success or failure. Can be null.
*/
+ @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)
public void createGroup(@NonNull Channel c,
@Nullable WifiP2pConfig config,
@Nullable ActionListener listener) {
@@ -1316,6 +1335,7 @@ public class WifiP2pManager {
* @param servInfo is a local service information.
* @param listener for callbacks on success or failure. Can be null.
*/
+ @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)
public void addLocalService(Channel c, WifiP2pServiceInfo servInfo, ActionListener listener) {
checkChannel(c);
checkServiceInfo(servInfo);
@@ -1425,6 +1445,7 @@ public class WifiP2pManager {
* @param c is the channel created at {@link #initialize}
* @param listener for callbacks on success or failure. Can be null.
*/
+ @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)
public void discoverServices(Channel c, ActionListener listener) {
checkChannel(c);
c.mAsyncChannel.sendMessage(DISCOVER_SERVICES, 0, c.putListener(listener));
@@ -1500,12 +1521,10 @@ public class WifiP2pManager {
* @param c is the channel created at {@link #initialize}
* @param listener for callback when peer list is available. Can be null.
*/
+ @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)
public void requestPeers(Channel c, PeerListListener listener) {
checkChannel(c);
- Bundle callingPackage = new Bundle();
- callingPackage.putString(CALLING_PACKAGE, c.mContext.getOpPackageName());
- c.mAsyncChannel.sendMessage(REQUEST_PEERS, 0, c.putListener(listener),
- callingPackage);
+ c.mAsyncChannel.sendMessage(REQUEST_PEERS, 0, c.putListener(listener));
}
/**
@@ -1525,6 +1544,7 @@ public class WifiP2pManager {
* @param c is the channel created at {@link #initialize}
* @param listener for callback when group info is available. Can be null.
*/
+ @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION)
public void requestGroupInfo(Channel c, GroupInfoListener listener) {
checkChannel(c);
c.mAsyncChannel.sendMessage(REQUEST_GROUP_INFO, 0, c.putListener(listener));
@@ -1697,10 +1717,7 @@ public class WifiP2pManager {
@RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
public void factoryReset(@NonNull Channel c, @Nullable ActionListener listener) {
checkChannel(c);
- Bundle callingPackage = new Bundle();
- callingPackage.putString(CALLING_PACKAGE, c.mContext.getOpPackageName());
- c.mAsyncChannel.sendMessage(FACTORY_RESET, 0, c.putListener(listener),
- callingPackage);
+ c.mAsyncChannel.sendMessage(FACTORY_RESET, 0, c.putListener(listener));
}
/**