summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.mk1
-rw-r--r--api/current.txt27
-rw-r--r--api/system-current.txt27
-rw-r--r--api/test-current.txt27
-rw-r--r--cmds/app_process/Android.mk93
-rw-r--r--core/java/android/app/ActivityManagerInternal.java7
-rw-r--r--core/java/android/app/AppOpsManager.java15
-rw-r--r--core/java/android/app/INotificationManager.aidl20
-rw-r--r--core/java/android/app/IOnNotificationChannelCreatedListener.aidl25
-rw-r--r--core/java/android/app/NotificationManager.java38
-rw-r--r--core/java/android/content/pm/LauncherActivityInfo.java6
-rw-r--r--core/java/android/content/pm/LauncherApps.java4
-rw-r--r--core/java/android/content/pm/PackageManager.java14
-rw-r--r--core/java/android/content/pm/PackageParser.java27
-rw-r--r--core/java/android/content/pm/PackageUserState.java19
-rw-r--r--core/java/android/net/NetworkScoreManager.java2
-rw-r--r--core/java/android/net/NetworkScorerAppManager.java40
-rw-r--r--core/java/android/os/IProxyFileDescriptorCallback.java59
-rw-r--r--core/java/android/service/notification/StatusBarNotification.java3
-rw-r--r--core/java/android/service/persistentdata/PersistentDataBlockManager.java5
-rw-r--r--core/java/android/view/View.java23
-rw-r--r--core/java/android/view/ViewGroup.java66
-rw-r--r--core/java/android/view/WindowManagerPolicy.java10
-rw-r--r--core/java/com/android/internal/content/PackageHelper.java4
-rw-r--r--core/java/com/android/internal/os/FuseAppLoop.java222
-rw-r--r--core/jni/Android.mk3
-rw-r--r--core/jni/AndroidRuntime.cpp3
-rw-r--r--core/jni/com_android_internal_os_FuseAppLoop.cpp164
-rw-r--r--core/res/AndroidManifest.xml9
-rw-r--r--core/res/res/anim/slide_in_enter_micro.xml2
-rw-r--r--core/res/res/anim/slide_out_micro.xml4
-rw-r--r--core/res/res/values-af/strings.xml19
-rw-r--r--core/res/res/values-am/strings.xml19
-rw-r--r--core/res/res/values-ar/strings.xml19
-rw-r--r--core/res/res/values-az-rAZ/strings.xml19
-rw-r--r--core/res/res/values-b+sr+Latn/strings.xml19
-rw-r--r--core/res/res/values-be-rBY/strings.xml19
-rw-r--r--core/res/res/values-bg/strings.xml19
-rw-r--r--core/res/res/values-bn-rBD/strings.xml4
-rw-r--r--core/res/res/values-bs-rBA/strings.xml51
-rw-r--r--core/res/res/values-ca/strings.xml19
-rw-r--r--core/res/res/values-cs/strings.xml19
-rw-r--r--core/res/res/values-da/strings.xml4
-rw-r--r--core/res/res/values-de/strings.xml4
-rw-r--r--core/res/res/values-el/strings.xml19
-rw-r--r--core/res/res/values-en-rAU/strings.xml19
-rw-r--r--core/res/res/values-en-rGB/strings.xml19
-rw-r--r--core/res/res/values-en-rIN/strings.xml19
-rw-r--r--core/res/res/values-es-rUS/strings.xml19
-rw-r--r--core/res/res/values-es/strings.xml19
-rw-r--r--core/res/res/values-et-rEE/strings.xml6
-rw-r--r--core/res/res/values-eu-rES/strings.xml19
-rw-r--r--core/res/res/values-fa/strings.xml4
-rw-r--r--core/res/res/values-fi/strings.xml19
-rw-r--r--core/res/res/values-fr-rCA/strings.xml4
-rw-r--r--core/res/res/values-fr/strings.xml4
-rw-r--r--core/res/res/values-gl-rES/strings.xml19
-rw-r--r--core/res/res/values-gu-rIN/strings.xml19
-rw-r--r--core/res/res/values-hi/strings.xml4
-rw-r--r--core/res/res/values-hr/strings.xml19
-rw-r--r--core/res/res/values-hu/strings.xml19
-rw-r--r--core/res/res/values-hy-rAM/strings.xml4
-rw-r--r--core/res/res/values-in/strings.xml19
-rw-r--r--core/res/res/values-is-rIS/strings.xml19
-rw-r--r--core/res/res/values-it/strings.xml19
-rw-r--r--core/res/res/values-iw/strings.xml4
-rw-r--r--core/res/res/values-ja/strings.xml4
-rw-r--r--core/res/res/values-ka-rGE/strings.xml19
-rw-r--r--core/res/res/values-kk-rKZ/strings.xml4
-rw-r--r--core/res/res/values-km-rKH/strings.xml4
-rw-r--r--core/res/res/values-kn-rIN/strings.xml4
-rw-r--r--core/res/res/values-ko/strings.xml4
-rw-r--r--core/res/res/values-ky-rKG/strings.xml19
-rw-r--r--core/res/res/values-lo-rLA/strings.xml4
-rw-r--r--core/res/res/values-lt/strings.xml4
-rw-r--r--core/res/res/values-lv/strings.xml4
-rw-r--r--core/res/res/values-mk-rMK/strings.xml19
-rw-r--r--core/res/res/values-ml-rIN/strings.xml4
-rw-r--r--core/res/res/values-mn-rMN/strings.xml4
-rw-r--r--core/res/res/values-mr-rIN/strings.xml19
-rw-r--r--core/res/res/values-ms-rMY/strings.xml4
-rw-r--r--core/res/res/values-my-rMM/strings.xml19
-rw-r--r--core/res/res/values-nb/strings.xml19
-rw-r--r--core/res/res/values-ne-rNP/strings.xml19
-rw-r--r--core/res/res/values-nl/strings.xml19
-rw-r--r--core/res/res/values-pa-rIN/strings.xml4
-rw-r--r--core/res/res/values-pl/strings.xml19
-rw-r--r--core/res/res/values-pt-rBR/strings.xml19
-rw-r--r--core/res/res/values-pt-rPT/strings.xml19
-rw-r--r--core/res/res/values-pt/strings.xml19
-rw-r--r--core/res/res/values-ro/strings.xml4
-rw-r--r--core/res/res/values-ru/strings.xml19
-rw-r--r--core/res/res/values-si-rLK/strings.xml22
-rw-r--r--core/res/res/values-sk/strings.xml19
-rw-r--r--core/res/res/values-sl/strings.xml6
-rw-r--r--core/res/res/values-sq-rAL/strings.xml4
-rw-r--r--core/res/res/values-sr/strings.xml19
-rw-r--r--core/res/res/values-sv/strings.xml19
-rw-r--r--core/res/res/values-sw/strings.xml19
-rw-r--r--core/res/res/values-ta-rIN/strings.xml4
-rw-r--r--core/res/res/values-te-rIN/strings.xml4
-rw-r--r--core/res/res/values-th/strings.xml4
-rw-r--r--core/res/res/values-tl/strings.xml4
-rw-r--r--core/res/res/values-tr/strings.xml4
-rw-r--r--core/res/res/values-uk/strings.xml19
-rw-r--r--core/res/res/values-ur-rPK/strings.xml4
-rw-r--r--core/res/res/values-uz-rUZ/strings.xml19
-rw-r--r--core/res/res/values-vi/strings.xml4
-rw-r--r--core/res/res/values-zh-rCN/strings.xml4
-rw-r--r--core/res/res/values-zh-rHK/strings.xml6
-rw-r--r--core/res/res/values-zh-rTW/strings.xml4
-rw-r--r--core/res/res/values-zu/strings.xml19
-rw-r--r--core/res/res/values/attrs.xml47
-rw-r--r--core/res/res/values/public.xml21
-rw-r--r--core/res/res/values/strings.xml5
-rw-r--r--core/tests/coretests/src/android/content/pm/PackageManagerTests.java20
-rw-r--r--core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java5
-rw-r--r--docs/html/reference/images/graphics/colorspace_clipped.pngbin0 -> 199002 bytes
-rw-r--r--docs/html/reference/images/graphics/colorspace_comparison.pngbin0 -> 233442 bytes
-rw-r--r--docs/html/reference/images/graphics/colorspace_comparison2.pngbin0 -> 95235 bytes
-rw-r--r--docs/html/reference/images/graphics/colorspace_points.pngbin0 -> 188239 bytes
-rw-r--r--docs/html/reference/images/graphics/colorspace_renderer.pngbin0 -> 206543 bytes
-rw-r--r--graphics/java/android/graphics/ColorSpace.java729
-rw-r--r--graphics/java/android/graphics/drawable/Icon.java2
-rw-r--r--libs/hwui/Android.mk1
-rw-r--r--libs/hwui/Extensions.cpp40
-rw-r--r--libs/hwui/Interpolator.cpp3
-rw-r--r--libs/hwui/tests/unit/BitmapTests.cpp44
-rw-r--r--opengl/java/android/opengl/GLES30.java8
-rw-r--r--packages/SettingsLib/res/values-am/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ar/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-b+sr+Latn/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-be-rBY/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ca/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-el/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-en-rAU/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-en-rGB/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-en-rIN/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-es/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-eu-rES/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-fi/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-gu-rIN/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-in/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-is-rIS/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-it/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ka-rGE/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ky-rKG/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-mk-rMK/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-mr-rIN/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ne-rNP/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-nl/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-pl/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-pt-rBR/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-pt-rPT/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-pt/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-sr/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-sv/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-uk/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-uz-rUZ/strings.xml3
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java12
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java4
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/users/AppRestrictionsHelper.java4
-rw-r--r--packages/SystemUI/res/layout/keyguard_bottom_area.xml33
-rw-r--r--packages/SystemUI/res/values-af/strings.xml1
-rw-r--r--packages/SystemUI/res/values-am/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ar/strings.xml1
-rw-r--r--packages/SystemUI/res/values-az-rAZ/strings.xml1
-rw-r--r--packages/SystemUI/res/values-b+sr+Latn/strings.xml1
-rw-r--r--packages/SystemUI/res/values-be-rBY/strings.xml1
-rw-r--r--packages/SystemUI/res/values-bg/strings.xml1
-rw-r--r--packages/SystemUI/res/values-bn-rBD/strings.xml13
-rw-r--r--packages/SystemUI/res/values-bs-rBA/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ca/strings.xml3
-rw-r--r--packages/SystemUI/res/values-cs/strings.xml1
-rw-r--r--packages/SystemUI/res/values-da/strings.xml13
-rw-r--r--packages/SystemUI/res/values-de/strings.xml13
-rw-r--r--packages/SystemUI/res/values-el/strings.xml1
-rw-r--r--packages/SystemUI/res/values-en-rAU/strings.xml1
-rw-r--r--packages/SystemUI/res/values-en-rGB/strings.xml1
-rw-r--r--packages/SystemUI/res/values-en-rIN/strings.xml1
-rw-r--r--packages/SystemUI/res/values-es-rUS/strings.xml1
-rw-r--r--packages/SystemUI/res/values-es/strings.xml1
-rw-r--r--packages/SystemUI/res/values-et-rEE/strings.xml13
-rw-r--r--packages/SystemUI/res/values-eu-rES/strings.xml1
-rw-r--r--packages/SystemUI/res/values-fa/strings.xml13
-rw-r--r--packages/SystemUI/res/values-fi/strings.xml1
-rw-r--r--packages/SystemUI/res/values-fr-rCA/strings.xml13
-rw-r--r--packages/SystemUI/res/values-fr/strings.xml13
-rw-r--r--packages/SystemUI/res/values-gl-rES/strings.xml1
-rw-r--r--packages/SystemUI/res/values-gu-rIN/strings.xml1
-rw-r--r--packages/SystemUI/res/values-hi/strings.xml13
-rw-r--r--packages/SystemUI/res/values-hr/strings.xml1
-rw-r--r--packages/SystemUI/res/values-hu/strings.xml1
-rw-r--r--packages/SystemUI/res/values-hy-rAM/strings.xml13
-rw-r--r--packages/SystemUI/res/values-in/strings.xml1
-rw-r--r--packages/SystemUI/res/values-is-rIS/strings.xml1
-rw-r--r--packages/SystemUI/res/values-it/strings.xml1
-rw-r--r--packages/SystemUI/res/values-iw/strings.xml13
-rw-r--r--packages/SystemUI/res/values-ja/strings.xml13
-rw-r--r--packages/SystemUI/res/values-ka-rGE/strings.xml1
-rw-r--r--packages/SystemUI/res/values-kk-rKZ/strings.xml13
-rw-r--r--packages/SystemUI/res/values-km-rKH/strings.xml13
-rw-r--r--packages/SystemUI/res/values-kn-rIN/strings.xml13
-rw-r--r--packages/SystemUI/res/values-ko/strings.xml13
-rw-r--r--packages/SystemUI/res/values-ky-rKG/strings.xml1
-rw-r--r--packages/SystemUI/res/values-lo-rLA/strings.xml13
-rw-r--r--packages/SystemUI/res/values-lt/strings.xml13
-rw-r--r--packages/SystemUI/res/values-lv/strings.xml13
-rw-r--r--packages/SystemUI/res/values-mk-rMK/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ml-rIN/strings.xml13
-rw-r--r--packages/SystemUI/res/values-mn-rMN/strings.xml23
-rw-r--r--packages/SystemUI/res/values-mr-rIN/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ms-rMY/strings.xml13
-rw-r--r--packages/SystemUI/res/values-my-rMM/strings.xml1
-rw-r--r--packages/SystemUI/res/values-nb/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ne-rNP/strings.xml1
-rw-r--r--packages/SystemUI/res/values-nl/strings.xml1
-rw-r--r--packages/SystemUI/res/values-pa-rIN/strings.xml13
-rw-r--r--packages/SystemUI/res/values-pl/strings.xml3
-rw-r--r--packages/SystemUI/res/values-pt-rBR/strings.xml1
-rw-r--r--packages/SystemUI/res/values-pt-rPT/strings.xml1
-rw-r--r--packages/SystemUI/res/values-pt/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ro/strings.xml13
-rw-r--r--packages/SystemUI/res/values-ru/strings.xml1
-rw-r--r--packages/SystemUI/res/values-si-rLK/strings.xml35
-rw-r--r--packages/SystemUI/res/values-sk/strings.xml1
-rw-r--r--packages/SystemUI/res/values-sl/strings.xml13
-rw-r--r--packages/SystemUI/res/values-sq-rAL/strings.xml13
-rw-r--r--packages/SystemUI/res/values-sr/strings.xml1
-rw-r--r--packages/SystemUI/res/values-sv/strings.xml1
-rw-r--r--packages/SystemUI/res/values-sw/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ta-rIN/strings.xml13
-rw-r--r--packages/SystemUI/res/values-te-rIN/strings.xml13
-rw-r--r--packages/SystemUI/res/values-th/strings.xml13
-rw-r--r--packages/SystemUI/res/values-tl/strings.xml13
-rw-r--r--packages/SystemUI/res/values-tr/strings.xml13
-rw-r--r--packages/SystemUI/res/values-uk/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ur-rPK/strings.xml13
-rw-r--r--packages/SystemUI/res/values-uz-rUZ/strings.xml1
-rw-r--r--packages/SystemUI/res/values-vi/strings.xml13
-rw-r--r--packages/SystemUI/res/values-zh-rCN/strings.xml13
-rw-r--r--packages/SystemUI/res/values-zh-rHK/strings.xml13
-rw-r--r--packages/SystemUI/res/values-zh-rTW/strings.xml13
-rw-r--r--packages/SystemUI/res/values-zu/strings.xml1
-rw-r--r--packages/SystemUI/res/values/strings.xml7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java50
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java20
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/DeadZone.java28
-rw-r--r--packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java1
-rw-r--r--packages/SystemUI/tests/AndroidManifest.xml1
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java154
-rw-r--r--services/core/java/com/android/server/DeviceIdleController.java4
-rw-r--r--services/core/java/com/android/server/MmsServiceBroker.java15
-rw-r--r--services/core/java/com/android/server/NetworkScoreService.java28
-rw-r--r--services/core/java/com/android/server/PersistentDataBlockService.java21
-rw-r--r--services/core/java/com/android/server/TelephonyRegistry.java1
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java21
-rw-r--r--services/core/java/com/android/server/am/BatteryStatsService.java2
-rw-r--r--services/core/java/com/android/server/am/TaskRecord.java4
-rw-r--r--services/core/java/com/android/server/firewall/SenderPackageFilter.java2
-rw-r--r--services/core/java/com/android/server/job/JobSchedulerService.java2
-rw-r--r--services/core/java/com/android/server/net/NetworkPolicyManagerService.java2
-rw-r--r--services/core/java/com/android/server/net/NetworkStatsService.java3
-rw-r--r--services/core/java/com/android/server/notification/NotificationManagerService.java46
-rw-r--r--services/core/java/com/android/server/notification/ZenModeHelper.java2
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java52
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerShellCommand.java2
-rw-r--r--services/core/java/com/android/server/pm/UserManagerService.java23
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java9
-rw-r--r--services/core/java/com/android/server/webkit/SystemImpl.java2
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java18
-rw-r--r--services/core/jni/com_android_server_SystemServer.cpp11
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java39
-rw-r--r--services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java96
-rw-r--r--services/usage/java/com/android/server/usage/UsageStatsService.java2
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthGsm.java10
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthLte.java6
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java4
-rw-r--r--tools/apilint/apilint.py2
-rw-r--r--tools/layoutlib/bridge/src/com/android/internal/view/animation/NativeInterpolatorFactoryHelper_Delegate.java2
-rw-r--r--wifi/java/android/net/wifi/WifiConfiguration.java20
285 files changed, 3071 insertions, 1302 deletions
diff --git a/Android.mk b/Android.mk
index 23aeae547ee5..5d902c205903 100644
--- a/Android.mk
+++ b/Android.mk
@@ -79,6 +79,7 @@ LOCAL_SRC_FILES += \
core/java/android/app/IBackupAgent.aidl \
core/java/android/app/IEphemeralResolver.aidl \
core/java/android/app/IInstrumentationWatcher.aidl \
+ core/java/android/app/IOnNotificationChannelCreatedListener.aidl \
core/java/android/app/INotificationManager.aidl \
core/java/android/app/IProcessObserver.aidl \
core/java/android/app/ISearchManager.aidl \
diff --git a/api/current.txt b/api/current.txt
index 8e73b898d423..94890213d3a8 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -99,6 +99,7 @@ package android {
field public static final java.lang.String READ_FRAME_BUFFER = "android.permission.READ_FRAME_BUFFER";
field public static final deprecated java.lang.String READ_INPUT_STATE = "android.permission.READ_INPUT_STATE";
field public static final java.lang.String READ_LOGS = "android.permission.READ_LOGS";
+ field public static final java.lang.String READ_PHONE_NUMBER = "android.permission.READ_PHONE_NUMBER";
field public static final java.lang.String READ_PHONE_STATE = "android.permission.READ_PHONE_STATE";
field public static final java.lang.String READ_SMS = "android.permission.READ_SMS";
field public static final java.lang.String READ_SYNC_SETTINGS = "android.permission.READ_SYNC_SETTINGS";
@@ -793,10 +794,12 @@ package android {
field public static final int layout_margin = 16842998; // 0x10100f6
field public static final int layout_marginBottom = 16843002; // 0x10100fa
field public static final int layout_marginEnd = 16843702; // 0x10103b6
+ field public static final int layout_marginHorizontal = 16844091; // 0x101053b
field public static final int layout_marginLeft = 16842999; // 0x10100f7
field public static final int layout_marginRight = 16843001; // 0x10100f9
field public static final int layout_marginStart = 16843701; // 0x10103b5
field public static final int layout_marginTop = 16843000; // 0x10100f8
+ field public static final int layout_marginVertical = 16844092; // 0x101053c
field public static final int layout_row = 16843643; // 0x101037b
field public static final int layout_rowSpan = 16843644; // 0x101037c
field public static final int layout_rowWeight = 16843864; // 0x1010458
@@ -864,7 +867,7 @@ package android {
field public static final int mediaRouteTypes = 16843694; // 0x10103ae
field public static final int menuCategory = 16843230; // 0x10101de
field public static final int mimeType = 16842790; // 0x1010026
- field public static final int min = 16843367; // 0x1010267
+ field public static final int min = 16844089; // 0x1010539
field public static final int minDate = 16843583; // 0x101033f
field public static final int minEms = 16843098; // 0x101015a
field public static final int minHeight = 16843072; // 0x1010140
@@ -927,11 +930,13 @@ package android {
field public static final int padding = 16842965; // 0x10100d5
field public static final int paddingBottom = 16842969; // 0x10100d9
field public static final int paddingEnd = 16843700; // 0x10103b4
+ field public static final int paddingHorizontal = 16844093; // 0x101053d
field public static final int paddingLeft = 16842966; // 0x10100d6
field public static final int paddingMode = 16843863; // 0x1010457
field public static final int paddingRight = 16842968; // 0x10100d8
field public static final int paddingStart = 16843699; // 0x10103b3
field public static final int paddingTop = 16842967; // 0x10100d7
+ field public static final int paddingVertical = 16844094; // 0x101053e
field public static final int panelBackground = 16842846; // 0x101005e
field public static final int panelColorBackground = 16842849; // 0x1010061
field public static final int panelColorForeground = 16842848; // 0x1010060
@@ -1050,7 +1055,7 @@ package android {
field public static final int ringtonePreferenceStyle = 16842899; // 0x1010093
field public static final int ringtoneType = 16843257; // 0x10101f9
field public static final int rotation = 16843558; // 0x1010326
- field public static final int rotationAnimation = 16843688; // 0x10103a8
+ field public static final int rotationAnimation = 16844090; // 0x101053a
field public static final int rotationX = 16843559; // 0x1010327
field public static final int rotationY = 16843560; // 0x1010328
field public static final int roundIcon = 16844076; // 0x101052c
@@ -4067,6 +4072,7 @@ package android.app {
field public static final java.lang.String OPSTR_READ_CELL_BROADCASTS = "android:read_cell_broadcasts";
field public static final java.lang.String OPSTR_READ_CONTACTS = "android:read_contacts";
field public static final java.lang.String OPSTR_READ_EXTERNAL_STORAGE = "android:read_external_storage";
+ field public static final java.lang.String OPSTR_READ_PHONE_NUMBER = "android:read_phone_number";
field public static final java.lang.String OPSTR_READ_PHONE_STATE = "android:read_phone_state";
field public static final java.lang.String OPSTR_READ_SMS = "android:read_sms";
field public static final java.lang.String OPSTR_RECEIVE_MMS = "android:receive_mms";
@@ -5389,7 +5395,7 @@ package android.app {
method public void cancel(int);
method public void cancel(java.lang.String, int);
method public void cancelAll();
- method public void createNotificationChannel(android.app.NotificationChannel);
+ method public void createNotificationChannel(android.app.NotificationChannel, android.app.NotificationManager.OnNotificationChannelCreatedListener, android.os.Handler);
method public void deleteNotificationChannel(java.lang.String);
method public android.service.notification.StatusBarNotification[] getActiveNotifications();
method public android.app.AutomaticZenRule getAutomaticZenRule(java.lang.String);
@@ -5423,6 +5429,10 @@ package android.app {
field public static final int INTERRUPTION_FILTER_UNKNOWN = 0; // 0x0
}
+ public static abstract interface NotificationManager.OnNotificationChannelCreatedListener {
+ method public abstract void onNotificationChannelCreated(android.app.NotificationChannel);
+ }
+
public static class NotificationManager.Policy implements android.os.Parcelable {
ctor public NotificationManager.Policy(int, int, int);
ctor public NotificationManager.Policy(int, int, int, int);
@@ -12004,6 +12014,7 @@ package android.graphics {
method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent);
method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace);
method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent);
+ method public static android.graphics.ColorSpace.Renderer createRenderer();
method public float[] fromXyz(float, float, float);
method public abstract float[] fromXyz(float[]);
method public static android.graphics.ColorSpace get(android.graphics.ColorSpace.Named);
@@ -12085,6 +12096,15 @@ package android.graphics {
enum_constant public static final android.graphics.ColorSpace.RenderIntent SATURATION;
}
+ public static class ColorSpace.Renderer {
+ method public android.graphics.ColorSpace.Renderer add(android.graphics.ColorSpace, int);
+ method public android.graphics.ColorSpace.Renderer add(android.graphics.ColorSpace, float, float, float, int);
+ method public android.graphics.ColorSpace.Renderer clip(boolean);
+ method public android.graphics.Bitmap render();
+ method public android.graphics.ColorSpace.Renderer showWhitePoint(boolean);
+ method public android.graphics.ColorSpace.Renderer size(int);
+ }
+
public static class ColorSpace.Rgb extends android.graphics.ColorSpace {
ctor public ColorSpace.Rgb(java.lang.String, float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator);
ctor public ColorSpace.Rgb(java.lang.String, float[], float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator, float, float);
@@ -37423,6 +37443,7 @@ package android.telephony {
method public int getAsuLevel();
method public int getDbm();
method public int getLevel();
+ method public int getTimingAdvance();
method public int hashCode();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.telephony.CellSignalStrengthGsm> CREATOR;
diff --git a/api/system-current.txt b/api/system-current.txt
index d5ff780d4651..2190abb2ef67 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -172,6 +172,7 @@ package android {
field public static final java.lang.String READ_LOGS = "android.permission.READ_LOGS";
field public static final java.lang.String READ_NETWORK_USAGE_HISTORY = "android.permission.READ_NETWORK_USAGE_HISTORY";
field public static final java.lang.String READ_OEM_UNLOCK_STATE = "android.permission.READ_OEM_UNLOCK_STATE";
+ field public static final java.lang.String READ_PHONE_NUMBER = "android.permission.READ_PHONE_NUMBER";
field public static final java.lang.String READ_PHONE_STATE = "android.permission.READ_PHONE_STATE";
field public static final java.lang.String READ_PRIVILEGED_PHONE_STATE = "android.permission.READ_PRIVILEGED_PHONE_STATE";
field public static final java.lang.String READ_SEARCH_INDEXABLES = "android.permission.READ_SEARCH_INDEXABLES";
@@ -900,10 +901,12 @@ package android {
field public static final int layout_margin = 16842998; // 0x10100f6
field public static final int layout_marginBottom = 16843002; // 0x10100fa
field public static final int layout_marginEnd = 16843702; // 0x10103b6
+ field public static final int layout_marginHorizontal = 16844091; // 0x101053b
field public static final int layout_marginLeft = 16842999; // 0x10100f7
field public static final int layout_marginRight = 16843001; // 0x10100f9
field public static final int layout_marginStart = 16843701; // 0x10103b5
field public static final int layout_marginTop = 16843000; // 0x10100f8
+ field public static final int layout_marginVertical = 16844092; // 0x101053c
field public static final int layout_row = 16843643; // 0x101037b
field public static final int layout_rowSpan = 16843644; // 0x101037c
field public static final int layout_rowWeight = 16843864; // 0x1010458
@@ -971,7 +974,7 @@ package android {
field public static final int mediaRouteTypes = 16843694; // 0x10103ae
field public static final int menuCategory = 16843230; // 0x10101de
field public static final int mimeType = 16842790; // 0x1010026
- field public static final int min = 16843367; // 0x1010267
+ field public static final int min = 16844089; // 0x1010539
field public static final int minDate = 16843583; // 0x101033f
field public static final int minEms = 16843098; // 0x101015a
field public static final int minHeight = 16843072; // 0x1010140
@@ -1034,11 +1037,13 @@ package android {
field public static final int padding = 16842965; // 0x10100d5
field public static final int paddingBottom = 16842969; // 0x10100d9
field public static final int paddingEnd = 16843700; // 0x10103b4
+ field public static final int paddingHorizontal = 16844093; // 0x101053d
field public static final int paddingLeft = 16842966; // 0x10100d6
field public static final int paddingMode = 16843863; // 0x1010457
field public static final int paddingRight = 16842968; // 0x10100d8
field public static final int paddingStart = 16843699; // 0x10103b3
field public static final int paddingTop = 16842967; // 0x10100d7
+ field public static final int paddingVertical = 16844094; // 0x101053e
field public static final int panelBackground = 16842846; // 0x101005e
field public static final int panelColorBackground = 16842849; // 0x1010061
field public static final int panelColorForeground = 16842848; // 0x1010060
@@ -1157,7 +1162,7 @@ package android {
field public static final int ringtonePreferenceStyle = 16842899; // 0x1010093
field public static final int ringtoneType = 16843257; // 0x10101f9
field public static final int rotation = 16843558; // 0x1010326
- field public static final int rotationAnimation = 16843688; // 0x10103a8
+ field public static final int rotationAnimation = 16844090; // 0x101053a
field public static final int rotationX = 16843559; // 0x1010327
field public static final int rotationY = 16843560; // 0x1010328
field public static final int roundIcon = 16844076; // 0x101052c
@@ -4203,6 +4208,7 @@ package android.app {
field public static final java.lang.String OPSTR_READ_CELL_BROADCASTS = "android:read_cell_broadcasts";
field public static final java.lang.String OPSTR_READ_CONTACTS = "android:read_contacts";
field public static final java.lang.String OPSTR_READ_EXTERNAL_STORAGE = "android:read_external_storage";
+ field public static final java.lang.String OPSTR_READ_PHONE_NUMBER = "android:read_phone_number";
field public static final java.lang.String OPSTR_READ_PHONE_STATE = "android:read_phone_state";
field public static final java.lang.String OPSTR_READ_SMS = "android:read_sms";
field public static final java.lang.String OPSTR_RECEIVE_MMS = "android:receive_mms";
@@ -5556,7 +5562,7 @@ package android.app {
method public void cancel(int);
method public void cancel(java.lang.String, int);
method public void cancelAll();
- method public void createNotificationChannel(android.app.NotificationChannel);
+ method public void createNotificationChannel(android.app.NotificationChannel, android.app.NotificationManager.OnNotificationChannelCreatedListener, android.os.Handler);
method public void deleteNotificationChannel(java.lang.String);
method public android.service.notification.StatusBarNotification[] getActiveNotifications();
method public android.app.AutomaticZenRule getAutomaticZenRule(java.lang.String);
@@ -5590,6 +5596,10 @@ package android.app {
field public static final int INTERRUPTION_FILTER_UNKNOWN = 0; // 0x0
}
+ public static abstract interface NotificationManager.OnNotificationChannelCreatedListener {
+ method public abstract void onNotificationChannelCreated(android.app.NotificationChannel);
+ }
+
public static class NotificationManager.Policy implements android.os.Parcelable {
ctor public NotificationManager.Policy(int, int, int);
ctor public NotificationManager.Policy(int, int, int, int);
@@ -12489,6 +12499,7 @@ package android.graphics {
method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent);
method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace);
method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent);
+ method public static android.graphics.ColorSpace.Renderer createRenderer();
method public float[] fromXyz(float, float, float);
method public abstract float[] fromXyz(float[]);
method public static android.graphics.ColorSpace get(android.graphics.ColorSpace.Named);
@@ -12570,6 +12581,15 @@ package android.graphics {
enum_constant public static final android.graphics.ColorSpace.RenderIntent SATURATION;
}
+ public static class ColorSpace.Renderer {
+ method public android.graphics.ColorSpace.Renderer add(android.graphics.ColorSpace, int);
+ method public android.graphics.ColorSpace.Renderer add(android.graphics.ColorSpace, float, float, float, int);
+ method public android.graphics.ColorSpace.Renderer clip(boolean);
+ method public android.graphics.Bitmap render();
+ method public android.graphics.ColorSpace.Renderer showWhitePoint(boolean);
+ method public android.graphics.ColorSpace.Renderer size(int);
+ }
+
public static class ColorSpace.Rgb extends android.graphics.ColorSpace {
ctor public ColorSpace.Rgb(java.lang.String, float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator);
ctor public ColorSpace.Rgb(java.lang.String, float[], float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator, float, float);
@@ -40505,6 +40525,7 @@ package android.telephony {
method public int getAsuLevel();
method public int getDbm();
method public int getLevel();
+ method public int getTimingAdvance();
method public int hashCode();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.telephony.CellSignalStrengthGsm> CREATOR;
diff --git a/api/test-current.txt b/api/test-current.txt
index 4636bb393197..a55fa4e6b7a1 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -99,6 +99,7 @@ package android {
field public static final java.lang.String READ_FRAME_BUFFER = "android.permission.READ_FRAME_BUFFER";
field public static final deprecated java.lang.String READ_INPUT_STATE = "android.permission.READ_INPUT_STATE";
field public static final java.lang.String READ_LOGS = "android.permission.READ_LOGS";
+ field public static final java.lang.String READ_PHONE_NUMBER = "android.permission.READ_PHONE_NUMBER";
field public static final java.lang.String READ_PHONE_STATE = "android.permission.READ_PHONE_STATE";
field public static final java.lang.String READ_SMS = "android.permission.READ_SMS";
field public static final java.lang.String READ_SYNC_SETTINGS = "android.permission.READ_SYNC_SETTINGS";
@@ -793,10 +794,12 @@ package android {
field public static final int layout_margin = 16842998; // 0x10100f6
field public static final int layout_marginBottom = 16843002; // 0x10100fa
field public static final int layout_marginEnd = 16843702; // 0x10103b6
+ field public static final int layout_marginHorizontal = 16844091; // 0x101053b
field public static final int layout_marginLeft = 16842999; // 0x10100f7
field public static final int layout_marginRight = 16843001; // 0x10100f9
field public static final int layout_marginStart = 16843701; // 0x10103b5
field public static final int layout_marginTop = 16843000; // 0x10100f8
+ field public static final int layout_marginVertical = 16844092; // 0x101053c
field public static final int layout_row = 16843643; // 0x101037b
field public static final int layout_rowSpan = 16843644; // 0x101037c
field public static final int layout_rowWeight = 16843864; // 0x1010458
@@ -864,7 +867,7 @@ package android {
field public static final int mediaRouteTypes = 16843694; // 0x10103ae
field public static final int menuCategory = 16843230; // 0x10101de
field public static final int mimeType = 16842790; // 0x1010026
- field public static final int min = 16843367; // 0x1010267
+ field public static final int min = 16844089; // 0x1010539
field public static final int minDate = 16843583; // 0x101033f
field public static final int minEms = 16843098; // 0x101015a
field public static final int minHeight = 16843072; // 0x1010140
@@ -927,11 +930,13 @@ package android {
field public static final int padding = 16842965; // 0x10100d5
field public static final int paddingBottom = 16842969; // 0x10100d9
field public static final int paddingEnd = 16843700; // 0x10103b4
+ field public static final int paddingHorizontal = 16844093; // 0x101053d
field public static final int paddingLeft = 16842966; // 0x10100d6
field public static final int paddingMode = 16843863; // 0x1010457
field public static final int paddingRight = 16842968; // 0x10100d8
field public static final int paddingStart = 16843699; // 0x10103b3
field public static final int paddingTop = 16842967; // 0x10100d7
+ field public static final int paddingVertical = 16844094; // 0x101053e
field public static final int panelBackground = 16842846; // 0x101005e
field public static final int panelColorBackground = 16842849; // 0x1010061
field public static final int panelColorForeground = 16842848; // 0x1010060
@@ -1050,7 +1055,7 @@ package android {
field public static final int ringtonePreferenceStyle = 16842899; // 0x1010093
field public static final int ringtoneType = 16843257; // 0x10101f9
field public static final int rotation = 16843558; // 0x1010326
- field public static final int rotationAnimation = 16843688; // 0x10103a8
+ field public static final int rotationAnimation = 16844090; // 0x101053a
field public static final int rotationX = 16843559; // 0x1010327
field public static final int rotationY = 16843560; // 0x1010328
field public static final int roundIcon = 16844076; // 0x101052c
@@ -4077,6 +4082,7 @@ package android.app {
field public static final java.lang.String OPSTR_READ_CELL_BROADCASTS = "android:read_cell_broadcasts";
field public static final java.lang.String OPSTR_READ_CONTACTS = "android:read_contacts";
field public static final java.lang.String OPSTR_READ_EXTERNAL_STORAGE = "android:read_external_storage";
+ field public static final java.lang.String OPSTR_READ_PHONE_NUMBER = "android:read_phone_number";
field public static final java.lang.String OPSTR_READ_PHONE_STATE = "android:read_phone_state";
field public static final java.lang.String OPSTR_READ_SMS = "android:read_sms";
field public static final java.lang.String OPSTR_RECEIVE_MMS = "android:receive_mms";
@@ -5399,7 +5405,7 @@ package android.app {
method public void cancel(int);
method public void cancel(java.lang.String, int);
method public void cancelAll();
- method public void createNotificationChannel(android.app.NotificationChannel);
+ method public void createNotificationChannel(android.app.NotificationChannel, android.app.NotificationManager.OnNotificationChannelCreatedListener, android.os.Handler);
method public void deleteNotificationChannel(java.lang.String);
method public android.service.notification.StatusBarNotification[] getActiveNotifications();
method public android.app.AutomaticZenRule getAutomaticZenRule(java.lang.String);
@@ -5434,6 +5440,10 @@ package android.app {
field public static final int INTERRUPTION_FILTER_UNKNOWN = 0; // 0x0
}
+ public static abstract interface NotificationManager.OnNotificationChannelCreatedListener {
+ method public abstract void onNotificationChannelCreated(android.app.NotificationChannel);
+ }
+
public static class NotificationManager.Policy implements android.os.Parcelable {
ctor public NotificationManager.Policy(int, int, int);
ctor public NotificationManager.Policy(int, int, int, int);
@@ -12035,6 +12045,7 @@ package android.graphics {
method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent);
method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace);
method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent);
+ method public static android.graphics.ColorSpace.Renderer createRenderer();
method public float[] fromXyz(float, float, float);
method public abstract float[] fromXyz(float[]);
method public static android.graphics.ColorSpace get(android.graphics.ColorSpace.Named);
@@ -12116,6 +12127,15 @@ package android.graphics {
enum_constant public static final android.graphics.ColorSpace.RenderIntent SATURATION;
}
+ public static class ColorSpace.Renderer {
+ method public android.graphics.ColorSpace.Renderer add(android.graphics.ColorSpace, int);
+ method public android.graphics.ColorSpace.Renderer add(android.graphics.ColorSpace, float, float, float, int);
+ method public android.graphics.ColorSpace.Renderer clip(boolean);
+ method public android.graphics.Bitmap render();
+ method public android.graphics.ColorSpace.Renderer showWhitePoint(boolean);
+ method public android.graphics.ColorSpace.Renderer size(int);
+ }
+
public static class ColorSpace.Rgb extends android.graphics.ColorSpace {
ctor public ColorSpace.Rgb(java.lang.String, float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator);
ctor public ColorSpace.Rgb(java.lang.String, float[], float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator, float, float);
@@ -37519,6 +37539,7 @@ package android.telephony {
method public int getAsuLevel();
method public int getDbm();
method public int getLevel();
+ method public int getTimingAdvance();
method public int hashCode();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.telephony.CellSignalStrengthGsm> CREATOR;
diff --git a/cmds/app_process/Android.mk b/cmds/app_process/Android.mk
index e18de8e68620..eaad3a7ec529 100644
--- a/cmds/app_process/Android.mk
+++ b/cmds/app_process/Android.mk
@@ -1,78 +1,67 @@
LOCAL_PATH:= $(call my-dir)
-# This is a list of libraries that need to be included in order to avoid
-# bad apps. This prevents a library from having a mismatch when resolving
-# new/delete from an app shared library.
-# See b/21032018 for more details.
app_process_common_shared_libs := \
- libwilhelm \
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES:= \
- app_main.cpp
-
-LOCAL_LDFLAGS_32 := -Wl,--version-script,art/sigchainlib/version-script32.txt -Wl,--export-dynamic
-LOCAL_LDFLAGS_64 := -Wl,--version-script,art/sigchainlib/version-script64.txt -Wl,--export-dynamic
-
-LOCAL_SHARED_LIBRARIES := \
- libdl \
+ libandroid_runtime \
+ libbinder \
libcutils \
- libutils \
+ libdl \
liblog \
- libbinder \
libnativeloader \
- libandroid_runtime \
- $(app_process_common_shared_libs) \
-
-LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain
+ libutils \
-LOCAL_MODULE:= app_process
-LOCAL_MULTILIB := both
-LOCAL_MODULE_STEM_32 := app_process32
-LOCAL_MODULE_STEM_64 := app_process64
+# This is a list of libraries that need to be included in order to avoid
+# bad apps. This prevents a library from having a mismatch when resolving
+# new/delete from an app shared library.
+# See b/21032018 for more details.
+app_process_common_shared_libs += \
+ libwilhelm \
-LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
+app_process_common_static_libs := \
+ libsigchain \
-include $(BUILD_EXECUTABLE)
+app_process_src_files := \
+ app_main.cpp \
-# Create a symlink from app_process to app_process32 or 64
-# depending on the target configuration.
-include $(BUILD_SYSTEM)/executable_prefer_symlink.mk
+app_process_cflags := \
+ -Wall -Werror -Wunused -Wunreachable-code
-# Build a variant of app_process binary linked with ASan runtime.
-# ARM-only at the moment.
-ifeq ($(TARGET_ARCH),arm)
+app_process_ldflags_32 := \
+ -Wl,--version-script,art/sigchainlib/version-script32.txt -Wl,--export-dynamic
+app_process_ldflags_64 := \
+ -Wl,--version-script,art/sigchainlib/version-script64.txt -Wl,--export-dynamic
include $(CLEAR_VARS)
-LOCAL_SRC_FILES:= \
- app_main.cpp
+LOCAL_SRC_FILES:= $(app_process_src_files)
-LOCAL_SHARED_LIBRARIES := \
- libcutils \
- libutils \
- liblog \
- libbinder \
- libandroid_runtime \
- $(app_process_common_shared_libs) \
+LOCAL_LDFLAGS_32 := $(app_process_ldflags_32)
+LOCAL_LDFLAGS_64 := $(app_process_ldflags_64)
-LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain
+LOCAL_SHARED_LIBRARIES := $(app_process_common_shared_libs)
-LOCAL_LDFLAGS := -ldl
-LOCAL_LDFLAGS_32 := -Wl,--version-script,art/sigchainlib/version-script32.txt -Wl,--export-dynamic
-LOCAL_LDFLAGS_64 := -Wl,--version-script,art/sigchainlib/version-script64.txt -Wl,--export-dynamic
+LOCAL_WHOLE_STATIC_LIBRARIES := $(app_process_common_static_libs)
-LOCAL_MODULE := app_process__asan
+LOCAL_MODULE:= app_process
LOCAL_MULTILIB := both
LOCAL_MODULE_STEM_32 := app_process32
LOCAL_MODULE_STEM_64 := app_process64
-LOCAL_SANITIZE := address
-LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)/asan
+LOCAL_CFLAGS += $(app_process_cflags)
-LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
+# In SANITIZE_LITE mode, we create the sanitized binary in a separate location (but reuse
+# the same module). Using the same module also works around an issue with make: binaries
+# that depend on sanitized libraries will be relinked, even if they set LOCAL_SANITIZE := never.
+#
+# Also pull in the asanwrapper helper.
+ifeq ($(SANITIZE_LITE),true)
+LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)/asan
+LOCAL_REQUIRED_MODULES := asanwrapper
+endif
include $(BUILD_EXECUTABLE)
-endif # ifeq($(TARGET_ARCH),arm)
+# Create a symlink from app_process to app_process32 or 64
+# depending on the target configuration.
+ifneq ($(SANITIZE_LITE),true)
+include $(BUILD_SYSTEM)/executable_prefer_symlink.mk
+endif
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java
index bfa6d349a9f6..913edfd81081 100644
--- a/core/java/android/app/ActivityManagerInternal.java
+++ b/core/java/android/app/ActivityManagerInternal.java
@@ -62,6 +62,13 @@ public abstract class ActivityManagerInternal {
public static final int APP_TRANSITION_TIMEOUT = 3;
/**
+ * Grant Uri permissions from one app to another. This method only extends
+ * permission grants if {@code callingUid} has permission to them.
+ */
+ public abstract void grantUriPermissionFromIntent(int callingUid, String targetPkg,
+ Intent intent, int targetUserId);
+
+ /**
* Verify that calling app has access to the given provider.
*/
public abstract String checkContentProviderAccess(String authority, int userId);
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index ba6bc159cdf2..67fbc5a46832 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -241,8 +241,10 @@ public class AppOpsManager {
public static final int OP_RUN_IN_BACKGROUND = 63;
/** @hide */
public static final int OP_AUDIO_ACCESSIBILITY_VOLUME = 64;
+ /** @hide Read the phone number. */
+ public static final int OP_READ_PHONE_NUMBER = 65;
/** @hide */
- public static final int _NUM_OP = 65;
+ public static final int _NUM_OP = 66;
/** Access to coarse location information. */
public static final String OPSTR_COARSE_LOCATION = "android:coarse_location";
@@ -343,6 +345,8 @@ public class AppOpsManager {
/** @hide Get device accounts. */
public static final String OPSTR_GET_ACCOUNTS
= "android:get_accounts";
+ public static final String OPSTR_READ_PHONE_NUMBER
+ = "android:read_phone_number";
private static final int[] RUNTIME_PERMISSIONS_OPS = {
// Contacts
@@ -367,6 +371,7 @@ public class AppOpsManager {
OP_FINE_LOCATION,
// Phone
OP_READ_PHONE_STATE,
+ OP_READ_PHONE_NUMBER,
OP_CALL_PHONE,
OP_READ_CALL_LOG,
OP_WRITE_CALL_LOG,
@@ -455,6 +460,7 @@ public class AppOpsManager {
OP_GET_ACCOUNTS,
OP_RUN_IN_BACKGROUND,
OP_AUDIO_ACCESSIBILITY_VOLUME,
+ OP_READ_PHONE_NUMBER,
};
/**
@@ -527,6 +533,7 @@ public class AppOpsManager {
OPSTR_GET_ACCOUNTS,
null,
null, // OP_AUDIO_ACCESSIBILITY_VOLUME
+ OPSTR_READ_PHONE_NUMBER,
};
/**
@@ -599,6 +606,7 @@ public class AppOpsManager {
"GET_ACCOUNTS",
"RUN_IN_BACKGROUND",
"AUDIO_ACCESSIBILITY_VOLUME",
+ "READ_PHONE_NUMBER",
};
/**
@@ -671,6 +679,7 @@ public class AppOpsManager {
Manifest.permission.GET_ACCOUNTS,
null, // no permission for running in background
null, // no permission for changing accessibility volume
+ Manifest.permission.READ_PHONE_NUMBER,
};
/**
@@ -744,6 +753,7 @@ public class AppOpsManager {
null, // GET_ACCOUNTS
null, // RUN_IN_BACKGROUND
UserManager.DISALLOW_ADJUST_VOLUME, //AUDIO_ACCESSIBILITY_VOLUME
+ null, // READ_PHONE_NUMBER
};
/**
@@ -816,6 +826,7 @@ public class AppOpsManager {
false, // GET_ACCOUNTS
false, // RUN_IN_BACKGROUND
false, // AUDIO_ACCESSIBILITY_VOLUME
+ false, // READ_PHONE_NUMBER
};
/**
@@ -887,6 +898,7 @@ public class AppOpsManager {
AppOpsManager.MODE_ALLOWED,
AppOpsManager.MODE_ALLOWED, // OP_RUN_IN_BACKGROUND
AppOpsManager.MODE_ALLOWED, // OP_AUDIO_ACCESSIBILITY_VOLUME
+ AppOpsManager.MODE_ALLOWED,
};
/**
@@ -962,6 +974,7 @@ public class AppOpsManager {
false,
false,
false, // OP_AUDIO_ACCESSIBILITY_VOLUME
+ false,
};
/**
diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl
index 2a7341ae6911..927ef6c35b7a 100644
--- a/core/java/android/app/INotificationManager.aidl
+++ b/core/java/android/app/INotificationManager.aidl
@@ -2,21 +2,22 @@
**
** Copyright 2007, The Android Open Source Project
**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
**
-** http://www.apache.org/licenses/LICENSE-2.0
+** http://www.apache.org/licenses/LICENSE-2.0
**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES 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.app;
+import android.app.IOnNotificationChannelCreatedListener;
import android.app.ITransientNotification;
import android.app.Notification;
import android.app.NotificationChannel;
@@ -58,7 +59,8 @@ interface INotificationManager
int getImportance(String pkg, int uid);
int getPackageImportance(String pkg);
- void createNotificationChannel(String pkg, in NotificationChannel channel);
+ void createNotificationChannel(String pkg, in NotificationChannel channel,
+ in IOnNotificationChannelCreatedListener listener);
void updateNotificationChannelForPackage(String pkg, int uid, in NotificationChannel channel);
NotificationChannel getNotificationChannel(String pkg, String channelId);
NotificationChannel getNotificationChannelForPackage(String pkg, int uid, String channelId);
diff --git a/core/java/android/app/IOnNotificationChannelCreatedListener.aidl b/core/java/android/app/IOnNotificationChannelCreatedListener.aidl
new file mode 100644
index 000000000000..8e6654200017
--- /dev/null
+++ b/core/java/android/app/IOnNotificationChannelCreatedListener.aidl
@@ -0,0 +1,25 @@
+/*
+**
+** Copyright 2016, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+
+package android.app;
+
+import android.app.NotificationChannel;
+
+/** {@hide} */
+oneway interface IOnNotificationChannelCreatedListener {
+ void onNotificationChannelCreated(in NotificationChannel channel);
+}
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index 047f349b1e54..7693d7666e19 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -18,6 +18,7 @@ package android.app;
import android.annotation.IntDef;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.annotation.SdkConstant;
import android.annotation.TestApi;
import android.app.Notification.Builder;
@@ -30,6 +31,7 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
+import android.os.Looper;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.RemoteException;
@@ -379,12 +381,42 @@ public class NotificationManager
}
/**
+ * Listener passed to {@link NotificationManager#createNotificationChannel} to notify
+ * caller of result.
+ */
+ public interface OnNotificationChannelCreatedListener {
+ /**
+ * @param createdChannel NotificationChannel created by the system. Value is null iff an
+ * exception was thrown during channel creation.
+ */
+ public void onNotificationChannelCreated(NotificationChannel createdChannel);
+ }
+
+ /**
* Creates a notification channel that notifications can be posted to.
+ *
+ * @param channel the channel to attempt to create. Note that the created channel may differ
+ * from this value.
+ * @param listener Called when operation is finished.
+ * @param handler The handler to invoke the listener on, or {@code null} to use the main
+ * handler.
*/
- public void createNotificationChannel(NotificationChannel channel) {
+ public void createNotificationChannel(
+ @NonNull NotificationChannel channel,
+ @NonNull OnNotificationChannelCreatedListener listener,
+ @Nullable Handler handler) {
INotificationManager service = getService();
try {
- service.createNotificationChannel(mContext.getPackageName(), channel);
+ final Handler actualHandler =
+ handler != null ? handler : new Handler(Looper.getMainLooper());
+ service.createNotificationChannel(mContext.getPackageName(), channel,
+ new IOnNotificationChannelCreatedListener.Stub() {
+ @Override public void onNotificationChannelCreated(
+ NotificationChannel channel) {
+ actualHandler.post(
+ () -> { listener.onNotificationChannelCreated(channel); });
+ }
+ });
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -583,7 +615,7 @@ public class NotificationManager
* <p>
* Callers can only update rules that they own. See {@link AutomaticZenRule#getOwner}.
* @param id The id of the rule to update
- * @param automaticZenRule the rule to update.
+ * @param automaticZenRule the rule to update.
* @return Whether the rule was successfully updated.
*/
public boolean updateAutomaticZenRule(String id, AutomaticZenRule automaticZenRule) {
diff --git a/core/java/android/content/pm/LauncherActivityInfo.java b/core/java/android/content/pm/LauncherActivityInfo.java
index 2beca7bb6022..358787e66428 100644
--- a/core/java/android/content/pm/LauncherActivityInfo.java
+++ b/core/java/android/content/pm/LauncherActivityInfo.java
@@ -89,6 +89,7 @@ public class LauncherActivityInfo {
* @return The label for the activity.
*/
public CharSequence getLabel() {
+ // TODO: Go through LauncherAppsService
return mActivityInfo.loadLabel(mPm);
}
@@ -101,6 +102,7 @@ public class LauncherActivityInfo {
* @return The drawable associated with the activity.
*/
public Drawable getIcon(int density) {
+ // TODO: Go through LauncherAppsService
final int iconRes = mActivityInfo.getIconResource();
Drawable icon = null;
// Get the preferred density icon from the app's resources
@@ -144,8 +146,9 @@ public class LauncherActivityInfo {
*/
public long getFirstInstallTime() {
try {
+ // TODO: Go through LauncherAppsService
return mPm.getPackageInfo(mActivityInfo.packageName,
- PackageManager.GET_UNINSTALLED_PACKAGES).firstInstallTime;
+ PackageManager.MATCH_UNINSTALLED_PACKAGES).firstInstallTime;
} catch (NameNotFoundException nnfe) {
// Sorry, can't find package
return 0;
@@ -171,6 +174,7 @@ public class LauncherActivityInfo {
Drawable originalIcon = getIcon(density);
if (originalIcon instanceof BitmapDrawable) {
+ // TODO: Go through LauncherAppsService
return mPm.getUserBadgedIcon(originalIcon, mUser);
} else {
Log.e(TAG, "Unable to create badged icon for " + mActivityInfo);
diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java
index 6b23da93bb86..7fc80442be90 100644
--- a/core/java/android/content/pm/LauncherApps.java
+++ b/core/java/android/content/pm/LauncherApps.java
@@ -447,12 +447,12 @@ public class LauncherApps {
/**
* Retrieve all of the information we know about a particular package / application.
*
- * @param packageName The package of the application
+ * @param packageName The package name of the application
* @param flags Additional option flags {@link PackageManager#getApplicationInfo}
* @param user The UserHandle of the profile.
*
* @return An {@link ApplicationInfo} containing information about the package or
- * null of the package isn't found.
+ * null if the package isn't installed for the given user.
* @hide
*/
public ApplicationInfo getApplicationInfo(String packageName, @ApplicationInfoFlags int flags,
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 5087bc8555a6..3f052d38a2c6 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -435,6 +435,20 @@ public abstract class PackageManager {
public static final int MATCH_FACTORY_ONLY = 0x00200000;
/**
+ * Allows querying of packages installed for any user, not just the specific one. This flag
+ * is only meant for use by apps that have INTERACT_ACROSS_USERS_FULL permission.
+ * @hide
+ */
+ public static final int MATCH_ANY_USER = 0x00400000;
+
+ /**
+ * Combination of MATCH_ANY_USER and MATCH_UNINSTALLED_PACKAGES to mean any known
+ * package.
+ * @hide
+ */
+ public static final int MATCH_KNOWN_PACKAGES = MATCH_UNINSTALLED_PACKAGES | MATCH_ANY_USER;
+
+ /**
* Internal flag used to indicate that a system component has done their
* homework and verified that they correctly handle packages and components
* that come and go over time. In particular:
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index bb9c18abe1bc..a91027162798 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -478,20 +478,25 @@ public class PackageParser {
/**
* Returns true if the package is installed and not hidden, or if the caller
* explicitly wanted all uninstalled and hidden packages as well.
+ * @param appInfo The applicationInfo of the app being checked.
*/
- private static boolean checkUseInstalledOrHidden(int flags, PackageUserState state) {
- return (state.installed && !state.hidden)
- || (flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0;
+ private static boolean checkUseInstalledOrHidden(int flags, PackageUserState state,
+ ApplicationInfo appInfo) {
+ // If available for the target user, or trying to match uninstalled packages and it's
+ // a system app.
+ return state.isAvailable(flags)
+ || (appInfo != null && appInfo.isSystemApp()
+ && (flags & PackageManager.MATCH_KNOWN_PACKAGES) != 0);
}
public static boolean isAvailable(PackageUserState state) {
- return checkUseInstalledOrHidden(0, state);
+ return checkUseInstalledOrHidden(0, state, null);
}
public static PackageInfo generatePackageInfo(PackageParser.Package p,
int gids[], int flags, long firstInstallTime, long lastUpdateTime,
Set<String> grantedPermissions, PackageUserState state, int userId) {
- if (!checkUseInstalledOrHidden(flags, state) || !p.isMatch(flags)) {
+ if (!checkUseInstalledOrHidden(flags, state, p.applicationInfo) || !p.isMatch(flags)) {
return null;
}
PackageInfo pi = new PackageInfo();
@@ -5445,7 +5450,7 @@ public class PackageParser {
public static ApplicationInfo generateApplicationInfo(Package p, int flags,
PackageUserState state, int userId) {
if (p == null) return null;
- if (!checkUseInstalledOrHidden(flags, state) || !p.isMatch(flags)) {
+ if (!checkUseInstalledOrHidden(flags, state, p.applicationInfo) || !p.isMatch(flags)) {
return null;
}
if (!copyNeeded(flags, p, state, null, userId)
@@ -5483,7 +5488,7 @@ public class PackageParser {
public static ApplicationInfo generateApplicationInfo(ApplicationInfo ai, int flags,
PackageUserState state, int userId) {
if (ai == null) return null;
- if (!checkUseInstalledOrHidden(flags, state)) {
+ if (!checkUseInstalledOrHidden(flags, state, ai)) {
return null;
}
// This is only used to return the ResolverActivity; we will just always
@@ -5549,7 +5554,7 @@ public class PackageParser {
public static final ActivityInfo generateActivityInfo(Activity a, int flags,
PackageUserState state, int userId) {
if (a == null) return null;
- if (!checkUseInstalledOrHidden(flags, state)) {
+ if (!checkUseInstalledOrHidden(flags, state, a.owner.applicationInfo)) {
return null;
}
if (!copyNeeded(flags, a.owner, state, a.metaData, userId)) {
@@ -5565,7 +5570,7 @@ public class PackageParser {
public static final ActivityInfo generateActivityInfo(ActivityInfo ai, int flags,
PackageUserState state, int userId) {
if (ai == null) return null;
- if (!checkUseInstalledOrHidden(flags, state)) {
+ if (!checkUseInstalledOrHidden(flags, state, ai.applicationInfo)) {
return null;
}
// This is only used to return the ResolverActivity; we will just always
@@ -5603,7 +5608,7 @@ public class PackageParser {
public static final ServiceInfo generateServiceInfo(Service s, int flags,
PackageUserState state, int userId) {
if (s == null) return null;
- if (!checkUseInstalledOrHidden(flags, state)) {
+ if (!checkUseInstalledOrHidden(flags, state, s.owner.applicationInfo)) {
return null;
}
if (!copyNeeded(flags, s.owner, state, s.metaData, userId)) {
@@ -5652,7 +5657,7 @@ public class PackageParser {
public static final ProviderInfo generateProviderInfo(Provider p, int flags,
PackageUserState state, int userId) {
if (p == null) return null;
- if (!checkUseInstalledOrHidden(flags, state)) {
+ if (!checkUseInstalledOrHidden(flags, state, p.owner.applicationInfo)) {
return null;
}
if (!copyNeeded(flags, p.owner, state, p.metaData, userId)
diff --git a/core/java/android/content/pm/PackageUserState.java b/core/java/android/content/pm/PackageUserState.java
index 8ce8a13ea783..1821458c9869 100644
--- a/core/java/android/content/pm/PackageUserState.java
+++ b/core/java/android/content/pm/PackageUserState.java
@@ -29,7 +29,6 @@ import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY;
import android.util.ArraySet;
-import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
/**
@@ -80,9 +79,14 @@ public class PackageUserState {
/**
* Test if this package is installed.
*/
- public boolean isInstalled(int flags) {
- return (this.installed && !this.hidden)
- || (flags & PackageManager.MATCH_UNINSTALLED_PACKAGES) != 0;
+ public boolean isAvailable(int flags) {
+ // True if it is installed for this user and it is not hidden. If it is hidden,
+ // still return true if the caller requested MATCH_UNINSTALLED_PACKAGES
+ final boolean matchAnyUser = (flags & PackageManager.MATCH_ANY_USER) != 0;
+ final boolean matchUninstalled = (flags & PackageManager.MATCH_UNINSTALLED_PACKAGES) != 0;
+ return matchAnyUser
+ || (this.installed
+ && (!this.hidden || matchUninstalled));
}
/**
@@ -95,11 +99,14 @@ public class PackageUserState {
* </p>
*/
public boolean isMatch(ComponentInfo componentInfo, int flags) {
- if (!isInstalled(flags)) return false;
+ final boolean isSystemApp = componentInfo.applicationInfo.isSystemApp();
+ final boolean matchUninstalled = (flags & PackageManager.MATCH_KNOWN_PACKAGES) != 0;
+ if (!isAvailable(flags)
+ && !(isSystemApp && matchUninstalled)) return false;
if (!isEnabled(componentInfo, flags)) return false;
if ((flags & MATCH_SYSTEM_ONLY) != 0) {
- if (!componentInfo.applicationInfo.isSystemApp()) {
+ if (!isSystemApp) {
return false;
}
}
diff --git a/core/java/android/net/NetworkScoreManager.java b/core/java/android/net/NetworkScoreManager.java
index c2286ad8ae13..a0f74ec9ff21 100644
--- a/core/java/android/net/NetworkScoreManager.java
+++ b/core/java/android/net/NetworkScoreManager.java
@@ -144,7 +144,7 @@ public class NetworkScoreManager {
* scorer.
*/
public String getActiveScorerPackage() {
- NetworkScorerAppData app = NetworkScorerAppManager.getActiveScorer(mContext);
+ NetworkScorerAppData app = new NetworkScorerAppManager(mContext).getActiveScorer();
if (app == null) {
return null;
}
diff --git a/core/java/android/net/NetworkScorerAppManager.java b/core/java/android/net/NetworkScorerAppManager.java
index 29291ca90467..ebb31c9056a9 100644
--- a/core/java/android/net/NetworkScorerAppManager.java
+++ b/core/java/android/net/NetworkScorerAppManager.java
@@ -41,14 +41,17 @@ import java.util.List;
*
* @hide
*/
-public final class NetworkScorerAppManager {
+public class NetworkScorerAppManager {
private static final String TAG = "NetworkScorerAppManager";
private static final Intent SCORE_INTENT =
new Intent(NetworkScoreManager.ACTION_SCORE_NETWORKS);
- /** This class cannot be instantiated. */
- private NetworkScorerAppManager() {}
+ private final Context mContext;
+
+ public NetworkScorerAppManager(Context context) {
+ mContext = context;
+ }
public static class NetworkScorerAppData {
/** Package name of this scorer app. */
@@ -108,7 +111,7 @@ public final class NetworkScorerAppManager {
*
* @return the list of scorers, or the empty list if there are no valid scorers.
*/
- public static Collection<NetworkScorerAppData> getAllValidScorers(Context context) {
+ public Collection<NetworkScorerAppData> getAllValidScorers() {
// Network scorer apps can only run as the primary user so exit early if we're not the
// primary user.
if (UserHandle.getCallingUserId() != UserHandle.USER_SYSTEM) {
@@ -116,7 +119,7 @@ public final class NetworkScorerAppManager {
}
List<NetworkScorerAppData> scorers = new ArrayList<>();
- PackageManager pm = context.getPackageManager();
+ PackageManager pm = mContext.getPackageManager();
// Only apps installed under the primary user of the device can be scorers.
// TODO: http://b/23422763
List<ResolveInfo> receivers =
@@ -179,10 +182,10 @@ public final class NetworkScorerAppManager {
* selected) or if the previously-set scorer is no longer a valid scorer app (e.g. because
* it was disabled or uninstalled).
*/
- public static NetworkScorerAppData getActiveScorer(Context context) {
- String scorerPackage = Settings.Global.getString(context.getContentResolver(),
+ public NetworkScorerAppData getActiveScorer() {
+ String scorerPackage = Settings.Global.getString(mContext.getContentResolver(),
Settings.Global.NETWORK_SCORER_APP);
- return getScorer(context, scorerPackage);
+ return getScorer(scorerPackage);
}
/**
@@ -190,13 +193,12 @@ public final class NetworkScorerAppManager {
*
* <p>The caller must have permission to write to {@link android.provider.Settings.Global}.
*
- * @param context the context of the calling application
* @param packageName the packageName of the new scorer to use. If null, scoring will be
* disabled. Otherwise, the scorer will only be set if it is a valid scorer application.
* @return true if the scorer was changed, or false if the package is not a valid scorer.
*/
- public static boolean setActiveScorer(Context context, String packageName) {
- String oldPackageName = Settings.Global.getString(context.getContentResolver(),
+ public boolean setActiveScorer(String packageName) {
+ String oldPackageName = Settings.Global.getString(mContext.getContentResolver(),
Settings.Global.NETWORK_SCORER_APP);
if (TextUtils.equals(oldPackageName, packageName)) {
// No change.
@@ -206,13 +208,13 @@ public final class NetworkScorerAppManager {
Log.i(TAG, "Changing network scorer from " + oldPackageName + " to " + packageName);
if (packageName == null) {
- Settings.Global.putString(context.getContentResolver(),
+ Settings.Global.putString(mContext.getContentResolver(),
Settings.Global.NETWORK_SCORER_APP, null);
return true;
} else {
// We only make the change if the new package is valid.
- if (getScorer(context, packageName) != null) {
- Settings.Global.putString(context.getContentResolver(),
+ if (getScorer(packageName) != null) {
+ Settings.Global.putString(mContext.getContentResolver(),
Settings.Global.NETWORK_SCORER_APP, packageName);
return true;
} else {
@@ -223,8 +225,8 @@ public final class NetworkScorerAppManager {
}
/** Determine whether the application with the given UID is the enabled scorer. */
- public static boolean isCallerActiveScorer(Context context, int callingUid) {
- NetworkScorerAppData defaultApp = getActiveScorer(context);
+ public boolean isCallerActiveScorer(int callingUid) {
+ NetworkScorerAppData defaultApp = getActiveScorer();
if (defaultApp == null) {
return false;
}
@@ -233,16 +235,16 @@ public final class NetworkScorerAppManager {
}
// To be extra safe, ensure the caller holds the SCORE_NETWORKS permission. It always
// should, since it couldn't become the active scorer otherwise, but this can't hurt.
- return context.checkCallingPermission(Manifest.permission.SCORE_NETWORKS) ==
+ return mContext.checkCallingPermission(Manifest.permission.SCORE_NETWORKS) ==
PackageManager.PERMISSION_GRANTED;
}
/** Returns the {@link NetworkScorerAppData} for the given app, or null if it's not a scorer. */
- public static NetworkScorerAppData getScorer(Context context, String packageName) {
+ public NetworkScorerAppData getScorer(String packageName) {
if (TextUtils.isEmpty(packageName)) {
return null;
}
- Collection<NetworkScorerAppData> applications = getAllValidScorers(context);
+ Collection<NetworkScorerAppData> applications = getAllValidScorers();
for (NetworkScorerAppData app : applications) {
if (packageName.equals(app.mPackageName)) {
return app;
diff --git a/core/java/android/os/IProxyFileDescriptorCallback.java b/core/java/android/os/IProxyFileDescriptorCallback.java
new file mode 100644
index 000000000000..e41e19422a27
--- /dev/null
+++ b/core/java/android/os/IProxyFileDescriptorCallback.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.os;
+
+import android.system.ErrnoException;
+
+/**
+ * Callback that handles file system requests from ProxyFileDescriptor.
+ * @hide
+ */
+public interface IProxyFileDescriptorCallback {
+ /**
+ * Returns size of bytes provided by the file descriptor.
+ * @return Size of bytes
+ * @throws ErrnoException
+ */
+ long onGetSize() throws ErrnoException;
+
+ /**
+ * Provides bytes read from file descriptor.
+ * It needs to return exact requested size of bytes unless it reaches file end.
+ * @param offset Where to read bytes from.
+ * @param size Size for read bytes.
+ * @param data Byte array to store read bytes.
+ * @return Size of bytes returned by the function.
+ * @throws ErrnoException
+ */
+ int onRead(long offset, int size, byte[] data) throws ErrnoException;
+
+ /**
+ * Handles bytes written to file descriptor.
+ * @param offset Where to write bytes to.
+ * @param size Size for write bytes.
+ * @param data Byte array to be written to somewhere.
+ * @return Size of bytes processed by the function.
+ * @throws ErrnoException
+ */
+ int onWrite(long offset, int size, byte[] data) throws ErrnoException;
+
+ /**
+ * Processes fsync request.
+ * @throws ErrnoException
+ */
+ void onFsync() throws ErrnoException;
+}
diff --git a/core/java/android/service/notification/StatusBarNotification.java b/core/java/android/service/notification/StatusBarNotification.java
index dfb6b8639912..b0b206566a43 100644
--- a/core/java/android/service/notification/StatusBarNotification.java
+++ b/core/java/android/service/notification/StatusBarNotification.java
@@ -349,7 +349,8 @@ public class StatusBarNotification implements Parcelable {
if (mContext == null) {
try {
ApplicationInfo ai = context.getPackageManager()
- .getApplicationInfo(pkg, PackageManager.GET_UNINSTALLED_PACKAGES);
+ .getApplicationInfoAsUser(pkg, PackageManager.MATCH_UNINSTALLED_PACKAGES,
+ getUserId());
mContext = context.createApplicationContext(ai,
Context.CONTEXT_RESTRICTED);
} catch (PackageManager.NameNotFoundException e) {
diff --git a/core/java/android/service/persistentdata/PersistentDataBlockManager.java b/core/java/android/service/persistentdata/PersistentDataBlockManager.java
index 0f92ed04a457..8e8c019e6398 100644
--- a/core/java/android/service/persistentdata/PersistentDataBlockManager.java
+++ b/core/java/android/service/persistentdata/PersistentDataBlockManager.java
@@ -79,6 +79,9 @@ public class PersistentDataBlockManager {
* Returns the number of bytes written or -1 on error. If the block is too big
* to fit on the partition, returns -MAX_BLOCK_SIZE.
*
+ * {@link #wipe} will block any further {@link #write} operation until reboot,
+ * in which case -1 will be returned.
+ *
* @param data the data to write
*/
public int write(byte[] data) {
@@ -129,6 +132,8 @@ public class PersistentDataBlockManager {
/**
* Zeroes the previously written block in its entirety. Calling this method
* will erase all data written to the persistent data partition.
+ * It will also prevent any further {@link #write} operation until reboot,
+ * in order to prevent a potential race condition. See b/30352311.
*/
public void wipe() {
try {
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 84d7548363d1..f9a03c09d6bc 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -4194,6 +4194,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
int endPadding = UNDEFINED_PADDING;
int padding = -1;
+ int paddingHorizontal = -1;
+ int paddingVertical = -1;
int viewFlagValues = 0;
int viewFlagMasks = 0;
@@ -4240,6 +4242,16 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
leftPaddingDefined = true;
rightPaddingDefined = true;
break;
+ case com.android.internal.R.styleable.View_paddingHorizontal:
+ paddingHorizontal = a.getDimensionPixelSize(attr, -1);
+ mUserPaddingLeftInitial = paddingHorizontal;
+ mUserPaddingRightInitial = paddingHorizontal;
+ leftPaddingDefined = true;
+ rightPaddingDefined = true;
+ break;
+ case com.android.internal.R.styleable.View_paddingVertical:
+ paddingVertical = a.getDimensionPixelSize(attr, -1);
+ break;
case com.android.internal.R.styleable.View_paddingLeft:
leftPadding = a.getDimensionPixelSize(attr, -1);
mUserPaddingLeftInitial = leftPadding;
@@ -4647,6 +4659,17 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
bottomPadding = padding;
mUserPaddingLeftInitial = padding;
mUserPaddingRightInitial = padding;
+ } else {
+ if (paddingHorizontal >= 0) {
+ leftPadding = paddingHorizontal;
+ rightPadding = paddingHorizontal;
+ mUserPaddingLeftInitial = paddingHorizontal;
+ mUserPaddingRightInitial = paddingHorizontal;
+ }
+ if (paddingVertical >= 0) {
+ topPadding = paddingVertical;
+ bottomPadding = paddingVertical;
+ }
}
if (isRtlCompatibilityMode()) {
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index c0191ce0b791..0f8200d794ff 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -7357,34 +7357,48 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
rightMargin= margin;
bottomMargin = margin;
} else {
- leftMargin = a.getDimensionPixelSize(
- R.styleable.ViewGroup_MarginLayout_layout_marginLeft,
- UNDEFINED_MARGIN);
- if (leftMargin == UNDEFINED_MARGIN) {
- mMarginFlags |= LEFT_MARGIN_UNDEFINED_MASK;
- leftMargin = DEFAULT_MARGIN_RESOLVED;
- }
- rightMargin = a.getDimensionPixelSize(
- R.styleable.ViewGroup_MarginLayout_layout_marginRight,
- UNDEFINED_MARGIN);
- if (rightMargin == UNDEFINED_MARGIN) {
- mMarginFlags |= RIGHT_MARGIN_UNDEFINED_MASK;
- rightMargin = DEFAULT_MARGIN_RESOLVED;
+ int horizontalMargin = a.getDimensionPixelSize(
+ R.styleable.ViewGroup_MarginLayout_layout_marginHorizontal, -1);
+ int verticalMargin = a.getDimensionPixelSize(
+ R.styleable.ViewGroup_MarginLayout_layout_marginVertical, -1);
+
+ if (horizontalMargin >= 0) {
+ leftMargin = horizontalMargin;
+ rightMargin = horizontalMargin;
+ } else {
+ leftMargin = a.getDimensionPixelSize(
+ R.styleable.ViewGroup_MarginLayout_layout_marginLeft,
+ UNDEFINED_MARGIN);
+ if (leftMargin == UNDEFINED_MARGIN) {
+ mMarginFlags |= LEFT_MARGIN_UNDEFINED_MASK;
+ leftMargin = DEFAULT_MARGIN_RESOLVED;
+ }
+ rightMargin = a.getDimensionPixelSize(
+ R.styleable.ViewGroup_MarginLayout_layout_marginRight,
+ UNDEFINED_MARGIN);
+ if (rightMargin == UNDEFINED_MARGIN) {
+ mMarginFlags |= RIGHT_MARGIN_UNDEFINED_MASK;
+ rightMargin = DEFAULT_MARGIN_RESOLVED;
+ }
+ startMargin = a.getDimensionPixelSize(
+ R.styleable.ViewGroup_MarginLayout_layout_marginStart,
+ DEFAULT_MARGIN_RELATIVE);
+ endMargin = a.getDimensionPixelSize(
+ R.styleable.ViewGroup_MarginLayout_layout_marginEnd,
+ DEFAULT_MARGIN_RELATIVE);
}
- topMargin = a.getDimensionPixelSize(
- R.styleable.ViewGroup_MarginLayout_layout_marginTop,
- DEFAULT_MARGIN_RESOLVED);
- bottomMargin = a.getDimensionPixelSize(
- R.styleable.ViewGroup_MarginLayout_layout_marginBottom,
- DEFAULT_MARGIN_RESOLVED);
-
- startMargin = a.getDimensionPixelSize(
- R.styleable.ViewGroup_MarginLayout_layout_marginStart,
- DEFAULT_MARGIN_RELATIVE);
- endMargin = a.getDimensionPixelSize(
- R.styleable.ViewGroup_MarginLayout_layout_marginEnd,
- DEFAULT_MARGIN_RELATIVE);
+ if (verticalMargin >= 0) {
+ topMargin = verticalMargin;
+ bottomMargin = verticalMargin;
+ } else {
+ topMargin = a.getDimensionPixelSize(
+ R.styleable.ViewGroup_MarginLayout_layout_marginTop,
+ DEFAULT_MARGIN_RESOLVED);
+ bottomMargin = a.getDimensionPixelSize(
+ R.styleable.ViewGroup_MarginLayout_layout_marginBottom,
+ DEFAULT_MARGIN_RESOLVED);
+ }
if (isMarginRelative()) {
mMarginFlags |= NEED_RESOLUTION_MASK;
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index 3171019e1a0e..2f55fc9ed951 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -482,6 +482,16 @@ public interface WindowManagerPolicy {
*/
public void switchInputMethod(boolean forwardDirection);
+ /**
+ * Returns the visibility of the current input method window (false if there is none).
+ */
+ public boolean isInputMethodWindowVisible();
+
+ /**
+ * Hides the current input method, if visible.
+ */
+ public void hideCurrentInputMethod();
+
public void shutdown(boolean confirm);
public void reboot(boolean confirm);
public void rebootSafeMode(boolean confirm);
diff --git a/core/java/com/android/internal/content/PackageHelper.java b/core/java/com/android/internal/content/PackageHelper.java
index a3134b3bc29b..98d87d349de7 100644
--- a/core/java/com/android/internal/content/PackageHelper.java
+++ b/core/java/com/android/internal/content/PackageHelper.java
@@ -355,7 +355,7 @@ public class PackageHelper {
ApplicationInfo existingInfo = null;
try {
existingInfo = context.getPackageManager().getApplicationInfo(packageName,
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
} catch (NameNotFoundException ignored) {
}
@@ -445,7 +445,7 @@ public class PackageHelper {
ApplicationInfo existingInfo = null;
try {
existingInfo = context.getPackageManager().getApplicationInfo(packageName,
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
} catch (NameNotFoundException ignored) {
}
diff --git a/core/java/com/android/internal/os/FuseAppLoop.java b/core/java/com/android/internal/os/FuseAppLoop.java
new file mode 100644
index 000000000000..34253ce96a06
--- /dev/null
+++ b/core/java/com/android/internal/os/FuseAppLoop.java
@@ -0,0 +1,222 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.os;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.os.IProxyFileDescriptorCallback;
+import android.os.ParcelFileDescriptor;
+import android.system.ErrnoException;
+import android.system.OsConstants;
+import android.util.Log;
+import android.util.SparseArray;
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.Preconditions;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+public class FuseAppLoop {
+ private static final String TAG = "FuseAppLoop";
+ private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
+ public static final int ROOT_INODE = 1;
+ private static final int MIN_INODE = 2;
+
+ private final Object mLock = new Object();
+ private final File mParent;
+
+ @GuardedBy("mLock")
+ private final SparseArray<CallbackEntry> mCallbackMap = new SparseArray<>();
+
+ @GuardedBy("mLock")
+ private boolean mActive = true;
+
+ /**
+ * Sequential number can be used as file name and inode in AppFuse.
+ * 0 is regarded as an error, 1 is mount point. So we start the number from 2.
+ */
+ @GuardedBy("mLock")
+ private int mNextInode = MIN_INODE;
+
+ private FuseAppLoop(@NonNull File parent) {
+ mParent = parent;
+ }
+
+ public static @NonNull FuseAppLoop open(
+ @NonNull File parent, @NonNull ParcelFileDescriptor fd) {
+ Preconditions.checkNotNull(parent);
+ Preconditions.checkNotNull(fd);
+ final FuseAppLoop bridge = new FuseAppLoop(parent);
+ final int rawFd = fd.detachFd();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ bridge.native_start_loop(rawFd);
+ }
+ }, TAG).start();
+ return bridge;
+ }
+
+ public @NonNull ParcelFileDescriptor openFile(int mode, IProxyFileDescriptorCallback callback)
+ throws UnmountedException, IOException {
+ int id;
+ synchronized (mLock) {
+ if (!mActive) {
+ throw new UnmountedException();
+ }
+ if (mCallbackMap.size() >= Integer.MAX_VALUE - MIN_INODE) {
+ throw new IOException("Too many opened files.");
+ }
+ while (true) {
+ id = mNextInode;
+ mNextInode++;
+ if (mNextInode < 0) {
+ mNextInode = MIN_INODE;
+ }
+ if (mCallbackMap.get(id) == null) {
+ break;
+ }
+ }
+
+ // Register callback after we succeed to create pfd.
+ mCallbackMap.put(id, new CallbackEntry(callback));
+ }
+ try {
+ return ParcelFileDescriptor.open(new File(mParent, String.valueOf(id)), mode);
+ } catch (FileNotFoundException error) {
+ synchronized (mLock) {
+ mCallbackMap.remove(id);
+ }
+ throw error;
+ }
+ }
+
+ public @Nullable File getMountPoint() {
+ synchronized (mLock) {
+ return mActive ? mParent : null;
+ }
+ }
+
+ private CallbackEntry getCallbackEntryOrThrowLocked(long inode) throws ErrnoException {
+ final CallbackEntry entry = mCallbackMap.get(checkInode(inode));
+ if (entry != null) {
+ return entry;
+ } else {
+ throw new ErrnoException("getCallbackEntry", OsConstants.ENOENT);
+ }
+ }
+
+ // Called by JNI.
+ @SuppressWarnings("unused")
+ private long onGetSize(long inode) {
+ synchronized(mLock) {
+ try {
+ return getCallbackEntryOrThrowLocked(inode).callback.onGetSize();
+ } catch (ErrnoException exp) {
+ return -exp.errno;
+ }
+ }
+ }
+
+ // Called by JNI.
+ @SuppressWarnings("unused")
+ private int onOpen(long inode) {
+ synchronized(mLock) {
+ try {
+ final CallbackEntry entry = getCallbackEntryOrThrowLocked(inode);
+ if (entry.opened) {
+ throw new ErrnoException("onOpen", OsConstants.EMFILE);
+ }
+ entry.opened = true;
+ // Use inode as file handle. It's OK because AppFuse does not allow to open the same
+ // file twice.
+ return (int) inode;
+ } catch (ErrnoException exp) {
+ return -exp.errno;
+ }
+ }
+ }
+
+ // Called by JNI.
+ @SuppressWarnings("unused")
+ private int onFsync(long inode) {
+ synchronized(mLock) {
+ try {
+ getCallbackEntryOrThrowLocked(inode).callback.onFsync();
+ return 0;
+ } catch (ErrnoException exp) {
+ return -exp.errno;
+ }
+ }
+ }
+
+ // Called by JNI.
+ @SuppressWarnings("unused")
+ private int onRelease(long inode) {
+ synchronized(mLock) {
+ mCallbackMap.remove(checkInode(inode));
+ if (mCallbackMap.size() == 0) {
+ mActive = false;
+ return -1;
+ }
+ return 0;
+ }
+ }
+
+ // Called by JNI.
+ @SuppressWarnings("unused")
+ private int onRead(long inode, long offset, int size, byte[] bytes) {
+ synchronized(mLock) {
+ try {
+ return getCallbackEntryOrThrowLocked(inode).callback.onRead(offset, size, bytes);
+ } catch (ErrnoException exp) {
+ return -exp.errno;
+ }
+ }
+ }
+
+ // Called by JNI.
+ @SuppressWarnings("unused")
+ private int onWrite(long inode, long offset, int size, byte[] bytes) {
+ synchronized(mLock) {
+ try {
+ return getCallbackEntryOrThrowLocked(inode).callback.onWrite(offset, size, bytes);
+ } catch (ErrnoException exp) {
+ return -exp.errno;
+ }
+ }
+ }
+
+ native boolean native_start_loop(int fd);
+
+ private static int checkInode(long inode) {
+ Preconditions.checkArgumentInRange(inode, MIN_INODE, Integer.MAX_VALUE, "checkInode");
+ return (int) inode;
+ }
+
+ public static class UnmountedException extends Exception {}
+
+ private static class CallbackEntry {
+ final IProxyFileDescriptorCallback callback;
+ boolean opened;
+ CallbackEntry(IProxyFileDescriptorCallback callback) {
+ Preconditions.checkNotNull(callback);
+ this.callback = callback;
+ }
+ }
+}
diff --git a/core/jni/Android.mk b/core/jni/Android.mk
index a4e957638406..be2e404820bc 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -183,6 +183,7 @@ LOCAL_SRC_FILES:= \
android_content_res_Configuration.cpp \
android_animation_PropertyValuesHolder.cpp \
com_android_internal_net_NetworkStatsFactory.cpp \
+ com_android_internal_os_FuseAppLoop.cpp \
com_android_internal_os_PathClassLoaderFactory.cpp \
com_android_internal_os_Zygote.cpp \
com_android_internal_util_VirtualRefBasePtr.cpp \
@@ -201,6 +202,7 @@ LOCAL_C_INCLUDES += \
$(TOP)/frameworks/base/media/jni \
$(TOP)/system/core/base/include \
$(TOP)/system/core/include \
+ $(TOP)/system/core/libappfuse/include \
$(TOP)/system/media/camera/include \
$(TOP)/system/netd/include \
external/giflib \
@@ -230,6 +232,7 @@ LOCAL_STATIC_LIBRARIES := \
LOCAL_SHARED_LIBRARIES := \
libmemtrack \
libandroidfw \
+ libappfuse \
libbase \
libexpat \
libnativehelper \
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index cdaa4dce52eb..1f810ac203ad 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -201,6 +201,7 @@ extern int register_android_content_res_Configuration(JNIEnv* env);
extern int register_android_animation_PropertyValuesHolder(JNIEnv *env);
extern int register_com_android_internal_content_NativeLibraryHelper(JNIEnv *env);
extern int register_com_android_internal_net_NetworkStatsFactory(JNIEnv *env);
+extern int register_com_android_internal_os_FuseAppLoop(JNIEnv* env);
extern int register_com_android_internal_os_PathClassLoaderFactory(JNIEnv* env);
extern int register_com_android_internal_os_Zygote(JNIEnv *env);
extern int register_com_android_internal_util_VirtualRefBasePtr(JNIEnv *env);
@@ -1419,7 +1420,7 @@ static const RegJNIRec gRegJNI[] = {
REG_JNI(register_android_animation_PropertyValuesHolder),
REG_JNI(register_com_android_internal_content_NativeLibraryHelper),
REG_JNI(register_com_android_internal_net_NetworkStatsFactory),
-
+ REG_JNI(register_com_android_internal_os_FuseAppLoop),
};
/*
diff --git a/core/jni/com_android_internal_os_FuseAppLoop.cpp b/core/jni/com_android_internal_os_FuseAppLoop.cpp
new file mode 100644
index 000000000000..92a6934b09a4
--- /dev/null
+++ b/core/jni/com_android_internal_os_FuseAppLoop.cpp
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "FuseAppLoopJNI"
+#define LOG_NDEBUG 0
+
+#include <stdlib.h>
+#include <sys/stat.h>
+
+#include <android_runtime/Log.h>
+#include <android-base/logging.h>
+#include <android-base/unique_fd.h>
+#include <jni.h>
+#include <libappfuse/FuseAppLoop.h>
+#include <nativehelper/ScopedLocalRef.h>
+
+#include "core_jni_helpers.h"
+
+namespace android {
+
+namespace {
+
+constexpr const char* CLASS_NAME = "com/android/internal/os/FuseAppLoop";
+
+jclass gFuseAppLoopClass;
+jmethodID gOnGetSizeMethod;
+jmethodID gOnOpenMethod;
+jmethodID gOnFsyncMethod;
+jmethodID gOnReleaseMethod;
+jmethodID gOnReadMethod;
+jmethodID gOnWriteMethod;
+
+class Callback : public fuse::FuseAppLoopCallback {
+private:
+ static constexpr size_t kBufferSize = std::max(fuse::kFuseMaxWrite, fuse::kFuseMaxRead);
+ static_assert(kBufferSize <= INT32_MAX, "kBufferSize should be fit in int32_t.");
+
+ JNIEnv* const mEnv;
+ jobject const mSelf;
+ ScopedLocalRef<jbyteArray> mJniBuffer;
+ bool mActive;
+
+ template <typename T>
+ T checkException(T result) const {
+ if (mEnv->ExceptionCheck()) {
+ LOGE_EX(mEnv, nullptr);
+ mEnv->ExceptionClear();
+ return -EIO;
+ }
+ return result;
+ }
+
+public:
+ Callback(JNIEnv* env, jobject self) :
+ mEnv(env),
+ mSelf(self),
+ mJniBuffer(env, nullptr),
+ mActive(true) {}
+
+ bool Init() {
+ mJniBuffer.reset(mEnv->NewByteArray(kBufferSize));
+ return mJniBuffer.get();
+ }
+
+ bool IsActive() override {
+ return mActive;
+ }
+
+ int64_t OnGetSize(uint64_t inode) override {
+ return checkException(mEnv->CallLongMethod(mSelf, gOnGetSizeMethod, inode));
+ }
+
+ int32_t OnOpen(uint64_t inode) override {
+ return checkException(mEnv->CallIntMethod(mSelf, gOnOpenMethod, inode));
+ }
+
+ int32_t OnFsync(uint64_t inode) override {
+ return checkException(mEnv->CallIntMethod(mSelf, gOnFsyncMethod, inode));
+ }
+
+ int32_t OnRelease(uint64_t inode) override {
+ if (checkException(mEnv->CallIntMethod(mSelf, gOnReleaseMethod, inode)) == -1) {
+ mActive = false;
+ }
+ return fuse::kFuseSuccess;
+ }
+
+ int32_t OnRead(uint64_t inode, uint64_t offset, uint32_t size, void* buffer) override {
+ CHECK_LE(size, static_cast<uint32_t>(kBufferSize));
+ const int32_t result = checkException(mEnv->CallIntMethod(
+ mSelf, gOnReadMethod, inode, offset, size, mJniBuffer.get()));
+ if (result <= 0) {
+ return result;
+ }
+ if (result > static_cast<int32_t>(size)) {
+ LOG(ERROR) << "Returned size is too large.";
+ return -EIO;
+ }
+
+ mEnv->GetByteArrayRegion(mJniBuffer.get(), 0, result, static_cast<jbyte*>(buffer));
+ CHECK(!mEnv->ExceptionCheck());
+
+ return checkException(result);
+ }
+
+ int32_t OnWrite(uint64_t inode, uint64_t offset, uint32_t size, const void* buffer) override {
+ CHECK_LE(size, static_cast<uint32_t>(kBufferSize));
+
+ mEnv->SetByteArrayRegion(mJniBuffer.get(), 0, size, static_cast<const jbyte*>(buffer));
+ CHECK(!mEnv->ExceptionCheck());
+
+ return checkException(mEnv->CallIntMethod(
+ mSelf, gOnWriteMethod, inode, offset, size, mJniBuffer.get()));
+ }
+};
+
+jboolean com_android_internal_os_FuseAppLoop_start_loop(JNIEnv* env, jobject self, jint jfd) {
+ base::unique_fd fd(jfd);
+ Callback callback(env, self);
+
+ if (!callback.Init()) {
+ LOG(ERROR) << "Failed to init callback";
+ return JNI_FALSE;
+ }
+
+ return fuse::StartFuseAppLoop(fd.release(), &callback);
+}
+
+const JNINativeMethod methods[] = {
+ {
+ "native_start_loop",
+ "(I)Z",
+ (void *) com_android_internal_os_FuseAppLoop_start_loop
+ }
+};
+
+} // namespace
+
+int register_com_android_internal_os_FuseAppLoop(JNIEnv* env) {
+ gFuseAppLoopClass = MakeGlobalRefOrDie(env, FindClassOrDie(env, CLASS_NAME));
+ gOnGetSizeMethod = GetMethodIDOrDie(env, gFuseAppLoopClass, "onGetSize", "(J)J");
+ gOnOpenMethod = GetMethodIDOrDie(env, gFuseAppLoopClass, "onOpen", "(J)I");
+ gOnFsyncMethod = GetMethodIDOrDie(env, gFuseAppLoopClass, "onFsync", "(J)I");
+ gOnReleaseMethod = GetMethodIDOrDie(env, gFuseAppLoopClass, "onRelease", "(J)I");
+ gOnReadMethod = GetMethodIDOrDie(env, gFuseAppLoopClass, "onRead", "(JJI[B)I");
+ gOnWriteMethod = GetMethodIDOrDie(env, gFuseAppLoopClass, "onWrite", "(JJI[B)I");
+ RegisterMethodsOrDie(env, CLASS_NAME, methods, NELEM(methods));
+ return 0;
+}
+
+} // namespace android
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 94f7bec822d2..6f33f2787340 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -769,6 +769,15 @@
android:permissionGroup="android.permission-group.PHONE"
android:label="@string/permlab_readPhoneState"
android:description="@string/permdesc_readPhoneState"
+ android:protectionLevel="dangerous" />
+
+ <!-- Allows read access to the device's phone number. This is a subset of the capabilities
+ granted by {@link #READ_PHONE_STATE} but is exposed to ephemeral applications.
+ <p>Protection level: dangerous-->
+ <permission android:name="android.permission.READ_PHONE_NUMBER"
+ android:permissionGroup="android.permission-group.PHONE"
+ android:label="@string/permlab_readPhoneNumber"
+ android:description="@string/permdesc_readPhoneNumber"
android:protectionLevel="dangerous|ephemeral" />
<!-- Allows an application to initiate a phone call without going through
diff --git a/core/res/res/anim/slide_in_enter_micro.xml b/core/res/res/anim/slide_in_enter_micro.xml
index c70874c626b8..6e7df4fbef64 100644
--- a/core/res/res/anim/slide_in_enter_micro.xml
+++ b/core/res/res/anim/slide_in_enter_micro.xml
@@ -19,7 +19,7 @@
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:zAdjustment="top">
- <translate android:fromYDelta="5%p" android:toYDelta="0"
+ <translate android:fromXDelta="5%p" android:toXDelta="0"
android:duration="417"
android:interpolator="@android:interpolator/launch_task_micro_ydelta" />
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
diff --git a/core/res/res/anim/slide_out_micro.xml b/core/res/res/anim/slide_out_micro.xml
index c6470935e5d2..cccf6972ba87 100644
--- a/core/res/res/anim/slide_out_micro.xml
+++ b/core/res/res/anim/slide_out_micro.xml
@@ -19,8 +19,8 @@
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:zAdjustment="top">
- <translate android:fromYDelta="0" android:toYDelta="5%p"
+ android:zAdjustment="normal">
+ <translate android:fromXDelta="0" android:toXDelta="5%p"
android:duration="250"
android:interpolator="@android:interpolator/fast_out_slow_in"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index b2212f92b18f..a24bce127830 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Mediavolume"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Kennisgewing-volume"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Verstekluitoon"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Verstek (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Geen"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Luitone"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Wekkerklanke"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Kennisgewingsklanke"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Onbekend"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi netwerke beskikbaar</item>
<item quantity="one">Wi-Fi-netwerk beskikbaar</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Kies jaar"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> uitgevee"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Werk-<xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Raak en hou Terug om hierdie skerm te ontspeld."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Program is vasgespeld: Dit mag nie op hierdie toestel ontspeld word nie."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Skerm vasgespeld"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Stel nou terug"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Het <xliff:g id="LABEL">%1$s</xliff:g> gedeaktiveer"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferensie-oproep"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Nutswenk-opspringer"</string>
</resources>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 2b927308adf0..6bab82c2c52a 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"የማህደረ መረጃ ክፍልፍል"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"የማሳወቂያ ክፍልፍል"</string>
<string name="ringtone_default" msgid="3789758980357696936">"ነባሪ የስልክ ላይ ጥሪ"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"ነባሪ (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"ምንም"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"ጥሪ ድምፆች"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"የማንቂያ ድምጾች"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"የማሳወቂያ ድምፆች"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"ያልታወቀ"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">የWi-Fi አውታረ መረቦች አሉ</item>
<item quantity="other">የWi-Fi አውታረ መረቦች አሉ</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"ዓመት ይምረጡ"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ተሰርዟል"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"ስራ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"ይህን ማያ ገጽ ለመንቀል ተመለስን ይንኩትና ያዙት።"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"መተግበሪያ ተሰክቷል፦ በዚህ መሣሪያ ላይ ማላቀቅ አይፈቀድም።"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"ማያ ገጽ ተሰክቷል"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"አሁን ዳግም አስጀምር"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> ተሰናክሏል"</string>
<string name="conference_call" msgid="3751093130790472426">"የስብሰባ ጥሪ"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"የመሣሪያ ጥቆማ ብቅ-ባይ"</string>
</resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index b2835cc19333..7c9baeb7e47d 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -1151,16 +1151,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"مستوى صوت الوسائط"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"مستوى صوت الإشعار"</string>
<string name="ringtone_default" msgid="3789758980357696936">"نغمة الرنين الافتراضية"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"الافتراضية (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"لا شيء"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"نغمات الرنين"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"أصوات التنبيه"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"أصوات الإشعار"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"غير معروف"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="zero">‏لا تتوفر أية شبكات Wi-Fi</item>
<item quantity="two">‏تتوفر شبكتا Wi-Fi</item>
@@ -1672,6 +1668,10 @@
<string name="select_year" msgid="7952052866994196170">"تحديد العام"</string>
<string name="deleted_key" msgid="7659477886625566590">"تم حذف <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> المخصص للعمل"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"لإزالة تثبيت هذه الشاشة، يمكنك لمس زر الرجوع مع الاستمرار."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"التطبيق مقيد: ولا يسمح بإلغاء التقييد على هذا الجهاز."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"تم تثبيت الشاشة"</string>
@@ -1827,6 +1827,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"إعادة التعيين الآن"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"تم تعطيل <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"مكالمة جماعية"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"نافذة منبثقة لتلميح"</string>
</resources>
diff --git a/core/res/res/values-az-rAZ/strings.xml b/core/res/res/values-az-rAZ/strings.xml
index 5d09077090b7..11133d11dafe 100644
--- a/core/res/res/values-az-rAZ/strings.xml
+++ b/core/res/res/values-az-rAZ/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Media həcmi"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Bildiriş səsi"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Defolt rinqton"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Defolt (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Heç biri"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Zəng səsləri"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Zəngli saat səsləri"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Bildiriş səsləri"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Naməlum"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Əlçatan Wi-Fi şəbəkələri</item>
<item quantity="one">Əlçatan Wi-Fi şəbəkəsi</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"İl seçin"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> silindi"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"İş <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Sancağı götürmək üçün Geri düyməsinə toxunun və saxlayın."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Tətbiq sancılıb: Açmağa bu cihazda icazə verilmir."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Screen pinned"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"İndi sıfırlayın"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> deaktiv edildi"</string>
<string name="conference_call" msgid="3751093130790472426">"Konfrans Zəngi"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Tooltip Popap"</string>
</resources>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index b65ed4d705dd..d2799c43a5b6 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -1082,16 +1082,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Jačina zvuka medija"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Jačina zvuka obaveštenja"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Podrazumevani zvuk zvona"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Podrazumevano (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Bez zvuka"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Zvukovi zvona"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Zvuci alarma"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Zvuci obaveštenja"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Nepoznato"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Wi-Fi mreže su dostupne</item>
<item quantity="few">Wi-Fi mreže su dostupne</item>
@@ -1591,6 +1587,10 @@
<string name="select_year" msgid="7952052866994196170">"Izaberite godinu"</string>
<string name="deleted_key" msgid="7659477886625566590">"Izbrisali ste <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> na poslu"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Da biste otkačili ovaj ekran, dodirnite i zadržite Nazad."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Aplikacija je zakačena: otkačinjanje nije dozvoljeno na ovom uređaju."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ekran je zakačen"</string>
@@ -1719,6 +1719,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Resetuj"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Vidžet <xliff:g id="LABEL">%1$s</xliff:g> je onemogućen"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferencijski poziv"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Iskačuće objašnjenje"</string>
</resources>
diff --git a/core/res/res/values-be-rBY/strings.xml b/core/res/res/values-be-rBY/strings.xml
index 63359a1ae6d0..a7be24e2f2c6 100644
--- a/core/res/res/values-be-rBY/strings.xml
+++ b/core/res/res/values-be-rBY/strings.xml
@@ -1105,16 +1105,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Гучнасць прайгравальніка"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Гучнасць апавяшчэнняў"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Стандартны рынгтон"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Стандартны (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Няма"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Рынгтоны"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Гукі будзільніка"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Гукі апавяшчэнняў"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Невядома"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">сетка Wi-Fi даступная</item>
<item quantity="few">сеткі Wi-Fi даступныя</item>
@@ -1618,6 +1614,10 @@
<string name="select_year" msgid="7952052866994196170">"Выберыце год"</string>
<string name="deleted_key" msgid="7659477886625566590">"Выдалена: <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (праца)"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Каб адмацаваць гэты экран, дакраніцеся і ўтрымлівайце кнопку \"Назад\"."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Праграма замацавана: адмацаванне на гэтай прыладзе не дапускаецца."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Экран замацаваны"</string>
@@ -1755,6 +1755,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Выканаць скід"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Адключаны <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Канферэнц-выклік"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Усплывальная падказка"</string>
</resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index a818b7ec03aa..1900b074bf28 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Сила на звука"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Сила на звука при известие"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Стандартна мелодия"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"По подразбиране (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Без"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Мелодии"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Звуци на будилника"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Звуци на известията"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Няма информация"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Има достъпни Wi-Fi мрежи</item>
<item quantity="one">Има достъпна Wi-Fi мрежа</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Избиране на година"</string>
<string name="deleted_key" msgid="7659477886625566590">"Изтрихте <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> за работа"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"За да освободите този екран, докоснете и задръжте бутона за връщане назад."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Приложението е фиксирано. Освобождаването му не е разрешено на това устройство."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Екранът е фиксиран"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Нулиране сега"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g>: Деактивирано"</string>
<string name="conference_call" msgid="3751093130790472426">"Конферентно обаждане"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Изскачащ прозорец с подсказка"</string>
</resources>
diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml
index 20343af4c0b2..bdbea68bde7d 100644
--- a/core/res/res/values-bn-rBD/strings.xml
+++ b/core/res/res/values-bn-rBD/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"বছর নির্বাচন করুন"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> মুছে ফেলা হয়েছে"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"কর্মক্ষেত্র <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"এই স্ক্রীনটিকে আনপিন করতে, \'ফিরুন\' স্পর্শ করুন এবং ধরে রাখুন৷"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"অ্যাপ্লিকেশান পিন করা আছে: এই ডিভাইস এটিকে পিনমুক্ত করা মঞ্জুরিপ্রাপ্ত নয়৷"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"স্ক্রীন পিন করা হয়েছে"</string>
diff --git a/core/res/res/values-bs-rBA/strings.xml b/core/res/res/values-bs-rBA/strings.xml
index 205bffb3f0b0..f62dac7516fe 100644
--- a/core/res/res/values-bs-rBA/strings.xml
+++ b/core/res/res/values-bs-rBA/strings.xml
@@ -551,35 +551,35 @@
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Kuća"</item>
<item msgid="869923650527136615">"Mobilni"</item>
- <item msgid="7897544654242874543">"Poslovni"</item>
+ <item msgid="7897544654242874543">"Posao"</item>
<item msgid="1103601433382158155">"Poslovni faks"</item>
<item msgid="1735177144948329370">"Kućni faks"</item>
<item msgid="603878674477207394">"Pejdžer"</item>
<item msgid="1650824275177931637">"Ostalo"</item>
- <item msgid="9192514806975898961">"Dodatno"</item>
+ <item msgid="9192514806975898961">"Prilagođeno"</item>
</string-array>
<string-array name="emailAddressTypes">
<item msgid="8073994352956129127">"Kućni"</item>
- <item msgid="7084237356602625604">"Poslovni"</item>
- <item msgid="1112044410659011023">"Ostali"</item>
- <item msgid="2374913952870110618">"Dodatni"</item>
+ <item msgid="7084237356602625604">"Posao"</item>
+ <item msgid="1112044410659011023">"Ostalo"</item>
+ <item msgid="2374913952870110618">"Prilagođeno"</item>
</string-array>
<string-array name="postalAddressTypes">
<item msgid="6880257626740047286">"Kuća"</item>
<item msgid="5629153956045109251">"Posao"</item>
<item msgid="4966604264500343469">"Ostalo"</item>
- <item msgid="4932682847595299369">"Dodatno"</item>
+ <item msgid="4932682847595299369">"Prilagođeno"</item>
</string-array>
<string-array name="imAddressTypes">
<item msgid="1738585194601476694">"Kućni"</item>
- <item msgid="1359644565647383708">"Poslovni"</item>
- <item msgid="7868549401053615677">"Ostali"</item>
- <item msgid="3145118944639869809">"Dodatni"</item>
+ <item msgid="1359644565647383708">"Posao"</item>
+ <item msgid="7868549401053615677">"Ostalo"</item>
+ <item msgid="3145118944639869809">"Prilagođeno"</item>
</string-array>
<string-array name="organizationTypes">
<item msgid="7546335612189115615">"Posao"</item>
<item msgid="4378074129049520373">"Ostalo"</item>
- <item msgid="3455047468583965104">"Dodatno"</item>
+ <item msgid="3455047468583965104">"Prilagođeno"</item>
</string-array>
<string-array name="imProtocols">
<item msgid="8595261363518459565">"AIM"</item>
@@ -600,15 +600,15 @@
<string name="phoneTypePager" msgid="7582359955394921732">"Pejdžer"</string>
<string name="phoneTypeOther" msgid="1544425847868765990">"Ostalo"</string>
<string name="phoneTypeCallback" msgid="2712175203065678206">"Povratni poziv"</string>
- <string name="phoneTypeCar" msgid="8738360689616716982">"Auto"</string>
- <string name="phoneTypeCompanyMain" msgid="540434356461478916">"Glavni broj kompanije"</string>
+ <string name="phoneTypeCar" msgid="8738360689616716982">"Automobil"</string>
+ <string name="phoneTypeCompanyMain" msgid="540434356461478916">"Poslovni glavni"</string>
<string name="phoneTypeIsdn" msgid="8022453193171370337">"ISDN"</string>
<string name="phoneTypeMain" msgid="6766137010628326916">"Glavni"</string>
<string name="phoneTypeOtherFax" msgid="8587657145072446565">"Drugi faks"</string>
<string name="phoneTypeRadio" msgid="4093738079908667513">"Radio"</string>
<string name="phoneTypeTelex" msgid="3367879952476250512">"Teleks"</string>
<string name="phoneTypeTtyTdd" msgid="8606514378585000044">"TTY TDD"</string>
- <string name="phoneTypeWorkMobile" msgid="1311426989184065709">"Posao mobilni"</string>
+ <string name="phoneTypeWorkMobile" msgid="1311426989184065709">"Poslovni mobilni"</string>
<string name="phoneTypeWorkPager" msgid="649938731231157056">"Poslovni pejdžer"</string>
<string name="phoneTypeAssistant" msgid="5596772636128562884">"Pomoćnik"</string>
<string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
@@ -616,10 +616,10 @@
<string name="eventTypeBirthday" msgid="2813379844211390740">"Rođendan"</string>
<string name="eventTypeAnniversary" msgid="3876779744518284000">"Godišnjica"</string>
<string name="eventTypeOther" msgid="7388178939010143077">"Ostalo"</string>
- <string name="emailTypeCustom" msgid="8525960257804213846">"Prilagođeni"</string>
+ <string name="emailTypeCustom" msgid="8525960257804213846">"Prilagođeno"</string>
<string name="emailTypeHome" msgid="449227236140433919">"Kućni"</string>
- <string name="emailTypeWork" msgid="3548058059601149973">"Poslovni"</string>
- <string name="emailTypeOther" msgid="2923008695272639549">"Ostali"</string>
+ <string name="emailTypeWork" msgid="3548058059601149973">"Posao"</string>
+ <string name="emailTypeOther" msgid="2923008695272639549">"Ostalo"</string>
<string name="emailTypeMobile" msgid="119919005321166205">"Mobilni"</string>
<string name="postalTypeCustom" msgid="8903206903060479902">"Prilagođeno"</string>
<string name="postalTypeHome" msgid="8165756977184483097">"Kućna adresa"</string>
@@ -1084,16 +1084,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Jačina zvuka za medijske sadržaje"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Jačina zvuka za obavještenja"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Zadana melodija zvona"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Zadano (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Bez zvuka"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Melodije zvona"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Zvuci alarma"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Zvuci obavještenja"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Nepoznato"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Wi-Fi mreže su dostupne</item>
<item quantity="few">Wi-Fi mreže su dostupne</item>
@@ -1593,6 +1589,10 @@
<string name="select_year" msgid="7952052866994196170">"Odaberite godinu"</string>
<string name="deleted_key" msgid="7659477886625566590">"Broj <xliff:g id="KEY">%1$s</xliff:g> je izbrisan"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Poslovni <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Da biste otkačili ovaj ekran, dodirnite i držite dugme Nazad."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Aplikacija je prikačena. Na ovom uređaju nije dozvoljeno otkačivanje."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ekran je zakačen"</string>
@@ -1721,6 +1721,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Vrati sada na početne postavke"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Onemogućen <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferencijski poziv"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Iskočni prozor sa savjetom u vezi alata"</string>
</resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index a1797cbd7feb..f335d44febb2 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Volum de multimèdia"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Volum de notificació"</string>
<string name="ringtone_default" msgid="3789758980357696936">"So predeterminat"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Predeterminat (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Cap"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Sons"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Sons de l\'alarma"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Sons de notificació"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Desconegut"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Xarxes Wi-Fi disponibles</item>
<item quantity="one">Xarxa Wi-Fi disponible</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Selecciona un any"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> suprimit"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> de la feina"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Toca i mantén premuda l\'opció Enrere per deixar de fixar aquesta pantalla."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"S\'ha fixat l\'aplicació. En aquest dispositiu no es permet anul·lar-ne la fixació."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Pantalla fixada"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Restableix ara"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> s\'ha desactivat"</string>
<string name="conference_call" msgid="3751093130790472426">"Conferència"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Descripció emergent"</string>
</resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 2c8f84381500..0bdd212a9f12 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -1105,16 +1105,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Hlasitost médií"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Hlasitost oznámení"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Výchozí vyzváněcí tón"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Výchozí (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Žádný"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Vyzváněcí tóny"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Zvuky budíku"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Zvuky upozornění"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Neznámé"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="few">K dispozici jsou sítě Wi-Fi</item>
<item quantity="many">K dispozici jsou sítě Wi-Fi</item>
@@ -1618,6 +1614,10 @@
<string name="select_year" msgid="7952052866994196170">"Vyberte rok"</string>
<string name="deleted_key" msgid="7659477886625566590">"Číslice <xliff:g id="KEY">%1$s</xliff:g> byla smazána"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Pracovní <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Chcete-li tuto obrazovku uvolnit, klepněte na tlačítko Zpět a podržte jej."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Aplikace je připnutá: Odepnutí v tomto zařízení není povoleno."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Obrazovka připnuta"</string>
@@ -1755,6 +1755,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Resetovat"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> – zakázáno"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferenční hovor"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Vyskakovací okno s popiskem"</string>
</resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 20b859cdc6c2..f80f5f0e7c04 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Vælg år"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> er slettet"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> – arbejde"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Hvis du vil frigøre dette skærmbillede, skal du trykke på Tilbage og holde fingeren nede."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Appen er fastgjort: Det er ikke tilladt at frigøre den på denne enhed."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Skærmen blev fastgjort"</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index fcad7c2c4ae2..1ceb0ccd2396 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Jahr auswählen"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> gelöscht"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (geschäftlich)"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Um die Fixierung dieses Bildschirms aufzuheben, \"Zurück\" berühren und halten."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Die App ist fixiert. Das Aufheben der Fixierung ist auf diesem Gerät nicht zulässig."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Bildschirm fixiert"</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 2117233a37d9..b9d950358f61 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Ένταση ήχου πολυμέσων"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Ένταση ήχου ειδοποιήσεων"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Προεπιλεγμένος ήχος κλήσης"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Προεπιλογή (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Κανένας"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Ήχοι κλήσης"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Ήχοι ξυπνητηριού"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Ήχοι ειδοποίησης"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Άγνωστο"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Υπάρχουν διαθέσιμα δίκτυα Wi-Fi</item>
<item quantity="one">Υπάρχει διαθέσιμο δίκτυο Wi-Fi</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Επιλογή έτους"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> διαγράφηκε"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Εργασία <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Για να ξεκαρφιτσώσετε αυτήν την οθόνη, αγγίξτε παρατεταμένα \"Επιστροφή\"."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Η εφαρμογή καρφιτσώθηκε: Το ξεκαρφίτσωμα δεν επιτρέπεται σε αυτήν τη συσκευή."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Η οθόνη καρφιτσώθηκε"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Επαναφορά τώρα"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Απενεργοποιημένο <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Κλήση συνδιάσκεψης"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Αναδυόμενο παράθυρο επεξήγησης εργαλείου"</string>
</resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 47be8cf72a94..5bc43e0d92f9 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Media volume"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Notification volume"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Default ringtone"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Default (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"None"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Ringtones"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Alarm Sounds"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Notification Sounds"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Unknown"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi networks available</item>
<item quantity="one">Wi-Fi network available</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Select year"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> deleted"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Work <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"To unpin this screen, touch &amp; hold Back."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"App is pinned: unpinning isn\'t allowed on this device."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Screen pinned"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Reset now"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Disabled <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Conference Call"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Tooltip Pop-up"</string>
</resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 47be8cf72a94..5bc43e0d92f9 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Media volume"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Notification volume"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Default ringtone"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Default (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"None"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Ringtones"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Alarm Sounds"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Notification Sounds"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Unknown"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi networks available</item>
<item quantity="one">Wi-Fi network available</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Select year"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> deleted"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Work <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"To unpin this screen, touch &amp; hold Back."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"App is pinned: unpinning isn\'t allowed on this device."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Screen pinned"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Reset now"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Disabled <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Conference Call"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Tooltip Pop-up"</string>
</resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 47be8cf72a94..5bc43e0d92f9 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Media volume"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Notification volume"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Default ringtone"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Default (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"None"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Ringtones"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Alarm Sounds"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Notification Sounds"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Unknown"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi networks available</item>
<item quantity="one">Wi-Fi network available</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Select year"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> deleted"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Work <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"To unpin this screen, touch &amp; hold Back."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"App is pinned: unpinning isn\'t allowed on this device."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Screen pinned"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Reset now"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Disabled <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Conference Call"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Tooltip Pop-up"</string>
</resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 50c4a67e46a5..cd2c5aa22ef8 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Volumen de los medios"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Volumen de notificación"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Tono predeterminado"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Predeterminado (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Ninguno"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Tonos de llamada"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Sonidos de la alarma"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Sonidos de notificaciones"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Desconocido"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">redes de Wi-Fi disponibles</item>
<item quantity="one">red de Wi-Fi disponible</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Seleccionar año"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> borrado"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> de trabajo"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Para dejar de fijar esta pantalla, mantén presionado Atrás."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"La aplicación está fijada, no se puede anular la fijación en este dispositivo."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Pantalla fija"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Restablecer ahora"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Se inhabilitó <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Conferencia"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Ventana emergente de la información sobre la herramienta"</string>
</resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index a91fc1cf58cb..fe7d1ac1cf69 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Volumen multimedia"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Volumen de notificaciones"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Tono por defecto"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Predeterminado (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Ninguno"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Tonos"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Sonidos de la alarma"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Sonidos de notificaciones"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Desconocido"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Redes Wi-Fi disponibles</item>
<item quantity="one">Red Wi-Fi disponible</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Seleccionar año"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> eliminado"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> de trabajo"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Mantén pulsado el botón Atrás para dejar de fijar esta pantalla."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"La aplicación está fijada: no se puede deshacer la fijación en este dispositivo."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Pantalla fijada"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Restablecer ahora"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> inhabilitado"</string>
<string name="conference_call" msgid="3751093130790472426">"Conferencia"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Descripción emergente"</string>
</resources>
diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml
index dc926d4c5c32..09668cb09728 100644
--- a/core/res/res/values-et-rEE/strings.xml
+++ b/core/res/res/values-et-rEE/strings.xml
@@ -650,7 +650,7 @@
<string name="relationTypeMother" msgid="4578571352962758304">"Ema"</string>
<string name="relationTypeParent" msgid="4755635567562925226">"Vanem"</string>
<string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
- <string name="relationTypeReferredBy" msgid="101573059844135524">"Viitas:"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Soovitaja"</string>
<string name="relationTypeRelative" msgid="1799819930085610271">"Sugulane"</string>
<string name="relationTypeSister" msgid="1735983554479076481">"Õde"</string>
<string name="relationTypeSpouse" msgid="394136939428698117">"Abikaasa"</string>
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Aasta valimine"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> on kustutatud"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Töö <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Ekraani vabastamiseks puudutage pikalt nuppu Tagasi."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Rakendus on kinnitatud: vabastamine pole selles seadmes lubatud."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ekraan on kinnitatud"</string>
diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml
index 190d61ba0b08..2ea4bed74653 100644
--- a/core/res/res/values-eu-rES/strings.xml
+++ b/core/res/res/values-eu-rES/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Euskarriaren bolumena"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Jakinarazpenen bolumena"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Tonu lehenetsia"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Lehenetsia (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Bat ere ez"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Tonuak"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Alarma-soinuak"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Jakinarazpen-soinuak"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Ezezaguna"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi sareak erabilgarri</item>
<item quantity="one">Wi-Fi sarea erabilgarri</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Hautatu urtea"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ezabatu da"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Laneko <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Pantailari aingura kentzeko, eduki sakatuta Atzera botoia."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Aplikazioa ainguratuta dago. Gailu honetan ezin da aingura kendu."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Pantaila ainguratu da"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Berrezarri"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> desgaituta dago"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferentzia-deia"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Aholkudun leiho gainerakorra"</string>
</resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index d1d120f0f160..55e67bc4260a 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"انتخاب سال"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> حذف شد"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> محل کار"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"برای برداشتن پین این صفحه، «برگشت» را لمس کنید و نگه‌ دارید."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"برنامه پین شده است: برداشتن پین در این دستگاه مجاز نیست."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"صفحه پین شد"</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 425b235dbe51..6800fa87cf18 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Median äänenvoimakkuus"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Ilmoituksen äänenvoimakkuus"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Oletussoittoääni"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Oletus (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Ei mitään"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Soittoäänet"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Hälytysäänet"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Ilmoitusäänet"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Tuntematon"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi-verkkoja käytettävissä</item>
<item quantity="one">Wi-Fi-verkko käytettävissä</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Valitse vuosi"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> poistettiin"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (työ)"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Irrota näyttö koskettamalla Takaisin-painiketta pitkään."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Sovellus on kiinnitetty. Irrottaminen ei ole sallittua tällä laitteella."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Näyttö kiinnitetty"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Palauta nyt"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> ei ole käytössä."</string>
<string name="conference_call" msgid="3751093130790472426">"Puhelinneuvottelu"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Työkaluvinkki ponnahdusikkunassa"</string>
</resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 4ba4871e7364..009b9eba6597 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Sélectionnez une année"</string>
<string name="deleted_key" msgid="7659477886625566590">"« <xliff:g id="KEY">%1$s</xliff:g> » a été supprimé"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (travail)"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Pour annuler l\'épinglage de cet écran, maintenez enfoncée la touche Retour."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"L\'application est épinglée : l\'annulation de l\'épinglage n\'est pas autorisée sur cet appareil."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Écran épinglé"</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 3dc8b28fc733..5b21dd40d21e 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Sélectionner une année"</string>
<string name="deleted_key" msgid="7659477886625566590">"\"<xliff:g id="KEY">%1$s</xliff:g>\" supprimé"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (travail)"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Pour annuler l\'épinglage, appuyez de manière prolongée sur \"Retour\"."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"L\'application est épinglée. L\'annulation de l\'épinglage n\'est pas autorisée sur cet appareil."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Écran épinglé."</string>
diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml
index 077f4e0538da..10a76474026d 100644
--- a/core/res/res/values-gl-rES/strings.xml
+++ b/core/res/res/values-gl-rES/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Volume dos elementos multimedia"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Volume das notificacións"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Ton de chamada predeterminado"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Predeterminado (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Ningún"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Tons de chamada"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Sons de alarma"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Sons de notificación"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Descoñecido"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Redes wifi dispoñibles</item>
<item quantity="one">Rede wifi dispoñible</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Seleccionar ano"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> eliminado"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> do traballo"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Para soltar a pantalla, mantén premido Volver."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"A aplicación está fixada: non se permite soltala neste dispositivo."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Pantalla fixada"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Restablecer agora"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Desactivouse <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Conferencia telefónica"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Ventá emerxente do cadro de información"</string>
</resources>
diff --git a/core/res/res/values-gu-rIN/strings.xml b/core/res/res/values-gu-rIN/strings.xml
index 149e466346a1..9a7d43266df0 100644
--- a/core/res/res/values-gu-rIN/strings.xml
+++ b/core/res/res/values-gu-rIN/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"મીડિયા વોલ્યુમ"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"સૂચના વૉલ્યૂમ"</string>
<string name="ringtone_default" msgid="3789758980357696936">"ડિફોલ્ટ રિંગટોન"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"ડિફૉલ્ટ (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"કોઈ નહીં"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"રિંગટોન્સ"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"એલાર્મ ધ્વનિઓ"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"સૂચના ધ્વનિઓ"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"અજાણી"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Wi-Fi નેટવર્ક્સ ઉપલબ્ધ</item>
<item quantity="other">Wi-Fi નેટવર્ક્સ ઉપલબ્ધ</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"વર્ષ પસંદ કરો"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> કાઢી નાખી"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"કાર્યાલય <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"આ સ્ક્રીનને અનપિન કરવા માટે, પાછળને ટચ કરીને પકડી રાખો."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"ઍપ્લિકેશન પિન કરેલ છે. આ ઉપકરણ પર અનપિન કરવાની મંજૂરી નથી."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"સ્ક્રીન પિન કરી"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"હમણાં ફરીથી સેટ કરો"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> અક્ષમ કર્યું"</string>
<string name="conference_call" msgid="3751093130790472426">"કોન્ફરન્સ કૉલ"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"ટૂલટિપ પોપઅપ"</string>
</resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index c006df95c3eb..c46102b08d96 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"वर्ष चुनें"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> को हटा दिया गया"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"कार्यस्थल का <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"इस स्क्रीन को अनपिन करने के लिए, वापस जाएं को स्पर्श करके रखें."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"ऐप पिन किया गया है: इस डिवाइस पर अनपिन करने की अनुमति नहीं है."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"स्‍क्रीन पिन की गई"</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 8d90eb929662..fa593acda2ce 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -1082,16 +1082,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Glasnoća medija"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Glasnoća obavijesti"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Zadana melodija zvona"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Zadano (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Ništa"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Melodije zvona"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Zvukovi alarma"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Zvukovi obavijesti"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Nepoznato"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Dostupne su Wi-Fi mreže</item>
<item quantity="few">Dostupne su Wi-Fi mreže</item>
@@ -1591,6 +1587,10 @@
<string name="select_year" msgid="7952052866994196170">"Odaberite godinu"</string>
<string name="deleted_key" msgid="7659477886625566590">"Izbrisan je broj <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> za posao"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Da biste otkvačili ovaj zaslon, dodirnite i zadržite Natrag."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Aplikacija je prikvačena: otkvačivanje nije dopušteno na tom uređaju."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Zaslon je pričvršćen"</string>
@@ -1719,6 +1719,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Vrati na zadano sada"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> – onemogućeno"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferencijski poziv"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Skočni prozor opisa"</string>
</resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 67e1c0fd79fb..d21e47e6d48c 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Média hangereje"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Értesítés hangereje"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Alapértelmezett csengőhang"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Alapértelmezett (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Egyik sem"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Csengőhangok"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Ébresztőhangok"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Értesítőhangok"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Ismeretlen"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi hálózatok érhetők el</item>
<item quantity="one">Van elérhető Wi-Fi hálózat</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Válassza ki az évet"</string>
<string name="deleted_key" msgid="7659477886625566590">"A(z) <xliff:g id="KEY">%1$s</xliff:g> érték törölve"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Munkahelyi <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"A képernyő rögzítésének feloldásához tartsa lenyomva a Vissza lehetőséget."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Az alkalmazás rögzítve van: a rögzítés feloldása nem engedélyezett ezen az eszközön."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Képernyő rögzítve"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Visszaállítás most"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"A(z) <xliff:g id="LABEL">%1$s</xliff:g> letiltva"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferenciahívás"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Elemleíró előugró ablak"</string>
</resources>
diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml
index 6444b51586da..10072a260071 100644
--- a/core/res/res/values-hy-rAM/strings.xml
+++ b/core/res/res/values-hy-rAM/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Ընտրեք տարին"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> թիվը ջնջված է"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Աշխատանքային <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Այս էկրանն ապամրացնելու համար հպեք և պահեք Հետ կոճակը:"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Հավելվածն ամրացված է: Ապամրացումն այս սարքում չի թույլատրվում:"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Էկրանն ամրացված է"</string>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 873e3ae9150a..29d820e9700c 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Volume media"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Volume pemberitahuan"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Nada dering default"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Default (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Tidak Ada"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Nada dering"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Suara alarm"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Suara notifikasi"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Tidak diketahui"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Jaringan Wi-Fi tersedia</item>
<item quantity="one">Jaringan Wi-Fi tersedia</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Pilih tahun"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> dihapus"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Kantor <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Untuk melepas pin layar ini, sentuh &amp; tahan tombol Kembali."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Pin dipasang ke aplikasi. Melepas pin tidak diizinkan di perangkat ini."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Layar disematkan"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Setel ulang sekarang"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> dinonaktifkan"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferensi Telepon"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Munculan Keterangan Alat"</string>
</resources>
diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml
index 70a41be3ab34..655c5215f8fb 100644
--- a/core/res/res/values-is-rIS/strings.xml
+++ b/core/res/res/values-is-rIS/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Hljóðstyrkur efnisspilunar"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Hljóðstyrkur tilkynninga"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Sjálfgefinn hringitónn"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Sjálfgefið (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Ekkert"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Hringitónar"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Vekjarahljóð"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Tilkynningarhljóð"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Óþekkt"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Wi-Fi net í boði</item>
<item quantity="other">Wi-Fi net í boði</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Veldu ár"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> eytt"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> í vinnu"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Til að taka lásinn af þessari skjámynd skaltu halda inni bakkhnappinum."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Forritið er fest: Ekki er hægt að losa forrit í þessu tæki."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Skjár festur"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Endurstilla núna"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Slökkt <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Símafundur"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Ábendingarsprettigluggi"</string>
</resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index b3521ff049a8..446e36712d06 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Volume contenuti multimediali"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Volume notifiche"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Suoneria predefinita"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Predefinita (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Nessuna"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Suonerie"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Suoni delle sveglie"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Suoni di notifica"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Sconosciuta"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Reti Wi-Fi disponibili</item>
<item quantity="one">Rete Wi-Fi disponibile</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Seleziona anno"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> eliminato"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> lavoro"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Per sbloccare questa schermata tieni premuta l\'opzione Indietro."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"L\'app è bloccata. Su questo dispositivo non è consentito lo sblocco."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Schermata bloccata"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Ripristina ora"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Widget <xliff:g id="LABEL">%1$s</xliff:g> disattivato"</string>
<string name="conference_call" msgid="3751093130790472426">"Audioconferenza"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Popup descrizione comando"</string>
</resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index dd41f2344a17..1881ae4a1947 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -1618,6 +1618,10 @@
<string name="select_year" msgid="7952052866994196170">"בחר שנה"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> נמחק"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"עבודה <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"כדי לבטל את הצמדת המסך הזה, לחץ לחיצה ממושכת על הלחצן \'הקודם\'."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"האפליקציה מוצמדת: ביטול ההצמדה אסור במכשיר הזה."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"המסך מוצמד"</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 28db181af126..fdfb890d2485 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"年を選択"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g>を削除しました"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"仕事の<xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"この画面の固定を解除するには [戻る] を押し続けます。"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"アプリは固定されています。この端末では固定を解除できません。"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"画面を固定しました"</string>
diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml
index c58803d3c20d..56f0a6215274 100644
--- a/core/res/res/values-ka-rGE/strings.xml
+++ b/core/res/res/values-ka-rGE/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"მედიის ხმა"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"შეტყობინების ხმა"</string>
<string name="ringtone_default" msgid="3789758980357696936">"ნაგულისხმევი ზარი"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"ნაგულისხმევი (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"არც ერთი"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"ზარები"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"მაღვიძარას ხმები"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"შეტყობინების ხმები"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"უცნობი"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">ხელმისაწვდომია Wi-Fi ქსელები</item>
<item quantity="one">ხელმისაწვდომია Wi-Fi ქსელი</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"აირჩიეთ წელი"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> წაიშალა"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"სამსახური <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"ამ ეკრანის ჩამაგრების მოსახსნელად, ხანგრძლივად შეეხეთ ღილაკს „უკან“."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"აპი მიმაგრებულია: მიმაგრების მოხსნა არ არის ნებადართული ამ მოწყობილობაზე."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"ეკრანი დაფიქსირდა"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"ახლავე გადაყენება"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"გათიშული <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"საკონფერენციო ზარი"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"მინიშნების კონტექსტური სარკმელი"</string>
</resources>
diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml
index a62cbf0aa3ae..51d1dcc7d9ee 100644
--- a/core/res/res/values-kk-rKZ/strings.xml
+++ b/core/res/res/values-kk-rKZ/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Жыл таңдау"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> жойылды"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Жұмыс <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Осы экранды босату үшін \"Артқа\" түймесін басып тұрыңыз."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Бағдарлама белгіленді: Бұл құрылғыда белгіні алуға рұқсат берілмейді."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Экран түйрелді"</string>
diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml
index 08cac8c63bd8..aa6cb7731e6a 100644
--- a/core/res/res/values-km-rKH/strings.xml
+++ b/core/res/res/values-km-rKH/strings.xml
@@ -1566,6 +1566,10 @@
<string name="select_year" msgid="7952052866994196170">"ជ្រើស​ឆ្នាំ"</string>
<string name="deleted_key" msgid="7659477886625566590">"បាន​លុប <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"កន្លែង​ធ្វើការ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"ដើម្បីផ្តាច់អេក្រង់នេះ សូមប៉ះ និងសង្កត់ប៊ូតុងថយក្រោយឲ្យជាប់។"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"កម្មវិធីនេះត្រូវបានខ្ទាស់។ មិនអនុញ្ញាតឲ្យដោះការខ្ទាស់នៅលើឧបករណ៍នេះទេ។"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"បាន​ភ្ជាប់​អេក្រង់"</string>
diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml
index ab9cd90e258e..30d7e4e00932 100644
--- a/core/res/res/values-kn-rIN/strings.xml
+++ b/core/res/res/values-kn-rIN/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"ವರ್ಷವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ಅಳಿಸಲಾಗಿದೆ"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"ಕೆಲಸ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"ಈ ಪರದೆಯನ್ನು ಅನ್‌ಪಿನ್ ಮಾಡಲು, ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹಿಂಂದೆ ಒತ್ತಿ ಹಿಡಿಯಿರಿ."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"ಅಪ್ಲಿಕೇಶನ್ ಪಿನ್‌ ಮಾಡಲಾಗಿದೆ: ಈ ಸಾಧನದಲ್ಲಿ ಅನ್‌ಪಿನ್‌ ಮಾಡುವುದನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"ಸ್ಕ್ರೀನ್‌ ಪಿನ್‌ ಮಾಡಲಾಗಿದೆ"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 10bb801d3d5c..dbb14890ba34 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"연도 선택"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> 삭제됨"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"업무용 <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"이 화면을 고정 해제하려면 \'뒤로\'를 길게 터치합니다."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"앱이 고정되었습니다. 이 기기에서는 고정 해제를 허용하지 않습니다."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"화면 고정됨"</string>
diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml
index 0d8a38ea6498..358318929d68 100644
--- a/core/res/res/values-ky-rKG/strings.xml
+++ b/core/res/res/values-ky-rKG/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Медиа үнүнүн деңгээли"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Эскертме үнүнүн деңгээли"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Демейки рингтон"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Демейки рингтон (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Эч бир"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Ринтондор"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Ойготкучтун добуштары"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Эскертменин добуштары"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Белгисиз"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi тармагы жеткиликтүү</item>
<item quantity="one">Wi-Fi тармагы жеткиликтүү</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Жылды тандаңыз"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> өчүрүлдү"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Жумуш <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Бул экранды бошотуу үчүн \"Артка\" баскычын басып, кармап туруңуз."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Колдонмо кадалган: Бул түзмөктө бошотууга уруксат жок."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Экран кадалды"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Баштапкы абалга келтирүү"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> өчүрүлдү"</string>
<string name="conference_call" msgid="3751093130790472426">"Конференц чалуу"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Калкып чыгуучу кеңеш"</string>
</resources>
diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml
index ab1a4684e6e4..baf6d51b5de8 100644
--- a/core/res/res/values-lo-rLA/strings.xml
+++ b/core/res/res/values-lo-rLA/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"ເລືອກ​ປີ"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ຖືກລຶບແລ້ວ"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"​ບ່ອນ​ເຮັດ​ວຽກ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"ກົດປຸ່ມກັບຄືນຄ້າງໄວ້ເພື່ອເຊົາປັກໝຸດໜ້າຈໍນີ້."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"ແອັບ​ຖືກ​ປັກ​ໝຸດ​ແລ້ວ: ບໍ່​ອະ​ນຸ​ຍາດ​ໃຫ້​ຖອນ​ປັກ​ໝຸດ​ຢູ່​ເທິງ​ອຸ​ປະ​ກອນ​ນີ້."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"​ປັກ​ໝຸດ​ໜ້າ​ຈໍ​ແລ້ວ"</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 455726430bf2..f9293c4ec722 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -1618,6 +1618,10 @@
<string name="select_year" msgid="7952052866994196170">"Pasirinkite metus"</string>
<string name="deleted_key" msgid="7659477886625566590">"Ištrinta: <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Darbo <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Kad atsegtumėte šį ekraną, palieskite ir palaikykite „Atgal“."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Programa prisegta: šiame įrenginyje negalima atsegti."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ekrano prisegtas"</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 0965cf6acf6f..04ea14e7ba77 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -1591,6 +1591,10 @@
<string name="select_year" msgid="7952052866994196170">"Atlasiet gadu."</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> tika dzēsts."</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Darbā: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Lai atspraustu šo ekrānu, pieskarieties pogai “Atpakaļ” un turiet to."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Lietotne ir piesprausta. Atspraušana šajā ierīcē nav atļauta."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ekrāns ir piesprausts"</string>
diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml
index 8d96f5c706ec..aeb0c41ce253 100644
--- a/core/res/res/values-mk-rMK/strings.xml
+++ b/core/res/res/values-mk-rMK/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Јачина на звук на медиуми"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Јачина на звук на известување"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Стандардна мелодија"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Стандардна (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Ниедна"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Мелодии"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Звуци за аларм"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Звуци за известување"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Непозната"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Wi-Fi мрежи се достапни</item>
<item quantity="other">Wi-Fi мрежи се достапни</item>
@@ -1566,6 +1562,10 @@
<string name="select_year" msgid="7952052866994196170">"Избери година"</string>
<string name="deleted_key" msgid="7659477886625566590">"Избришано <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Работа <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"За откачување на екранов, допрете и задржете Назад."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Апликацијата е закачена: откачување не е дозволено на уредов."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Екранот е закачен"</string>
@@ -1685,6 +1685,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Ресетирај сега"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Оневозможен <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Конференциски повик"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Појавен прозорец на совет за алатка"</string>
</resources>
diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml
index 446d4f200b6e..4193079c8e63 100644
--- a/core/res/res/values-ml-rIN/strings.xml
+++ b/core/res/res/values-ml-rIN/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"വർഷം തിരഞ്ഞെടുക്കുക"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ഇല്ലാതാക്കി"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"ഔദ്യോഗികം <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"ഈ സ്‌ക്രീൻ അൺപിൻ ചെയ്യാൻ, ബാക്ക് ബട്ടൺ സ്‌പർശിച്ച് പിടിക്കുക"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"അപ്ലിക്കേഷൻ പിൻ ചെയ്‌തു: ഈ ഉപകരണത്തിൽ അൺപിൻ ചെയ്യാനാവില്ല."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"സ്ക്രീൻ പിൻ ചെയ്തു"</string>
diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml
index 61997276550a..74006da176e2 100644
--- a/core/res/res/values-mn-rMN/strings.xml
+++ b/core/res/res/values-mn-rMN/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Жилийг сонгоно уу"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> устсан"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Ажлын <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Энэ дэлгэцийг эхэнд нээхийг болиулахын тулд Буцах товчлуурыг дараад, хүлээнэ үү."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"App-ыг тусгайлан тэмдэглэсэн байна: Энэ төхөөрөмж дээр тусгайлан тэмдэглэсэн сонголтыг устгах боломжгүй."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Дэлгэцийг тогтоосон"</string>
diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml
index 8f2fc0f7d6b8..dd99f158e635 100644
--- a/core/res/res/values-mr-rIN/strings.xml
+++ b/core/res/res/values-mr-rIN/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"मीडिया व्हॉल्यूम"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"सूचना व्हॉल्यूम"</string>
<string name="ringtone_default" msgid="3789758980357696936">"डीफॉल्ट रिंगटोन"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"डीफॉल्ट (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"काहीही नाही"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"रिंगटोन"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"अलार्म ध्वनी"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"सूचना ध्वनी"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"अज्ञात"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">वाय-फाय नेटवर्क उपलब्ध</item>
<item quantity="other">वाय-फाय नेटवर्क उपलब्ध</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"वर्ष निवडा"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> हटविली"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"कार्य <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"ही स्क्रीन अनपिन करण्यासाठी, परत ला स्पर्श करा आणि धरून ठेवा."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"अॅप पिन केलेला आहे: या डिव्हाइसवर अनपिन करण्यास अनुमती नाही."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"स्क्रीन पिन केली"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"आता रीसेट करा"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> अक्षम केले"</string>
<string name="conference_call" msgid="3751093130790472426">"परिषद कॉल"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"टूलटिप पॉपअप"</string>
</resources>
diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml
index 9b6a20a8588e..57edab848e69 100644
--- a/core/res/res/values-ms-rMY/strings.xml
+++ b/core/res/res/values-ms-rMY/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Pilih tahun"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> dipadamkan"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Kerja <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Untuk menyahsematkan skrin ni, ketik &amp; tahan Kembali."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Apl disemat: Nyahsemat tidak dibenarkan pada peranti ini."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Skrin disemat"</string>
diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml
index 3276dcd87aac..834a665217e6 100644
--- a/core/res/res/values-my-rMM/strings.xml
+++ b/core/res/res/values-my-rMM/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"မီဒီယာအသံအတိုးအကျယ်"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"အကြောင်းကြားသံအတိုးအကျယ်"</string>
<string name="ringtone_default" msgid="3789758980357696936">"မူရင်းမြည်သံ"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"မူရင်း (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"တစ်ခုမှမဟုတ်"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"မြည်သံများ"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"နှိုးစက်သံ"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"အကြောင်းကြားချက်အသံ"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"အမျိုးအမည်မသိ"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi ကွန်ယက်များရရှိနိုင်သည်</item>
<item quantity="one">Wi-Fi ကွန်ယက်ရရှိနိုင်သည်</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"ခုနှစ်ကို ရွေးပါ"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ကို ဖျက်ပြီးပါပြီ"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"အလုပ် <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"ဤမျက်နှာပြင်ကို ပင်ဖြုတ်ရန် \"နောက်သို့\" ကိုထိပြီးဖိထားပါ။"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"အက်ပ်ကို ပင်ထိုးထားသည်။ ပင်ဖျက်ခြင်းကို ဒီစက်မှာ မရနိုင်ပါ။"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"မျက်နှာပြင်ကို ပင်ထိုးထား"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"ယခုပြန်လည်သတ်မှတ်ပါ"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"ပိတ်ထားသည့် <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"လူအမြောက်အမြားတပြိုင်နက် ခေါ်ဆိုမှု"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"အကြံပြုချက်ပြ ပေါ့အပ်ဝင်းဒိုး"</string>
</resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index dba56dc9168c..61e74a2f9661 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Medievolum"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Varslingsvolum"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Standard ringetone"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Standard (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Ingen"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Ringelyder"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Alarmlyder"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Varsellyder"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Ukjent"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi-nettverk er tilgjengelig</item>
<item quantity="one">Wi-Fi-nettverk er tilgjengelig</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Velg året"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> er slettet"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Jobb-<xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"For å løsne denne skjermen, trykk og hold inne Tilbake."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Appen er festet – du kan ikke løsne apper på denne enheten."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Skjermen er festet"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Tilbakestill nå"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> er slått av"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferansesamtale"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Verktøytips i forgrunnen"</string>
</resources>
diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml
index 27abf1a03712..d6c8612a21cf 100644
--- a/core/res/res/values-ne-rNP/strings.xml
+++ b/core/res/res/values-ne-rNP/strings.xml
@@ -1065,16 +1065,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"मिडियाको मात्रा"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"सूचना भोल्युम"</string>
<string name="ringtone_default" msgid="3789758980357696936">"पूर्वनिर्धारित रिङटोन"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"पूर्वनिर्धारित (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"कुनै पनि होइन"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"रिङटोनहरू"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"अलार्मका आवाजहरू"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"सूचना सम्बन्धी आवाजहरू"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"अज्ञात"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi सञ्जालहरू उपलब्ध छन्</item>
<item quantity="one">Wi-Fi सञ्जाल उपलब्ध छ</item>
@@ -1570,6 +1566,10 @@
<string name="select_year" msgid="7952052866994196170">"वर्ष चयन गर्नुहोस्"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> हटाइयो"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"कार्य <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"यस स्क्रिनलाई अनपिन गर्न पछाडि बटनलाई छोइराख्नुहोस्।"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"अनुप्रयोग पिन गरियो: यस यन्त्रमा अनपिन गर्ने अनुमति छैन।"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"स्क्रिन पिन गरियो"</string>
@@ -1689,6 +1689,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"अहिले रिसेट गर्नुहोस्"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> लाई असक्षम गरियो"</string>
<string name="conference_call" msgid="3751093130790472426">"सम्मेलन कल"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"उपकरणको वर्णन गर्ने पपअप"</string>
</resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index b02c9e1d9ce6..f7c76cdfe0b1 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Mediavolume"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Meldingsvolume"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Standaardbeltoon"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Standaard (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Geen"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Beltonen"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Alarmgeluiden"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Meldingsgeluiden"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Onbekend"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wifi-netwerken beschikbaar</item>
<item quantity="one">Wifi-netwerk beschikbaar</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Jaar selecteren"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> verwijderd"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Werk <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Tik op Terug en houd vast om dit scherm los te maken."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"App is vastgezet: losmaken is niet toegestaan op dit apparaat."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Scherm vastgezet"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Nu resetten"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> uitgeschakeld"</string>
<string name="conference_call" msgid="3751093130790472426">"Telefonische vergadering"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Pop-up met knopinfo"</string>
</resources>
diff --git a/core/res/res/values-pa-rIN/strings.xml b/core/res/res/values-pa-rIN/strings.xml
index cb63a545175a..39c5dfaa5cc4 100644
--- a/core/res/res/values-pa-rIN/strings.xml
+++ b/core/res/res/values-pa-rIN/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"ਸਾਲ ਚੁਣੋ"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ਹਟਾਇਆ ਗਿਆ"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"ਕੰਮ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"ਇਸ ਸਕ੍ਰੀਨ ਨੂੰ ਅਨਪਿੰਨ ਕਰਨ ਲਈ, ਸਪਰਸ਼ ਕਰੋ &amp; ਦਬਾਈ ਰੱਖੋ।"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"ਐਪ ਪਿੰਨਡ ਹੈ: ਇਸ ਡੀਵਾਈਸ ਤੇ ਅਨਪਿਨ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ।"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"ਸਕ੍ਰੀਨ ਪਿੰਨ ਕੀਤੀ"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 3cfb2423e9aa..4ffd9636b00f 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -1105,16 +1105,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Głośność multimediów"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Głośność powiadomień"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Dzwonek domyślny"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Domyślny (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Brak"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Dzwonki"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Dźwięki alarmu"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Dźwięki powiadomień"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Nieznany"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="few">Dostępne są sieci Wi-Fi</item>
<item quantity="many">Dostępne są sieci Wi-Fi</item>
@@ -1618,6 +1614,10 @@
<string name="select_year" msgid="7952052866994196170">"Wybierz rok"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> usunięte"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (praca)"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Aby odpiąć ten ekran, naciśnij i przytrzymaj Wstecz."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Aplikacja jest przypięta. Nie możesz jej odpiąć na tym urządzeniu."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ekran przypięty"</string>
@@ -1755,6 +1755,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Resetuj teraz"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Wyłączono: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Połączenie konferencyjne"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Wyskakujące okno z etykietką"</string>
</resources>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index b5b30a861e71..482c1e9316ee 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Volume da mídia"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Volume da notificação"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Toque padrão"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Padrão (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Nenhum"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Toques"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Sons do alarme"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Sons de notificação"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Desconhecido"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Redes Wi-Fi disponíveis</item>
<item quantity="other">Redes Wi-Fi disponíveis</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Selecione o ano"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> excluído"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Trabalho: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Para liberar esta tela, toque no botão \"Voltar\" e mantenha-o pressionado."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"O app está fixado. A liberação não é permitida neste dispositivo."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Tela fixada"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Reiniciar agora"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Widget <xliff:g id="LABEL">%1$s</xliff:g> desativado"</string>
<string name="conference_call" msgid="3751093130790472426">"Teleconferência"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Pop-up de dica"</string>
</resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 952df716556a..3f9417e10dad 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Volume de multimédia"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Volume de notificações"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Toque predefinido"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Predefinição (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Nada"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Toques"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Sons de alarme"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Sons de notificação"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Desconhecido"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Redes Wi-Fi disponíveis</item>
<item quantity="one">Rede Wi-Fi disponível</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Selecionar ano"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> eliminado"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> de trabalho"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Para soltar este ecrã, toque sem soltar em Anterior."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"A aplicação está fixa: não é permitido soltá-la neste dispositivo."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ecrã fixo"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Repor agora"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> desativado"</string>
<string name="conference_call" msgid="3751093130790472426">"Conferência"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Pop-up de sugestão"</string>
</resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index b5b30a861e71..482c1e9316ee 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Volume da mídia"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Volume da notificação"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Toque padrão"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Padrão (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Nenhum"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Toques"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Sons do alarme"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Sons de notificação"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Desconhecido"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Redes Wi-Fi disponíveis</item>
<item quantity="other">Redes Wi-Fi disponíveis</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Selecione o ano"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> excluído"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Trabalho: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Para liberar esta tela, toque no botão \"Voltar\" e mantenha-o pressionado."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"O app está fixado. A liberação não é permitida neste dispositivo."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Tela fixada"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Reiniciar agora"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Widget <xliff:g id="LABEL">%1$s</xliff:g> desativado"</string>
<string name="conference_call" msgid="3751093130790472426">"Teleconferência"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Pop-up de dica"</string>
</resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 6f938d9dbb88..5735f7c9ac9f 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -1591,6 +1591,10 @@
<string name="select_year" msgid="7952052866994196170">"Selectați anul"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> a fost șters"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> de serviciu"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Pentru a anula fixarea acestui ecran, atingeți lung opțiunea Înapoi."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Aplicația este fixată: Anularea fixării nu este permisă pe acest dispozitiv."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ecran fixat"</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 83ae58b708fd..0d6ca0681fbf 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -1105,16 +1105,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Громкость мультимедиа"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Громкость уведомлений"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Мелодия по умолчанию"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"По умолчанию (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Без звука"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Мелодии"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Сигнал будильника"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Мелодии уведомлений"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Неизвестно"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Есть доступные сети Wi-Fi</item>
<item quantity="few">Есть доступные сети Wi-Fi</item>
@@ -1618,6 +1614,10 @@
<string name="select_year" msgid="7952052866994196170">"Выберите год"</string>
<string name="deleted_key" msgid="7659477886625566590">"Цифра <xliff:g id="KEY">%1$s</xliff:g> удалена"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Рабочий <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Чтобы открепить экран, нажмите и удерживайте кнопку \"Назад\"."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Включена блокировка в приложении. Ее отключение запрещено правилами организации."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Блокировка включена"</string>
@@ -1755,6 +1755,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Сбросить"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Виджет <xliff:g id="LABEL">%1$s</xliff:g> отключен"</string>
<string name="conference_call" msgid="3751093130790472426">"Конференц-связь"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Подсказка"</string>
</resources>
diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml
index 2a4ee6626e52..7526c1eefa40 100644
--- a/core/res/res/values-si-rLK/strings.xml
+++ b/core/res/res/values-si-rLK/strings.xml
@@ -108,7 +108,7 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"සමමුහුර්ත කිරීම"</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"පැකැට්ටුව"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <string name="roamingText0" msgid="7170335472198694945">"රෝමිං දර්ශකය සක්‍රියයි"</string>
+ <string name="roamingText0" msgid="7170335472198694945">"රෝමිං දර්ශකය ක්‍රියාත්මකයි"</string>
<string name="roamingText1" msgid="5314861519752538922">"රෝමිං දර්ශකය අක්‍රියයි"</string>
<string name="roamingText2" msgid="8969929049081268115">"රෝමිං දර්ශකය සැණෙලි වෙයි"</string>
<string name="roamingText3" msgid="5148255027043943317">"වටපිටාවෙන් ඉවත්ව"</string>
@@ -189,7 +189,7 @@
<string name="turn_on_radio" msgid="3912793092339962371">"නොරැහන් සක්‍රිය කරන්න"</string>
<string name="turn_off_radio" msgid="8198784949987062346">"නොරැහැන් අක්‍රිය කරන්න"</string>
<string name="screen_lock" msgid="799094655496098153">"තිර අගුල"</string>
- <string name="power_off" msgid="4266614107412865048">"බලය අක්‍රිය කරන්න"</string>
+ <string name="power_off" msgid="4266614107412865048">"බල රහිත කරන්න"</string>
<string name="silent_mode_silent" msgid="319298163018473078">"හඬ නඟනය අක්‍රියයි"</string>
<string name="silent_mode_vibrate" msgid="7072043388581551395">"හඬ නඟනය කම්පනය"</string>
<string name="silent_mode_ring" msgid="8592241816194074353">"හඬ නඟනය සක්‍රීයයි"</string>
@@ -213,7 +213,7 @@
<string name="global_actions" product="tv" msgid="7240386462508182976">"රූපවාහිනී විකල්ප"</string>
<string name="global_actions" product="default" msgid="2406416831541615258">"දුරකථන විකල්ප"</string>
<string name="global_action_lock" msgid="2844945191792119712">"තිර අගුල"</string>
- <string name="global_action_power_off" msgid="4471879440839879722">"බලය අක්‍රිය කරන්න"</string>
+ <string name="global_action_power_off" msgid="4471879440839879722">"බල රහිත කරන්න"</string>
<string name="global_action_emergency" msgid="7112311161137421166">"හදිසි"</string>
<string name="global_action_bug_report" msgid="7934010578922304799">"දෝෂ වර්තාව"</string>
<string name="bugreport_title" msgid="2667494803742548533">"දෝෂ වාර්තාවක් ගන්න"</string>
@@ -228,7 +228,7 @@
</plurals>
<string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"නිහඬ ආකාරය"</string>
<string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"ශබ්දය අක්‍රියයි"</string>
- <string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"හඬ සක්‍රියයි"</string>
+ <string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"හඬ ක්‍රියාත්මකයි"</string>
<string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"අහස්යානා ආකාරය"</string>
<string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"අහස්යානා ආකාරය සක්‍රීයයි."</string>
<string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"අහස්යානා අකාරය අක්‍රියයි"</string>
@@ -975,7 +975,7 @@
<string name="whichViewApplicationLabel" msgid="2666774233008808473">"විවෘත කරන්න"</string>
<string name="whichEditApplication" msgid="144727838241402655">"සමඟ සංස්කරණය කරන්න"</string>
<string name="whichEditApplicationNamed" msgid="1775815530156447790">"%1$s සමඟ සංස්කරණය කරන්න"</string>
- <string name="whichEditApplicationLabel" msgid="7183524181625290300">"සංස්කරණය කරන්න"</string>
+ <string name="whichEditApplicationLabel" msgid="7183524181625290300">"සංස්කරණය"</string>
<string name="whichSendApplication" msgid="6902512414057341668">"සමඟ බෙදාගන්න"</string>
<string name="whichSendApplicationNamed" msgid="2799370240005424391">"%s සමඟ බෙදාගන්න"</string>
<string name="whichSendApplicationLabel" msgid="4579076294675975354">"බෙදා ගන්න"</string>
@@ -1104,7 +1104,7 @@
<string name="wifi_p2p_dialog_title" msgid="97611782659324517">"ඍජු Wi-Fi"</string>
<string name="wifi_p2p_turnon_message" msgid="2909250942299627244">"ඍජු Wi-Fi ආරම්භ කරන්න. මෙය Wi-Fi සේවාදායක/හොට්ස්පොට් එක අක්‍රිය කරනු ඇත."</string>
<string name="wifi_p2p_failed_message" msgid="3763669677935623084">"ඍජු Wi-Fi ආරම්භ කළ නොහැක."</string>
- <string name="wifi_p2p_enabled_notification_title" msgid="2068321881673734886">"Wi-Fi ඍජු සම්බන්ධතාව සක්‍රියයි"</string>
+ <string name="wifi_p2p_enabled_notification_title" msgid="2068321881673734886">"Wi-Fi Direct ක්‍රියාත්මකයි"</string>
<string name="wifi_p2p_enabled_notification_message" msgid="8064677407830620023">"සැකසීම් සඳහා තට්ටු කරන්න"</string>
<string name="accept" msgid="1645267259272829559">"පිළිගන්න"</string>
<string name="decline" msgid="2112225451706137894">"ප්‍රතික්ෂේප කරන්න"</string>
@@ -1336,7 +1336,7 @@
<string name="storage_usb_drive" msgid="6261899683292244209">"USB ධාවකය"</string>
<string name="storage_usb_drive_label" msgid="4501418548927759953">"<xliff:g id="MANUFACTURER">%s</xliff:g> USB ධාවකය"</string>
<string name="storage_usb" msgid="3017954059538517278">"USB ආචයනය"</string>
- <string name="extract_edit_menu_button" msgid="8940478730496610137">"සංස්කරණය කරන්න"</string>
+ <string name="extract_edit_menu_button" msgid="8940478730496610137">"සංස්කරණය"</string>
<string name="data_usage_warning_title" msgid="3620440638180218181">"දත්ත භාවිතය ගැන ඇඟවීම"</string>
<string name="data_usage_warning_body" msgid="6660692274311972007">"භාවිතය සහ සැකසීම් බැලීමට තට්ටු කරන්න."</string>
<string name="data_usage_3g_limit_title" msgid="4361523876818447683">"2G-3G දත්ත සීමාවට ළඟාවී ඇත"</string>
@@ -1382,7 +1382,7 @@
<string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string>
<string name="default_audio_route_category_name" msgid="3722811174003886946">"පද්ධතිය"</string>
<string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"බ්ලූටූත් ශ්‍රව්‍ය"</string>
- <string name="wireless_display_route_description" msgid="9070346425023979651">"රැහැන් රහිත දර්ශනය"</string>
+ <string name="wireless_display_route_description" msgid="9070346425023979651">"නොරැහැන් සංදර්ශකය"</string>
<string name="media_route_button_content_description" msgid="591703006349356016">"Cast"</string>
<string name="media_route_chooser_title" msgid="1751618554539087622">"උපාංගයට සම්බන්ධ වන්න"</string>
<string name="media_route_chooser_title_for_remote_display" msgid="3395541745872017583">"තිරය උපාංගයට යොමු කරන්න"</string>
@@ -1566,6 +1566,10 @@
<string name="select_year" msgid="7952052866994196170">"වසර තෝරන්න"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> මකා දමන ලදි"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"වැඩ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"මෙම තිරය ඇමුණුම් ඉවත් කිරීමට, ස්පර්ශ කර අල්ලා ගෙන සිටින්න."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"යෙදුම අමුණා ඇත: ගැලවීමට මෙම උපාංගය මත ඉඩ දිය නොහැකිය.‍"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"තිරය අගුළු දමා ඇත"</string>
@@ -1614,7 +1618,7 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> තෙක්"</string>
<string name="zen_mode_alarm" msgid="9128205721301330797">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> තෙක් (ඊළඟ එලාමය)"</string>
- <string name="zen_mode_forever" msgid="7420011936770086993">"ඔබ මෙය අක්‍රිය කරන තුරු"</string>
+ <string name="zen_mode_forever" msgid="7420011936770086993">"ඔබ මෙය ක්‍රියාවිරහිත කරන තුරු"</string>
<string name="zen_mode_forever_dnd" msgid="3792132696572189081">"බාධා නොකරන්න ඔබ අක්‍රිය කරන තුරු"</string>
<string name="zen_mode_rule_name_combination" msgid="191109939968076477">"<xliff:g id="FIRST">%1$s</xliff:g> / <xliff:g id="REST">%2$s</xliff:g>"</string>
<string name="toolbar_collapse_description" msgid="2821479483960330739">"හකුළන්න"</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index ef7678c9703f..7ff3ce2944e0 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -1105,16 +1105,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Hlasitosť médií"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Hlasitosť upozornení"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Predvolený tón zvonenia"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Predvolený (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Žiadny"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Tóny zvonenia"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Zvuky budíka"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Zvuky upozornení"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Neznáme"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="few">K dispozícii sú siete Wi-Fi</item>
<item quantity="many">K dispozícii sú siete Wi-Fi</item>
@@ -1618,6 +1614,10 @@
<string name="select_year" msgid="7952052866994196170">"Vyberte rok"</string>
<string name="deleted_key" msgid="7659477886625566590">"Číslo <xliff:g id="KEY">%1$s</xliff:g> bolo odstránené"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Práca – <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Ak chcete uvoľniť túto obrazovku, klepnite na tlačidlo Späť a podržte ho."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Aplikácia je pripnutá. Uvoľnenie nie je na tomto zariadení povolené."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Obrazovka bola pripnutá"</string>
@@ -1755,6 +1755,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Resetovať"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Deaktivovaná miniaplikácia <xliff:g id="LABEL">%1$s</xliff:g>"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferenčný hovor"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Kontextové okno s popisom"</string>
</resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index f3a2d234534c..f7b80966b16e 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -656,7 +656,7 @@
<string name="relationTypeMother" msgid="4578571352962758304">"Mati"</string>
<string name="relationTypeParent" msgid="4755635567562925226">"Starši"</string>
<string name="relationTypePartner" msgid="7266490285120262781">"Partner"</string>
- <string name="relationTypeReferredBy" msgid="101573059844135524">"Predlagatelj:"</string>
+ <string name="relationTypeReferredBy" msgid="101573059844135524">"Predlagatelj"</string>
<string name="relationTypeRelative" msgid="1799819930085610271">"Sorodnik"</string>
<string name="relationTypeSister" msgid="1735983554479076481">"Sestra"</string>
<string name="relationTypeSpouse" msgid="394136939428698117">"Zakonski partner"</string>
@@ -1618,6 +1618,10 @@
<string name="select_year" msgid="7952052866994196170">"Izberite leto"</string>
<string name="deleted_key" msgid="7659477886625566590">"Številka <xliff:g id="KEY">%1$s</xliff:g> je izbrisana"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> za delo"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Če želite odpeti ta zaslon, se dotaknite tipke za nazaj in jo pridržite."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Aplikacija je pripeta: v tej napravi odpenjanje ni dovoljeno."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Zaslon je pripet"</string>
diff --git a/core/res/res/values-sq-rAL/strings.xml b/core/res/res/values-sq-rAL/strings.xml
index 69f14d5dbd68..c3ccaca5e5c7 100644
--- a/core/res/res/values-sq-rAL/strings.xml
+++ b/core/res/res/values-sq-rAL/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Përzgjidh vitin"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> u fshi"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Puna <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Për të hequr gozhdimin e ekranit, prek dhe mbaj të shtypur \"Prapa\"."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Ekrani është i gozhduar. Anulimi i mbërthimit nuk lejohet nga organizata jote."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ekrani u gozhdua"</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 881421c6b1b4..da44a654d18d 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -1082,16 +1082,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Јачина звука медија"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Јачина звука обавештења"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Подразумевани звук звона"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Подразумевано (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Без звука"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Звукови звона"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Звуци аларма"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Звуци обавештења"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Непознато"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Wi-Fi мреже су доступне</item>
<item quantity="few">Wi-Fi мреже су доступне</item>
@@ -1591,6 +1587,10 @@
<string name="select_year" msgid="7952052866994196170">"Изаберите годину"</string>
<string name="deleted_key" msgid="7659477886625566590">"Избрисали сте <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> на послу"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Да бисте откачили овај екран, додирните и задржите Назад."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Апликација је закачена: откачињање није дозвољено на овом уређају."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Екран је закачен"</string>
@@ -1719,6 +1719,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Ресетуј"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"Виџет <xliff:g id="LABEL">%1$s</xliff:g> је онемогућен"</string>
<string name="conference_call" msgid="3751093130790472426">"Конференцијски позив"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Искачуће објашњење"</string>
</resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index fdffd4622f34..1bf5196e56b9 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Mediavolym"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Meddelandevolym"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Standardringsignal"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Standard (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Ingen"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Ringsignaler"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Ljud för alarm"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Aviseringsljud"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Okänt"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi-nätverk är tillgängliga</item>
<item quantity="one">Wi-Fi-nätverk är tillgängligt</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Välj år"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> har tagits bort"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> för arbetet"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Om du vill lossa skärmen trycker du länge på Tillbaka."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Appen är fäst. Att lossa den är inte tillåtet på den här enheten."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Skärmen är fäst"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Återställ nu"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> har inaktiverats"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferenssamtal"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Popup-fönster med beskrivning"</string>
</resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 500b33b4e94e..1d3c7ac350ad 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -1057,16 +1057,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Sauti ya midia"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Sauti ya arifa"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Mlio chaguo-msingi"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Chaguo-msingi (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Hamna"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Toni za mlio"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Sauti za kengele"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Sauti za arifa"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Haijulikani"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Mitandao ya Wi-Fi inapatikana</item>
<item quantity="one">Mtandao wa Wi-Fi unapatikana</item>
@@ -1562,6 +1558,10 @@
<string name="select_year" msgid="7952052866994196170">"Chagua mwaka"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> kimefutwa"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Ya kazini <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Ili kubandua skrini hii, gusa na ushikilie Nyuma."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Programu imebanwa: Kubanuliwa hakuruhusiwi kwenye kifaa hiki."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Skrini imebandikwa"</string>
@@ -1681,6 +1681,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Weka upya sasa"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> imezimwa"</string>
<string name="conference_call" msgid="3751093130790472426">"Simu ya Kongamano"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Kidirisha Ibukizi cha vidokezo"</string>
</resources>
diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml
index 131d03fc512f..46a45899a01f 100644
--- a/core/res/res/values-ta-rIN/strings.xml
+++ b/core/res/res/values-ta-rIN/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"ஆண்டைத் தேர்ந்தெடுக்கவும்"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> நீக்கப்பட்டது"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"பணியிடம் <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"இந்தத் திரையை விலக்க, \"முந்தையது\" பொத்தானைத் தொட்டுப் பிடிக்கவும்."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"பயன்பாடு பொருத்தப்பட்டது: பொருத்தியதை நீக்குவதற்கு இந்தச் சாதனத்தில் அனுமதியில்லை."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"திரை பின் செய்யப்பட்டது"</string>
diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml
index 2d6b2ad3cb87..c6722eeb7335 100644
--- a/core/res/res/values-te-rIN/strings.xml
+++ b/core/res/res/values-te-rIN/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"సంవత్సరాన్ని ఎంచుకోండి"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> తొలగించబడింది"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"కార్యాలయం <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"ఈ స్క్రీన్‌ని అన్‌పిన్ చేయడానికి, వెనుకకు తాకి &amp; అలాగే పట్టుకోండి."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"అనువర్తనం పిన్ చేయబడింది: ఈ పరికరంలో అన్‌పిన్ చేయడానికి అనుమతి లేదు."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"స్క్రీన్ పిన్ చేయబడింది"</string>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index c6a854474616..ab04bec0308f 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"เลือกปี"</string>
<string name="deleted_key" msgid="7659477886625566590">"ลบ <xliff:g id="KEY">%1$s</xliff:g> แล้ว"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g>ที่ทำงาน"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"หากต้องการเลิกตรึงหน้าจอนี้ แตะ \"กลับ\" ค้างไว้"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"มีการตรึงแอป: ไม่อนุญาตให้เลิกตรึงบนอุปกรณ์นี้"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"ตรึงหน้าจอแล้ว"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index abcb19a5a36e..e7cec5635ed1 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Pumili ng taon"</string>
<string name="deleted_key" msgid="7659477886625566590">"Tinanggal ang <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> sa Trabaho"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Upang i-unpin ang screen na ito, pindutin nang matagal ang Bumalik."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Naka-pin ang app: Hindi pinapayagan ang pag-a-unpin sa device na ito."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Naka-pin ang screen"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 455078421acc..59dc68e79e8e 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Yılı seçin"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> silindi"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (İş)"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Bu ekranın sabitlemesini kaldırmak için Geri\'ye dokunup basılı tutun."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Uygulama sabitlendi. Bu cihazda sabitlemenin kaldırılmasına izin verilmiyor."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ekran sabitlendi"</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index b5561b9352a5..0ac3b805cb97 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -1105,16 +1105,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Гучність медіа"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Гучність сповіщення"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Мелодія за умовчанням"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"За умовчанням (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Немає"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Мелодії"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Сигнали будильника"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Сигнали сповіщень"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Невідомо"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Мережі Wi-Fi доступні</item>
<item quantity="few">Мережі Wi-Fi доступні</item>
@@ -1618,6 +1614,10 @@
<string name="select_year" msgid="7952052866994196170">"Виберіть рік"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> видалено"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Робоча <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Щоб відкріпити цей екран, натисніть і утримуйте кнопку \"Назад\"."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Додаток закріплено. Його не можна відкріпити на цьому пристрої."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Екран закріплено"</string>
@@ -1755,6 +1755,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Скинути"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> вимкнено"</string>
<string name="conference_call" msgid="3751093130790472426">"Конференц-виклик"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Спливаюча підказка"</string>
</resources>
diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml
index ecb6ee0b3233..715dbed9504a 100644
--- a/core/res/res/values-ur-rPK/strings.xml
+++ b/core/res/res/values-ur-rPK/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"سال منتخب کریں"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> کو حذف کر دیا گیا"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"دفتر <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"اس اسکرین سے پن ہٹانے کیلئے، پیچھے کو تھپتھپائیں اور دبا کر رکھیں۔"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"ایپ کو پن کر دیا گیا ہے: اس آلہ پر پن ہٹانے کی اجازت نہیں ہے۔"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"اسکرین کو پن کر دیا گیا"</string>
diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml
index dd8b8baa48d6..255982c063e9 100644
--- a/core/res/res/values-uz-rUZ/strings.xml
+++ b/core/res/res/values-uz-rUZ/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Multimedia ovozi"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Eslatma tovushi"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Standart rington"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Standart (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Yo‘q"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Ringtonlar"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Signal ovozlari"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Bildirishnoma ovozlari"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Noma’lum"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="other">Wi-Fi tarmoqlari aniqlandi</item>
<item quantity="one">Wi-Fi tarmog‘i aniqlandi</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Yilni tanlash"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> raqami o‘chirib tashlandi"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Ish <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Bu ekrandan chiqish uchun “Orqaga” tugmasini bosib turing."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Ilova qadab qo‘yilgan. Uni ekrandan yechish ushbu qurilmada ta’qiqlangan."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Ekran qadab qo‘yildi"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Asl holatga qaytarish"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"<xliff:g id="LABEL">%1$s</xliff:g> vidjeti o‘chirilgan"</string>
<string name="conference_call" msgid="3751093130790472426">"Konferens-aloqa"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Qalqib chiquvchi maslahat oynasi"</string>
</resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 37f1a9b08a7e..1f6a1cd7aa4e 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"Chọn năm"</string>
<string name="deleted_key" msgid="7659477886625566590">"Đã xóa <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> làm việc"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Để bỏ ghim màn hình này, nhấn và giữ Quay lại."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Ứng dụng được ghim: Không được phép bỏ ghim trên thiết bị này."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Đã ghim màn hình"</string>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 9def7dbf6563..5991f54c59c7 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"选择年份"</string>
<string name="deleted_key" msgid="7659477886625566590">"已删除<xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"工作<xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"要取消固定此屏幕,请触摸并按住“返回”按钮。"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"应用处于固定状态:在此设备上不允许退出该模式。"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"已固定屏幕"</string>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 6f101ab2348c..7191a3d76621 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -1240,7 +1240,7 @@
<string name="wallpaper_binding_label" msgid="1240087844304687662">"桌布"</string>
<string name="chooser_wallpaper" msgid="7873476199295190279">"變更桌布"</string>
<string name="notification_listener_binding_label" msgid="2014162835481906429">"通知接聽器"</string>
- <string name="vr_listener_binding_label" msgid="4316591939343607306">"虛擬現實接聽器"</string>
+ <string name="vr_listener_binding_label" msgid="4316591939343607306">"VR 接聽器"</string>
<string name="condition_provider_service_binding_label" msgid="1321343352906524564">"條件供應商"</string>
<string name="notification_ranker_binding_label" msgid="774540592299064747">"通知排序服務"</string>
<string name="vpn_title" msgid="19615213552042827">"VPN 已啟用。"</string>
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"選取年份"</string>
<string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> 已刪除"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"公司<xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"如要取消固定這個畫面,請按住 [返回]。"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"應用程式已固定:不允許在此裝置上取消固定。"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"螢幕已固定"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 93acd0ec7772..9e37672c0881 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -1564,6 +1564,10 @@
<string name="select_year" msgid="7952052866994196170">"選取年份"</string>
<string name="deleted_key" msgid="7659477886625566590">"已刪除 <xliff:g id="KEY">%1$s</xliff:g>"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"公司<xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"如要取消固定這個畫面,請按住「返回」按鈕。"</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"應用程式已固定:無法在這部裝置取消固定。"</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"已固定螢幕"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 14ea7386a09b..66d1010e7c64 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -1059,16 +1059,12 @@
<string name="volume_icon_description_media" msgid="4217311719665194215">"Ivolumu yemidiya"</string>
<string name="volume_icon_description_notification" msgid="7044986546477282274">"Ivolumu yesaziso"</string>
<string name="ringtone_default" msgid="3789758980357696936">"Iringithoni emisiwe"</string>
- <!-- no translation found for ringtone_default_with_actual (1767304850491060581) -->
- <skip />
+ <string name="ringtone_default_with_actual" msgid="1767304850491060581">"Okuzenzakalelayo (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
<string name="ringtone_silent" msgid="7937634392408977062">"Akunalutho"</string>
<string name="ringtone_picker_title" msgid="3515143939175119094">"Amaringithoni"</string>
- <!-- no translation found for ringtone_picker_title_alarm (6473325356070549702) -->
- <skip />
- <!-- no translation found for ringtone_picker_title_notification (4837740874822788802) -->
- <skip />
- <!-- no translation found for ringtone_unknown (3914515995813061520) -->
- <skip />
+ <string name="ringtone_picker_title_alarm" msgid="6473325356070549702">"Imisindo ye-alamu"</string>
+ <string name="ringtone_picker_title_notification" msgid="4837740874822788802">"Imisindo yezaziso"</string>
+ <string name="ringtone_unknown" msgid="3914515995813061520">"Akwaziwa"</string>
<plurals name="wifi_available" formatted="false" msgid="7900333017752027322">
<item quantity="one">Amanethiwekhi we-Wi-Fi ayatholakala</item>
<item quantity="other">Amanethiwekhi we-Wi-Fi ayatholakala</item>
@@ -1564,6 +1560,10 @@
<string name="select_year" msgid="7952052866994196170">"Khetha unyaka"</string>
<string name="deleted_key" msgid="7659477886625566590">"I-<xliff:g id="KEY">%1$s</xliff:g> isusiwe"</string>
<string name="managed_profile_label_badge" msgid="2355652472854327647">"Umsebenzi <xliff:g id="LABEL">%1$s</xliff:g>"</string>
+ <!-- no translation found for managed_profile_label_badge_2 (5048136430082124036) -->
+ <skip />
+ <!-- no translation found for managed_profile_label_badge_3 (2808305070321719040) -->
+ <skip />
<string name="lock_to_app_toast" msgid="1420543809500606964">"Ukuze ususe ukuphina lesi sikrini, thinta futhi ubambe okuthi Emuva."</string>
<string name="lock_to_app_toast_locked" msgid="9125176335701699164">"Uhlelo lokusebenza luphiniwe: Ukususa ukuphina akuvunyelwe kule divayisi."</string>
<string name="lock_to_app_start" msgid="6643342070839862795">"Isikrini siphiniwe"</string>
@@ -1683,6 +1683,5 @@
<string name="demo_user_inactivity_timeout_right_button" msgid="5019306703066964808">"Setha kabusha manje"</string>
<string name="suspended_widget_accessibility" msgid="6712143096475264190">"I-<xliff:g id="LABEL">%1$s</xliff:g> ekhutshaziwe"</string>
<string name="conference_call" msgid="3751093130790472426">"Ikholi yengqungquthela"</string>
- <!-- no translation found for tooltip_popup_title (8101791425834697618) -->
- <skip />
+ <string name="tooltip_popup_title" msgid="8101791425834697618">"Okuzivelelayo kwe-tooltip"</string>
</resources>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 95f372c43a59..7045eafabbd5 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -2239,13 +2239,23 @@
(black). -->
<attr name="background" format="reference|color" />
- <!-- Sets the padding, in pixels, of all four edges. Padding is defined as
- space between the edges of the view and the view's content. A views size
- will include it's padding. If a {@link android.R.attr#background}
+ <!-- Sets the padding, in pixels, of all four edges. Padding is defined as
+ space between the edges of the view and the view's content. This value will take
+ precedence over any of the edge-specific values, including
+ paddingHorizontal and paddingVertical, if set. A view's size
+ will include its padding. If a {@link android.R.attr#background}
is provided, the padding will initially be set to that (0 if the
- drawable does not have padding). Explicitly setting a padding value
+ drawable does not have padding). Explicitly setting a padding value
will override the corresponding padding found in the background. -->
<attr name="padding" format="dimension" />
+ <!-- Sets the padding, in pixels, of the left and right edges; see
+ {@link android.R.attr#padding}. This value will take precedence over
+ paddingLeft, paddingRight, paddingStart, and paddingEnd, if set. -->
+ <attr name="paddingHorizontal" format="dimension" />
+ <!-- Sets the padding, in pixels, of the top and bottom edges; see
+ {@link android.R.attr#padding}. This value will take precedence over
+ paddingTop and paddingBottom, if set. -->
+ <attr name="paddingVertical" format="dimension" />
<!-- Sets the padding, in pixels, of the left edge; see {@link android.R.attr#padding}. -->
<attr name="paddingLeft" format="dimension" />
<!-- Sets the padding, in pixels, of the top edge; see {@link android.R.attr#padding}. -->
@@ -3059,7 +3069,11 @@
<attr name="layout_width" />
<attr name="layout_height" />
<!-- Specifies extra space on the left, top, right and bottom
- sides of this view. This space is outside this view's bounds.
+ sides of this view. If both layout_margin and any of layout_marginLeft,
+ layout_marginRight, layout_marginStart, layout_marginEnd,
+ layout_marginTop, and layout_marginBottom are
+ also specified, the layout_margin value will take precedence over the
+ edge-specific values. This space is outside this view's bounds.
Margin values should be positive. -->
<attr name="layout_margin" format="dimension" />
<!-- Specifies extra space on the left side of this view.
@@ -3086,6 +3100,29 @@
This space is outside this view's bounds.
Margin values should be positive.-->
<attr name="layout_marginEnd" format="dimension" />
+ <!-- Specifies extra space on the left and right sides of this view.
+ Specifying layout_marginHorizontal is equivalent to specifying
+ either layout_marginLeft and layout_marginRight or
+ layout_marginStart and layout_marginEnd with that same value.
+ If both layout_marginHorizontal and any of layout_marginLeft,
+ layout_marginRight, layout_marginStart, and layout_marginEnd are
+ also specified, the layout_marginHorizontal value will take precedence over the
+ edge-specific values. Also, layout_margin will always take precendent over
+ any of these values, including layout_marginHorizontal.
+ This space is outside this view's bounds.
+ Margin values should be positive.-->
+ <attr name="layout_marginHorizontal" format="dimension" />
+ <!-- Specifies extra space on the tyop and bottom sides of this view.
+ Specifying layout_marginVertical is equivalent to specifying
+ layout_marginTop and layout_marginBottom with that same value.
+ If both layout_marginVertical and either/both layout_marginTop and
+ layout_marginBottom are also specified, the layout_marginVertical value
+ will take precedence over the edge-specific values.
+ Also, layout_margin will always take precendent over
+ any of these values, including layout_marginHorizontal.
+ This space is outside this view's bounds.
+ Margin values should be positive.-->
+ <attr name="layout_marginVertical" format="dimension" />
</declare-styleable>
<!-- Use <code>input-method</code> as the root tag of the XML resource that
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 200961f1c8a8..deeaf3509c16 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2752,6 +2752,11 @@
<public name="exampleAttr1" />
<public name="exampleAttr2" />
</public-group>
+
+ To add a new public-group block, choose an id value that is 1 greater
+ than the last of that item above. For example, the last "attr" id
+ value above is 0x01010530, so the public-group of attrs below has
+ the id value of 0x01010531.
=============================================================== -->
<eat-comment />
@@ -2764,6 +2769,12 @@
<public name="autoSizeStepGranularity" />
<public name="autoSizeStepSizeSet" />
<public name="autoSizeMinTextSize" />
+ <public name="min" />
+ <public name="rotationAnimation" />
+ <public name="layout_marginHorizontal" />
+ <public name="layout_marginVertical" />
+ <public name="paddingHorizontal" />
+ <public name="paddingVertical" />
</public-group>
<public-group type="style" first-id="0x010302e0">
@@ -2772,6 +2783,12 @@
<public-group type="id" first-id="0x01020041">
</public-group>
- <public type="attr" name="min" />
- <public type="attr" name="rotationAnimation" />
+ <!-- ===============================================================
+ DO NOT ADD UN-GROUPED ITEMS HERE
+
+ Any new items (attrs, styles, ids, etc.) *must* be added in a
+ public-group block, as the preceding comment explains.
+ Items added outside of a group may have their value recalculated
+ every time something new is added to this file.
+ =============================================================== -->
</resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 8546aa50aa5c..af77b1f0793b 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1059,6 +1059,11 @@
connected by a call.</string>
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permlab_readPhoneNumber">read phone number</string>
+ <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+ <string name="permdesc_readPhoneNumber">Allows the app to access the phone number of the device.</string>
+
+ <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_wakeLock" product="tablet">prevent tablet from sleeping</string>
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_wakeLock" product="tv">prevent TV from sleeping</string>
diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
index a15cba07e7bb..33a04939387a 100644
--- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
+++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
@@ -620,7 +620,7 @@ public class PackageManagerTests extends AndroidTestCase {
try {
pkgInfo = pm.getPackageInfo(pkg,
PackageManager.GET_PERMISSIONS
- | PackageManager.GET_UNINSTALLED_PACKAGES);
+ | PackageManager.MATCH_UNINSTALLED_PACKAGES);
} catch (NameNotFoundException e) {
pkgInfo = null;
}
@@ -712,7 +712,7 @@ public class PackageManagerTests extends AndroidTestCase {
// Make sure the package doesn't exist
try {
ApplicationInfo appInfo = pm.getApplicationInfo(pkg.packageName,
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_UNINSTALLED_PACKAGES);
GenericReceiver receiver = new DeleteReceiver(pkg.packageName);
invokeDeletePackage(pkg.packageName, 0, receiver);
} catch (NameNotFoundException e) {
@@ -974,7 +974,7 @@ public class PackageManagerTests extends AndroidTestCase {
public boolean invokeDeletePackage(final String pkgName, int flags, GenericReceiver receiver)
throws Exception {
ApplicationInfo info = getPm().getApplicationInfo(pkgName,
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_UNINSTALLED_PACKAGES);
mContext.registerReceiver(receiver, receiver.filter);
try {
@@ -1019,7 +1019,7 @@ public class PackageManagerTests extends AndroidTestCase {
Log.i(TAG, "okay4");
try {
info = getPm().getApplicationInfo(ip.pkg.packageName,
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_UNINSTALLED_PACKAGES);
} catch (NameNotFoundException e) {
info = null;
}
@@ -1323,7 +1323,7 @@ public class PackageManagerTests extends AndroidTestCase {
ApplicationInfo info = null;
try {
- info = getPm().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
+ info = getPm().getApplicationInfo(packageName, PackageManager.MATCH_UNINSTALLED_PACKAGES);
} catch (NameNotFoundException ignored) {
}
@@ -1350,7 +1350,7 @@ public class PackageManagerTests extends AndroidTestCase {
Log.i(TAG, "Deleting package : " + pkgName);
try {
ApplicationInfo info = getPm().getApplicationInfo(pkgName,
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_UNINSTALLED_PACKAGES);
if (info != null) {
DeleteObserver observer = new DeleteObserver(pkgName);
@@ -3756,7 +3756,7 @@ public class PackageManagerTests extends AndroidTestCase {
public void testGetUnInstalledPackages() throws Exception {
List<PackageInfo> packages = getPm().getInstalledPackages(
- PackageManager.GET_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_UNINSTALLED_PACKAGES);
assertNotNull("installed packages cannot be null", packages);
assertTrue("installed packages cannot be empty", packages.size() > 0);
}
@@ -3769,7 +3769,7 @@ public class PackageManagerTests extends AndroidTestCase {
| PackageManager.GET_CONFIGURATIONS | PackageManager.GET_INSTRUMENTATION
| PackageManager.GET_PERMISSIONS | PackageManager.GET_PROVIDERS
| PackageManager.GET_RECEIVERS | PackageManager.GET_SERVICES
- | PackageManager.GET_SIGNATURES | PackageManager.GET_UNINSTALLED_PACKAGES;
+ | PackageManager.GET_SIGNATURES | PackageManager.MATCH_UNINSTALLED_PACKAGES;
final InstallParams ip =
installFromRawResource("install.apk", R.raw.install_complete_package_info,
@@ -3809,12 +3809,12 @@ public class PackageManagerTests extends AndroidTestCase {
* flags when the GET_UNINSTALLED_PACKAGES flag is set.
*/
public void testGetUnInstalledPackagesAll() throws Exception {
- final int flags = PackageManager.GET_UNINSTALLED_PACKAGES
+ final int flags = PackageManager.MATCH_UNINSTALLED_PACKAGES
| PackageManager.GET_ACTIVITIES | PackageManager.GET_GIDS
| PackageManager.GET_CONFIGURATIONS | PackageManager.GET_INSTRUMENTATION
| PackageManager.GET_PERMISSIONS | PackageManager.GET_PROVIDERS
| PackageManager.GET_RECEIVERS | PackageManager.GET_SERVICES
- | PackageManager.GET_SIGNATURES | PackageManager.GET_UNINSTALLED_PACKAGES;
+ | PackageManager.GET_SIGNATURES;
// first, install the package
final InstallParams ip =
diff --git a/core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java b/core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java
index e7aca78a0720..02c25170bb74 100644
--- a/core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java
+++ b/core/tests/coretests/src/android/net/NetworkScorerAppManagerTest.java
@@ -42,6 +42,8 @@ public class NetworkScorerAppManagerTest extends InstrumentationTestCase {
@Mock private Context mMockContext;
@Mock private PackageManager mMockPm;
+ private NetworkScorerAppManager mNetworkScorerAppManager;
+
@Override
public void setUp() throws Exception {
super.setUp();
@@ -54,6 +56,7 @@ public class NetworkScorerAppManagerTest extends InstrumentationTestCase {
MockitoAnnotations.initMocks(this);
Mockito.when(mMockContext.getPackageManager()).thenReturn(mMockPm);
+ mNetworkScorerAppManager = new NetworkScorerAppManager(mMockContext);
}
public void testGetAllValidScorers() throws Exception {
@@ -81,7 +84,7 @@ public class NetworkScorerAppManagerTest extends InstrumentationTestCase {
setScorers(scorers);
Iterator<NetworkScorerAppData> result =
- NetworkScorerAppManager.getAllValidScorers(mMockContext).iterator();
+ mNetworkScorerAppManager.getAllValidScorers().iterator();
assertTrue(result.hasNext());
NetworkScorerAppData next = result.next();
diff --git a/docs/html/reference/images/graphics/colorspace_clipped.png b/docs/html/reference/images/graphics/colorspace_clipped.png
new file mode 100644
index 000000000000..28204e6e3a88
--- /dev/null
+++ b/docs/html/reference/images/graphics/colorspace_clipped.png
Binary files differ
diff --git a/docs/html/reference/images/graphics/colorspace_comparison.png b/docs/html/reference/images/graphics/colorspace_comparison.png
new file mode 100644
index 000000000000..b1b015c73e74
--- /dev/null
+++ b/docs/html/reference/images/graphics/colorspace_comparison.png
Binary files differ
diff --git a/docs/html/reference/images/graphics/colorspace_comparison2.png b/docs/html/reference/images/graphics/colorspace_comparison2.png
new file mode 100644
index 000000000000..b263aa1f5d2e
--- /dev/null
+++ b/docs/html/reference/images/graphics/colorspace_comparison2.png
Binary files differ
diff --git a/docs/html/reference/images/graphics/colorspace_points.png b/docs/html/reference/images/graphics/colorspace_points.png
new file mode 100644
index 000000000000..84d1e77377a2
--- /dev/null
+++ b/docs/html/reference/images/graphics/colorspace_points.png
Binary files differ
diff --git a/docs/html/reference/images/graphics/colorspace_renderer.png b/docs/html/reference/images/graphics/colorspace_renderer.png
new file mode 100644
index 000000000000..acf30c3e1716
--- /dev/null
+++ b/docs/html/reference/images/graphics/colorspace_renderer.png
Binary files differ
diff --git a/graphics/java/android/graphics/ColorSpace.java b/graphics/java/android/graphics/ColorSpace.java
index 4f2465fd5da4..7dc5de3051e6 100644
--- a/graphics/java/android/graphics/ColorSpace.java
+++ b/graphics/java/android/graphics/ColorSpace.java
@@ -16,12 +16,16 @@
package android.graphics;
+import android.annotation.ColorInt;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Size;
import android.annotation.Nullable;
+import android.util.Pair;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
import java.util.function.DoubleUnaryOperator;
/**
@@ -118,11 +122,38 @@ import java.util.function.DoubleUnaryOperator;
* and {@link #connect(ColorSpace, ColorSpace)}, are also guaranteed to be
* thread-safe.</p>
*
+ * <h3>Visualization and debugging</h3>
+ *
+ * <p>To visualize and debug color spaces, you can call {@link #createRenderer()}.
+ * The {@link Renderer} created by calling this method can be used to compare
+ * color spaces and locate specific colors on a CIE 1931 chromaticity diagram.</p>
+ *
+ * <p>The following code snippet shows how to render a bitmap that compares
+ * the color gamuts and white points of {@link Named#DCI_P3} and
+ * {@link Named#PRO_PHOTO_RGB}:</p>
+ *
+ * <pre class="prettyprint">
+ * Bitmap bitmap = ColorSpace.createRenderer()
+ * .size(768)
+ * .clip(true)
+ * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
+ * .add(ColorSpace.get(ColorSpace.Named.PRO_PHOTO_RGB), 0xff097ae9)
+ * .render();
+ * </pre>
+ * <p>
+ * <img src="{@docRoot}reference/android/images/graphics/colorspace_renderer.png" />
+ * <figcaption style="text-align: center;">DCI-P3 vs ProPhoto RGB</figcaption>
+ * </p>
+ *
+ * <p>Please refer to the documentation of the {@link Renderer} class for more
+ * information about its options and capabilities.</p>
+ *
* @see #get(Named)
* @see Named
* @see Model
* @see Connector
* @see Adaptation
+ * @see Renderer
*/
@SuppressWarnings("StaticInitializerReferencesSubClass")
public abstract class ColorSpace {
@@ -1333,6 +1364,20 @@ public abstract class ColorSpace {
return sNamedColorSpaces[name.ordinal()];
}
+ /**
+ * <p>Creates a new {@link Renderer} that can be used to visualize and
+ * debug color spaces. See the documentation of {@link Renderer} for
+ * more information.</p>
+ *
+ * @return A new non-null {@link Renderer} instance
+ *
+ * @see Renderer
+ */
+ @NonNull
+ public static Renderer createRenderer() {
+ return new Renderer();
+ }
+
static {
sNamedColorSpaces[Named.SRGB.ordinal()] = new ColorSpace.Rgb(
"sRGB IEC61966-2.1",
@@ -3113,4 +3158,688 @@ public abstract class ColorSpace {
};
}
}
+
+ /**
+ * <p>A color space renderer can be used to visualize and compare the gamut and
+ * white point of one or more color spaces. The output is an sRGB {@link Bitmap}
+ * showing a CIE 1931 xyY chromaticity diagram.</p>
+ *
+ * <p>The following code snippet shows how to compare the {@link Named#SRGB}
+ * and {@link Named#DCI_P3} color spaces:</p>
+ *
+ * <pre class="prettyprint">
+ * Bitmap bitmap = ColorSpace.createRenderer()
+ * .size(768)
+ * .clip(true)
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
+ * .render();
+ * </pre>
+ * <p>
+ * <img src="{@docRoot}reference/android/images/graphics/colorspace_clipped.png" />
+ * <figcaption style="text-align: center;">sRGB vs DCI-P3</figcaption>
+ * </p>
+ *
+ * <p>A renderer can also be used to show the location of specific colors,
+ * associated with a color space, in the CIE 1931 xyY chromaticity diagram.
+ * See {@link #add(ColorSpace, float, float, float, int)} for more information.</p>
+ *
+ * @see ColorSpace#createRenderer()
+ */
+ public static class Renderer {
+ private static final int NATIVE_SIZE = 1440;
+
+ @IntRange(from = 128, to = Integer.MAX_VALUE)
+ private int mSize = 1024;
+
+ private boolean mShowWhitePoint = true;
+ private boolean mClip = false;
+
+ private final List<Pair<ColorSpace, Integer>> mColorSpaces = new ArrayList<>(2);
+ private final List<Point> mPoints = new ArrayList<>(0);
+
+ private Renderer() {
+ }
+
+ /**
+ * <p>Defines whether the chromaticity diagram should be clipped by the first
+ * registered color space. The default value is false.</p>
+ *
+ * <p>The following code snippet and image show the default behavior:</p>
+ * <pre class="prettyprint">
+ * Bitmap bitmap = ColorSpace.createRenderer()
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
+ * .render();
+ * </pre>
+ * <p>
+ * <img src="{@docRoot}reference/android/images/graphics/colorspace_comparison.png" />
+ * <figcaption style="text-align: center;">Clipping disabled</figcaption>
+ * </p>
+ *
+ * <p>Here is the same example with clipping enabled:</p>
+ * <pre class="prettyprint">
+ * Bitmap bitmap = ColorSpace.createRenderer()
+ * .clip(true)
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
+ * .render();
+ * </pre>
+ * <p>
+ * <img src="{@docRoot}reference/android/images/graphics/colorspace_clipped.png" />
+ * <figcaption style="text-align: center;">Clipping enabled</figcaption>
+ * </p>
+ *
+ * @param clip True to clip the chromaticity diagram to the first registered color space,
+ * false otherwise
+ * @return This instance of {@link Renderer}
+ */
+ @NonNull
+ public Renderer clip(boolean clip) {
+ mClip = clip;
+ return this;
+ }
+
+ /**
+ * Sets the dimensions (width and height) in pixels of the output bitmap.
+ * The size must be at least 128px and defaults to 1024px.
+ *
+ * @param size The size in pixels of the output bitmap
+ * @return This instance of {@link Renderer}
+ */
+ @NonNull
+ public Renderer size(@IntRange(from = 128, to = Integer.MAX_VALUE) int size) {
+ mSize = Math.max(128, size);
+ return this;
+ }
+
+ /**
+ * Shows or hides the white point of each color space in the output bitmap.
+ * The default is true.
+ *
+ * @param show True to show the white point of each color space, false
+ * otherwise
+ * @return This instance of {@link Renderer}
+ */
+ @NonNull
+ public Renderer showWhitePoint(boolean show) {
+ mShowWhitePoint = show;
+ return this;
+ }
+
+ /**
+ * <p>Adds a color space to represent on the output CIE 1931 chromaticity
+ * diagram. The color space is represented as a triangle showing the
+ * footprint of its color gamut and, optionally, the location of its
+ * white point.</p>
+ *
+ * <p class="note">Color spaces with a color model that is not RGB are
+ * accepted but ignored.</p>
+ *
+ * <p>The following code snippet and image show an example of calling this
+ * method to compare {@link Named#SRGB sRGB} and {@link Named#DCI_P3 DCI-P3}:</p>
+ * <pre class="prettyprint">
+ * Bitmap bitmap = ColorSpace.createRenderer()
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
+ * .render();
+ * </pre>
+ * <p>
+ * <img src="{@docRoot}reference/android/images/graphics/colorspace_comparison.png" />
+ * <figcaption style="text-align: center;">sRGB vs DCI-P3</figcaption>
+ * </p>
+ *
+ * <p>Adding a color space extending beyond the boundaries of the
+ * spectral locus will alter the size of the diagram within the output
+ * bitmap as shown in this example:</p>
+ * <pre class="prettyprint">
+ * Bitmap bitmap = ColorSpace.createRenderer()
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.DCI_P3), 0xffffc845)
+ * .add(ColorSpace.get(ColorSpace.Named.ACES), 0xff097ae9)
+ * .add(ColorSpace.get(ColorSpace.Named.EXTENDED_SRGB), 0xff000000)
+ * .render();
+ * </pre>
+ * <p>
+ * <img src="{@docRoot}reference/android/images/graphics/colorspace_comparison2.png" />
+ * <figcaption style="text-align: center;">sRGB vs DCI-P3</figcaption>
+ * </p>
+ *
+ * @param colorSpace The color space whose gamut to render on the diagram
+ * @param color The sRGB color to use to render the color space's gamut and white point
+ * @return This instance of {@link Renderer}
+ *
+ * @see #clip(boolean)
+ * @see #showWhitePoint(boolean)
+ */
+ @NonNull
+ public Renderer add(@NonNull ColorSpace colorSpace, @ColorInt int color) {
+ mColorSpaces.add(new Pair<>(colorSpace, color));
+ return this;
+ }
+
+ /**
+ * <p>Adds a color to represent as a point on the chromaticity diagram.
+ * The color is associated with a color space which will be used to
+ * perform the conversion to CIE XYZ and compute the location of the point
+ * on the diagram. The point is rendered as a colored circle.</p>
+ *
+ * <p>The following code snippet and image show an example of calling this
+ * method to render the location of several sRGB colors as white circles:</p>
+ * <pre class="prettyprint">
+ * Bitmap bitmap = ColorSpace.createRenderer()
+ * .clip(true)
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.0f, 0.1f, 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.1f, 0.1f, 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.2f, 0.1f, 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.3f, 0.1f, 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.4f, 0.1f, 0xffffffff)
+ * .add(ColorSpace.get(ColorSpace.Named.SRGB), 0.1f, 0.5f, 0.1f, 0xffffffff)
+ * .render();
+ * </pre>
+ * <p>
+ * <img src="{@docRoot}reference/android/images/graphics/colorspace_points.png" />
+ * <figcaption style="text-align: center;">
+ * Locating colors on the chromaticity diagram
+ * </figcaption>
+ * </p>
+ *
+ * @param colorSpace The color space of the color to locate on the diagram
+ * @param r The first component of the color to locate on the diagram
+ * @param g The second component of the color to locate on the diagram
+ * @param b The third component of the color to locate on the diagram
+ * @param pointColor The sRGB color to use to render the point on the diagram
+ * @return This instance of {@link Renderer}
+ */
+ @NonNull
+ public Renderer add(@NonNull ColorSpace colorSpace, float r, float g, float b,
+ @ColorInt int pointColor) {
+ mPoints.add(new Point(colorSpace, new float[] { r, g, b }, pointColor));
+ return this;
+ }
+
+ /**
+ * <p>Renders the {@link #add(ColorSpace, int) color spaces} and
+ * {@link #add(ColorSpace, float, float, float, int) points} registered
+ * with this renderer. The output bitmap is an sRGB image with the
+ * dimensions specified by calling {@link #size(int)} (1204x1024px by
+ * default).</p>
+ *
+ * @return A new non-null {@link Bitmap} with the dimensions specified
+ * by {@link #size(int)} (1024x1024 by default)
+ */
+ @NonNull
+ public Bitmap render() {
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ Bitmap bitmap = Bitmap.createBitmap(mSize, mSize, Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(bitmap);
+
+ float[] primaries = new float[6];
+ float[] whitePoint = new float[2];
+
+ int width = NATIVE_SIZE;
+ int height = NATIVE_SIZE;
+
+ Path path = new Path();
+
+ setTransform(canvas, width, height, primaries);
+ drawBox(canvas, width, height, paint, path);
+ drawLocus(canvas, width, height, paint, path, primaries);
+ drawGamuts(canvas, width, height, paint, path, primaries, whitePoint);
+ drawPoints(canvas, width, height, paint);
+
+ return bitmap;
+ }
+
+ /**
+ * Draws registered points at their correct position in the xyY coordinates.
+ * Each point is positioned according to its associated color space.
+ *
+ * @param canvas The canvas to transform
+ * @param width Width in pixel of the final image
+ * @param height Height in pixel of the final image
+ * @param paint A pre-allocated paint used to avoid temporary allocations
+ */
+ private void drawPoints(@NonNull Canvas canvas, int width, int height,
+ @NonNull Paint paint) {
+
+ paint.setStyle(Paint.Style.FILL);
+
+ float[] v = new float[3];
+ for (final Point point : mPoints) {
+ v[0] = point.mRgb[0];
+ v[1] = point.mRgb[1];
+ v[2] = point.mRgb[2];
+ point.mColorSpace.toXyz(v);
+
+ paint.setColor(point.mColor);
+
+ // XYZ to xyY, assuming Y=1.0
+ float sum = v[0] + v[1] + v[2];
+ canvas.drawCircle(width * v[0] / sum, height - height * v[1] / sum,
+ 4.0f, paint);
+ }
+ }
+
+ /**
+ * Draws the color gamuts and white points of all the registered color
+ * spaces. Only color spaces with an RGB color model are rendered, the
+ * others are ignored.
+ *
+ * @param canvas The canvas to transform
+ * @param width Width in pixel of the final image
+ * @param height Height in pixel of the final image
+ * @param paint A pre-allocated paint used to avoid temporary allocations
+ * @param path A pre-allocated path used to avoid temporary allocations
+ * @param primaries A pre-allocated array of 6 floats to avoid temporary allocations
+ * @param whitePoint A pre-allocated array of 2 floats to avoid temporary allocations
+ */
+ private void drawGamuts(
+ @NonNull Canvas canvas, int width, int height,
+ @NonNull Paint paint, @NonNull Path path,
+ @NonNull @Size(6) float[] primaries, @NonNull @Size(2) float[] whitePoint) {
+
+ for (final Pair<ColorSpace, Integer> item : mColorSpaces) {
+ ColorSpace colorSpace = item.first;
+ int color = item.second;
+
+ if (colorSpace.getModel() != Model.RGB) continue;
+
+ Rgb rgb = (Rgb) colorSpace;
+ getPrimaries(rgb, primaries);
+
+ path.rewind();
+ path.moveTo(width * primaries[0], height - height * primaries[1]);
+ path.lineTo(width * primaries[2], height - height * primaries[3]);
+ path.lineTo(width * primaries[4], height - height * primaries[5]);
+ path.close();
+
+ paint.setStyle(Paint.Style.STROKE);
+ paint.setColor(color);
+ canvas.drawPath(path, paint);
+
+ // Draw the white point
+ if (mShowWhitePoint) {
+ rgb.getWhitePoint(whitePoint);
+
+ paint.setStyle(Paint.Style.FILL);
+ paint.setColor(color);
+ canvas.drawCircle(width * whitePoint[0], height - height * whitePoint[1],
+ 4.0f, paint);
+ }
+ }
+ }
+
+ /**
+ * Returns the primaries of the specified RGB color space. This method handles
+ * the special case of the {@link Named#EXTENDED_SRGB} family of color spaces.
+ *
+ * @param rgb The color space whose primaries to extract
+ * @param primaries A pre-allocated array of 6 floats that will hold the result
+ */
+ @NonNull
+ @Size(6)
+ private static float[] getPrimaries(@NonNull Rgb rgb, @NonNull @Size(6) float[] primaries) {
+ // TODO: We should find a better way to handle these cases
+ if (rgb.equals(ColorSpace.get(Named.EXTENDED_SRGB)) ||
+ rgb.equals(ColorSpace.get(Named.LINEAR_EXTENDED_SRGB))) {
+ primaries[0] = 1.41f;
+ primaries[1] = 0.33f;
+ primaries[2] = 0.27f;
+ primaries[3] = 1.24f;
+ primaries[4] = -0.23f;
+ primaries[5] = -0.57f;
+ return primaries;
+ }
+ return rgb.getPrimaries(primaries);
+ }
+
+ /**
+ * Draws the CIE 1931 chromaticity diagram: the spectral locus and its inside.
+ * This method respect the clip parameter.
+ *
+ * @param canvas The canvas to transform
+ * @param width Width in pixel of the final image
+ * @param height Height in pixel of the final image
+ * @param paint A pre-allocated paint used to avoid temporary allocations
+ * @param path A pre-allocated path used to avoid temporary allocations
+ * @param primaries A pre-allocated array of 6 floats to avoid temporary allocations
+ */
+ private void drawLocus(
+ @NonNull Canvas canvas, int width, int height, @NonNull Paint paint,
+ @NonNull Path path, @NonNull @Size(6) float[] primaries) {
+
+ int vertexCount = SPECTRUM_LOCUS_X.length * CHROMATICITY_RESOLUTION * 6;
+ float[] vertices = new float[vertexCount * 2];
+ int[] colors = new int[vertices.length];
+ computeChromaticityMesh(NATIVE_SIZE, NATIVE_SIZE, vertices, colors);
+
+ // Draw the spectral locus
+ if (mClip && mColorSpaces.size() > 0) {
+ for (final Pair<ColorSpace, Integer> item : mColorSpaces) {
+ ColorSpace colorSpace = item.first;
+ if (colorSpace.getModel() != Model.RGB) continue;
+
+ Rgb rgb = (Rgb) colorSpace;
+ getPrimaries(rgb, primaries);
+ break;
+ }
+
+ path.rewind();
+ path.moveTo(width * primaries[0], height - height * primaries[1]);
+ path.lineTo(width * primaries[2], height - height * primaries[3]);
+ path.lineTo(width * primaries[4], height - height * primaries[5]);
+ path.close();
+
+ int[] solid = new int[colors.length];
+ Arrays.fill(solid, 0xff6c6c6c);
+ canvas.drawVertices(Canvas.VertexMode.TRIANGLES, vertices.length, vertices, 0,
+ null, 0, solid, 0, null, 0, 0, paint);
+
+ canvas.save();
+ canvas.clipPath(path);
+
+ canvas.drawVertices(Canvas.VertexMode.TRIANGLES, vertices.length, vertices, 0,
+ null, 0, colors, 0, null, 0, 0, paint);
+
+ canvas.restore();
+ } else {
+ canvas.drawVertices(Canvas.VertexMode.TRIANGLES, vertices.length, vertices, 0,
+ null, 0, colors, 0, null, 0, 0, paint);
+ }
+
+ // Draw the non-spectral locus
+ int index = (CHROMATICITY_RESOLUTION - 1) * 12;
+ path.reset();
+ path.moveTo(vertices[index], vertices[index + 1]);
+ for (int x = 2; x < SPECTRUM_LOCUS_X.length; x++) {
+ index += CHROMATICITY_RESOLUTION * 12;
+ path.lineTo(vertices[index], vertices[index + 1]);
+ }
+ path.close();
+
+ paint.setStyle(Paint.Style.STROKE);
+ paint.setColor(0xff000000);
+ canvas.drawPath(path, paint);
+ }
+
+ /**
+ * Draws the diagram box, including borders, tick marks, grid lines
+ * and axis labels.
+ *
+ * @param canvas The canvas to transform
+ * @param width Width in pixel of the final image
+ * @param height Height in pixel of the final image
+ * @param paint A pre-allocated paint used to avoid temporary allocations
+ * @param path A pre-allocated path used to avoid temporary allocations
+ */
+ private void drawBox(@NonNull Canvas canvas, int width, int height, @NonNull Paint paint,
+ @NonNull Path path) {
+ // Draw the unit grid
+ paint.setStyle(Paint.Style.STROKE);
+ paint.setStrokeWidth(2.0f);
+ paint.setColor(0xffc0c0c0);
+ for (int i = 1; i <= 9; i++) {
+ canvas.drawLine(0.0f, height - (height * i / 10.0f),
+ 0.9f * width, height - (height * i / 10.0f), paint);
+ canvas.drawLine(width * i / 10.0f, height,
+ width * i / 10.0f, 0.1f * height, paint);
+ }
+
+ // Draw tick marks
+ paint.setStrokeWidth(4.0f);
+ paint.setColor(0xff000000);
+ for (int i = 1; i <= 9; i++) {
+ canvas.drawLine(0.0f, height - (height * i / 10.0f),
+ width / 100.0f, height - (height * i / 10.0f), paint);
+ canvas.drawLine(width * i / 10.0f, height,
+ width * i / 10.0f, height - (height / 100.0f), paint);
+ }
+
+ // Draw the axis labels
+ paint.setStyle(Paint.Style.FILL);
+ paint.setTextSize(36.0f);
+ paint.setTypeface(Typeface.create("sans-serif-light", Typeface.NORMAL));
+
+ Rect bounds = new Rect();
+ for (int i = 1; i < 9; i++) {
+ String text = "0." + i;
+ paint.getTextBounds(text, 0, text.length(), bounds);
+
+ float y = height - (height * i / 10.0f);
+ canvas.drawText(text, -0.05f * width + 10, y + bounds.height() / 2.0f, paint);
+
+ float x = width * i / 10.0f;
+ canvas.drawText(text, x - bounds.width() / 2.0f,
+ height + bounds.height() + 16, paint);
+ }
+ paint.setStyle(Paint.Style.STROKE);
+
+ // Draw the diagram box
+ path.moveTo(0.0f, height);
+ path.lineTo(0.9f * width, height);
+ path.lineTo(0.9f * width, 0.1f * height);
+ path.lineTo(0.0f, 0.1f * height);
+ path.close();
+ canvas.drawPath(path, paint);
+ }
+
+ /**
+ * Computes and applies the Canvas transforms required to make the color
+ * gamut of each color space visible in the final image.
+ *
+ * @param canvas The canvas to transform
+ * @param width Width in pixel of the final image
+ * @param height Height in pixel of the final image
+ * @param primaries Array of 6 floats used to avoid temporary allocations
+ */
+ private void setTransform(@NonNull Canvas canvas, int width, int height,
+ @NonNull @Size(6) float[] primaries) {
+
+ RectF primariesBounds = new RectF();
+ for (final Pair<ColorSpace, Integer> item : mColorSpaces) {
+ ColorSpace colorSpace = item.first;
+ if (colorSpace.getModel() != Model.RGB) continue;
+
+ Rgb rgb = (Rgb) colorSpace;
+ getPrimaries(rgb, primaries);
+
+ primariesBounds.left = Math.min(primariesBounds.left, primaries[4]);
+ primariesBounds.top = Math.min(primariesBounds.top, primaries[5]);
+ primariesBounds.right = Math.max(primariesBounds.right, primaries[0]);
+ primariesBounds.bottom = Math.max(primariesBounds.bottom, primaries[3]);
+ }
+
+ primariesBounds.left = Math.min(0.0f, primariesBounds.left);
+ primariesBounds.top = Math.min(0.0f, primariesBounds.top);
+ primariesBounds.right = Math.max(0.9f, primariesBounds.right);
+ primariesBounds.bottom = Math.max(0.9f, primariesBounds.bottom);
+
+ float scaleX = 0.9f / primariesBounds.width();
+ float scaleY = 0.9f / primariesBounds.height();
+ float scale = Math.min(scaleX, scaleY);
+
+ canvas.scale(mSize / (float) NATIVE_SIZE, mSize / (float) NATIVE_SIZE);
+ canvas.scale(scale, scale);
+ canvas.translate(
+ (primariesBounds.width() - 0.9f) * width / 2.0f,
+ (primariesBounds.height() - 0.9f) * height / 2.0f);
+
+ // The spectrum extends ~0.85 vertically and ~0.65 horizontally
+ // We shift the canvas a little bit to get nicer margins
+ canvas.translate(0.05f * width, -0.05f * height);
+ }
+
+ // X coordinates of the spectral locus in CIE 1931
+ private static final float[] SPECTRUM_LOCUS_X = {
+ 0.175596f, 0.172787f, 0.170806f, 0.170085f, 0.160343f,
+ 0.146958f, 0.139149f, 0.133536f, 0.126688f, 0.115830f,
+ 0.109616f, 0.099146f, 0.091310f, 0.078130f, 0.068717f,
+ 0.054675f, 0.040763f, 0.027497f, 0.016270f, 0.008169f,
+ 0.004876f, 0.003983f, 0.003859f, 0.004646f, 0.007988f,
+ 0.013870f, 0.022244f, 0.027273f, 0.032820f, 0.038851f,
+ 0.045327f, 0.052175f, 0.059323f, 0.066713f, 0.074299f,
+ 0.089937f, 0.114155f, 0.138695f, 0.154714f, 0.192865f,
+ 0.229607f, 0.265760f, 0.301588f, 0.337346f, 0.373083f,
+ 0.408717f, 0.444043f, 0.478755f, 0.512467f, 0.544767f,
+ 0.575132f, 0.602914f, 0.627018f, 0.648215f, 0.665746f,
+ 0.680061f, 0.691487f, 0.700589f, 0.707901f, 0.714015f,
+ 0.719017f, 0.723016f, 0.734674f, 0.717203f, 0.699732f,
+ 0.682260f, 0.664789f, 0.647318f, 0.629847f, 0.612376f,
+ 0.594905f, 0.577433f, 0.559962f, 0.542491f, 0.525020f,
+ 0.507549f, 0.490077f, 0.472606f, 0.455135f, 0.437664f,
+ 0.420193f, 0.402721f, 0.385250f, 0.367779f, 0.350308f,
+ 0.332837f, 0.315366f, 0.297894f, 0.280423f, 0.262952f,
+ 0.245481f, 0.228010f, 0.210538f, 0.193067f, 0.175596f
+ };
+ // Y coordinates of the spectral locus in CIE 1931
+ private static final float[] SPECTRUM_LOCUS_Y = {
+ 0.005295f, 0.004800f, 0.005472f, 0.005976f, 0.014496f,
+ 0.026643f, 0.035211f, 0.042704f, 0.053441f, 0.073601f,
+ 0.086866f, 0.112037f, 0.132737f, 0.170464f, 0.200773f,
+ 0.254155f, 0.317049f, 0.387997f, 0.463035f, 0.538504f,
+ 0.587196f, 0.610526f, 0.654897f, 0.675970f, 0.715407f,
+ 0.750246f, 0.779682f, 0.792153f, 0.802971f, 0.812059f,
+ 0.819430f, 0.825200f, 0.829460f, 0.832306f, 0.833833f,
+ 0.833316f, 0.826231f, 0.814796f, 0.805884f, 0.781648f,
+ 0.754347f, 0.724342f, 0.692326f, 0.658867f, 0.624470f,
+ 0.589626f, 0.554734f, 0.520222f, 0.486611f, 0.454454f,
+ 0.424252f, 0.396516f, 0.372510f, 0.351413f, 0.334028f,
+ 0.319765f, 0.308359f, 0.299317f, 0.292044f, 0.285945f,
+ 0.280951f, 0.276964f, 0.265326f, 0.257200f, 0.249074f,
+ 0.240948f, 0.232822f, 0.224696f, 0.216570f, 0.208444f,
+ 0.200318f, 0.192192f, 0.184066f, 0.175940f, 0.167814f,
+ 0.159688f, 0.151562f, 0.143436f, 0.135311f, 0.127185f,
+ 0.119059f, 0.110933f, 0.102807f, 0.094681f, 0.086555f,
+ 0.078429f, 0.070303f, 0.062177f, 0.054051f, 0.045925f,
+ 0.037799f, 0.029673f, 0.021547f, 0.013421f, 0.005295f
+ };
+
+ // Number of subdivision of the inside of the spectral locus
+ private static final int CHROMATICITY_RESOLUTION = 32;
+ private static final double ONE_THIRD = 1.0 / 3.0;
+
+ /**
+ * Computes a 2D mesh representation of the CIE 1931 chromaticity
+ * diagram.
+ *
+ * @param width Width in pixels of the mesh
+ * @param height Height in pixels of the mesh
+ * @param vertices Array of floats that will hold the mesh vertices
+ * @param colors Array of floats that will hold the mesh colors
+ */
+ private static void computeChromaticityMesh(int width, int height,
+ @NonNull float[] vertices, @NonNull int[] colors) {
+
+ ColorSpace colorSpace = get(Named.SRGB);
+
+ float[] color = new float[3];
+
+ int vertexIndex = 0;
+ int colorIndex = 0;
+
+ for (int x = 0; x < SPECTRUM_LOCUS_X.length; x++) {
+ int nextX = (x % (SPECTRUM_LOCUS_X.length - 1)) + 1;
+
+ float a1 = (float) Math.atan2(
+ SPECTRUM_LOCUS_Y[x] - ONE_THIRD,
+ SPECTRUM_LOCUS_X[x] - ONE_THIRD);
+ float a2 = (float) Math.atan2(
+ SPECTRUM_LOCUS_Y[nextX] - ONE_THIRD,
+ SPECTRUM_LOCUS_X[nextX] - ONE_THIRD);
+
+ float radius1 = (float) Math.pow(
+ sqr(SPECTRUM_LOCUS_X[x] - ONE_THIRD) +
+ sqr(SPECTRUM_LOCUS_Y[x] - ONE_THIRD),
+ 0.5);
+ float radius2 = (float) Math.pow(
+ sqr(SPECTRUM_LOCUS_X[nextX] - ONE_THIRD) +
+ sqr(SPECTRUM_LOCUS_Y[nextX] - ONE_THIRD),
+ 0.5);
+
+ // Compute patches; each patch is a quad with a different
+ // color associated with each vertex
+ for (int c = 1; c <= CHROMATICITY_RESOLUTION; c++) {
+ float f1 = c / (float) CHROMATICITY_RESOLUTION;
+ float f2 = (c - 1) / (float) CHROMATICITY_RESOLUTION;
+
+ double cr1 = radius1 * Math.cos(a1);
+ double sr1 = radius1 * Math.sin(a1);
+ double cr2 = radius2 * Math.cos(a2);
+ double sr2 = radius2 * Math.sin(a2);
+
+ // Compute the XYZ coordinates of the 4 vertices of the patch
+ float v1x = (float) (ONE_THIRD + cr1 * f1);
+ float v1y = (float) (ONE_THIRD + sr1 * f1);
+ float v1z = 1 - v1x - v1y;
+
+ float v2x = (float) (ONE_THIRD + cr1 * f2);
+ float v2y = (float) (ONE_THIRD + sr1 * f2);
+ float v2z = 1 - v2x - v2y;
+
+ float v3x = (float) (ONE_THIRD + cr2 * f2);
+ float v3y = (float) (ONE_THIRD + sr2 * f2);
+ float v3z = 1 - v3x - v3y;
+
+ float v4x = (float) (ONE_THIRD + cr2 * f1);
+ float v4y = (float) (ONE_THIRD + sr2 * f1);
+ float v4z = 1 - v4x - v4y;
+
+ // Compute the sRGB representation of each XYZ coordinate of the patch
+ colors[colorIndex ] = computeColor(color, v1x, v1y, v1z, colorSpace);
+ colors[colorIndex + 1] = computeColor(color, v2x, v2y, v2z, colorSpace);
+ colors[colorIndex + 2] = computeColor(color, v3x, v3y, v3z, colorSpace);
+ colors[colorIndex + 3] = colors[colorIndex];
+ colors[colorIndex + 4] = colors[colorIndex + 2];
+ colors[colorIndex + 5] = computeColor(color, v4x, v4y, v4z, colorSpace);
+ colorIndex += 6;
+
+ // Flip the mesh upside down to match Canvas' coordinates system
+ vertices[vertexIndex++] = v1x * width;
+ vertices[vertexIndex++] = height - v1y * height;
+ vertices[vertexIndex++] = v2x * width;
+ vertices[vertexIndex++] = height - v2y * height;
+ vertices[vertexIndex++] = v3x * width;
+ vertices[vertexIndex++] = height - v3y * height;
+ vertices[vertexIndex++] = v1x * width;
+ vertices[vertexIndex++] = height - v1y * height;
+ vertices[vertexIndex++] = v3x * width;
+ vertices[vertexIndex++] = height - v3y * height;
+ vertices[vertexIndex++] = v4x * width;
+ vertices[vertexIndex++] = height - v4y * height;
+ }
+ }
+ }
+
+ @ColorInt
+ private static int computeColor(@NonNull @Size(3) float[] color,
+ float x, float y, float z, @NonNull ColorSpace cs) {
+ color[0] = x;
+ color[1] = y;
+ color[2] = z;
+ cs.fromXyz(color);
+ return 0xff000000 |
+ (((int) (color[0] * 255.0f) & 0xff) << 16) |
+ (((int) (color[1] * 255.0f) & 0xff) << 8) |
+ (((int) (color[2] * 255.0f) & 0xff) );
+ }
+
+ private static double sqr(double v) {
+ return v * v;
+ }
+
+ private static class Point {
+ @NonNull final ColorSpace mColorSpace;
+ @NonNull final float[] mRgb;
+ final int mColor;
+
+ Point(@NonNull ColorSpace colorSpace,
+ @NonNull @Size(3) float[] rgb, @ColorInt int color) {
+ mColorSpace = colorSpace;
+ mRgb = rgb;
+ mColor = color;
+ }
+ }
+ }
}
diff --git a/graphics/java/android/graphics/drawable/Icon.java b/graphics/java/android/graphics/drawable/Icon.java
index 2b950d3d5c5d..977200906d62 100644
--- a/graphics/java/android/graphics/drawable/Icon.java
+++ b/graphics/java/android/graphics/drawable/Icon.java
@@ -299,7 +299,7 @@ public final class Icon implements Parcelable {
final PackageManager pm = context.getPackageManager();
try {
ApplicationInfo ai = pm.getApplicationInfo(
- resPackage, PackageManager.GET_UNINSTALLED_PACKAGES);
+ resPackage, PackageManager.MATCH_UNINSTALLED_PACKAGES);
if (ai != null) {
mObj1 = pm.getResourcesForApplication(ai);
} else {
diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk
index eff24990a438..361e9018ccbd 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -278,6 +278,7 @@ LOCAL_SRC_FILES += \
tests/unit/BakedOpDispatcherTests.cpp \
tests/unit/BakedOpRendererTests.cpp \
tests/unit/BakedOpStateTests.cpp \
+ tests/unit/BitmapTests.cpp \
tests/unit/CanvasContextTests.cpp \
tests/unit/CanvasStateTests.cpp \
tests/unit/ClipAreaTests.cpp \
diff --git a/libs/hwui/Extensions.cpp b/libs/hwui/Extensions.cpp
index 1d675791b851..00238a25ebde 100644
--- a/libs/hwui/Extensions.cpp
+++ b/libs/hwui/Extensions.cpp
@@ -37,6 +37,26 @@ namespace uirenderer {
Extensions::Extensions() {
+ const char* version = (const char*) glGetString(GL_VERSION);
+
+ // Section 6.1.5 of the OpenGL ES specification indicates the GL version
+ // string strictly follows this format:
+ //
+ // OpenGL<space>ES<space><version number><space><vendor-specific information>
+ //
+ // In addition section 6.1.5 describes the version number thusly:
+ //
+ // "The version number is either of the form major number.minor number or
+ // major number.minor number.release number, where the numbers all have one
+ // or more digits. The release number and vendor specific information are
+ // optional."
+
+ if (sscanf(version, "OpenGL ES %d.%d", &mVersionMajor, &mVersionMinor) != 2) {
+ // If we cannot parse the version number, assume OpenGL ES 2.0
+ mVersionMajor = 2;
+ mVersionMinor = 0;
+ }
+
auto extensions = StringUtils::split((const char*) glGetString(GL_EXTENSIONS));
mHasNPot = extensions.has("GL_OES_texture_npot");
mHasFramebufferFetch = extensions.has("GL_NV_shader_framebuffer_fetch");
@@ -58,26 +78,6 @@ Extensions::Extensions() {
mHasSRGB = false;
mHasSRGBWriteControl = false;
#endif
-
- const char* version = (const char*) glGetString(GL_VERSION);
-
- // Section 6.1.5 of the OpenGL ES specification indicates the GL version
- // string strictly follows this format:
- //
- // OpenGL<space>ES<space><version number><space><vendor-specific information>
- //
- // In addition section 6.1.5 describes the version number thusly:
- //
- // "The version number is either of the form major number.minor number or
- // major number.minor number.release number, where the numbers all have one
- // or more digits. The release number and vendor specific information are
- // optional."
-
- if (sscanf(version, "OpenGL ES %d.%d", &mVersionMajor, &mVersionMinor) != 2) {
- // If we cannot parse the version number, assume OpenGL ES 2.0
- mVersionMajor = 2;
- mVersionMinor = 0;
- }
}
}; // namespace uirenderer
diff --git a/libs/hwui/Interpolator.cpp b/libs/hwui/Interpolator.cpp
index cc47f0052b73..bddb01b97865 100644
--- a/libs/hwui/Interpolator.cpp
+++ b/libs/hwui/Interpolator.cpp
@@ -97,7 +97,8 @@ LUTInterpolator::~LUTInterpolator() {
}
float LUTInterpolator::interpolate(float input) {
- float lutpos = input * mSize;
+ // lut position should only be at the end of the table when input is 1f.
+ float lutpos = input * (mSize - 1);
if (lutpos >= (mSize - 1)) {
return mValues[mSize - 1];
}
diff --git a/libs/hwui/tests/unit/BitmapTests.cpp b/libs/hwui/tests/unit/BitmapTests.cpp
new file mode 100644
index 000000000000..8c7e08183a1e
--- /dev/null
+++ b/libs/hwui/tests/unit/BitmapTests.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+
+#include "hwui/Bitmap.h"
+
+#include <SkBitmap.h>
+#include <SkColorTable.h>
+#include <SkImageInfo.h>
+
+#include <tests/common/TestUtils.h>
+
+using namespace android;
+using namespace android::uirenderer;
+
+TEST(Bitmap, colorTableRefCounting) {
+ const SkPMColor c[] = { SkPackARGB32(0x80, 0x80, 0, 0) };
+ SkColorTable* ctable = new SkColorTable(c, SK_ARRAY_COUNT(c));
+
+ SkBitmap* bm = new SkBitmap();
+ bm->allocPixels(SkImageInfo::Make(1, 1, kIndex_8_SkColorType, kPremul_SkAlphaType),
+ nullptr, ctable);
+ sk_sp<Bitmap> bitmap = Bitmap::allocateHeapBitmap(bm, ctable);
+ EXPECT_FALSE(ctable->unique());
+ delete bm;
+ bitmap.reset();
+ EXPECT_TRUE(ctable->unique());
+ ctable->unref();
+}
+
diff --git a/opengl/java/android/opengl/GLES30.java b/opengl/java/android/opengl/GLES30.java
index 74181c513753..3b805d20773c 100644
--- a/opengl/java/android/opengl/GLES30.java
+++ b/opengl/java/android/opengl/GLES30.java
@@ -590,6 +590,10 @@ public class GLES30 extends GLES20 {
// C function void glGetBufferPointerv ( GLenum target, GLenum pname, GLvoid** params )
+ /**
+ * The {@link java.nio.Buffer} instance returned by this method is guaranteed
+ * to be an instance of {@link java.nio.ByteBuffer}.
+ */
public static native java.nio.Buffer glGetBufferPointerv(
int target,
int pname
@@ -761,6 +765,10 @@ public class GLES30 extends GLES20 {
// C function GLvoid * glMapBufferRange ( GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access )
+ /**
+ * The {@link java.nio.Buffer} instance returned by this method is guaranteed
+ * to be an instance of {@link java.nio.ByteBuffer}.
+ */
public static native java.nio.Buffer glMapBufferRange(
int target,
int offset,
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index d0abbf983ff5..a281bba741e8 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"ብጁ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"እገዛ እና ግብረመልስ"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"ምናሌ"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"ጂኤምቲ"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 0eebcd7cbe68..9f6c440216ed 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"مخصص (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"المساعدة والتعليقات"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"القائمة"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"غرينيتش"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index cbb227138e67..cad5980fa336 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Prilagođeni (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Pomoć i povratne informacije"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Meni"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-be-rBY/strings.xml b/packages/SettingsLib/res/values-be-rBY/strings.xml
index 12f103d5b216..ba5b100c1641 100644
--- a/packages/SettingsLib/res/values-be-rBY/strings.xml
+++ b/packages/SettingsLib/res/values-be-rBY/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Карыстальніцкі (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Даведка і водгукі"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Меню"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index 19382ecf6c49..c360f87b798f 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalitzat (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Ajuda i suggeriments"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menú"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 032d73daae58..f3310809a611 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Προσαρμοσμένη (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Βοήθεια και σχόλια"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Μενού"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index 57738e8ff495..e27822f80dc3 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Custom (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Help &amp; feedback"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index 57738e8ff495..e27822f80dc3 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Custom (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Help &amp; feedback"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index 57738e8ff495..e27822f80dc3 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Custom (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Help &amp; feedback"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index 259e7fbc0b23..4353282d6b72 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizado (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Ayuda y sugerencias"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menú"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-eu-rES/strings.xml b/packages/SettingsLib/res/values-eu-rES/strings.xml
index 952fda8d0168..3e08c770745e 100644
--- a/packages/SettingsLib/res/values-eu-rES/strings.xml
+++ b/packages/SettingsLib/res/values-eu-rES/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Pertsonalizatua (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Laguntza eta iritziak"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menua"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index bf96b59b9179..648f7b3e10de 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Muokattu (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Ohje ja palaute"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Valikko"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-gu-rIN/strings.xml b/packages/SettingsLib/res/values-gu-rIN/strings.xml
index 1cded3d3cfe3..a732ea1dbd8a 100644
--- a/packages/SettingsLib/res/values-gu-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-gu-rIN/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"કસ્ટમ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"સહાય અને પ્રતિસાદ"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"મેનુ"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index 07241b5bf8e5..9559887b7e80 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"(<xliff:g id="DENSITYDPI">%d</xliff:g>) khusus"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Bantuan &amp; masukan"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-is-rIS/strings.xml b/packages/SettingsLib/res/values-is-rIS/strings.xml
index 8e8307b8b9e1..8be84442b1b3 100644
--- a/packages/SettingsLib/res/values-is-rIS/strings.xml
+++ b/packages/SettingsLib/res/values-is-rIS/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Sérsniðið (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Hjálp og ábendingar"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Valmynd"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index d894ccf6c33e..74ee5a1e828d 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizzato (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Guida e feedback"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ka-rGE/strings.xml b/packages/SettingsLib/res/values-ka-rGE/strings.xml
index 609cb339059c..8a3b81b85720 100644
--- a/packages/SettingsLib/res/values-ka-rGE/strings.xml
+++ b/packages/SettingsLib/res/values-ka-rGE/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"მორგებული (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"დახმარება და გამოხმაურება"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"მენიუ"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ky-rKG/strings.xml b/packages/SettingsLib/res/values-ky-rKG/strings.xml
index a2eb86d470df..3783cce69c59 100644
--- a/packages/SettingsLib/res/values-ky-rKG/strings.xml
+++ b/packages/SettingsLib/res/values-ky-rKG/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Ыңгайлаштырылган (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Жардам жана жооп пикир"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Меню"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-mk-rMK/strings.xml b/packages/SettingsLib/res/values-mk-rMK/strings.xml
index 711b949bedad..ebe8d00396f6 100644
--- a/packages/SettingsLib/res/values-mk-rMK/strings.xml
+++ b/packages/SettingsLib/res/values-mk-rMK/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Приспособен (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Помош и повратни информации"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Мени"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-mr-rIN/strings.xml b/packages/SettingsLib/res/values-mr-rIN/strings.xml
index 20f64fe40a28..be1fbc692023 100644
--- a/packages/SettingsLib/res/values-mr-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-mr-rIN/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"सानुकूल करा (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"मदत आणि अभिप्राय"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"मेनू"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ne-rNP/strings.xml b/packages/SettingsLib/res/values-ne-rNP/strings.xml
index a8a918b549f1..834580b4f639 100644
--- a/packages/SettingsLib/res/values-ne-rNP/strings.xml
+++ b/packages/SettingsLib/res/values-ne-rNP/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"अनुकूलन (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"मद्दत र प्रतिक्रिया"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"मेनु"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index 8bb4579f0b19..0f2e6d4046a9 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Aangepast (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Help en feedback"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 4db3e6e4fa7b..738974f176cb 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Niestandardowe (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Pomoc i opinie"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 7855beb3d1fe..ab866c890ed9 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizada (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Ajuda e feedback"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index 2c366c6197a9..2e4bbdc8ae05 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizado (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Ajuda e comentários"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 7855beb3d1fe..ab866c890ed9 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizada (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Ajuda e feedback"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index 2cf68a537064..5fd58a5c6c45 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Прилагођени (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Помоћ и повратне информације"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Мени"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index 975a4aa13571..ee9362234465 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Anpassad (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Hjälp och feedback"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Meny"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index b538545f9b3b..29557ec6942f 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Спеціальний масштаб (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Довідка й відгуки"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Меню"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-uz-rUZ/strings.xml b/packages/SettingsLib/res/values-uz-rUZ/strings.xml
index 8d1056a1bca8..05879a2d4405 100644
--- a/packages/SettingsLib/res/values-uz-rUZ/strings.xml
+++ b/packages/SettingsLib/res/values-uz-rUZ/strings.xml
@@ -341,6 +341,5 @@
<string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Moslashtirilgan (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
<string name="help_feedback_label" msgid="6815040660801785649">"Yordam va fikr-mulohaza"</string>
<string name="content_description_menu_button" msgid="8182594799812351266">"Menyu"</string>
- <!-- no translation found for time_zone_gmt (2587097992671450782) -->
- <skip />
+ <string name="time_zone_gmt" msgid="2587097992671450782">"GMT"</string>
</resources>
diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
index f0ec10786507..2b1582d14830 100644
--- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
+++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
@@ -135,11 +135,11 @@ public class ApplicationsState {
mBackgroundHandler = new BackgroundHandler(mThread.getLooper());
// Only the owner can see all apps.
- mAdminRetrieveFlags = PackageManager.GET_UNINSTALLED_PACKAGES |
- PackageManager.GET_DISABLED_COMPONENTS |
- PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS;
- mRetrieveFlags = PackageManager.GET_DISABLED_COMPONENTS |
- PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS;
+ mAdminRetrieveFlags = PackageManager.MATCH_ANY_USER |
+ PackageManager.MATCH_DISABLED_COMPONENTS |
+ PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS;
+ mRetrieveFlags = PackageManager.MATCH_DISABLED_COMPONENTS |
+ PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS;
/**
* This is a trick to prevent the foreground thread from being delayed.
@@ -855,7 +855,7 @@ public class ApplicationsState {
// explicitly include both direct boot aware and unaware components here.
List<ResolveInfo> intents = mPm.queryIntentActivitiesAsUser(
launchIntent,
- PackageManager.GET_DISABLED_COMPONENTS
+ PackageManager.MATCH_DISABLED_COMPONENTS
| PackageManager.MATCH_DIRECT_BOOT_AWARE
| PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
userId
diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java
index 5c577f8aa83c..e520319c1eb7 100644
--- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java
+++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/StorageMeasurement.java
@@ -409,8 +409,8 @@ public class StorageMeasurement {
// Measure all apps hosted on this volume for all users
if (mVolume.getType() == VolumeInfo.TYPE_PRIVATE) {
final List<ApplicationInfo> apps = packageManager.getInstalledApplications(
- PackageManager.GET_UNINSTALLED_PACKAGES
- | PackageManager.GET_DISABLED_COMPONENTS);
+ PackageManager.MATCH_ANY_USER
+ | PackageManager.MATCH_DISABLED_COMPONENTS);
final List<ApplicationInfo> volumeApps = new ArrayList<>();
for (ApplicationInfo app : apps) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/users/AppRestrictionsHelper.java b/packages/SettingsLib/src/com/android/settingslib/users/AppRestrictionsHelper.java
index c189e1d51499..c4aa57d7b593 100644
--- a/packages/SettingsLib/src/com/android/settingslib/users/AppRestrictionsHelper.java
+++ b/packages/SettingsLib/src/com/android/settingslib/users/AppRestrictionsHelper.java
@@ -112,7 +112,7 @@ public class AppRestrictionsHelper {
// Enable selected apps
try {
ApplicationInfo info = mIPm.getApplicationInfo(packageName,
- PackageManager.MATCH_UNINSTALLED_PACKAGES, userId);
+ PackageManager.MATCH_ANY_USER, userId);
if (info == null || !info.enabled
|| (info.flags&ApplicationInfo.FLAG_INSTALLED) == 0) {
mIPm.installExistingPackageAsUser(packageName, mUser.getIdentifier());
@@ -178,7 +178,7 @@ public class AppRestrictionsHelper {
addSystemApps(mVisibleApps, widgetIntent, excludePackages);
List<ApplicationInfo> installedApps = pm.getInstalledApplications(
- PackageManager.MATCH_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
for (ApplicationInfo app : installedApps) {
// If it's not installed, skip
if ((app.flags & ApplicationInfo.FLAG_INSTALLED) == 0) continue;
diff --git a/packages/SystemUI/res/layout/keyguard_bottom_area.xml b/packages/SystemUI/res/layout/keyguard_bottom_area.xml
index 444f0f016b85..078f9d73ffec 100644
--- a/packages/SystemUI/res/layout/keyguard_bottom_area.xml
+++ b/packages/SystemUI/res/layout/keyguard_bottom_area.xml
@@ -24,17 +24,36 @@
android:outlineProvider="none"
android:elevation="5dp" > <!-- Put it above the status bar header -->
- <com.android.systemui.statusbar.phone.KeyguardIndicationTextView
- android:id="@+id/keyguard_indication_text"
+ <LinearLayout
+ android:id="@+id/keyguard_indication_area"
+ android:forceHasOverlappingRendering="false"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/keyguard_indication_margin_bottom"
android:layout_gravity="bottom|center_horizontal"
- android:gravity="center_horizontal"
- android:textStyle="italic"
- android:textColor="#ffffff"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:accessibilityLiveRegion="polite" />
+ android:orientation="vertical">
+
+ <com.android.systemui.statusbar.phone.KeyguardIndicationTextView
+ android:id="@+id/keyguard_indication_enterprise_disclosure"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:textStyle="italic"
+ android:textColor="#ffffff"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:visibility="gone" />
+
+ <com.android.systemui.statusbar.phone.KeyguardIndicationTextView
+ android:id="@+id/keyguard_indication_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:textStyle="italic"
+ android:textColor="#ffffff"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:accessibilityLiveRegion="polite" />
+
+ </LinearLayout>
<FrameLayout
android:id="@+id/preview_container"
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 5294c9c46429..40308dcc3eb2 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Toeganklikheid"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Tik om te ontdemp."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Tik om op vibreer te stel. Toeganklikheidsdienste kan dalk gedemp wees."</string>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index 601930a91591..f807ba98ad5e 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"ተደራሽነት"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s። ድምጸ-ከል ለማድረግ መታ ያድርጉ"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s። ወደ ንዝረት ለማቀናበር መታ ያድርጉ። የተደራሽነት አገልግሎቶች ድምጸ-ከል ሊደረግባቸው ይችላል።"</string>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index a1a8f8d2d0f2..33110ce69d6a 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -459,6 +459,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"إمكانية الوصول"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"‏%1$s. انقر لإلغاء التجاهل."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"‏%1$s. انقر للتعيين على الاهتزاز. قد يتم تجاهل خدمات إمكانية الوصول."</string>
diff --git a/packages/SystemUI/res/values-az-rAZ/strings.xml b/packages/SystemUI/res/values-az-rAZ/strings.xml
index 1bc9e59e9046..49f27b200995 100644
--- a/packages/SystemUI/res/values-az-rAZ/strings.xml
+++ b/packages/SystemUI/res/values-az-rAZ/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Münasiblik"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Səsli etmək üçün tıklayın."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Vibrasiyanı ayarlamaq üçün tıklayın. Əlçatımlılıq xidmətləri səssiz edilmiş ola bilər."</string>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index 8105d9ea50b2..dc21bdedcd9d 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Pristupačnost"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Dodirnite da biste uključili zvuk."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Dodirnite da biste podesili na vibraciju. Zvuk usluga pristupačnosti će možda biti isključen."</string>
diff --git a/packages/SystemUI/res/values-be-rBY/strings.xml b/packages/SystemUI/res/values-be-rBY/strings.xml
index 83c67d4b81a7..ac93da7838a2 100644
--- a/packages/SystemUI/res/values-be-rBY/strings.xml
+++ b/packages/SystemUI/res/values-be-rBY/strings.xml
@@ -457,6 +457,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Спецыяльныя магчымасці"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Дакраніцеся, каб уключыць гук."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Дакраніцеся, каб уключыць вібрацыю. Можа быць адключаны гук службаў спецыяльных магчымасцей."</string>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index bf3a6148c973..7814efbd5f0c 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Достъпност"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Докоснете, за да включите отново звука."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Докоснете, за да зададете вибриране. Възможно е звукът на услугите за достъпност да бъде заглушен."</string>
diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml
index bd599bcdb2ab..c80efa4111b0 100644
--- a/packages/SystemUI/res/values-bn-rBD/strings.xml
+++ b/packages/SystemUI/res/values-bn-rBD/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> হল ভলিউম ডায়লগ"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"আসলটি পুনঃস্থাপন করতে আলতো চাপ দিন৷"</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"আপনি আপনার কাজের প্রোফাইল ব্যবহার করছেন"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"কল করুন"</item>
- <item msgid="5997713001067658559">"সিস্টেম"</item>
- <item msgid="7858983209929864160">"রিং"</item>
- <item msgid="1850038478268896762">"মিডিয়া"</item>
- <item msgid="8265110906352372092">"অ্যালার্ম"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"ব্লুটুথ"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s। সশব্দ করতে আলতো চাপুন।"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s। কম্পন এ সেট করতে আলতো চাপুন। অ্যাক্সেসযোগ্যতার পরিষেবাগুলিকে নিঃশব্দ করা হতে পারে।"</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s। নিঃশব্দ করতে আলতো চাপুন। অ্যাক্সেসযোগ্যতার পরিষেবাগুলিকে নিঃশব্দ করা হতে পারে।"</string>
diff --git a/packages/SystemUI/res/values-bs-rBA/strings.xml b/packages/SystemUI/res/values-bs-rBA/strings.xml
index 5ba720ccef7a..2d02a4fbc46d 100644
--- a/packages/SystemUI/res/values-bs-rBA/strings.xml
+++ b/packages/SystemUI/res/values-bs-rBA/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Pristupačnost"</item>
</string-array>
<!-- String.format failed for translation -->
<!-- no translation found for volume_stream_content_description_unmute (4436631538779230857) -->
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 927e75b12ee2..b0e6fe507374 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Accessibilitat"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Toca per activar el so."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Toca per activar la vibració. Pot ser que els serveis d\'accessibilitat se silenciïn."</string>
@@ -472,7 +473,7 @@
<string name="status_bar_airplane" msgid="7057575501472249002">"Mode d\'avió"</string>
<string name="add_tile" msgid="2995389510240786221">"Afegeix un mosaic"</string>
<string name="broadcast_tile" msgid="3894036511763289383">"Mosaic d\'emissió"</string>
- <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Si no desactives aquesta opció abans, <xliff:g id="WHEN">%1$s</xliff:g> no sentiràs la pròxima alarma"</string>
+ <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Si no desactives aquesta opció abans, no sentiràs la pròxima alarma (<xliff:g id="WHEN">%1$s</xliff:g>)"</string>
<string name="zen_alarm_warning" msgid="444533119582244293">"<xliff:g id="WHEN">%1$s</xliff:g> no sentiràs la pròxima alarma"</string>
<string name="alarm_template" msgid="3980063409350522735">"Hora: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="4242179982586714810">"Dia: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 69629a9eb208..639f8b5c2c76 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -457,6 +457,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Přístupnost"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Klepnutím zapnete zvuk."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Klepnutím aktivujete režim vibrací. Služby přístupnosti mohou být ztlumeny."</string>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 8e34bd037fc6..8fa27ad9a9ba 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> er dialogboksen for lydstyrke"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Tryk for at gendanne det oprindelige."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Du bruger din arbejdsprofil"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Opkald"</item>
- <item msgid="5997713001067658559">"System"</item>
- <item msgid="7858983209929864160">"Ring"</item>
- <item msgid="1850038478268896762">"Medier"</item>
- <item msgid="8265110906352372092">"Alarm"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Tryk for at slå lyden til."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Tryk for at konfigurere til at vibrere. Tilgængelighedstjenester kan blive deaktiveret."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Tryk for at slå lyden fra. Lyden i tilgængelighedstjenester kan blive slået fra."</string>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index b3a457d7e326..564625fc1456 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -442,18 +442,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> regelt die Lautstärke."</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Tippe, um das Original wiederherzustellen."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Du verwendest dein Arbeitsprofil."</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Anruf"</item>
- <item msgid="5997713001067658559">"System"</item>
- <item msgid="7858983209929864160">"Klingeln lassen"</item>
- <item msgid="1850038478268896762">"Medien"</item>
- <item msgid="8265110906352372092">"Wecker"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Zum Aufheben der Stummschaltung tippen."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Tippen, um Vibrieren festzulegen. Bedienungshilfen werden unter Umständen stummgeschaltet."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Zum Stummschalten tippen. Bedienungshilfen werden unter Umständen stummgeschaltet."</string>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index 050d7f8ca18e..a5c790c72535 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Προσβασιμότητα"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Πατήστε για κατάργηση σίγασης."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Πατήστε για ενεργοποιήσετε τη δόνηση. Οι υπηρεσίες προσβασιμότητας ενδέχεται να τεθούν σε σίγαση."</string>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index 9aca3cc290e8..5dacfb242791 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Accessibility"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Tap to unmute."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Tap to set to vibrate. Accessibility services may be muted."</string>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 9aca3cc290e8..5dacfb242791 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Accessibility"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Tap to unmute."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Tap to set to vibrate. Accessibility services may be muted."</string>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index 9aca3cc290e8..5dacfb242791 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Accessibility"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Tap to unmute."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Tap to set to vibrate. Accessibility services may be muted."</string>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 90c2ca1a8817..3ba43600278f 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Accesibilidad"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Presiona para dejar de silenciar."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Presiona para establecer el modo vibración. Es posible que los servicios de accesibilidad estén silenciados."</string>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 5558cac6d708..969f81285fad 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Accesibilidad"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Toca para activar el sonido."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Toca para poner el dispositivo en vibración. Los servicios de accesibilidad pueden silenciarse."</string>
diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml
index 84fadb2b50d6..e1ebfd2593b1 100644
--- a/packages/SystemUI/res/values-et-rEE/strings.xml
+++ b/packages/SystemUI/res/values-et-rEE/strings.xml
@@ -442,18 +442,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> on helitugevuse dialoog"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Puudutage originaali taastamiseks."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Kasutate oma tööprofiili"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Helistamine"</item>
- <item msgid="5997713001067658559">"Süsteem"</item>
- <item msgid="7858983209929864160">"Helin"</item>
- <item msgid="1850038478268896762">"Meedia"</item>
- <item msgid="8265110906352372092">"Äratus"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Puudutage vaigistuse tühistamiseks."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Puudutage värinarežiimi määramiseks. Juurdepääsetavuse teenused võidakse vaigistada."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Puudutage vaigistamiseks. Juurdepääsetavuse teenused võidakse vaigistada."</string>
diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml
index d6578a24a0c4..fa0c71168814 100644
--- a/packages/SystemUI/res/values-eu-rES/strings.xml
+++ b/packages/SystemUI/res/values-eu-rES/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Erabilerraztasuna"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Sakatu audioa aktibatzeko."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Sakatu dardara ezartzeko. Baliteke erabilerraztasun-eginbideen audioa desaktibatzea."</string>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index e00c5b5fbf5f..bd3c4fc0c581 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> کنترل‌کننده صدا است"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"برای بازیابی نسخه اصلی ضربه بزنید."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"درحال استفاده از نمایه کاری‌تان هستید"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"تماس"</item>
- <item msgid="5997713001067658559">"سیستم"</item>
- <item msgid="7858983209929864160">"تماس"</item>
- <item msgid="1850038478268896762">"رسانه"</item>
- <item msgid="8265110906352372092">"هشدار"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"بلوتوث"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"‏%1$s. برای باصدا کردن ضربه بزنید."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"‏%1$s. برای تنظیم روی لرزش ضربه بزنید. ممکن است سرویس‌های دسترس‌پذیری بی‌صدا شوند."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"‏%1$s. برای بی‌صدا کردن ضربه بزنید. ممکن است سرویس‌های دسترس‌پذیری بی‌صدا شوند."</string>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 08572fe22ffe..446c9f8efc08 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Esteettömyys"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Poista mykistys koskettamalla."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Siirry värinätilaan koskettamalla. Myös esteettömyyspalvelut saattavat mykistyä."</string>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 830bfa7b6269..a03e89728ff2 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -442,18 +442,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> correspond à la boîte de dialogue du volume"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Touchez pour restaurer l\'original."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Vous utilisez votre profil professionnel."</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Appeler"</item>
- <item msgid="5997713001067658559">"Système"</item>
- <item msgid="7858983209929864160">"Sonnerie"</item>
- <item msgid="1850038478268896762">"Multimédia"</item>
- <item msgid="8265110906352372092">"Alarme"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Touchez pour réactiver le son."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Touchez pour activer les vibrations. Il est possible de couper le son des services d\'accessibilité."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Touchez pour couper le son. Il est possible de couper le son des services d\'accessibilité."</string>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 3b138c2ce244..1e72795df7a0 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -442,18 +442,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> correspond à la boîte de dialogue du volume"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Appuyez pour rétablir la version d\'origine."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Vous utilisez votre profil professionnel."</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Appeler"</item>
- <item msgid="5997713001067658559">"Système"</item>
- <item msgid="7858983209929864160">"Sonnerie"</item>
- <item msgid="1850038478268896762">"Multimédia"</item>
- <item msgid="8265110906352372092">"Alarme"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Appuyez pour ne plus ignorer."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Appuyez pour mettre en mode vibreur. Vous pouvez ignorer les services d\'accessibilité."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Appuyez pour ignorer. Vous pouvez ignorer les services d\'accessibilité."</string>
diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml
index 579335d5ef20..515c729b6d57 100644
--- a/packages/SystemUI/res/values-gl-rES/strings.xml
+++ b/packages/SystemUI/res/values-gl-rES/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Accesibilidade"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Toca para activar o son."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Toca para establecer a vibración. Pódense silenciar os servizos de accesibilidade."</string>
diff --git a/packages/SystemUI/res/values-gu-rIN/strings.xml b/packages/SystemUI/res/values-gu-rIN/strings.xml
index 48a6d0fe699b..9778b86cbf22 100644
--- a/packages/SystemUI/res/values-gu-rIN/strings.xml
+++ b/packages/SystemUI/res/values-gu-rIN/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"ઍક્સેસિબિલિટી"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. અનમ્યૂટ કરવા માટે ટૅપ કરો."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. વાઇબ્રેટ પર સેટ કરવા માટે ટૅપ કરો. ઍક્સેસિબિલિટી સેવાઓ મ્યૂટ કરવામાં આવી શકે છે."</string>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index 97f3926c940c..101012690493 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> वॉल्यूम संवाद है"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"मूल को पुन: स्थापित करने के लिए टैप करें."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"आप अपनी कार्य प्रोफ़ाइल का उपयोग कर रहे हैं"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"कॉल करें"</item>
- <item msgid="5997713001067658559">"सिस्‍टम"</item>
- <item msgid="7858983209929864160">"रिंग करें"</item>
- <item msgid="1850038478268896762">"मीडिया"</item>
- <item msgid="8265110906352372092">"अलार्म"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"ब्लूटूथ"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. अनम्यूट करने के लिए टैप करें."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. कंपन पर सेट करने के लिए टैप करें. एक्सेस-योग्यता सेवाएं म्यूट हो सकती हैं."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. म्यूट करने के लिए टैप करें. एक्सेस-योग्यता सेवाएं म्यूट हो सकती हैं."</string>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 7ff63bdac12f..5d9162e9e474 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Pristupačnost"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Dodirnite da biste uključili zvuk."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Dodirnite da biste postavili na vibraciju. Usluge pristupačnosti možda neće imati zvuk."</string>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index bd0805bf5d2a..bb780302bc7c 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Kisegítő lehetőségek"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Koppintson a némítás megszüntetéséhez."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Koppintson a rezgés beállításához. Előfordulhat, hogy a kisegítő lehetőségek szolgáltatásai le vannak némítva."</string>
diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml
index 07966cf1c9d8..d9ec09ed757a 100644
--- a/packages/SystemUI/res/values-hy-rAM/strings.xml
+++ b/packages/SystemUI/res/values-hy-rAM/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ը ձայնի ուժգնության երկխոսության հավելված է"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Հպեք՝ բնօրինակը վերականգնելու համար:"</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Դուք օգտագործում եք ձեր աշխատանքային պրոֆիլը"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Զանգել"</item>
- <item msgid="5997713001067658559">"Համակարգ"</item>
- <item msgid="7858983209929864160">"Զանգ"</item>
- <item msgid="1850038478268896762">"Մեդիա"</item>
- <item msgid="8265110906352372092">"Զարթուցիչ"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s: Հպեք՝ ձայնը միացնելու համար:"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s: Հպեք՝ թրթռումը միացնելու համար: Մատչելիության ծառայությունների ձայնը կարող է անջատվել:"</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s: Հպեք՝ ձայնն անջատելու համար: Մատչելիության ծառայությունների ձայնը կարող է անջատվել:"</string>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 6444ae57bf0c..49d5221f15c1 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Aksesibilitas"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Ketuk untuk menyuarakan."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Ketuk untuk menyetel agar bergetar. Layanan aksesibilitas mungkin dibisukan."</string>
diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml
index 7e08a01f752e..f95d35ffaf35 100644
--- a/packages/SystemUI/res/values-is-rIS/strings.xml
+++ b/packages/SystemUI/res/values-is-rIS/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Aðgengi"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Ýttu til að hætta að þagga."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Ýttu til að stilla á titring. Hugsanlega verður slökkt á hljóði aðgengisþjónustu."</string>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 8ffb10d2641f..b30516d5b05d 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Accessibilità"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Tocca per riattivare l\'audio."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Tocca per attivare la vibrazione. L\'audio dei servizi di accessibilità può essere disattivato."</string>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index a6d7983c6096..c9f907a76846 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -444,18 +444,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> הוא תיבת הדו-שיח של עוצמת הקול"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"הקש כדי לשחזר את המקור."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"אתה משתמש בפרופיל העבודה שלך"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"שיחה"</item>
- <item msgid="5997713001067658559">"מערכת"</item>
- <item msgid="7858983209929864160">"השמע צלצול"</item>
- <item msgid="1850038478268896762">"מדיה"</item>
- <item msgid="8265110906352372092">"התראה"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"‏%1$s. הקש כדי לבטל את ההשתקה."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"‏%1$s. הקש כדי להגדיר רטט. ייתכן ששירותי הנגישות מושתקים."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"‏%1$s. הקש כדי להשתיק. ייתכן ששירותי הנגישות מושתקים."</string>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 6ef9f73a6aa6..b891b61815ac 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -442,18 +442,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>を音量ダイアログとして使用"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"タップすると元に戻ります。"</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"仕事用プロファイルを使用しています"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"通話"</item>
- <item msgid="5997713001067658559">"システム"</item>
- <item msgid="7858983209929864160">"着信音"</item>
- <item msgid="1850038478268896762">"メディア"</item>
- <item msgid="8265110906352372092">"アラーム"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s。タップしてミュートを解除します。"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s。タップしてバイブレーションに設定します。ユーザー補助機能サービスがミュートされる場合があります。"</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s。タップしてミュートします。ユーザー補助機能サービスがミュートされる場合があります。"</string>
diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml
index 695279da446b..e00d6b3629dc 100644
--- a/packages/SystemUI/res/values-ka-rGE/strings.xml
+++ b/packages/SystemUI/res/values-ka-rGE/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"მარტივი წვდომა"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. შეეხეთ დადუმების გასაუქმებლად."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. შეეხეთ ვიბრაციაზე დასაყენებლად. შეიძლება დადუმდეს მარტივი წვდომის სერვისებიც."</string>
diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml
index ba71182b8926..92b94bd8a708 100644
--- a/packages/SystemUI/res/values-kk-rKZ/strings.xml
+++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> — көлем диалогтық терезесі"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Бастапқы қалпына келтіру үшін түртіңіз."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Сіз жұмыс профиліңізді пайдаланып жатырсыз"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Қоңырау шалу"</item>
- <item msgid="5997713001067658559">"Жүйе"</item>
- <item msgid="7858983209929864160">"Шылдырлау"</item>
- <item msgid="1850038478268896762">"Мультимeдиа"</item>
- <item msgid="8265110906352372092">"Дабыл"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Дыбысын қосу үшін түртіңіз."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Діріл режимін орнату үшін түртіңіз. Арнайы мүмкіндік қызметтерінің дыбысы өшуі мүмкін."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Дыбысын өшіру үшін түртіңіз. Арнайы мүмкіндік қызметтерінің дыбысы өшуі мүмкін."</string>
diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml
index b222555765f5..9a352fc9502f 100644
--- a/packages/SystemUI/res/values-km-rKH/strings.xml
+++ b/packages/SystemUI/res/values-km-rKH/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> គឺជាប្រអប់សម្លេង"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"ប៉ះដើម្បីស្តារច្បាប់ដើម"</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"អ្នកកំពុងប្រើប្រវត្តិរូបការងាររបស់អ្នក"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"ហៅ"</item>
- <item msgid="5997713001067658559">"ប្រព័ន្ធ"</item>
- <item msgid="7858983209929864160">"រោទ៍"</item>
- <item msgid="1850038478268896762">"មេឌៀ"</item>
- <item msgid="8265110906352372092">"ម៉ោងរោទ៍"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"ប៊្លូធូស"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s។ ប៉ះដើម្បីបើកសំឡេង។"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s។ ប៉ះដើម្បីកំណត់ឲ្យញ័រ។ សេវាកម្មលទ្ធភាពប្រើប្រាស់អាចនឹងត្រូវបានបិទសំឡេង។"</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s។ ប៉ះដើម្បីបិទសំឡេង។ សេវាកម្មលទ្ធភាពប្រើប្រាស់អាចនឹងត្រូវបានបិទសំឡេង។"</string>
diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml
index b2a6f27e504b..990c721d7809 100644
--- a/packages/SystemUI/res/values-kn-rIN/strings.xml
+++ b/packages/SystemUI/res/values-kn-rIN/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ವಾಲ್ಯೂಮ್ ಸಂವಾದವಾಗಿದೆ"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"ಮೂಲಕ್ಕೆ ಮರುಸ್ಥಾಪಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್‌ ಅನ್ನು ನೀವು ಬಳಸುತ್ತಿರುವಿರಿ"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"ಕರೆಮಾಡಿ"</item>
- <item msgid="5997713001067658559">"ಸಿಸ್ಟಂ"</item>
- <item msgid="7858983209929864160">"ಉಂಗುರ"</item>
- <item msgid="1850038478268896762">"ಮಾಧ್ಯಮ"</item>
- <item msgid="8265110906352372092">"ಅಲಾರಮ್"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"ಬ್ಲೂಟೂತ್‌"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. ಅನ್‌ಮ್ಯೂಟ್‌ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. ಕಂಪನಕ್ಕೆ ಹೊಂದಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ. ಪ್ರವೇಶಿಸುವಿಕೆ ಸೇವೆಗಳನ್ನು ಮ್ಯೂಟ್‌ ಮಾಡಬಹುದು."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. ಮ್ಯೂಟ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ. ಪ್ರವೇಶಿಸುವಿಕೆ ಸೇವೆಗಳನ್ನು ಮ್ಯೂಟ್‌ ಮಾಡಬಹುದು."</string>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index cefb57a514b1..b06f15e36fca 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -442,18 +442,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>은(는) 볼륨 대화입니다."</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"원본을 복원하려면 탭하세요."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"직장 프로필을 사용하고 있습니다."</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"통화"</item>
- <item msgid="5997713001067658559">"시스템"</item>
- <item msgid="7858983209929864160">"벨 울리기"</item>
- <item msgid="1850038478268896762">"미디어"</item>
- <item msgid="8265110906352372092">"알람"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"블루투스"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. 탭하여 음소거를 해제하세요."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. 탭하여 진동으로 설정하세요. 접근성 서비스가 음소거될 수 있습니다."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. 탭하여 음소거로 설정하세요. 접근성 서비스가 음소거될 수 있습니다."</string>
diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml
index e013c6b7c383..d5af0b39c593 100644
--- a/packages/SystemUI/res/values-ky-rKG/strings.xml
+++ b/packages/SystemUI/res/values-ky-rKG/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Атайын мүмкүнчүлүктөр"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Үнүн чыгаруу үчүн таптап коюңуз."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Дирилдөөгө коюу үчүн таптап коюңуз. Атайын мүмкүнчүлүктөр кызматынын үнүн өчүрүп койсо болот."</string>
diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml
index 94e789a1325a..711a68d6e398 100644
--- a/packages/SystemUI/res/values-lo-rLA/strings.xml
+++ b/packages/SystemUI/res/values-lo-rLA/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ແມ່ນ​ໜ້າ​ຕ່າງ​ລະ​ດັບ​ສຽງ"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"ແຕະເພື່ອກູ້ຕົ້ນສະບັບຄືນມາ."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"ທ່ານກຳລັງໃຊ້ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກຂອງທ່ານ"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"ໂທ"</item>
- <item msgid="5997713001067658559">"ລະບົບ"</item>
- <item msgid="7858983209929864160">"​ເຕືອນ​ດ້ວຍ​ສຽງ"</item>
- <item msgid="1850038478268896762">"ມີເດຍ"</item>
- <item msgid="8265110906352372092">"ໂມງປຸກ"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. ແຕະເພື່ອເຊົາປິດສຽງ."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. ແຕະເພື່ອຕັ້ງເປັນສັ່ນ. ບໍລິການຊ່ວຍເຂົ້າເຖິງອາດຖືກປິດສຽງໄວ້."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. ແຕະເພື່ອປິດສຽງ. ບໍລິການຊ່ວຍເຂົ້າເຖິງອາດຖືກປິດສຽງໄວ້."</string>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 5af5979ae904..aec484dbab30 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -444,18 +444,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“ yra garsumo valdymo dialogo langas"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Palieskite, kad atkurtumėte originalą."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Naudojate darbo profilį"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Skambinti"</item>
- <item msgid="5997713001067658559">"Sistema"</item>
- <item msgid="7858983209929864160">"Skambinti"</item>
- <item msgid="1850038478268896762">"Medija"</item>
- <item msgid="8265110906352372092">"Signalas"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Palieskite, kad įjungtumėte garsą."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Palieskite, kad nustatytumėte vibravimą. Gali būti nutildytos pritaikymo neįgaliesiems paslaugos."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Palieskite, kad nutildytumėte. Gali būti nutildytos pritaikymo neįgaliesiems paslaugos."</string>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 503c8c8bd742..900a955df770 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -442,18 +442,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ir skaļuma dialoglodziņš"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Pieskarieties, lai atjaunotu sākotnējo saturu."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Jūs izmantojat darba profilu."</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Zvans"</item>
- <item msgid="5997713001067658559">"Sistēma"</item>
- <item msgid="7858983209929864160">"Zvanīt"</item>
- <item msgid="1850038478268896762">"Multivide"</item>
- <item msgid="8265110906352372092">"Signāls"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Pieskarieties, lai ieslēgtu skaņu."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Pieskarieties, lai iestatītu uz vibrozvanu. Var tikt izslēgti pieejamības pakalpojumu signāli."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Pieskarieties, lai izslēgtu skaņu. Var tikt izslēgti pieejamības pakalpojumu signāli."</string>
diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml
index 62fc35081cbc..716f76c19831 100644
--- a/packages/SystemUI/res/values-mk-rMK/strings.xml
+++ b/packages/SystemUI/res/values-mk-rMK/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Пристапност"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Допрете за да вклучите звук."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Допрете за да поставите на вибрации. Можеби ќе се исклучи звукот на услугите за достапност."</string>
diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml
index 9e7d2f29fd91..6c14826bafde 100644
--- a/packages/SystemUI/res/values-ml-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ml-rIN/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>, വോളിയം ഡയലോഗാണ്"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"ഒറിജിനൽ പുനഃസ്ഥാപിക്കാൻ ടാപ്പുചെയ്യുക."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"നിങ്ങൾ ഉപയോഗിക്കുന്നത് ഔദ്യോഗിക പ്രൊഫൈലാണ്"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"വിളിക്കുക"</item>
- <item msgid="5997713001067658559">"സിസ്‌റ്റം"</item>
- <item msgid="7858983209929864160">"റിംഗുചെയ്യുക"</item>
- <item msgid="1850038478268896762">"മീഡിയ"</item>
- <item msgid="8265110906352372092">"അലാറം"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"ബ്ലൂടൂത്ത്"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. അൺമ്യൂട്ടുചെയ്യുന്നതിന് ടാപ്പുചെയ്യുക."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. വൈബ്രേറ്റിലേക്ക് സജ്ജമാക്കുന്നതിന് ടാപ്പുചെയ്യുക. പ്രവേശനക്ഷമതാ സേവനങ്ങൾ മ്യൂട്ടുചെയ്യപ്പെട്ടേക്കാം."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. മ്യൂട്ടുചെയ്യുന്നതിന് ടാപ്പുചെയ്യുക. പ്രവേശനക്ഷമതാ സേവനങ്ങൾ മ്യൂട്ടുചെയ്യപ്പെട്ടേക്കാം."</string>
diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml
index 04fb4c23cc7d..817131048eff 100644
--- a/packages/SystemUI/res/values-mn-rMN/strings.xml
+++ b/packages/SystemUI/res/values-mn-rMN/strings.xml
@@ -410,12 +410,12 @@
<string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Таны төхөөрөмжийн удирдагч <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nТаны админ таны төхөөрөмжтэй холбоотой тохиргоо, байгууллагын хандалт, мэдээлэл болон байршлын мэдээллийг удирдан, хяналт тавих боломжтой.\n\nТа таны имэйл, апп, вэб сайтын үйл ажиллагааг хянах VPN-д холбогдсон байна.\n\nДэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу."</string>
<string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Таны ажлын профайлыг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг.\n\nАдмин нь таны имэйл,апп болон вэбсайт зэрэг сүлжээний үйл ажиллагааг хянадаг. \n\n Дэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу. \n\nМөн та VPN-д холбогдсон бөгөөд ингэснээр өөрийн сүлжээний үйл ажиллагааг хянах боломжтой байна."</string>
<string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string>
- <string name="monitoring_description_app" msgid="6259179342284742878">"Та <xliff:g id="APPLICATION">%1$s</xliff:g>-д холбогдсон бөгөөд энэ нь таны имэйл, апп, вебсайт зэрэг сүлжээний үйл ажиллагааг хянах боломжтой."</string>
- <string name="monitoring_description_app_personal" msgid="484599052118316268">"Та <xliff:g id="APPLICATION">%1$s</xliff:g>-д холбогдсон бөгөөд энэ нь таны имэйл, апп, вебсайт зэрэг сүлжээний хувийн үйл ажиллагааг хянах боломжтой."</string>
+ <string name="monitoring_description_app" msgid="6259179342284742878">"Та <xliff:g id="APPLICATION">%1$s</xliff:g>-д холбогдсон бөгөөд энэ нь таны имэйл, апп, вэбсайт зэрэг сүлжээний үйл ажиллагааг хянах боломжтой."</string>
+ <string name="monitoring_description_app_personal" msgid="484599052118316268">"Та <xliff:g id="APPLICATION">%1$s</xliff:g>-д холбогдсон бөгөөд энэ нь таны имэйл, апп, вэбсайт зэрэг сүлжээний хувийн үйл ажиллагааг хянах боломжтой."</string>
<string name="branded_monitoring_description_app_personal" msgid="2669518213949202599">"Та имэйл, апп, вэб хуудас зэрэг хувийн сүлжээнийхээ үйл ажиллагааг хянах боломжтой <xliff:g id="APPLICATION">%1$s</xliff:g>-д холбогдсон байна."</string>
- <string name="monitoring_description_app_work" msgid="1754325860918060897">"Таны ажлын профайлыг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг. Энэ нь <xliff:g id="APPLICATION">%2$s</xliff:g>-тэй холбогдсон бөгөөд таны имэйл, апп, вебсайт зэрэг сүлжээний үйл ажиллагааг хянах боломжтой.\n\nДэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу."</string>
- <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Таны ажлын профайлыг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг. Энэ нь <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>-тай холбогдсон бөгөөд таны имэйл, апп, вебсайт зэрэг ажлын сүлжээний үйл ажиллагааг хянах боломжтой.\n\nМөн та <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>-д холбогдсон бөгөөд энэ нь таны сүлжээний хувийн үйл ажиллагааг хянаж чадна."</string>
- <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Таны төхөөрөмжийг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг.\n\n Танай админ төхөөрөмж, төхөөрөмжийн байршилтай холбоотой өгөгдлийг холбох, тохиргоог өөрчлөх болон хяналт тавих боломжтой.\n\nТа <xliff:g id="APPLICATION">%2$s</xliff:g>-тай холбогдсон бөгөөд ингэснээр таны имэйл,апп, аюулгүй вебсайт зэрэг сүлжээний үйл ажиллагаагаа хянах боломжтой.\n\n Дэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу."</string>
+ <string name="monitoring_description_app_work" msgid="1754325860918060897">"Таны ажлын профайлыг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг. Энэ нь <xliff:g id="APPLICATION">%2$s</xliff:g>-тэй холбогдсон бөгөөд таны имэйл, апп, вэбсайт зэрэг сүлжээний үйл ажиллагааг хянах боломжтой.\n\nДэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу."</string>
+ <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Таны ажлын профайлыг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг. Энэ нь <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>-тай холбогдсон бөгөөд таны имэйл, апп, вэбсайт зэрэг ажлын сүлжээний үйл ажиллагааг хянах боломжтой.\n\nМөн та <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>-д холбогдсон бөгөөд энэ нь таны сүлжээний хувийн үйл ажиллагааг хянаж чадна."</string>
+ <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Таны төхөөрөмжийг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг.\n\n Танай админ төхөөрөмж, төхөөрөмжийн байршилтай холбоотой өгөгдлийг холбох, тохиргоог өөрчлөх болон хяналт тавих боломжтой.\n\nТа <xliff:g id="APPLICATION">%2$s</xliff:g>-тай холбогдсон бөгөөд ингэснээр таны имэйл,апп, аюулгүй вэбсайт зэрэг сүлжээний үйл ажиллагаагаа хянах боломжтой.\n\n Дэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу."</string>
<string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Таныг гараар онгойлгох хүртэл төхөөрөмж түгжээтэй байх болно"</string>
<string name="hidden_notifications_title" msgid="7139628534207443290">"Мэдэгдлийг хурдан авах"</string>
<string name="hidden_notifications_text" msgid="2326409389088668981">"Түгжээг тайлахын өмнө үзнэ үү"</string>
@@ -438,18 +438,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> нь дууны диалог юм."</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Эх хувилбарыг сэргээхийн тулд дарна уу."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Та өөрийн ажлын профайлыг ашиглаж байна"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Дуудлага"</item>
- <item msgid="5997713001067658559">"Систем"</item>
- <item msgid="7858983209929864160">"Хонх дуугаргах"</item>
- <item msgid="1850038478268896762">"Медиа"</item>
- <item msgid="8265110906352372092">"Сэрүүлэг"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Дууг нь нээхийн тулд товшино уу."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Чичиргээнд тохируулахын тулд товшино уу. Хүртээмжийн үйлчилгээний дууг хаасан."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Дууг нь хаахын тулд товшино уу. Хүртээмжийн үйлчилгээний дууг хаасан."</string>
diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml
index a21019ad50f7..ade3921c1bf1 100644
--- a/packages/SystemUI/res/values-mr-rIN/strings.xml
+++ b/packages/SystemUI/res/values-mr-rIN/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"प्रवेशयोग्यता"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. सशब्द करण्यासाठी टॅप करा."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. कंपन सेट करण्यासाठी टॅप करा. प्रवेशयोग्यता सेवा नि:शब्द केल्या जाऊ शकतात."</string>
diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml
index ce942952ccd0..ebe2cf8ed475 100644
--- a/packages/SystemUI/res/values-ms-rMY/strings.xml
+++ b/packages/SystemUI/res/values-ms-rMY/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ialah dialog kelantangan"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Ketik untuk memulihkan yang asal."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Anda sedang menggunakan profil kerja"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Panggil"</item>
- <item msgid="5997713001067658559">"Sistem"</item>
- <item msgid="7858983209929864160">"Dering"</item>
- <item msgid="1850038478268896762">"Media"</item>
- <item msgid="8265110906352372092">"Penggera"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Ketik untuk menyahredam."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Ketik untuk menetapkan pada getar. Perkhidmatan kebolehaksesan mungkin diredamkan."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Ketik untuk meredam. Perkhidmatan kebolehaksesan mungkin diredamkan."</string>
diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml
index 8ab1de0f707e..a1e6d373fa5b 100644
--- a/packages/SystemUI/res/values-my-rMM/strings.xml
+++ b/packages/SystemUI/res/values-my-rMM/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"အများသုံးစွဲနိုင်မှု"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s။ အသံပြန်ဖွင့်ရန် တို့ပါ။"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s။ တုန်ခါမှုကို သတ်မှတ်ရန် တို့ပါ။ အများသုံးစွဲနိုင်မှု ဝန်ဆောင်မှုများကို အသံပိတ်ထားနိုင်ပါသည်။"</string>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index c6312e1b5697..4508276923ef 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Tilgjengelighet"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Trykk for å slå på lyden."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Trykk for å angi vibrasjon. Lyden kan bli slått av for tilgjengelighetstjenestene."</string>
diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml
index f87223c4aff8..7afcac162a0a 100644
--- a/packages/SystemUI/res/values-ne-rNP/strings.xml
+++ b/packages/SystemUI/res/values-ne-rNP/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"पहुँच"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s। अनम्यूट गर्नका लागि ट्याप गर्नुहोस्।"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s। कम्पनमा सेट गर्नका लागि ट्याप गर्नुहोस्। पहुँच सम्बन्धी सेवाहरू म्यूट हुन सक्छन्।"</string>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 4ea958584ca0..a13030d8f9aa 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Toegankelijkheid"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Tik om dempen op te heffen."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Tik om in te stellen op trillen. Toegankelijkheidsservices kunnen zijn gedempt."</string>
diff --git a/packages/SystemUI/res/values-pa-rIN/strings.xml b/packages/SystemUI/res/values-pa-rIN/strings.xml
index f25662b745f6..6b5abe46d460 100644
--- a/packages/SystemUI/res/values-pa-rIN/strings.xml
+++ b/packages/SystemUI/res/values-pa-rIN/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਵੋਲਯੂਮ ਡਾਇਲੌਗ ਹੈ"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"ਅਸਲ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"ਤੁਸੀਂ ਆਪਣੀ ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਵਰਤ ਰਹੇ ਹੋ"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"ਕਾਲ ਕਰੋ"</item>
- <item msgid="5997713001067658559">"ਸਿਸਟਮ"</item>
- <item msgid="7858983209929864160">"ਰਿੰਗ ਕਰੋ"</item>
- <item msgid="1850038478268896762">"ਮੀਡੀਆ"</item>
- <item msgid="8265110906352372092">"ਅਲਾਰਮ"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"ਬਲੂਟੁੱਥ"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s। ਅਣਮਿਊਟ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s। ਥਰਥਰਾਹਟ ਸੈੱਟ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ। ਪਹੁੰਚਯੋਗਤਾ ਸੇਵਾਵਾਂ ਮਿਊਟ ਹੋ ਸਕਦੀਆਂ ਹਨ।"</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s। ਮਿਊਟ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ। ਪਹੁੰਚਯੋਗਤਾ ਸੇਵਾਵਾਂ ਮਿਊਟ ਹੋ ਸਕਦੀਆਂ ਹਨ।"</string>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 78c61029e57c..429fdfb9834f 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -399,7 +399,7 @@
<string name="battery_saver_notification_action_text" msgid="109158658238110382">"Wyłącz oszczędzanie baterii"</string>
<string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> będzie zapisywać wszystko, co wyświetli się na ekranie."</string>
<string name="media_projection_remember_text" msgid="3103510882172746752">"Nie pokazuj ponownie"</string>
- <string name="clear_all_notifications_text" msgid="814192889771462828">"Usuń wszystkie"</string>
+ <string name="clear_all_notifications_text" msgid="814192889771462828">"Ukryj wszystkie"</string>
<string name="media_projection_action_text" msgid="8470872969457985954">"Rozpocznij teraz"</string>
<string name="empty_shade_text" msgid="708135716272867002">"Brak powiadomień"</string>
<string name="device_owned_footer" msgid="3802752663326030053">"Urządzenie może być monitorowane"</string>
@@ -455,6 +455,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Ułatwienia dostępu"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Kliknij, by wyłączyć wyciszenie."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Kliknij, by włączyć wibracje. Ułatwienia dostępu mogą być wyciszone."</string>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 0dbdcb9b05d3..828d4d95a416 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Acessibilidade"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Toque para ativar o som."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Toque para configurar para vibrar. É possível que os serviços de acessibilidade sejam silenciados."</string>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index d037cdacd0c2..60a1cda8fdb8 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Acessibilidade"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Toque para reativar o som."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Toque para ativar a vibração. Os serviços de acessibilidade podem ser silenciados."</string>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 0dbdcb9b05d3..828d4d95a416 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Acessibilidade"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Toque para ativar o som."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Toque para configurar para vibrar. É possível que os serviços de acessibilidade sejam silenciados."</string>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index e33ebb5a3c78..b418d4a2dcfc 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -444,18 +444,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> afișează caseta de dialog pentru volum"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Atingeți pentru a restabili versiunea originală."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Acum folosiți profilul de serviciu"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Apel"</item>
- <item msgid="5997713001067658559">"Sistem"</item>
- <item msgid="7858983209929864160">"Sonerie"</item>
- <item msgid="1850038478268896762">"Conținut media"</item>
- <item msgid="8265110906352372092">"Alarmă"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Atingeți pentru a activa sunetul."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Atingeți pentru a seta vibrarea. Sunetul se poate dezactiva pentru serviciile de accesibilitate."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Atingeți pentru a dezactiva sunetul. Sunetul se poate dezactiva pentru serviciile de accesibilitate."</string>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 0fbb0bd3c413..05f0d3830931 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -457,6 +457,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Специальные возможности"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Нажмите, чтобы включить звук."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Нажмите, чтобы включить вибрацию. Специальные возможности могут прекратить работу."</string>
diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml
index c4d23788d7f3..2db54d0d9c0e 100644
--- a/packages/SystemUI/res/values-si-rLK/strings.xml
+++ b/packages/SystemUI/res/values-si-rLK/strings.xml
@@ -187,7 +187,7 @@
<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">"Wifi අක්‍රියයි."</string>
- <string name="accessibility_quick_settings_wifi_changed_on" msgid="6440117170789528622">"Wifi සක්‍රියයි."</string>
+ <string name="accessibility_quick_settings_wifi_changed_on" msgid="6440117170789528622">"Wifi ක්‍රියාත්මකයි."</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>
@@ -203,15 +203,15 @@
<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_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_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_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_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>
@@ -232,7 +232,7 @@
<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_brightness" msgid="8003681285547803095">"දීප්තිය දර්ශනය කරන්න"</string>
+ <string name="accessibility_brightness" msgid="8003681285547803095">"සංදර්ශක දීප්තිය"</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="4651001290947318931">"සෙලියුලර් දත්ත විරාම කර ඇත"</string>
@@ -263,7 +263,7 @@
<string name="ethernet_label" msgid="7967563676324087464">"ඊතර නෙට්"</string>
<string name="quick_settings_dnd_label" msgid="8735855737575028208">"බාධා නොකරන්න"</string>
<string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ප්‍රමුඛතාව පමණයි"</string>
- <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"ඇඟවීම් පමණි"</string>
+ <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"එලාම පමණි"</string>
<string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"සම්පූර්ණ නිහඬතාව"</string>
<string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"බ්ලූටූත්"</string>
<string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"බ්ලූටූත් (උපාංග <xliff:g id="NUMBER">%d</xliff:g>)"</string>
@@ -356,7 +356,7 @@
<string name="interruption_level_none_with_warning" msgid="5114872171614161084">"සම්පූර්ණ නිහඬතාව. මෙය තිර කියවන්නන්ද නිහඬ කරනු ඇත."</string>
<string name="interruption_level_none" msgid="6000083681244492992">"සම්පූර්ණ නිහඬතාව"</string>
<string name="interruption_level_priority" msgid="6426766465363855505">"ප්‍රමුඛතාව පමණයි"</string>
- <string name="interruption_level_alarms" msgid="5226306993448328896">"ඇඟවීම් පමණි"</string>
+ <string name="interruption_level_alarms" msgid="5226306993448328896">"එලාම පමණි"</string>
<string name="interruption_level_none_twoline" msgid="3957581548190765889">"සම්පූර්ණ\nනිහඬතාව"</string>
<string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ප්‍රමුඛතා\nපමණි"</string>
<string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"ඇඟවීම්\nපමණි"</string>
@@ -370,8 +370,8 @@
<string name="user_add_user" msgid="5110251524486079492">"පරිශීලකයෙක් එක් කරන්න"</string>
<string name="user_new_user_name" msgid="426540612051178753">"නව පරිශීලකයා"</string>
<string name="guest_nickname" msgid="8059989128963789678">"අමුත්තා"</string>
- <string name="guest_new_guest" msgid="600537543078847803">"ආගන්තුකයා එකතු කරන්න"</string>
- <string name="guest_exit_guest" msgid="7187359342030096885">"අමුත්තාන් ඉවත් කරන්න"</string>
+ <string name="guest_new_guest" msgid="600537543078847803">"අමුත්තා එක් කරන්න"</string>
+ <string name="guest_exit_guest" msgid="7187359342030096885">"අමුත්තා ඉවත් කරන්න"</string>
<string name="guest_exit_guest_dialog_title" msgid="8480693520521766688">"අමුත්තාන් ඉවත් කරන්නද?"</string>
<string name="guest_exit_guest_dialog_message" msgid="4155503224769676625">"මෙම සැසියේ සියළුම යෙදුම් සහ දත්ත මකාවී."</string>
<string name="guest_exit_guest_dialog_remove" msgid="7402231963862520531">"ඉවත් කරන්න"</string>
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ධාරිතා සංවාදයයි"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"මුල් තත්ත්වය නැවත ප්‍රතිසාධනය කිරීමට තට්ටු කරන්න."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"ඔබ ඔබේ කාර්යාල පැතිකඩ භාවිත කරමින් සිටී"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"ඇමතුම"</item>
- <item msgid="5997713001067658559">"පද්ධතිය"</item>
- <item msgid="7858983209929864160">"නාද කරන්න"</item>
- <item msgid="1850038478268896762">"මාධ්‍ය"</item>
- <item msgid="8265110906352372092">"එලාමය"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"බ්ලූටූත්"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. නිහඬ කිරීම ඉවත් කිරීමට තට්ටු කරන්න."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. කම්පනය කිරීමට තට්ටු කරන්න. ප්‍රවේශ්‍යතා සේවා නිහඬ කළ හැකිය."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. නිහඬ කිරීමට තට්ටු කරන්න. ප්‍රවේශ්‍යතා සේවා නිහඬ කළ හැකිය."</string>
@@ -602,7 +591,7 @@
<string name="preview" msgid="9077832302472282938">"පෙරදසුන"</string>
<string name="drag_to_add_tiles" msgid="7058945779098711293">"ටයිල් එක් කිරීමට අදින්න"</string>
<string name="drag_to_remove_tiles" msgid="3361212377437088062">"ඉවත් කිරීමට මෙතැනට අදින්න"</string>
- <string name="qs_edit" msgid="2232596095725105230">"සංස්කරණය කරන්න"</string>
+ <string name="qs_edit" msgid="2232596095725105230">"සංස්කරණය"</string>
<string name="tuner_time" msgid="6572217313285536011">"වේලාව"</string>
<string-array name="clock_options">
<item msgid="5965318737560463480">"පැය, මිනිත්තු, සහ තත්පර පෙන්වන්න"</item>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 23daf91fb07b..803be7f53879 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -457,6 +457,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Dostupnosť"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Klepnutím zapnite zvuk."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Klepnutím aktivujte režim vibrovania. Služby dostupnosti je možné stlmiť."</string>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index 90985e78b12a..0f03de944c90 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -446,18 +446,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> je pogovorno okno glede prostornine"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Dotaknite se, če želite obnoviti prvotno stanje."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Uporabljate delovni profil"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Klic"</item>
- <item msgid="5997713001067658559">"Sistem"</item>
- <item msgid="7858983209929864160">"Zvonjenje"</item>
- <item msgid="1850038478268896762">"Predstavnost"</item>
- <item msgid="8265110906352372092">"Alarm"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Dotaknite se, če želite vklopiti zvok."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Dotaknite se, če želite nastaviti vibriranje. V storitvah za ljudi s posebnimi potrebami bo morda izklopljen zvok."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Dotaknite se, če želite izklopiti zvok. V storitvah za ljudi s posebnimi potrebami bo morda izklopljen zvok."</string>
diff --git a/packages/SystemUI/res/values-sq-rAL/strings.xml b/packages/SystemUI/res/values-sq-rAL/strings.xml
index 9616c073aca2..c03c0fee5753 100644
--- a/packages/SystemUI/res/values-sq-rAL/strings.xml
+++ b/packages/SystemUI/res/values-sq-rAL/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> është dialogu i volumit"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Trokit për të restauruar origjinalin."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Po përdor profilin tënd të punës"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Telefono"</item>
- <item msgid="5997713001067658559">"Sistemi"</item>
- <item msgid="7858983209929864160">"Bjeri ziles"</item>
- <item msgid="1850038478268896762">"Media"</item>
- <item msgid="8265110906352372092">"Alarmi"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Trokit për të aktivizuar."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Trokit për ta caktuar te dridhja. Shërbimet e qasshmërisë mund të çaktivizohen."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Trokit për të çaktivizuar. Shërbimet e qasshmërisë mund të çaktivizohen."</string>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 667c65d4e724..fd560de29f85 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Приступачност"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Додирните да бисте укључили звук."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Додирните да бисте подесили на вибрацију. Звук услуга приступачности ће можда бити искључен."</string>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 0a9501784f10..e0c84729593b 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Tillgänglighet"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Tryck här om du vill slå på ljudet."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Tryck här om du vill sätta på vibrationen. Tillgänglighetstjänster kanske inaktiveras."</string>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index afc5ee40bcf4..7c89410c4bb8 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Zana za walio na matatizo ya kuona au kusikia"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Gonga ili urejeshe."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Gonga ili uweke mtetemo. Huenda ikakomesha huduma za zana za walio na matatizo ya kuona au kusikia."</string>
diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml
index 99b84392198f..bd23b43c665c 100644
--- a/packages/SystemUI/res/values-ta-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ta-rIN/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"ஒலியளவு செய்தி: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"அசலை மீட்டமைக்க, தட்டவும்."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"பணி சுயவிவரத்தைப் பயன்படுத்துகிறீர்கள்"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"அழைப்பு"</item>
- <item msgid="5997713001067658559">"சாதனம்"</item>
- <item msgid="7858983209929864160">"ரிங்"</item>
- <item msgid="1850038478268896762">"மீடியா"</item>
- <item msgid="8265110906352372092">"அலாரம்"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"புளூடூத்"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. ஒலி இயக்க, தட்டவும்."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. அதிர்விற்கு அமைக்க, தட்டவும். அணுகல்தன்மை சேவைகள் ஒலியடக்கப்படக்கூடும்."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. ஒலியடக்க, தட்டவும். அணுகல்தன்மை சேவைகள் ஒலியடக்கப்படக்கூடும்."</string>
diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml
index c1aeb09bb582..6ae1e67559ec 100644
--- a/packages/SystemUI/res/values-te-rIN/strings.xml
+++ b/packages/SystemUI/res/values-te-rIN/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> అనేది వాల్యూమ్ డైలాగ్"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"అసలు దాన్ని పునరుద్ధరించడానికి నొక్కండి."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"మీరు మీ కార్యాలయ ప్రొఫైల్‌ను ఉపయోగిస్తున్నారు"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"కాల్"</item>
- <item msgid="5997713001067658559">"సిస్టమ్"</item>
- <item msgid="7858983209929864160">"రింగ్"</item>
- <item msgid="1850038478268896762">"మీడియా"</item>
- <item msgid="8265110906352372092">"అలారం"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"బ్లూటూత్"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. అన్‌మ్యూట్ చేయడానికి నొక్కండి."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. వైబ్రేషన్‌కు సెట్ చేయడానికి నొక్కండి. ప్రాప్యత సేవలు మ్యూట్ చేయబడవచ్చు."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. మ్యూట్ చేయడానికి నొక్కండి. ప్రాప్యత సేవలు మ్యూట్ చేయబడవచ్చు."</string>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 0c461b41c677..7e2c00f85e51 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> เป็นช่องโต้ตอบระดับเสียง"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"แตะเพื่อคืนค่าเป็นค่าเดิม"</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"คุณกำลังใช้โปรไฟล์งานของคุณ"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"โทร"</item>
- <item msgid="5997713001067658559">"ระบบ"</item>
- <item msgid="7858983209929864160">"ทำให้ส่งเสียง"</item>
- <item msgid="1850038478268896762">"สื่อ"</item>
- <item msgid="8265110906352372092">"การปลุก"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"บลูทูธ"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s แตะเพื่อเปิดเสียง"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s แตะเพื่อตั้งค่าให้สั่น อาจมีการปิดเสียงบริการการเข้าถึง"</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s แตะเพื่อปิดเสียง อาจมีการปิดเสียงบริการการเข้าถึง"</string>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index caa9f97af345..e1e06dfca6a9 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"Ang <xliff:g id="APP_NAME">%1$s</xliff:g> ang volume dialog"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"I-tap upang i-restore ang orihinal."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Ginagamit mo ang iyong profile sa trabaho"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Tawag"</item>
- <item msgid="5997713001067658559">"System"</item>
- <item msgid="7858983209929864160">"Ipa-ring"</item>
- <item msgid="1850038478268896762">"Media"</item>
- <item msgid="8265110906352372092">"Alarm"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. I-tap upang i-unmute."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. I-tap upang itakda na mag-vibrate. Maaaring i-mute ang mga serbisyo sa Accessibility."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. I-tap upang i-mute. Maaaring i-mute ang mga serbisyo sa Accessibility."</string>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 030c97fef490..d416fdf40d63 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ses denetimi iletişim kutusu olarak ayarlandı"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Orijinali geri yüklemek için dokunun."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"İş profilinizi kullanıyorsunuz"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Çağrı"</item>
- <item msgid="5997713001067658559">"Sistem"</item>
- <item msgid="7858983209929864160">"Zili Çaldır"</item>
- <item msgid="1850038478268896762">"Medya"</item>
- <item msgid="8265110906352372092">"Alarm"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Sesi açmak için hafifçe dokunun."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Titreşime ayarlamak için hafifçe dokunun. Erişilebilirlik hizmetlerinin sesi kapatılabilir."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Sesi kapatmak için hafifçe dokunun. Erişilebilirlik hizmetlerinin sesi kapatılabilir."</string>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index c086fff2a786..5db654598961 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -457,6 +457,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Спеціальні можливості"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Торкніться, щоб увімкнути звук."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Торкніться, щоб налаштувати вібросигнал. Спеціальні можливості може бути вимкнено."</string>
diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml
index ff46ad3d1643..bc893015271c 100644
--- a/packages/SystemUI/res/values-ur-rPK/strings.xml
+++ b/packages/SystemUI/res/values-ur-rPK/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> والیوم ڈائلاگ ہے"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"اصل بحال کرنے کیلئے تھپتھپائیں۔"</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"آپ اپنا دفتری پروفائل استعمال کر رہے ہیں۔"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"کال"</item>
- <item msgid="5997713001067658559">"سسٹم"</item>
- <item msgid="7858983209929864160">"رِنگ"</item>
- <item msgid="1850038478268896762">"میڈیا"</item>
- <item msgid="8265110906352372092">"الارم"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"بلوٹوتھ"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"‏‎%1$s۔ آواز چالو کرنے کیلئے تھپتھپائیں۔"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"‏‎%1$s۔ ارتعاش پر سیٹ کرنے کیلئے تھپتھپائیں۔ Accessibility سروسز شاید خاموش ہوں۔"</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"‏‎%1$s۔ خاموش کرنے کیلئے تھپتھپائیں۔ Accessibility سروسز شاید خاموش ہوں۔"</string>
diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml
index f2d266109479..a71b5390c527 100644
--- a/packages/SystemUI/res/values-uz-rUZ/strings.xml
+++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml
@@ -453,6 +453,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Maxsus imkoniyatlar"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Ovozini yoqish uchun ustiga bosing."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Tebranishni yoqish uchun ustiga bosing. Maxsus imkoniyatlar ishlamasligi mumkin."</string>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 48b1e4fb9fd3..d0d8216585ca 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> là hộp thoại khối lượng"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"Nhấn để khôi phục ảnh chụp màn hình gốc."</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Bạn đang sử dụng hồ sơ công việc của mình"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"Gọi"</item>
- <item msgid="5997713001067658559">"Hệ thống"</item>
- <item msgid="7858983209929864160">"Chuông"</item>
- <item msgid="1850038478268896762">"Phương tiện"</item>
- <item msgid="8265110906352372092">"Báo thức"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"Bluetooth"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Nhấn để bật tiếng."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Nhấn để đặt chế độ rung. Bạn có thể tắt tiếng dịch vụ trợ năng."</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s. Nhấn để tắt tiếng. Bạn có thể tắt tiếng dịch vụ trợ năng."</string>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 94c3af1b9b65..7928bf9362b0 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"“<xliff:g id="APP_NAME">%1$s</xliff:g>”已用作音量控制对话框"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"点按即可恢复原始设置。"</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"您当前正在使用工作资料"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"通话"</item>
- <item msgid="5997713001067658559">"系统"</item>
- <item msgid="7858983209929864160">"铃声"</item>
- <item msgid="1850038478268896762">"媒体"</item>
- <item msgid="8265110906352372092">"闹钟"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"蓝牙"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s。点按即可取消静音。"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s。点按即可设为振动,但可能会同时将无障碍服务设为静音。"</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s。点按即可设为静音,但可能会同时将无障碍服务设为静音。"</string>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 5785af922224..b4ea6f86b89d 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -442,18 +442,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」為音量對話框"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"輕按即可復原。"</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"您正在使用工作設定檔"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"通話"</item>
- <item msgid="5997713001067658559">"系統"</item>
- <item msgid="7858983209929864160">"鈴聲"</item>
- <item msgid="1850038478268896762">"媒體"</item>
- <item msgid="8265110906352372092">"鬧鐘"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"藍牙"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s。輕按即可取消靜音。"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s。輕按即可設為震動。無障礙功能服務可能已經設為靜音。"</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s。輕按即可設為靜音。無障礙功能服務可能已經設為靜音。"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 6562b3902b95..a6a87f6f25b8 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -440,18 +440,7 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」現在是預設的音量控制對話方塊。"</string>
<string name="volumeui_notification_text" msgid="8819536904234337445">"輕觸即可恢復原始設定。"</string>
<string name="managed_profile_foreground_toast" msgid="5421487114739245972">"您正在使用 Work 設定檔"</string>
- <string-array name="volume_stream_titles">
- <item msgid="5841843895402729630">"通話"</item>
- <item msgid="5997713001067658559">"系統"</item>
- <item msgid="7858983209929864160">"鈴聲"</item>
- <item msgid="1850038478268896762">"媒體"</item>
- <item msgid="8265110906352372092">"鬧鐘"</item>
- <item msgid="5339394737636839168"></item>
- <item msgid="2951313578278086204">"藍牙"</item>
- <item msgid="2919807739709798970"></item>
- <item msgid="150349973435223405"></item>
- <item msgid="6761963760295549099"></item>
- </string-array>
+ <!-- no translation found for volume_stream_titles:10 (8119402510273906841) -->
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s。輕觸即可取消靜音。"</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s。輕觸即可設為震動,但系統可能會將無障礙服務一併設為靜音。"</string>
<string name="volume_stream_content_description_mute" msgid="3625049841390467354">"%1$s。輕觸即可設為靜音,但系統可能會將無障礙服務一併設為靜音。"</string>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index e3c419b481d9..324d306e6e80 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -451,6 +451,7 @@
<item msgid="2919807739709798970"></item>
<item msgid="150349973435223405"></item>
<item msgid="6761963760295549099"></item>
+ <item msgid="8119402510273906841">"Ukufinyeleleka"</item>
</string-array>
<string name="volume_stream_content_description_unmute" msgid="4436631538779230857">"%1$s. Thepha ukuze ususe ukuthula."</string>
<string name="volume_stream_content_description_vibrate" msgid="1187944970457807498">"%1$s. Thepha ukuze usethe ukudlidliza. Amasevisi okufinyelela angathuliswa."</string>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 5fec64777a05..bfc26e39cdcc 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -840,6 +840,12 @@
<!-- Shows when people have pressed the unlock icon to explain how to unlock. [CHAR LIMIT=60] -->
<string name="keyguard_unlock">Swipe up to unlock</string>
+ <!-- Text on keyguard screen indicating that the device is enterprise-managed by a Device Owner [CHAR LIMIT=60] -->
+ <string name="do_disclosure_generic">This device is managed</string>
+
+ <!-- Text on keyguard screen indicating that the device is enterprise-managed by a Device Owner [CHAR LIMIT=40] -->
+ <string name="do_disclosure_with_name">This device is managed by <xliff:g id="organization_name" example="Foo, Inc.">%s</xliff:g></string>
+
<!-- Shows when people have clicked on the phone icon [CHAR LIMIT=60] -->
<string name="phone_hint">Swipe from icon for phone</string>
@@ -1120,7 +1126,6 @@
<item></item> <!-- STREAM_SYSTEM_ENFORCED -->
<item></item> <!-- STREAM_DTMF -->
<item></item> <!-- STREAM_TTS -->
- <item>Accessibility</item> <!-- STREAM_ACCESSIBILITY -->
</string-array>
<string name="volume_stream_muted" translatable="false">%s silent</string>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index f5ca67897c38..414ebec86bc2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -1073,8 +1073,8 @@ public abstract class BaseStatusBar extends SystemUI implements
int appUid = -1;
try {
final ApplicationInfo info = pmUser.getApplicationInfo(pkg,
- PackageManager.GET_UNINSTALLED_PACKAGES
- | PackageManager.GET_DISABLED_COMPONENTS);
+ PackageManager.MATCH_UNINSTALLED_PACKAGES
+ | PackageManager.MATCH_DISABLED_COMPONENTS);
if (info != null) {
appname = String.valueOf(pmUser.getApplicationLabel(info));
pkgicon = pmUser.getApplicationIcon(info);
@@ -1643,8 +1643,8 @@ public abstract class BaseStatusBar extends SystemUI implements
String appname = pkg;
try {
final ApplicationInfo info = pmUser.getApplicationInfo(pkg,
- PackageManager.GET_UNINSTALLED_PACKAGES
- | PackageManager.GET_DISABLED_COMPONENTS);
+ PackageManager.MATCH_UNINSTALLED_PACKAGES
+ | PackageManager.MATCH_DISABLED_COMPONENTS);
if (info != null) {
appname = String.valueOf(pmUser.getApplicationLabel(info));
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
index 0ef9715259c2..218c1bbae48c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar;
import android.app.ActivityManager;
+import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -36,6 +37,7 @@ import android.text.TextUtils;
import android.text.format.Formatter;
import android.util.Log;
import android.view.View;
+import android.view.ViewGroup;
import com.android.internal.app.IBatteryStats;
import com.android.keyguard.KeyguardUpdateMonitor;
@@ -58,7 +60,9 @@ public class KeyguardIndicationController {
private static final long TRANSIENT_FP_ERROR_TIMEOUT = 1300;
private final Context mContext;
+ private final ViewGroup mIndicationArea;
private final KeyguardIndicationTextView mTextView;
+ private final KeyguardIndicationTextView mDisclosure;
private final UserManager mUserManager;
private final IBatteryStats mBatteryInfo;
@@ -78,10 +82,16 @@ public class KeyguardIndicationController {
private int mChargingWattage;
private String mMessageToShowOnScreenOn;
- public KeyguardIndicationController(Context context, KeyguardIndicationTextView textView,
- LockIcon lockIcon) {
+ private final DevicePolicyManager mDevicePolicyManager;
+
+ public KeyguardIndicationController(Context context, ViewGroup indicationArea,
+ LockIcon lockIcon) {
mContext = context;
- mTextView = textView;
+ mIndicationArea = indicationArea;
+ mTextView = (KeyguardIndicationTextView) indicationArea.findViewById(
+ R.id.keyguard_indication_text);
+ mDisclosure = (KeyguardIndicationTextView) indicationArea.findViewById(
+ R.id.keyguard_indication_enterprise_disclosure);
mLockIcon = lockIcon;
Resources res = context.getResources();
@@ -92,14 +102,39 @@ public class KeyguardIndicationController {
mBatteryInfo = IBatteryStats.Stub.asInterface(
ServiceManager.getService(BatteryStats.SERVICE_NAME));
+ mDevicePolicyManager = (DevicePolicyManager) context.getSystemService(
+ Context.DEVICE_POLICY_SERVICE);
+
KeyguardUpdateMonitor.getInstance(context).registerCallback(mUpdateMonitor);
context.registerReceiverAsUser(mTickReceiver, UserHandle.SYSTEM,
new IntentFilter(Intent.ACTION_TIME_TICK), null, null);
+
+ updateDisclosure();
+ }
+
+ private void updateDisclosure() {
+ if (mDevicePolicyManager == null) {
+ return;
+ }
+
+ if (mDevicePolicyManager.isDeviceManaged()) {
+ final CharSequence organizationName =
+ mDevicePolicyManager.getDeviceOwnerOrganizationName();
+ if (organizationName != null) {
+ mDisclosure.switchIndication(mContext.getResources().getString(
+ R.string.do_disclosure_with_name, organizationName));
+ } else {
+ mDisclosure.switchIndication(R.string.do_disclosure_generic);
+ }
+ mDisclosure.setVisibility(View.VISIBLE);
+ } else {
+ mDisclosure.setVisibility(View.GONE);
+ }
}
public void setVisible(boolean visible) {
mVisible = visible;
- mTextView.setVisibility(visible ? View.VISIBLE : View.GONE);
+ mIndicationArea.setVisibility(visible ? View.VISIBLE : View.GONE);
if (visible) {
hideTransientIndication();
updateIndication();
@@ -242,6 +277,13 @@ public class KeyguardIndicationController {
}
@Override
+ public void onKeyguardVisibilityChanged(boolean showing) {
+ if (showing) {
+ updateDisclosure();
+ }
+ }
+
+ @Override
public void onFingerprintHelp(int msgId, String helpString) {
KeyguardUpdateMonitor updateMonitor = KeyguardUpdateMonitor.getInstance(mContext);
if (!updateMonitor.isUnlockingWithFingerprintAllowed()) {
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 89defec6f94c..daa57c63ad9d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
@@ -107,6 +107,8 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
private KeyguardAffordanceView mRightAffordanceView;
private KeyguardAffordanceView mLeftAffordanceView;
private LockIcon mLockIcon;
+ private ViewGroup mIndicationArea;
+ private TextView mEnterpriseDisclosure;
private TextView mIndicationText;
private ViewGroup mPreviewContainer;
@@ -208,6 +210,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
mRightAffordanceView = (KeyguardAffordanceView) findViewById(R.id.camera_button);
mLeftAffordanceView = (KeyguardAffordanceView) findViewById(R.id.left_button);
mLockIcon = (LockIcon) findViewById(R.id.lock_icon);
+ mIndicationArea = (ViewGroup) findViewById(R.id.keyguard_indication_area);
+ mEnterpriseDisclosure = (TextView) findViewById(
+ R.id.keyguard_indication_enterprise_disclosure);
mIndicationText = (TextView) findViewById(R.id.keyguard_indication_text);
watchForCameraPolicyChanges();
updateCameraVisibility();
@@ -252,13 +257,16 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
super.onConfigurationChanged(newConfig);
int indicationBottomMargin = getResources().getDimensionPixelSize(
R.dimen.keyguard_indication_margin_bottom);
- MarginLayoutParams mlp = (MarginLayoutParams) mIndicationText.getLayoutParams();
+ MarginLayoutParams mlp = (MarginLayoutParams) mIndicationArea.getLayoutParams();
if (mlp.bottomMargin != indicationBottomMargin) {
mlp.bottomMargin = indicationBottomMargin;
- mIndicationText.setLayoutParams(mlp);
+ mIndicationArea.setLayoutParams(mlp);
}
// Respect font size setting.
+ mEnterpriseDisclosure.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+ getResources().getDimensionPixelSize(
+ com.android.internal.R.dimen.text_size_small_material));
mIndicationText.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getResources().getDimensionPixelSize(
com.android.internal.R.dimen.text_size_small_material));
@@ -595,8 +603,8 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
return mLockIcon;
}
- public View getIndicationView() {
- return mIndicationText;
+ public View getIndicationArea() {
+ return mIndicationArea;
}
@Override
@@ -658,8 +666,8 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
if (mRightAffordanceView.getVisibility() == View.VISIBLE) {
startFinishDozeAnimationElement(mRightAffordanceView, delay);
}
- mIndicationText.setAlpha(0f);
- mIndicationText.animate()
+ mIndicationArea.setAlpha(0f);
+ mIndicationArea.animate()
.alpha(1f)
.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN)
.setDuration(NotificationPanelView.DOZE_ANIMATION_DURATION);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index 97df23709c45..a0ea9bf5650a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -577,6 +577,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
getImeSwitchButton().setOnClickListener(mImeSwitcherClickListener);
mDeadZone = (DeadZone) mCurrentView.findViewById(R.id.deadzone);
+ mDeadZone.setDisplayRotation(mCurrentRotation);
// force the low profile & disabled states into compliance
mBarTransitions.init();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
index 570d5d40064f..f16c8346d1b0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -1006,14 +1006,14 @@ public abstract class PanelView extends FrameLayout {
});
animator.start();
mHeightAnimator = animator;
- mKeyguardBottomArea.getIndicationView().animate()
+ mKeyguardBottomArea.getIndicationArea().animate()
.translationY(-mHintDistance)
.setDuration(250)
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.withEndAction(new Runnable() {
@Override
public void run() {
- mKeyguardBottomArea.getIndicationView().animate()
+ mKeyguardBottomArea.getIndicationArea().animate()
.translationY(0)
.setDuration(450)
.setInterpolator(mBounceInterpolator)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index bbbdc13d69e3..2b74c84759e5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -857,8 +857,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mKeyguardBottomArea.setActivityStarter(this);
mKeyguardBottomArea.setAssistManager(mAssistManager);
mKeyguardIndicationController = new KeyguardIndicationController(mContext,
- (KeyguardIndicationTextView) mStatusBarWindow.findViewById(
- R.id.keyguard_indication_text),
+ (ViewGroup) mStatusBarWindow.findViewById(R.id.keyguard_indication_area),
mKeyguardBottomArea.getLockIcon());
mKeyguardBottomArea.setKeyguardIndicationController(mKeyguardIndicationController);
@@ -1873,6 +1872,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
updateQsExpansionEnabled();
mShadeUpdates.check();
+
+ // Let's also update the icons
+ mIconController.updateNotificationIcons(mNotificationData);
}
/**
@@ -2021,7 +2023,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mNotificationData.filterAndSort();
updateNotificationShade();
- mIconController.updateNotificationIcons(mNotificationData);
}
public void requestNotificationUpdate() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeadZone.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeadZone.java
index 1cad61fb6728..4c879c68f2ff 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeadZone.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DeadZone.java
@@ -24,6 +24,7 @@ import android.os.SystemClock;
import android.util.AttributeSet;
import android.util.Slog;
import android.view.MotionEvent;
+import android.view.Surface;
import android.view.View;
import com.android.systemui.R;
@@ -54,6 +55,7 @@ public class DeadZone extends View {
private int mHold, mDecay;
private boolean mVertical;
private long mLastPokeTime;
+ private int mDisplayRotation;
private final Runnable mDebugFlash = new Runnable() {
@Override
@@ -132,7 +134,16 @@ public class DeadZone extends View {
int size = (int) getSize(event.getEventTime());
// In the vertical orientation consume taps along the left edge.
// In horizontal orientation consume taps along the top edge.
- final boolean consumeEvent = mVertical ? event.getX() < size : event.getY() < size;
+ final boolean consumeEvent;
+ if (mVertical) {
+ if (mDisplayRotation == Surface.ROTATION_270) {
+ consumeEvent = event.getX() > getWidth() - size;
+ } else {
+ consumeEvent = event.getX() < size;
+ }
+ } else {
+ consumeEvent = event.getY() < size;
+ }
if (consumeEvent) {
if (CHATTY) {
Slog.v(TAG, "consuming errant click: (" + event.getX() + "," + event.getY() + ")");
@@ -170,7 +181,16 @@ public class DeadZone extends View {
}
final int size = (int) getSize(SystemClock.uptimeMillis());
- can.clipRect(0, 0, mVertical ? size : can.getWidth(), mVertical ? can.getHeight() : size);
+ if (mVertical) {
+ if (mDisplayRotation == Surface.ROTATION_270) {
+ can.clipRect(can.getWidth() - size, 0, can.getWidth(), can.getHeight());
+ } else {
+ can.clipRect(0, 0, size, can.getHeight());
+ }
+ } else {
+ can.clipRect(0, 0, can.getWidth(), size);
+ }
+
final float frac = DEBUG ? (mFlashFrac - 0.5f) + 0.5f : mFlashFrac;
can.drawARGB((int) (frac * 0xFF), 0xDD, 0xEE, 0xAA);
@@ -178,4 +198,8 @@ public class DeadZone extends View {
// crazy aggressive redrawing here, for debugging only
postInvalidateDelayed(100);
}
+
+ public void setDisplayRotation(int rotation) {
+ mDisplayRotation = rotation;
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java
index 5393d60e4edd..ec0e4cd1d7b6 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java
@@ -78,7 +78,6 @@ public class VolumeDialogController {
AudioSystem.STREAM_SYSTEM_ENFORCED,
AudioSystem.STREAM_TTS,
AudioSystem.STREAM_VOICE_CALL,
- AudioSystem.STREAM_ACCESSIBILITY,
};
private final HandlerThread mWorkerThread;
diff --git a/packages/SystemUI/tests/AndroidManifest.xml b/packages/SystemUI/tests/AndroidManifest.xml
index 6e17cf404854..b03189cb77ce 100644
--- a/packages/SystemUI/tests/AndroidManifest.xml
+++ b/packages/SystemUI/tests/AndroidManifest.xml
@@ -26,6 +26,7 @@
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.BIND_QUICK_SETTINGS_TILE" />
+ <uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />
<application>
<uses-library android:name="android.test.runner" />
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
new file mode 100644
index 000000000000..639c8daf586b
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.systemui.statusbar;
+
+import android.app.admin.DevicePolicyManager;
+import android.app.trust.TrustManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.res.Resources;
+import android.os.Looper;
+import android.support.test.runner.AndroidJUnit4;
+import android.telephony.SubscriptionManager;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.keyguard.KeyguardUpdateMonitor;
+import com.android.systemui.R;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.phone.KeyguardIndicationTextView;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class KeyguardIndicationControllerTest extends SysuiTestCase {
+
+ private final String ORGANIZATION_NAME = "organization";
+ private final String DISCLOSURE_WITH_ORGANIZATION_NAME = "managed by organization";
+
+ private Context mContext = mock(Context.class);
+ private DevicePolicyManager mDevicePolicyManager = mock(DevicePolicyManager.class);
+ private ViewGroup mIndicationArea = mock(ViewGroup.class);
+ private KeyguardIndicationTextView mDisclosure = mock(KeyguardIndicationTextView.class);
+
+ private KeyguardIndicationController mController;
+
+ @Before
+ public void setUp() throws Exception {
+ final Resources resources = mock(Resources.class);
+ when(mContext.getResources()).thenReturn(resources);
+ when(mContext.getContentResolver()).thenReturn(mock(ContentResolver.class));
+ when(mContext.getPackageManager()).thenReturn(mock(PackageManager.class));
+ when(mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)).thenReturn(
+ mock(SubscriptionManager.class));
+ when(mContext.getSystemService(Context.TRUST_SERVICE)).thenReturn(
+ mock(TrustManager.class));
+ when(mContext.getSystemService(Context.DEVICE_POLICY_SERVICE)).thenReturn(
+ mDevicePolicyManager);
+
+ when(resources.getString(R.string.do_disclosure_with_name, ORGANIZATION_NAME))
+ .thenReturn(DISCLOSURE_WITH_ORGANIZATION_NAME);
+
+ when(mIndicationArea.findViewById(R.id.keyguard_indication_enterprise_disclosure))
+ .thenReturn(mDisclosure);
+ }
+
+ private void createController() {
+ if (Looper.myLooper() == null) {
+ Looper.prepare();
+ }
+ mController = new KeyguardIndicationController(mContext, mIndicationArea, null);
+ }
+
+ @Test
+ public void unmanaged() {
+ when(mDevicePolicyManager.isDeviceManaged()).thenReturn(false);
+ createController();
+
+ verify(mDisclosure).setVisibility(View.GONE);
+ verifyNoMoreInteractions(mDisclosure);
+ }
+
+ @Test
+ public void managedNoOwnerName() {
+ when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
+ when(mDevicePolicyManager.getDeviceOwnerOrganizationName()).thenReturn(null);
+ createController();
+
+ verify(mDisclosure).setVisibility(View.VISIBLE);
+ verify(mDisclosure).switchIndication(R.string.do_disclosure_generic);
+ verifyNoMoreInteractions(mDisclosure);
+ }
+
+ @Test
+ public void managedOwnerName() {
+ when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
+ when(mDevicePolicyManager.getDeviceOwnerOrganizationName()).thenReturn(ORGANIZATION_NAME);
+ createController();
+
+ verify(mDisclosure).setVisibility(View.VISIBLE);
+ verify(mDisclosure).switchIndication(DISCLOSURE_WITH_ORGANIZATION_NAME);
+ verifyNoMoreInteractions(mDisclosure);
+ }
+
+ @Test
+ public void updateOnTheFly() {
+ when(mDevicePolicyManager.isDeviceManaged()).thenReturn(false);
+ createController();
+
+ final KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext);
+ reset(mDisclosure);
+
+ when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
+ when(mDevicePolicyManager.getDeviceOwnerOrganizationName()).thenReturn(null);
+ monitor.onKeyguardVisibilityChanged(true);
+
+ verify(mDisclosure).setVisibility(View.VISIBLE);
+ verify(mDisclosure).switchIndication(R.string.do_disclosure_generic);
+ verifyNoMoreInteractions(mDisclosure);
+ reset(mDisclosure);
+
+ when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
+ when(mDevicePolicyManager.getDeviceOwnerOrganizationName()).thenReturn(ORGANIZATION_NAME);
+ monitor.onKeyguardVisibilityChanged(false);
+ monitor.onKeyguardVisibilityChanged(true);
+
+ verify(mDisclosure).setVisibility(View.VISIBLE);
+ verify(mDisclosure).switchIndication(DISCLOSURE_WITH_ORGANIZATION_NAME);
+ verifyNoMoreInteractions(mDisclosure);
+ reset(mDisclosure);
+
+ when(mDevicePolicyManager.isDeviceManaged()).thenReturn(false);
+ monitor.onKeyguardVisibilityChanged(false);
+ monitor.onKeyguardVisibilityChanged(true);
+
+ verify(mDisclosure).setVisibility(View.GONE);
+ verifyNoMoreInteractions(mDisclosure);
+ }
+}
diff --git a/services/core/java/com/android/server/DeviceIdleController.java b/services/core/java/com/android/server/DeviceIdleController.java
index 07322fcbf915..8092b4af1a4a 100644
--- a/services/core/java/com/android/server/DeviceIdleController.java
+++ b/services/core/java/com/android/server/DeviceIdleController.java
@@ -1430,7 +1430,7 @@ public class DeviceIdleController extends SystemService
synchronized (this) {
try {
ApplicationInfo ai = getContext().getPackageManager().getApplicationInfo(name,
- PackageManager.MATCH_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
if (mPowerSaveWhitelistUserApps.put(name, UserHandle.getAppId(ai.uid)) == null) {
reportPowerSaveWhitelistChangedLocked();
updateWhitelistAppIdsLocked();
@@ -2396,7 +2396,7 @@ public class DeviceIdleController extends SystemService
if (name != null) {
try {
ApplicationInfo ai = pm.getApplicationInfo(name,
- PackageManager.MATCH_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
mPowerSaveWhitelistUserApps.put(ai.packageName,
UserHandle.getAppId(ai.uid));
} catch (PackageManager.NameNotFoundException e) {
diff --git a/services/core/java/com/android/server/MmsServiceBroker.java b/services/core/java/com/android/server/MmsServiceBroker.java
index 0414b47e0604..8402087cddae 100644
--- a/services/core/java/com/android/server/MmsServiceBroker.java
+++ b/services/core/java/com/android/server/MmsServiceBroker.java
@@ -17,6 +17,7 @@
package com.android.server;
import android.Manifest;
+import android.app.ActivityManagerInternal;
import android.app.AppOpsManager;
import android.app.PendingIntent;
import android.content.ComponentName;
@@ -499,13 +500,21 @@ public class MmsServiceBroker extends SystemService {
*/
private Uri adjustUriForUserAndGrantPermission(Uri contentUri, String action,
int permission) {
+ final Intent grantIntent = new Intent();
+ grantIntent.setData(contentUri);
+ grantIntent.setFlags(permission);
+
+ final int callingUid = Binder.getCallingUid();
final int callingUserId = UserHandle.getCallingUserId();
if (callingUserId != UserHandle.USER_SYSTEM) {
contentUri = ContentProvider.maybeAddUserId(contentUri, callingUserId);
}
+
long token = Binder.clearCallingIdentity();
try {
- mContext.grantUriPermission(PHONE_PACKAGE_NAME, contentUri, permission);
+ LocalServices.getService(ActivityManagerInternal.class)
+ .grantUriPermissionFromIntent(callingUid, PHONE_PACKAGE_NAME,
+ grantIntent, UserHandle.USER_SYSTEM);
// Grant permission for the carrier app.
Intent intent = new Intent(action);
@@ -514,7 +523,9 @@ public class MmsServiceBroker extends SystemService {
List<String> carrierPackages = telephonyManager.getCarrierPackageNamesForIntent(
intent);
if (carrierPackages != null && carrierPackages.size() == 1) {
- mContext.grantUriPermission(carrierPackages.get(0), contentUri, permission);
+ LocalServices.getService(ActivityManagerInternal.class)
+ .grantUriPermissionFromIntent(callingUid, carrierPackages.get(0),
+ grantIntent, UserHandle.USER_SYSTEM);
}
} finally {
Binder.restoreCallingIdentity(token);
diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java
index f5cda0ab4d63..72fa1e3b3493 100644
--- a/services/core/java/com/android/server/NetworkScoreService.java
+++ b/services/core/java/com/android/server/NetworkScoreService.java
@@ -41,6 +41,7 @@ import android.util.Log;
import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.content.PackageMonitor;
import com.android.internal.os.TransferPipe;
@@ -63,6 +64,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
private static final boolean DBG = false;
private final Context mContext;
+ private final NetworkScorerAppManager mNetworkScorerAppManager;
private final Map<Integer, INetworkScoreCache> mScoreCaches;
/** Lock used to update mPackageMonitor when scorer package changes occur. */
private final Object mPackageMonitorLock = new Object[0];
@@ -133,7 +135,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
+ ", forceUnbind=" + forceUnbind);
}
final NetworkScorerAppData activeScorer =
- NetworkScorerAppManager.getActiveScorer(mContext);
+ mNetworkScorerAppManager.getActiveScorer();
if (activeScorer == null) {
// Package change has invalidated a scorer, this will also unbind any service
// connection.
@@ -154,7 +156,13 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
}
public NetworkScoreService(Context context) {
+ this(context, new NetworkScorerAppManager(context));
+ }
+
+ @VisibleForTesting
+ NetworkScoreService(Context context, NetworkScorerAppManager networkScoreAppManager) {
mContext = context;
+ mNetworkScorerAppManager = networkScoreAppManager;
mScoreCaches = new HashMap<>();
IntentFilter filter = new IntentFilter(Intent.ACTION_USER_UNLOCKED);
// TODO: Need to update when we support per-user scorers. http://b/23422763
@@ -173,7 +181,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
String defaultPackage = mContext.getResources().getString(
R.string.config_defaultNetworkScorerPackageName);
if (!TextUtils.isEmpty(defaultPackage)) {
- NetworkScorerAppManager.setActiveScorer(mContext, defaultPackage);
+ mNetworkScorerAppManager.setActiveScorer(defaultPackage);
}
Settings.Global.putInt(cr, Settings.Global.NETWORK_SCORING_PROVISIONED, 1);
}
@@ -194,7 +202,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
private void registerPackageMonitorIfNeeded() {
if (DBG) Log.d(TAG, "registerPackageMonitorIfNeeded");
- NetworkScorerAppData scorer = NetworkScorerAppManager.getActiveScorer(mContext);
+ NetworkScorerAppData scorer = mNetworkScorerAppManager.getActiveScorer();
synchronized (mPackageMonitorLock) {
// Unregister the current monitor if needed.
if (mPackageMonitor != null) {
@@ -222,7 +230,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
private void bindToScoringServiceIfNeeded() {
if (DBG) Log.d(TAG, "bindToScoringServiceIfNeeded");
- NetworkScorerAppData scorerData = NetworkScorerAppManager.getActiveScorer(mContext);
+ NetworkScorerAppData scorerData = mNetworkScorerAppManager.getActiveScorer();
bindToScoringServiceIfNeeded(scorerData);
}
@@ -259,7 +267,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
@Override
public boolean updateScores(ScoredNetwork[] networks) {
- if (!NetworkScorerAppManager.isCallerActiveScorer(mContext, getCallingUid())) {
+ if (!mNetworkScorerAppManager.isCallerActiveScorer(getCallingUid())) {
throw new SecurityException("Caller with UID " + getCallingUid() +
" is not the active scorer.");
}
@@ -298,7 +306,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
public boolean clearScores() {
// Only the active scorer or the system (who can broadcast BROADCAST_NETWORK_PRIVILEGED)
// should be allowed to flush all scores.
- if (NetworkScorerAppManager.isCallerActiveScorer(mContext, getCallingUid()) ||
+ if (mNetworkScorerAppManager.isCallerActiveScorer(getCallingUid()) ||
mContext.checkCallingOrSelfPermission(permission.BROADCAST_NETWORK_PRIVILEGED) ==
PackageManager.PERMISSION_GRANTED) {
clearInternal();
@@ -328,7 +336,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
public void disableScoring() {
// Only the active scorer or the system (who can broadcast BROADCAST_NETWORK_PRIVILEGED)
// should be allowed to disable scoring.
- if (NetworkScorerAppManager.isCallerActiveScorer(mContext, getCallingUid()) ||
+ if (mNetworkScorerAppManager.isCallerActiveScorer(getCallingUid()) ||
mContext.checkCallingOrSelfPermission(permission.BROADCAST_NETWORK_PRIVILEGED) ==
PackageManager.PERMISSION_GRANTED) {
// The return value is discarded here because at this point, the call should always
@@ -352,8 +360,8 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
// only be allowing valid apps to be set as scorers, so failure here should be rare.
clearInternal();
// Get the scorer that is about to be replaced, if any, so we can notify it directly.
- NetworkScorerAppData prevScorer = NetworkScorerAppManager.getActiveScorer(mContext);
- boolean result = NetworkScorerAppManager.setActiveScorer(mContext, packageName);
+ NetworkScorerAppData prevScorer = mNetworkScorerAppManager.getActiveScorer();
+ boolean result = mNetworkScorerAppManager.setActiveScorer(packageName);
// Unconditionally attempt to bind to the current scorer. If setActiveScorer() failed
// then we'll attempt to restore the previous binding (if any), otherwise an attempt
// will be made to bind to the new scorer.
@@ -411,7 +419,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub {
@Override
protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
mContext.enforceCallingOrSelfPermission(permission.DUMP, TAG);
- NetworkScorerAppData currentScorer = NetworkScorerAppManager.getActiveScorer(mContext);
+ NetworkScorerAppData currentScorer = mNetworkScorerAppManager.getActiveScorer();
if (currentScorer == null) {
writer.println("Scoring is disabled.");
return;
diff --git a/services/core/java/com/android/server/PersistentDataBlockService.java b/services/core/java/com/android/server/PersistentDataBlockService.java
index 080b46c24a2f..698f1ebfb594 100644
--- a/services/core/java/com/android/server/PersistentDataBlockService.java
+++ b/services/core/java/com/android/server/PersistentDataBlockService.java
@@ -26,7 +26,6 @@ import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
-import android.provider.Settings;
import android.service.persistentdata.IPersistentDataBlockService;
import android.service.persistentdata.PersistentDataBlockManager;
import android.util.Slog;
@@ -53,15 +52,14 @@ import java.util.Arrays;
* This data will live across factory resets not initiated via the Settings UI.
* When a device is factory reset through Settings this data is wiped.
*
- * Allows writing one block at a time. Namely, each time
- * {@link android.service.persistentdata.IPersistentDataBlockService}.write(byte[] data)
- * is called, it will overwite the data that was previously written on the block.
+ * Allows writing one block at a time. Namely, each time {@link IPersistentDataBlockService#write}
+ * is called, it will overwrite the data that was previously written on the block.
*
* Clients can query the size of the currently written block via
- * {@link android.service.persistentdata.IPersistentDataBlockService}.getTotalDataSize().
+ * {@link IPersistentDataBlockService#getDataBlockSize}
*
- * Clients can any number of bytes from the currently written block up to its total size by invoking
- * {@link android.service.persistentdata.IPersistentDataBlockService}.read(byte[] data)
+ * Clients can read any number of bytes from the currently written block up to its total size by
+ * invoking {@link IPersistentDataBlockService#read}
*/
public class PersistentDataBlockService extends SystemService {
private static final String TAG = PersistentDataBlockService.class.getSimpleName();
@@ -84,6 +82,7 @@ public class PersistentDataBlockService extends SystemService {
private int mAllowedUid = -1;
private long mBlockDeviceSize;
+ private boolean mIsWritable = true;
public PersistentDataBlockService(Context context) {
super(context);
@@ -377,6 +376,11 @@ public class PersistentDataBlockService extends SystemService {
headerAndData.put(data);
synchronized (mLock) {
+ if (!mIsWritable) {
+ IoUtils.closeQuietly(outputStream);
+ return -1;
+ }
+
try {
byte[] checksum = new byte[DIGEST_SIZE_BYTES];
outputStream.write(checksum, 0, DIGEST_SIZE_BYTES);
@@ -451,6 +455,9 @@ public class PersistentDataBlockService extends SystemService {
if (ret < 0) {
Slog.e(TAG, "failed to wipe persistent partition");
+ } else {
+ mIsWritable = false;
+ Slog.i(TAG, "persistent partition now wiped and unwritable");
}
}
}
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index 2932a1ac79a4..62f4f19a6028 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -1381,7 +1381,6 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
}
Intent intent = new Intent(TelephonyIntents.ACTION_SIGNAL_STRENGTH_CHANGED);
- intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
Bundle data = new Bundle();
signalStrength.fillInNotifierBundle(data);
intent.putExtras(data);
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index dce0378cdb86..229a68b3f46f 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -200,6 +200,7 @@ import android.os.WorkSource;
import android.os.storage.IStorageManager;
import android.os.storage.StorageManagerInternal;
import android.os.storage.StorageManager;
+import android.provider.Downloads;
import android.provider.Settings;
import android.service.voice.IVoiceInteractionSession;
import android.service.voice.VoiceInteractionManagerInternal;
@@ -275,6 +276,7 @@ import static android.content.pm.PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEME
import static android.content.pm.PackageManager.FEATURE_LEANBACK_ONLY;
import static android.content.pm.PackageManager.FEATURE_PICTURE_IN_PICTURE;
import static android.content.pm.PackageManager.GET_PROVIDERS;
+import static android.content.pm.PackageManager.MATCH_ANY_USER;
import static android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING;
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
@@ -8512,6 +8514,12 @@ public class ActivityManagerService extends IActivityManager.Stub
// Only inspect grants matching package
if (packageName == null || perm.sourcePkg.equals(packageName)
|| perm.targetPkg.equals(packageName)) {
+ // Hacky solution as part of fixing a security bug; ignore
+ // grants associated with DownloadManager so we don't have
+ // to immediately launch it to regrant the permissions
+ if (Downloads.Impl.AUTHORITY.equals(perm.uri.uri.getAuthority())
+ && !persistable) continue;
+
persistChanged |= perm.revokeModes(persistable
? ~0 : ~Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION, true);
@@ -14430,7 +14438,7 @@ public class ActivityManagerService extends IActivityManager.Stub
if (dumpPackage != null) {
IPackageManager pm = AppGlobals.getPackageManager();
try {
- dumpUid = pm.getPackageUid(dumpPackage, MATCH_UNINSTALLED_PACKAGES, 0);
+ dumpUid = pm.getPackageUid(dumpPackage, MATCH_ANY_USER, 0);
} catch (RemoteException e) {
}
}
@@ -15407,7 +15415,7 @@ public class ActivityManagerService extends IActivityManager.Stub
if (dumpPackage != null) {
try {
dumpUid = mContext.getPackageManager().getPackageUidAsUser(dumpPackage,
- MATCH_UNINSTALLED_PACKAGES, 0);
+ MATCH_ANY_USER, 0);
} catch (NameNotFoundException e) {
dumpUid = -1;
}
@@ -22140,6 +22148,15 @@ public class ActivityManagerService extends IActivityManager.Stub
private final class LocalService extends ActivityManagerInternal {
@Override
+ public void grantUriPermissionFromIntent(int callingUid, String targetPkg, Intent intent,
+ int targetUserId) {
+ synchronized (ActivityManagerService.this) {
+ ActivityManagerService.this.grantUriPermissionFromIntentLocked(callingUid,
+ targetPkg, intent, null, targetUserId);
+ }
+ }
+
+ @Override
public String checkContentProviderAccess(String authority, int userId) {
return ActivityManagerService.this.checkContentProviderAccess(authority, userId);
}
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index 67cac4776440..0ea78b3e9e83 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -1283,7 +1283,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
if (useCheckinFormat) {
List<ApplicationInfo> apps = mContext.getPackageManager().getInstalledApplications(
- PackageManager.MATCH_UNINSTALLED_PACKAGES | PackageManager.MATCH_ALL);
+ PackageManager.MATCH_ANY_USER | PackageManager.MATCH_ALL);
if (isRealCheckin) {
// For a real checkin, first we want to prefer to use the last complete checkin
// file if there is one.
diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java
index 86e3ccce2944..0bc12eec2d85 100644
--- a/services/core/java/com/android/server/am/TaskRecord.java
+++ b/services/core/java/com/android/server/am/TaskRecord.java
@@ -1417,8 +1417,8 @@ final class TaskRecord extends ConfigurationContainer {
try {
ApplicationInfo ai = pm.getApplicationInfo(
checkIntent.getComponent().getPackageName(),
- PackageManager.GET_UNINSTALLED_PACKAGES
- | PackageManager.GET_DISABLED_COMPONENTS, userId);
+ PackageManager.MATCH_UNINSTALLED_PACKAGES
+ | PackageManager.MATCH_DISABLED_COMPONENTS, userId);
if (ai != null) {
effectiveUid = ai.uid;
}
diff --git a/services/core/java/com/android/server/firewall/SenderPackageFilter.java b/services/core/java/com/android/server/firewall/SenderPackageFilter.java
index 91c9671357a8..2184245934c7 100644
--- a/services/core/java/com/android/server/firewall/SenderPackageFilter.java
+++ b/services/core/java/com/android/server/firewall/SenderPackageFilter.java
@@ -47,7 +47,7 @@ public class SenderPackageFilter implements Filter {
try {
// USER_SYSTEM here is not important. Only app id is used and getPackageUid() will
// return a uid whether the app is installed for a user or not.
- packageUid = pm.getPackageUid(mPackageName, PackageManager.MATCH_UNINSTALLED_PACKAGES,
+ packageUid = pm.getPackageUid(mPackageName, PackageManager.MATCH_ANY_USER,
UserHandle.USER_SYSTEM);
} catch (RemoteException ex) {
// handled below
diff --git a/services/core/java/com/android/server/job/JobSchedulerService.java b/services/core/java/com/android/server/job/JobSchedulerService.java
index c99d8be230d7..f42c5be0ebf9 100644
--- a/services/core/java/com/android/server/job/JobSchedulerService.java
+++ b/services/core/java/com/android/server/job/JobSchedulerService.java
@@ -1820,7 +1820,7 @@ public final class JobSchedulerService extends com.android.server.SystemService
String pkg = args[opti];
try {
filterUid = getContext().getPackageManager().getPackageUid(pkg,
- PackageManager.MATCH_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
} catch (NameNotFoundException ignored) {
pw.println("Invalid package: " + pkg);
return;
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index c1506b958e83..533307ec2f1a 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -2720,7 +2720,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
// update rules for all installed applications
final List<UserInfo> users = mUserManager.getUsers();
final List<ApplicationInfo> apps = pm.getInstalledApplications(
- PackageManager.MATCH_UNINSTALLED_PACKAGES | PackageManager.MATCH_DISABLED_COMPONENTS
+ PackageManager.MATCH_ANY_USER | PackageManager.MATCH_DISABLED_COMPONENTS
| PackageManager.MATCH_DIRECT_BOOT_AWARE
| PackageManager.MATCH_DIRECT_BOOT_UNAWARE);
diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
index 4658c0463f0e..8ca608693b3e 100644
--- a/services/core/java/com/android/server/net/NetworkStatsService.java
+++ b/services/core/java/com/android/server/net/NetworkStatsService.java
@@ -1212,7 +1212,8 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
// Build list of UIDs that we should clean up
int[] uids = new int[0];
final List<ApplicationInfo> apps = mContext.getPackageManager().getInstalledApplications(
- PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_DISABLED_COMPONENTS);
+ PackageManager.MATCH_ANY_USER
+ | PackageManager.MATCH_DISABLED_COMPONENTS);
for (ApplicationInfo app : apps) {
final int uid = UserHandle.getUid(userId, app.uid);
uids = ArrayUtils.appendInt(uids, uid);
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 84c298b06284..c78a0f57b0ca 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -53,16 +53,17 @@ import android.app.ActivityManagerInternal;
import android.app.AppGlobals;
import android.app.AppOpsManager;
import android.app.AutomaticZenRule;
+import android.app.backup.BackupManager;
import android.app.IActivityManager;
+import android.app.IOnNotificationChannelCreatedListener;
import android.app.INotificationManager;
import android.app.ITransientNotification;
import android.app.Notification;
import android.app.NotificationChannel;
-import android.app.NotificationManager;
import android.app.NotificationManager.Policy;
+import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.StatusBarManager;
-import android.app.backup.BackupManager;
import android.app.usage.UsageEvents;
import android.app.usage.UsageStatsManagerInternal;
import android.content.BroadcastReceiver;
@@ -224,6 +225,7 @@ public class NotificationManagerService extends SystemService {
private static final long MIN_PACKAGE_OVERRATE_LOG_INTERVAL = 5000; // milliseconds
private IActivityManager mAm;
+ private IPackageManager mPackageManager;
AudioManager mAudioManager;
AudioManagerInternal mAudioManagerInternal;
@Nullable StatusBarManagerInternal mStatusBar;
@@ -718,10 +720,10 @@ public class NotificationManagerService extends SystemService {
if (packageChanged) {
// We cancel notifications for packages which have just been disabled
try {
- final IPackageManager pm = AppGlobals.getPackageManager();
- final int enabled = pm.getApplicationEnabledSetting(pkgName,
+ final int enabled = mPackageManager.getApplicationEnabledSetting(
+ pkgName,
changeUserId != UserHandle.USER_ALL ? changeUserId :
- UserHandle.USER_SYSTEM);
+ UserHandle.USER_SYSTEM);
if (enabled == PackageManager.COMPONENT_ENABLED_STATE_ENABLED
|| enabled == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT) {
cancelNotifications = false;
@@ -884,6 +886,7 @@ public class NotificationManagerService extends SystemService {
super(context);
}
+ // TODO - replace these methods with a single VisibleForTesting constructor
@VisibleForTesting
void setAudioManager(AudioManager audioMananger) {
mAudioManager = audioMananger;
@@ -931,6 +934,17 @@ public class NotificationManagerService extends SystemService {
mFallbackVibrationPattern = vibrationPattern;
}
+ @VisibleForTesting
+ void setPackageManager(IPackageManager packageManager) {
+ mPackageManager = packageManager;
+ }
+
+ // TODO: This probably should not be mocked, it's an implementation detail.
+ @VisibleForTesting
+ void setRankingHelper(RankingHelper rankingHelper) {
+ mRankingHelper = rankingHelper;
+ }
+
@Override
public void onStart() {
Resources resources = getContext().getResources();
@@ -940,6 +954,7 @@ public class NotificationManagerService extends SystemService {
DEFAULT_MAX_NOTIFICATION_ENQUEUE_RATE);
mAm = ActivityManager.getService();
+ mPackageManager = AppGlobals.getPackageManager();
mAppOps = (AppOpsManager) getContext().getSystemService(Context.APP_OPS_SERVICE);
mVibrator = (Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE);
mAppUsageStats = LocalServices.getService(UsageStatsManagerInternal.class);
@@ -1312,6 +1327,11 @@ public class NotificationManagerService extends SystemService {
scheduleInterruptionFilterChanged(interruptionFilter);
}
+ @VisibleForTesting
+ INotificationManager getBinderService() {
+ return INotificationManager.Stub.asInterface(mService);
+ }
+
private final IBinder mService = new INotificationManager.Stub() {
// Toasts
// ============================================================================
@@ -1529,13 +1549,15 @@ public class NotificationManagerService extends SystemService {
}
@Override
- public void createNotificationChannel(String pkg, NotificationChannel channel) {
+ public void createNotificationChannel(String pkg, NotificationChannel channel,
+ IOnNotificationChannelCreatedListener listener) throws RemoteException {
Preconditions.checkNotNull(channel);
Preconditions.checkNotNull(channel.getId());
Preconditions.checkNotNull(channel.getName());
checkCallerIsSystemOrSameApp(pkg);
mRankingHelper.createNotificationChannel(pkg, Binder.getCallingUid(), channel);
savePolicyFile();
+ listener.onNotificationChannelCreated(channel);
}
@Override
@@ -3906,23 +3928,23 @@ public class NotificationManagerService extends SystemService {
throw new SecurityException("Disallowed call for uid " + Binder.getCallingUid());
}
- private static void checkCallerIsSystemOrSameApp(String pkg) {
+ private void checkCallerIsSystemOrSameApp(String pkg) {
if (isCallerSystem()) {
return;
}
checkCallerIsSameApp(pkg);
}
- private static void checkCallerIsSameApp(String pkg) {
+ private void checkCallerIsSameApp(String pkg) {
final int uid = Binder.getCallingUid();
try {
- ApplicationInfo ai = AppGlobals.getPackageManager().getApplicationInfo(
+ ApplicationInfo ai = mPackageManager.getApplicationInfo(
pkg, 0, UserHandle.getCallingUserId());
if (ai == null) {
throw new SecurityException("Unknown package " + pkg);
}
if (!UserHandle.isSameApp(ai.uid, uid)) {
- throw new SecurityException("Calling uid " + uid + " gave package"
+ throw new SecurityException("Calling uid " + uid + " gave package "
+ pkg + " which is owned by uid " + ai.uid);
}
} catch (RemoteException re) {
@@ -4009,7 +4031,7 @@ public class NotificationManagerService extends SystemService {
private boolean isPackageSuspendedForUser(String pkg, int uid) {
int userId = UserHandle.getUserId(uid);
try {
- return AppGlobals.getPackageManager().isPackageSuspendedForUser(pkg, userId);
+ return mPackageManager.isPackageSuspendedForUser(pkg, userId);
} catch (RemoteException re) {
throw new SecurityException("Could not talk to package manager service");
} catch (IllegalArgumentException ex) {
@@ -4510,7 +4532,7 @@ public class NotificationManagerService extends SystemService {
}
public String[] getRequestingPackages() throws RemoteException {
- final ParceledListSlice list = AppGlobals.getPackageManager()
+ final ParceledListSlice list = mPackageManager
.getPackagesHoldingPermissions(PERM, 0 /*flags*/,
ActivityManager.getCurrentUser());
final List<PackageInfo> pkgs = list.getList();
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 29fa7540f36e..66fb9766749a 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -595,7 +595,7 @@ public class ZenModeHelper {
if (RULE_INSTANCE_GRACE_PERIOD < (currentTime - rule.creationTime)) {
try {
mPm.getPackageInfo(rule.component.getPackageName(),
- PackageManager.MATCH_UNINSTALLED_PACKAGES);
+ PackageManager.MATCH_ANY_USER);
} catch (PackageManager.NameNotFoundException e) {
newConfig.automaticRules.removeAt(i);
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 3490503b91ab..dc25ce427885 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -59,11 +59,13 @@ import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATIO
import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER;
import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED;
import static android.content.pm.PackageManager.MATCH_ALL;
+import static android.content.pm.PackageManager.MATCH_ANY_USER;
import static android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING;
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
import static android.content.pm.PackageManager.MATCH_DISABLED_COMPONENTS;
import static android.content.pm.PackageManager.MATCH_FACTORY_ONLY;
+import static android.content.pm.PackageManager.MATCH_KNOWN_PACKAGES;
import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY;
import static android.content.pm.PackageManager.MATCH_UNINSTALLED_PACKAGES;
import static android.content.pm.PackageManager.MOVE_FAILED_DEVICE_ADMIN;
@@ -100,6 +102,7 @@ import static com.android.server.pm.PermissionsState.PERMISSION_OPERATION_SUCCES
import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.UserIdInt;
import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.app.IActivityManager;
@@ -3140,6 +3143,11 @@ public class PackageManagerService extends IPackageManager.Stub {
? Collections.<String>emptySet() : permissionsState.getPermissions(userId);
final PackageUserState state = ps.readUserState(userId);
+ if ((flags & MATCH_UNINSTALLED_PACKAGES) != 0
+ && ps.isSystem()) {
+ flags |= MATCH_ANY_USER;
+ }
+
return PackageParser.generatePackageInfo(p, gids, flags,
ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId);
}
@@ -3221,7 +3229,7 @@ public class PackageManagerService extends IPackageManager.Stub {
if (p != null) {
return generatePackageInfo((PackageSetting)p.mExtras, flags, userId);
}
- if (!matchFactoryOnly && (flags & MATCH_UNINSTALLED_PACKAGES) != 0) {
+ if (!matchFactoryOnly && (flags & MATCH_KNOWN_PACKAGES) != 0) {
final PackageSetting ps = mSettings.mPackages.get(packageName);
return generatePackageInfo(ps, flags, userId);
}
@@ -3268,7 +3276,7 @@ public class PackageManagerService extends IPackageManager.Stub {
if (p != null && p.isMatch(flags)) {
return UserHandle.getUid(userId, p.applicationInfo.uid);
}
- if ((flags & MATCH_UNINSTALLED_PACKAGES) != 0) {
+ if ((flags & MATCH_KNOWN_PACKAGES) != 0) {
final PackageSetting ps = mSettings.mPackages.get(packageName);
if (ps != null && ps.isMatch(flags)) {
return UserHandle.getUid(userId, ps.appId);
@@ -3292,9 +3300,11 @@ public class PackageManagerService extends IPackageManager.Stub {
final PackageParser.Package p = mPackages.get(packageName);
if (p != null && p.isMatch(flags)) {
PackageSetting ps = (PackageSetting) p.mExtras;
+ // TODO: Shouldn't this be checking for package installed state for userId and
+ // return null?
return ps.getPermissionsState().computeGids(userId);
}
- if ((flags & MATCH_UNINSTALLED_PACKAGES) != 0) {
+ if ((flags & MATCH_KNOWN_PACKAGES) != 0) {
final PackageSetting ps = mSettings.mPackages.get(packageName);
if (ps != null && ps.isMatch(flags)) {
return ps.getPermissionsState().computeGids(userId);
@@ -3418,7 +3428,7 @@ public class PackageManagerService extends IPackageManager.Stub {
if ("android".equals(packageName)||"system".equals(packageName)) {
return mAndroidApplication;
}
- if ((flags & MATCH_UNINSTALLED_PACKAGES) != 0) {
+ if ((flags & MATCH_KNOWN_PACKAGES) != 0) {
return generateApplicationInfoFromSettingsLPw(packageName, flags, userId);
}
}
@@ -3527,6 +3537,7 @@ public class PackageManagerService extends IPackageManager.Stub {
* Update given flags when being used to request {@link PackageInfo}.
*/
private int updateFlagsForPackage(int flags, int userId, Object cookie) {
+ final boolean isCallerSystemUser = UserHandle.getCallingUserId() == UserHandle.USER_SYSTEM;
boolean triaged = true;
if ((flags & (PackageManager.GET_ACTIVITIES | PackageManager.GET_RECEIVERS
| PackageManager.GET_SERVICES | PackageManager.GET_PROVIDERS)) != 0) {
@@ -3543,6 +3554,18 @@ public class PackageManagerService extends IPackageManager.Stub {
| PackageManager.MATCH_DEBUG_TRIAGED_MISSING)) == 0) {
triaged = false;
}
+ if ((flags & PackageManager.MATCH_ANY_USER) != 0) {
+ enforceCrossUserPermission(Binder.getCallingUid(), userId, false, false,
+ "MATCH_ANY_USER flag requires INTERACT_ACROSS_USERS permission at "
+ + Debug.getCallers(5));
+ } else if ((flags & PackageManager.MATCH_UNINSTALLED_PACKAGES) != 0 && isCallerSystemUser
+ && sUserManager.hasManagedProfile(UserHandle.USER_SYSTEM)) {
+ // If the caller wants all packages and has a restricted profile associated with it,
+ // then match all users. This is to make sure that launchers that need to access work
+ // profile apps don't start breaking. TODO: Remove this hack when launchers stop using
+ // MATCH_UNINSTALLED_PACKAGES to query apps in other profiles. b/31000380
+ flags |= PackageManager.MATCH_ANY_USER;
+ }
if (DEBUG_TRIAGED_MISSING && (Binder.getCallingUid() == Process.SYSTEM_UID) && !triaged) {
Log.w(TAG, "Caller hasn't been triaged for missing apps; they asked about " + cookie
+ " with flags 0x" + Integer.toHexString(flags), new Throwable());
@@ -6299,7 +6322,7 @@ public class PackageManagerService extends IPackageManager.Stub {
public ParceledListSlice<PackageInfo> getInstalledPackages(int flags, int userId) {
if (!sUserManager.exists(userId)) return ParceledListSlice.emptyList();
flags = updateFlagsForPackage(flags, userId, null);
- final boolean listUninstalled = (flags & MATCH_UNINSTALLED_PACKAGES) != 0;
+ final boolean listUninstalled = (flags & MATCH_KNOWN_PACKAGES) != 0;
enforceCrossUserPermission(Binder.getCallingUid(), userId,
true /* requireFullPermission */, false /* checkShell */,
"get installed packages");
@@ -6383,7 +6406,10 @@ public class PackageManagerService extends IPackageManager.Stub {
String[] permissions, int flags, int userId) {
if (!sUserManager.exists(userId)) return ParceledListSlice.emptyList();
flags = updateFlagsForPackage(flags, userId, permissions);
- final boolean listUninstalled = (flags & MATCH_UNINSTALLED_PACKAGES) != 0;
+ enforceCrossUserPermission(Binder.getCallingUid(), userId,
+ true /* requireFullPermission */, false /* checkShell */,
+ "get packages holding permissions");
+ final boolean listUninstalled = (flags & MATCH_KNOWN_PACKAGES) != 0;
// writer
synchronized (mPackages) {
@@ -6391,7 +6417,8 @@ public class PackageManagerService extends IPackageManager.Stub {
boolean[] tmpBools = new boolean[permissions.length];
if (listUninstalled) {
for (PackageSetting ps : mSettings.mPackages.values()) {
- addPackageHoldingPermissions(list, ps, permissions, tmpBools, flags, userId);
+ addPackageHoldingPermissions(list, ps, permissions, tmpBools, flags,
+ userId);
}
} else {
for (PackageParser.Package pkg : mPackages.values()) {
@@ -6411,7 +6438,7 @@ public class PackageManagerService extends IPackageManager.Stub {
public ParceledListSlice<ApplicationInfo> getInstalledApplications(int flags, int userId) {
if (!sUserManager.exists(userId)) return ParceledListSlice.emptyList();
flags = updateFlagsForApplication(flags, userId, null);
- final boolean listUninstalled = (flags & MATCH_UNINSTALLED_PACKAGES) != 0;
+ final boolean listUninstalled = (flags & MATCH_KNOWN_PACKAGES) != 0;
// writer
synchronized (mPackages) {
@@ -6420,11 +6447,16 @@ public class PackageManagerService extends IPackageManager.Stub {
list = new ArrayList<ApplicationInfo>(mSettings.mPackages.size());
for (PackageSetting ps : mSettings.mPackages.values()) {
ApplicationInfo ai;
+ int effectiveFlags = flags;
+ if (ps.isSystem()) {
+ effectiveFlags |= PackageManager.MATCH_ANY_USER;
+ }
if (ps.pkg != null) {
- ai = PackageParser.generateApplicationInfo(ps.pkg, flags,
+ ai = PackageParser.generateApplicationInfo(ps.pkg, effectiveFlags,
ps.readUserState(userId), userId);
} else {
- ai = generateApplicationInfoFromSettingsLPw(ps.name, flags, userId);
+ ai = generateApplicationInfoFromSettingsLPw(ps.name, effectiveFlags,
+ userId);
}
if (ai != null) {
list.add(ai);
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index 834d343e2649..fd2b5045f3ab 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -610,7 +610,7 @@ class PackageManagerShellCommand extends ShellCommand {
showUid = true;
break;
case "-u":
- getFlags |= PackageManager.GET_UNINSTALLED_PACKAGES;
+ getFlags |= PackageManager.MATCH_UNINSTALLED_PACKAGES;
break;
case "-3":
listThirdParty = true;
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index 20afed736bab..c4241e772dd7 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -2716,7 +2716,7 @@ public class UserManagerService extends IUserManager.Stub {
public Bundle getApplicationRestrictionsForUser(String packageName, int userId) {
if (UserHandle.getCallingUserId() != userId
|| !UserHandle.isSameApp(Binder.getCallingUid(), getUidForPackage(packageName))) {
- checkSystemOrRoot("get application restrictions for other users/apps");
+ checkSystemOrRoot("get application restrictions for other user/app " + packageName);
}
synchronized (mPackagesLock) {
// Read the restrictions from XML
@@ -2751,7 +2751,7 @@ public class UserManagerService extends IUserManager.Stub {
long ident = Binder.clearCallingIdentity();
try {
return mContext.getPackageManager().getApplicationInfo(packageName,
- PackageManager.MATCH_UNINSTALLED_PACKAGES).uid;
+ PackageManager.MATCH_ANY_USER).uid;
} catch (NameNotFoundException nnfe) {
return -1;
} finally {
@@ -3717,4 +3717,23 @@ public class UserManagerService extends IUserManager.Stub {
}
return 0;
}
+
+ /**
+ * Checks if the given user has a managed profile associated with it.
+ * @param userId The parent user
+ * @return
+ */
+ boolean hasManagedProfile(int userId) {
+ synchronized (mUsersLock) {
+ UserInfo userInfo = getUserInfoLU(userId);
+ final int userSize = mUsers.size();
+ for (int i = 0; i < userSize; i++) {
+ UserInfo profile = mUsers.valueAt(i).info;
+ if (userId != profile.id && isProfileOf(userInfo, profile)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ }
}
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index f48db05adbd0..a1cce2bc6a91 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -265,6 +265,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
static final int SHORT_PRESS_POWER_REALLY_GO_TO_SLEEP = 2;
static final int SHORT_PRESS_POWER_REALLY_GO_TO_SLEEP_AND_GO_HOME = 3;
static final int SHORT_PRESS_POWER_GO_HOME = 4;
+ static final int SHORT_PRESS_POWER_CLOSE_IME_OR_GO_HOME = 5;
static final int LONG_PRESS_POWER_NOTHING = 0;
static final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1;
@@ -1345,6 +1346,14 @@ public class PhoneWindowManager implements WindowManagerPolicy {
case SHORT_PRESS_POWER_GO_HOME:
launchHomeFromHotKey(true /* awakenFromDreams */, false /*respectKeyguard*/);
break;
+ case SHORT_PRESS_POWER_CLOSE_IME_OR_GO_HOME:
+ if (mWindowManagerFuncs.isInputMethodWindowVisible()) {
+ mWindowManagerFuncs.hideCurrentInputMethod();
+ } else {
+ launchHomeFromHotKey(true /* awakenFromDreams */,
+ false /*respectKeyguard*/);
+ }
+ break;
}
}
}
diff --git a/services/core/java/com/android/server/webkit/SystemImpl.java b/services/core/java/com/android/server/webkit/SystemImpl.java
index 61319cf1e30e..7ba95a4ab268 100644
--- a/services/core/java/com/android/server/webkit/SystemImpl.java
+++ b/services/core/java/com/android/server/webkit/SystemImpl.java
@@ -291,5 +291,5 @@ public class SystemImpl implements SystemInterface {
// flags declaring we want extra info from the package manager for webview providers
private final static int PACKAGE_FLAGS = PackageManager.GET_META_DATA
| PackageManager.GET_SIGNATURES | PackageManager.MATCH_DEBUG_TRIAGED_MISSING
- | PackageManager.MATCH_UNINSTALLED_PACKAGES;
+ | PackageManager.MATCH_ANY_USER;
}
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 8119230548eb..77da22c09abd 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -4089,6 +4089,24 @@ public class WindowManagerService extends IWindowManager.Stub
}
}
+ // Called by window manager policy. Not exposed externally.
+ @Override
+ public boolean isInputMethodWindowVisible() {
+ synchronized (mWindowMap) {
+ return mInputMethodWindow != null && mInputMethodWindow.isVisibleLw();
+ }
+ }
+
+ // Called by window manager policy. Not exposed externally.
+ @Override
+ public void hideCurrentInputMethod() {
+ final InputMethodManagerInternal inputMethodManagerInternal =
+ LocalServices.getService(InputMethodManagerInternal.class);
+ if (inputMethodManagerInternal != null) {
+ inputMethodManagerInternal.hideCurrentInputMethod();
+ }
+ }
+
// Called by window manager policy. Not exposed externally.
@Override
public void lockDeviceNow() {
diff --git a/services/core/jni/com_android_server_SystemServer.cpp b/services/core/jni/com_android_server_SystemServer.cpp
index c7d6b95083d2..e46490bb3fac 100644
--- a/services/core/jni/com_android_server_SystemServer.cpp
+++ b/services/core/jni/com_android_server_SystemServer.cpp
@@ -22,15 +22,22 @@
#include <cutils/properties.h>
#include <utils/Log.h>
#include <utils/misc.h>
+#include <utils/AndroidThreads.h>
namespace android {
+static int start_sensor_service(void* /*unused*/) {
+ SensorService::instantiate();
+ return 0;
+}
+
static void android_server_SystemServer_startSensorService(JNIEnv* /* env */, jobject /* clazz */) {
char propBuf[PROPERTY_VALUE_MAX];
property_get("system_init.startsensorservice", propBuf, "1");
if (strcmp(propBuf, "1") == 0) {
- // Start the sensor service
- SensorService::instantiate();
+ // Start the sensor service in a new thread
+ createThreadEtc(start_sensor_service, nullptr,
+ "StartSensorThread", PRIORITY_FOREGROUND);
}
}
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 2f27201df1a4..a2af40c246ab 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -20,7 +20,7 @@ import static android.Manifest.permission.MANAGE_CA_CERTIFICATES;
import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
import static android.app.admin.DevicePolicyManager.WIPE_EXTERNAL_STORAGE;
import static android.app.admin.DevicePolicyManager.WIPE_RESET_PROTECTION_DATA;
-import static android.content.pm.PackageManager.GET_UNINSTALLED_PACKAGES;
+import static android.content.pm.PackageManager.MATCH_UNINSTALLED_PACKAGES;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.PROVISIONING_ENTRY_POINT_ADB;
import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW;
@@ -7032,7 +7032,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
boolean systemService = false;
try {
ApplicationInfo applicationInfo = mIPackageManager.getApplicationInfo(
- enabledPackage, PackageManager.GET_UNINSTALLED_PACKAGES, userIdToCheck);
+ enabledPackage, PackageManager.MATCH_UNINSTALLED_PACKAGES,
+ userIdToCheck);
systemService = (applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
} catch (RemoteException e) {
Log.i(LOG_TAG, "Can't talk to package managed", e);
@@ -7787,7 +7788,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
private boolean isSystemApp(IPackageManager pm, String packageName, int userId)
throws RemoteException {
- ApplicationInfo appInfo = pm.getApplicationInfo(packageName, GET_UNINSTALLED_PACKAGES,
+ ApplicationInfo appInfo = pm.getApplicationInfo(packageName, MATCH_UNINSTALLED_PACKAGES,
userId);
if (appInfo == null) {
throw new IllegalArgumentException("The application " + packageName +
@@ -9608,6 +9609,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
Preconditions.checkNotNull(admin);
Preconditions.checkNotNull(caller);
Preconditions.checkNotNull(serviceIntent);
+ Preconditions.checkArgument(
+ serviceIntent.getComponent() != null || serviceIntent.getPackage() != null,
+ "Service intent must be explicit (with a package name or component): "
+ + serviceIntent);
Preconditions.checkNotNull(connection);
Preconditions.checkArgument(mInjector.userHandleGetCallingUserId() != targetUserId,
"target user id must be different from the calling user id");
@@ -9628,9 +9633,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
createCrossUserServiceIntent(serviceIntent, targetPackage, targetUserId);
if (sanitizedIntent == null) {
// Fail, cannot lookup the target service.
- throw new SecurityException("Invalid intent or failed to look up the service");
+ return false;
}
-
// Ask ActivityManager to bind it. Notice that we are binding the service with the
// caller app instead of DevicePolicyManagerService.
return mInjector.getIActivityManager().bindService(
@@ -9885,35 +9889,30 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
}
/**
- * @param rawIntent Original service intent specified by caller.
- * @param expectedPackageName The expected package name in the incoming intent.
- * @return Intent that have component explicitly set. {@code null} if the incoming intent
- * or target service is invalid.
+ * @param rawIntent Original service intent specified by caller. It must be explicit.
+ * @param expectedPackageName The expected package name of the resolved service.
+ * @return Intent that have component explicitly set. {@code null} if no service is resolved
+ * with the given intent.
+ * @throws SecurityException if the intent is resolved to an invalid service.
*/
private Intent createCrossUserServiceIntent(
@NonNull Intent rawIntent, @NonNull String expectedPackageName,
- @UserIdInt int targetUserId) throws RemoteException {
- if (rawIntent.getComponent() == null && rawIntent.getPackage() == null) {
- Log.e(LOG_TAG, "Service intent must be explicit (with a package name or component): "
- + rawIntent);
- return null;
- }
+ @UserIdInt int targetUserId) throws RemoteException, SecurityException {
ResolveInfo info = mIPackageManager.resolveService(
rawIntent,
rawIntent.resolveTypeIfNeeded(mContext.getContentResolver()),
0, // flags
targetUserId);
if (info == null || info.serviceInfo == null) {
- Log.e(LOG_TAG, "Fail to look up the service: " + rawIntent);
+ Log.e(LOG_TAG, "Fail to look up the service: " + rawIntent
+ + " or user " + targetUserId + " is not running");
return null;
}
if (!expectedPackageName.equals(info.serviceInfo.packageName)) {
- Log.e(LOG_TAG, "Only allow to bind service in " + expectedPackageName);
- return null;
+ throw new SecurityException("Only allow to bind service in " + expectedPackageName);
}
if (info.serviceInfo.exported) {
- Log.e(LOG_TAG, "The service must be unexported.");
- return null;
+ throw new SecurityException("The service must be unexported");
}
// It is the system server to bind the service, it would be extremely dangerous if it
// can be exploited to bind any service. Set the component explicitly to make sure we
diff --git a/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java
new file mode 100644
index 000000000000..e4a355f632f4
--- /dev/null
+++ b/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.notification;
+
+import static junit.framework.Assert.fail;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.app.INotificationManager;
+import android.app.IOnNotificationChannelCreatedListener;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.IPackageManager;
+import android.os.Binder;
+import android.os.Handler;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+import android.test.suitebuilder.annotation.SmallTest;
+import java.util.concurrent.CountDownLatch;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class NotificationManagerServiceTest {
+ private NotificationManagerService mNotificationManagerService;
+ private INotificationManager mBinderService;
+
+ @Before
+ public void setUp() throws Exception {
+ final Context context = InstrumentationRegistry.getTargetContext();
+ mNotificationManagerService = new NotificationManagerService(context);
+
+ // MockPackageManager - default returns ApplicationInfo with matching calling UID
+ final IPackageManager mockPackageManager = mock(IPackageManager.class);
+ final ApplicationInfo applicationInfo = new ApplicationInfo();
+ applicationInfo.uid = Binder.getCallingUid();
+ when(mockPackageManager.getApplicationInfo(any(), anyInt(), anyInt()))
+ .thenReturn(applicationInfo);
+ mNotificationManagerService.setPackageManager(mockPackageManager);
+
+ mNotificationManagerService.setRankingHelper(mock(RankingHelper.class));
+ mNotificationManagerService.setHandler(new Handler(context.getMainLooper()));
+
+ // Tests call directly into the Binder.
+ mBinderService = mNotificationManagerService.getBinderService();
+ }
+
+ @Test
+ public void testCreateNotificationChannel_SuccessCallsListener() throws Exception {
+ final NotificationChannel channel =
+ new NotificationChannel("id", "name", NotificationManager.IMPORTANCE_DEFAULT);
+ final CountDownLatch latch = new CountDownLatch(1);
+ mBinderService.createNotificationChannel("test_pkg", channel,
+ new IOnNotificationChannelCreatedListener.Stub() {
+ @Override public void onNotificationChannelCreated(
+ NotificationChannel channel) {
+ latch.countDown();
+ }});
+ latch.await();
+ }
+
+ @Test
+ public void testCreateNotificationChannel_FailureDoesNotCallListener() throws Exception {
+ try {
+ mBinderService.createNotificationChannel("test_pkg", null,
+ new IOnNotificationChannelCreatedListener.Stub() {
+ @Override public void onNotificationChannelCreated(
+ NotificationChannel channel) {
+ fail("Listener was triggered from failure.");
+ }});
+ fail("Exception should be thrown immediately.");
+ } catch (NullPointerException e) {
+ // pass
+ }
+ }
+}
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index 7217c3b973ec..515370fa00a0 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -791,7 +791,7 @@ public class UsageStatsService extends SystemService implements
int getAppId(String packageName) {
try {
ApplicationInfo ai = mPackageManager.getApplicationInfo(packageName,
- PackageManager.MATCH_UNINSTALLED_PACKAGES
+ PackageManager.MATCH_ANY_USER
| PackageManager.MATCH_DISABLED_COMPONENTS);
return ai.uid;
} catch (NameNotFoundException re) {
diff --git a/telephony/java/android/telephony/CellSignalStrengthGsm.java b/telephony/java/android/telephony/CellSignalStrengthGsm.java
index addf7ef025aa..4137853e79aa 100644
--- a/telephony/java/android/telephony/CellSignalStrengthGsm.java
+++ b/telephony/java/android/telephony/CellSignalStrengthGsm.java
@@ -141,6 +141,16 @@ public final class CellSignalStrengthGsm extends CellSignalStrength implements P
}
/**
+ * Get the GSM timing advance between 0..219 symbols (normally 0..63).
+ * Integer.MAX_VALUE is reported when there is no RR connection.
+ * Refer to 3GPP 45.010 Sec 5.8
+ * @return the current GSM timing advance, if available.
+ */
+ public int getTimingAdvance() {
+ return mTimingAdvance;
+ }
+
+ /**
* Get the signal strength as dBm
*/
@Override
diff --git a/telephony/java/android/telephony/CellSignalStrengthLte.java b/telephony/java/android/telephony/CellSignalStrengthLte.java
index 434caadeedc6..0d07a40822d4 100644
--- a/telephony/java/android/telephony/CellSignalStrengthLte.java
+++ b/telephony/java/android/telephony/CellSignalStrengthLte.java
@@ -220,8 +220,10 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
}
/**
- * Get the timing advance value for LTE.
- * See 3GPP xxxx
+ * Get the timing advance value for LTE, as a value between 0..63.
+ * Integer.MAX_VALUE is reported when there is no active RRC
+ * connection. Refer to 3GPP 36.213 Sec 4.2.3
+ * @return the LTE timing advance, if available.
*/
public int getTimingAdvance() {
return mTimingAdvance;
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 457fd88e1f7c..918ef5eccbde 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -2275,6 +2275,8 @@ public class TelephonyManager {
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
* OR
* {@link android.Manifest.permission#READ_SMS}
+ * OR
+ * {@link android.Manifest.permission#READ_PHONE_NUMBER}
* <p>
* The default SMS app can also use this.
*/
@@ -2290,6 +2292,8 @@ public class TelephonyManager {
* {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
* OR
* {@link android.Manifest.permission#READ_SMS}
+ * OR
+ * {@link android.Manifest.permission#READ_PHONE_NUMBER}
* <p>
* The default SMS app can also use this.
*
diff --git a/tools/apilint/apilint.py b/tools/apilint/apilint.py
index ca2d2e75ee89..6ca59b0fb93b 100644
--- a/tools/apilint/apilint.py
+++ b/tools/apilint/apilint.py
@@ -91,7 +91,7 @@ class Method():
while r in raw: raw.remove(r)
self.split = list(raw)
- for r in ["method", "public", "protected", "static", "final", "deprecated", "abstract"]:
+ for r in ["method", "public", "protected", "static", "final", "deprecated", "abstract", "default"]:
while r in raw: raw.remove(r)
self.typ = raw[0]
diff --git a/tools/layoutlib/bridge/src/com/android/internal/view/animation/NativeInterpolatorFactoryHelper_Delegate.java b/tools/layoutlib/bridge/src/com/android/internal/view/animation/NativeInterpolatorFactoryHelper_Delegate.java
index 0f39e8042883..ffce1a0496d9 100644
--- a/tools/layoutlib/bridge/src/com/android/internal/view/animation/NativeInterpolatorFactoryHelper_Delegate.java
+++ b/tools/layoutlib/bridge/src/com/android/internal/view/animation/NativeInterpolatorFactoryHelper_Delegate.java
@@ -104,7 +104,7 @@ public class NativeInterpolatorFactoryHelper_Delegate {
@Override
public float getInterpolation(float input) {
- float lutpos = input * mSize;
+ float lutpos = input * (mSize - 1);
if (lutpos >= (mSize - 1)) {
return mValues[mSize - 1];
}
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 24cd275fc254..82d41e3dc7ae 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -685,12 +685,22 @@ public class WifiConfiguration implements Parcelable {
/**
* @hide
* A hint about whether or not the network represented by this WifiConfiguration
- * is metered.
+ * is metered. This is hinted at via the meteredHint bit on DHCP results set in
+ * {@link com.android.server.wifi.WifiStateMachine}, or via a network score in
+ * {@link com.android.server.wifi.ExternalScoreEvaluator}.
*/
public boolean meteredHint;
/**
* @hide
+ * Indicates if a user has specified the WifiConfiguration to be metered. Users
+ * can toggle if a network is metered within Settings -> Data Usage -> Network
+ * Restrictions.
+ */
+ public boolean meteredOverride;
+
+ /**
+ * @hide
* Setting this value will force scan results associated with this configuration to
* be included in the bucket of networks that are externally scored.
* If not set, associated scan results will be treated as legacy saved networks and
@@ -1367,6 +1377,7 @@ public class WifiConfiguration implements Parcelable {
didSelfAdd = false;
ephemeral = false;
meteredHint = false;
+ meteredOverride = false;
useExternalScores = false;
validatedInternetAccess = false;
mIpConfiguration = new IpConfiguration();
@@ -1470,9 +1481,11 @@ public class WifiConfiguration implements Parcelable {
if (this.validatedInternetAccess) sbuf.append(" validatedInternetAccess");
if (this.ephemeral) sbuf.append(" ephemeral");
if (this.meteredHint) sbuf.append(" meteredHint");
+ if (this.meteredOverride) sbuf.append(" meteredOverride");
if (this.useExternalScores) sbuf.append(" useExternalScores");
if (this.didSelfAdd || this.selfAdded || this.validatedInternetAccess
- || this.ephemeral || this.meteredHint || this.useExternalScores) {
+ || this.ephemeral || this.meteredHint || this.meteredOverride
+ || this.useExternalScores) {
sbuf.append("\n");
}
sbuf.append(" KeyMgmt:");
@@ -1897,6 +1910,7 @@ public class WifiConfiguration implements Parcelable {
validatedInternetAccess = source.validatedInternetAccess;
ephemeral = source.ephemeral;
meteredHint = source.meteredHint;
+ meteredOverride = source.meteredOverride;
useExternalScores = source.useExternalScores;
if (source.visibility != null) {
visibility = new Visibility(source.visibility);
@@ -1978,6 +1992,7 @@ public class WifiConfiguration implements Parcelable {
dest.writeInt(validatedInternetAccess ? 1 : 0);
dest.writeInt(ephemeral ? 1 : 0);
dest.writeInt(meteredHint ? 1 : 0);
+ dest.writeInt(meteredOverride ? 1 : 0);
dest.writeInt(useExternalScores ? 1 : 0);
dest.writeInt(creatorUid);
dest.writeInt(lastConnectUid);
@@ -2049,6 +2064,7 @@ public class WifiConfiguration implements Parcelable {
config.validatedInternetAccess = in.readInt() != 0;
config.ephemeral = in.readInt() != 0;
config.meteredHint = in.readInt() != 0;
+ config.meteredOverride = in.readInt() != 0;
config.useExternalScores = in.readInt() != 0;
config.creatorUid = in.readInt();
config.lastConnectUid = in.readInt();