summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk2
-rw-r--r--api/current.txt616
-rw-r--r--api/system-current.txt286
-rw-r--r--core/java/android/app/Activity.java22
-rw-r--r--core/java/android/app/ApplicationPackageManager.java4
-rw-r--r--core/java/android/app/INotificationManager.aidl7
-rw-r--r--core/java/android/app/INotificationManagerCallback.aidl24
-rw-r--r--core/java/android/app/NotificationManager.aidl20
-rw-r--r--core/java/android/app/NotificationManager.java303
-rw-r--r--core/java/android/app/SystemServiceRegistry.java8
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java16
-rw-r--r--core/java/android/app/admin/IDevicePolicyManager.aidl1
-rw-r--r--core/java/android/app/backup/BackupAgent.java2
-rw-r--r--core/java/android/content/ComponentName.java51
-rw-r--r--core/java/android/content/Context.java9
-rw-r--r--core/java/android/content/pm/ActivityInfo.java44
-rw-r--r--core/java/android/content/pm/PackageParser.java21
-rw-r--r--core/java/android/hardware/Camera.java8
-rw-r--r--core/java/android/hardware/camera2/CameraCaptureSession.java117
-rw-r--r--core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl1
-rw-r--r--core/java/android/hardware/camera2/ICameraDeviceUser.aidl2
-rw-r--r--core/java/android/hardware/camera2/impl/CallbackProxies.java7
-rw-r--r--core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java12
-rw-r--r--core/java/android/hardware/camera2/impl/CameraDeviceImpl.java56
-rw-r--r--core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java18
-rw-r--r--core/java/android/hardware/fingerprint/FingerprintManager.java79
-rw-r--r--core/java/android/hardware/fingerprint/IFingerprintService.aidl5
-rw-r--r--core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl2
-rw-r--r--core/java/android/hardware/location/GeofenceHardwareImpl.java18
-rw-r--r--core/java/android/hardware/location/IFusedLocationHardware.aidl5
-rw-r--r--core/java/android/net/ConnectivityManager.java31
-rw-r--r--core/java/android/net/IConnectivityManager.aidl2
-rw-r--r--core/java/android/net/Network.java29
-rw-r--r--core/java/android/net/NetworkAgent.java39
-rw-r--r--core/java/android/net/NetworkMisc.java10
-rw-r--r--core/java/android/nfc/cardemulation/ApduServiceInfo.java15
-rw-r--r--core/java/android/os/Binder.java7
-rw-r--r--core/java/android/os/Debug.java2
-rw-r--r--core/java/android/os/storage/DiskInfo.java27
-rw-r--r--core/java/android/os/storage/IMountService.java64
-rw-r--r--core/java/android/os/storage/IMountServiceListener.java26
-rw-r--r--core/java/android/os/storage/StorageEventListener.java3
-rw-r--r--core/java/android/os/storage/StorageManager.java81
-rw-r--r--core/java/android/os/storage/VolumeInfo.java80
-rw-r--r--core/java/android/provider/Settings.java11
-rw-r--r--core/java/android/service/notification/NotificationListenerService.java17
-rw-r--r--core/java/android/service/notification/ZenModeConfig.java55
-rw-r--r--core/java/android/text/StaticLayout.java17
-rw-r--r--core/java/android/view/PhoneWindow.java8
-rw-r--r--core/java/android/view/ThreadedRenderer.java32
-rw-r--r--core/java/android/view/View.java158
-rw-r--r--core/java/android/view/Window.java2
-rw-r--r--core/java/android/view/WindowManager.java41
-rw-r--r--core/java/android/webkit/WebView.java4
-rw-r--r--core/java/android/widget/Editor.java124
-rw-r--r--core/java/android/widget/PopupWindow.java13
-rw-r--r--core/java/android/widget/TextView.java78
-rw-r--r--core/java/com/android/internal/statusbar/IStatusBarService.aidl1
-rwxr-xr-xcore/jni/android/graphics/Bitmap.cpp8
-rw-r--r--core/jni/android/graphics/Graphics.cpp6
-rw-r--r--core/jni/android/graphics/GraphicsJNI.h3
-rw-r--r--core/jni/android/graphics/Shader.cpp9
-rw-r--r--core/jni/android_graphics_Canvas.cpp21
-rw-r--r--core/jni/android_media_AudioRecord.cpp13
-rw-r--r--core/jni/android_text_StaticLayout.cpp8
-rw-r--r--core/jni/android_util_Binder.cpp8
-rw-r--r--core/jni/android_view_GraphicBuffer.cpp22
-rw-r--r--core/jni/android_view_Surface.cpp23
-rw-r--r--core/jni/android_view_TextureView.cpp22
-rw-r--r--core/jni/android_view_ThreadedRenderer.cpp8
-rw-r--r--core/res/AndroidManifest.xml26
-rw-r--r--core/res/res/color/ratingbar_background_material.xml4
-rw-r--r--core/res/res/values-af/strings.xml136
-rw-r--r--core/res/res/values-am/strings.xml136
-rw-r--r--core/res/res/values-ar/strings.xml136
-rw-r--r--core/res/res/values-bg/strings.xml136
-rw-r--r--core/res/res/values-bn-rBD/strings.xml139
-rw-r--r--core/res/res/values-ca/strings.xml142
-rw-r--r--core/res/res/values-cs/strings.xml135
-rw-r--r--core/res/res/values-da/strings.xml135
-rw-r--r--core/res/res/values-de/strings.xml135
-rw-r--r--core/res/res/values-el/strings.xml114
-rw-r--r--core/res/res/values-en-rAU/strings.xml113
-rw-r--r--core/res/res/values-en-rGB/strings.xml113
-rw-r--r--core/res/res/values-en-rIN/strings.xml113
-rw-r--r--core/res/res/values-es-rUS/strings.xml135
-rw-r--r--core/res/res/values-es/strings.xml135
-rw-r--r--core/res/res/values-et-rEE/strings.xml135
-rw-r--r--core/res/res/values-eu-rES/strings.xml139
-rw-r--r--core/res/res/values-fa/strings.xml136
-rw-r--r--core/res/res/values-fi/strings.xml136
-rw-r--r--core/res/res/values-fr-rCA/strings.xml139
-rw-r--r--core/res/res/values-fr/strings.xml135
-rw-r--r--core/res/res/values-gl-rES/strings.xml139
-rw-r--r--core/res/res/values-hi/strings.xml135
-rw-r--r--core/res/res/values-hr/strings.xml136
-rw-r--r--core/res/res/values-hu/strings.xml136
-rw-r--r--core/res/res/values-hy-rAM/strings.xml139
-rw-r--r--core/res/res/values-in/strings.xml115
-rw-r--r--core/res/res/values-is-rIS/strings.xml139
-rw-r--r--core/res/res/values-it/strings.xml135
-rw-r--r--core/res/res/values-iw/strings.xml115
-rw-r--r--core/res/res/values-ja/strings.xml134
-rw-r--r--core/res/res/values-ka-rGE/strings.xml139
-rw-r--r--core/res/res/values-kk-rKZ/strings.xml139
-rw-r--r--core/res/res/values-km-rKH/strings.xml139
-rw-r--r--core/res/res/values-kn-rIN/strings.xml139
-rw-r--r--core/res/res/values-ko/strings.xml136
-rw-r--r--core/res/res/values-ky-rKG/strings.xml128
-rw-r--r--core/res/res/values-lo-rLA/strings.xml117
-rw-r--r--core/res/res/values-lt/strings.xml135
-rw-r--r--core/res/res/values-lv/strings.xml136
-rw-r--r--core/res/res/values-mk-rMK/strings.xml145
-rw-r--r--core/res/res/values-ml-rIN/strings.xml139
-rw-r--r--core/res/res/values-mn-rMN/strings.xml138
-rw-r--r--core/res/res/values-mr-rIN/strings.xml139
-rw-r--r--core/res/res/values-ms-rMY/strings.xml136
-rw-r--r--core/res/res/values-my-rMM/strings.xml117
-rw-r--r--core/res/res/values-nb/strings.xml135
-rw-r--r--core/res/res/values-ne-rNP/strings.xml122
-rw-r--r--core/res/res/values-nl/strings.xml135
-rw-r--r--core/res/res/values-pl/strings.xml141
-rw-r--r--core/res/res/values-pt-rPT/strings.xml135
-rw-r--r--core/res/res/values-pt/strings.xml135
-rw-r--r--core/res/res/values-ro/strings.xml136
-rw-r--r--core/res/res/values-ru/strings.xml141
-rw-r--r--core/res/res/values-si-rLK/strings.xml139
-rw-r--r--core/res/res/values-sk/strings.xml136
-rw-r--r--core/res/res/values-sl/strings.xml136
-rw-r--r--core/res/res/values-sr/strings.xml136
-rw-r--r--core/res/res/values-sv/strings.xml135
-rw-r--r--core/res/res/values-sw/strings.xml136
-rw-r--r--core/res/res/values-ta-rIN/strings.xml139
-rw-r--r--core/res/res/values-te-rIN/strings.xml139
-rw-r--r--core/res/res/values-th/strings.xml135
-rw-r--r--core/res/res/values-tl/strings.xml114
-rw-r--r--core/res/res/values-tr/strings.xml135
-rw-r--r--core/res/res/values-uk/strings.xml136
-rw-r--r--core/res/res/values-ur-rPK/strings.xml139
-rw-r--r--core/res/res/values-uz-rUZ/strings.xml118
-rw-r--r--core/res/res/values-vi/strings.xml135
-rw-r--r--core/res/res/values-zh-rCN/strings.xml141
-rw-r--r--core/res/res/values-zh-rHK/strings.xml134
-rw-r--r--core/res/res/values-zh-rTW/strings.xml134
-rw-r--r--core/res/res/values-zu/strings.xml115
-rw-r--r--core/res/res/values/attrs.xml4
-rw-r--r--core/res/res/values/attrs_manifest.xml61
-rw-r--r--core/res/res/values/dimens_material.xml2
-rw-r--r--core/res/res/values/public.xml5
-rw-r--r--core/res/res/values/strings.xml100
-rwxr-xr-xcore/res/res/values/symbols.xml13
-rw-r--r--data/keyboards/AVRCP.idc19
-rw-r--r--docs/html/design/building-blocks/buttons.jd8
-rw-r--r--docs/html/design/building-blocks/dialogs.jd19
-rw-r--r--docs/html/design/building-blocks/grid-lists.jd9
-rw-r--r--docs/html/design/building-blocks/lists.jd25
-rw-r--r--docs/html/design/building-blocks/progress.jd8
-rw-r--r--docs/html/design/building-blocks/scrolling.jd1
-rw-r--r--docs/html/design/building-blocks/seek-bars.jd8
-rw-r--r--docs/html/design/building-blocks/spinners.jd8
-rw-r--r--docs/html/design/building-blocks/switches.jd8
-rw-r--r--docs/html/design/building-blocks/tabs.jd10
-rw-r--r--docs/html/design/building-blocks/text-fields.jd9
-rw-r--r--docs/html/design/downloads/index.jd65
-rw-r--r--docs/html/design/patterns/accessibility.jd8
-rw-r--r--docs/html/design/patterns/actionbar.jd9
-rw-r--r--docs/html/design/patterns/app-structure.jd13
-rw-r--r--docs/html/design/patterns/gestures.jd10
-rw-r--r--docs/html/design/patterns/multi-pane-layouts.jd16
-rw-r--r--docs/html/design/patterns/navigation-drawer.jd26
-rw-r--r--docs/html/design/patterns/selection.jd9
-rw-r--r--docs/html/design/patterns/settings.jd9
-rw-r--r--docs/html/design/style/branding.jd40
-rw-r--r--docs/html/design/style/color.jd9
-rw-r--r--docs/html/design/style/devices-displays.jd19
-rw-r--r--docs/html/design/style/iconography.jd33
-rw-r--r--docs/html/design/style/metrics-grids.jd10
-rw-r--r--docs/html/design/style/themes.jd12
-rw-r--r--docs/html/design/style/touch-feedback.jd13
-rw-r--r--docs/html/design/style/typography.jd12
-rw-r--r--graphics/java/android/graphics/Bitmap.java10
-rw-r--r--graphics/java/android/graphics/BitmapShader.java5
-rw-r--r--graphics/java/android/graphics/Canvas.java24
-rw-r--r--include/androidfw/ResourceTypes.h5
-rw-r--r--keystore/java/android/security/AndroidKeyStore.java15
-rw-r--r--keystore/java/android/security/EcIesParameterSpec.java31
-rw-r--r--libs/androidfw/ResourceTypes.cpp74
-rw-r--r--libs/androidfw/tests/Android.mk30
-rw-r--r--libs/androidfw/tests/ResTable_test.cpp81
-rw-r--r--libs/hwui/AssetAtlas.cpp22
-rw-r--r--libs/hwui/AssetAtlas.h62
-rw-r--r--libs/hwui/Canvas.h7
-rw-r--r--libs/hwui/DisplayListRenderer.h2
-rw-r--r--libs/hwui/SkiaCanvas.cpp28
-rw-r--r--libs/hwui/SkiaCanvasProxy.cpp1
-rw-r--r--libs/hwui/renderthread/RenderProxy.cpp4
-rw-r--r--libs/hwui/renderthread/RenderProxy.h2
-rw-r--r--location/java/android/location/GpsMeasurement.java50
-rw-r--r--location/java/android/location/GpsNavigationMessage.java69
-rw-r--r--location/lib/java/com/android/location/provider/FusedLocationHardware.java20
-rw-r--r--location/lib/java/com/android/location/provider/FusedLocationHardwareSink.java3
-rw-r--r--media/java/android/media/AudioDeviceInfo.java (renamed from media/java/android/media/AudioDevice.java)97
-rw-r--r--media/java/android/media/AudioDevicesManager.java348
-rw-r--r--media/java/android/media/AudioRecord.java31
-rw-r--r--media/java/android/media/MediaCodec.java58
-rw-r--r--media/java/android/media/OnAudioDeviceConnectionListener.java17
-rw-r--r--media/java/android/media/audiofx/Virtualizer.java46
-rw-r--r--media/java/android/media/audiopolicy/AudioMix.java36
-rw-r--r--media/java/android/media/tv/TvTrackInfo.java41
-rw-r--r--media/jni/Android.mk3
-rw-r--r--media/jni/android_media_MediaCodec.cpp29
-rw-r--r--media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/mediarecorder/MediaRecorderTest.java34
-rw-r--r--media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java10
-rw-r--r--media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java10
-rw-r--r--native/android/Android.mk10
-rw-r--r--native/android/net.c85
-rw-r--r--native/graphics/jni/Android.mk3
-rw-r--r--packages/DocumentsUI/res/layout/fragment_pick.xml13
-rw-r--r--packages/DocumentsUI/res/values-af/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-am/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ar/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-bg/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-bn-rBD/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ca/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-cs/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-da/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-de/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-el/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-en-rAU/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-en-rGB/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-en-rIN/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-es-rUS/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-es/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-et-rEE/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-eu-rES/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-fa/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-fi/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-fr-rCA/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-fr/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-gl-rES/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-hi/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-hr/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-hu/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-hy-rAM/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-in/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-is-rIS/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-it/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-iw/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-ja/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ka-rGE/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-kk-rKZ/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-km-rKH/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-kn-rIN/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ko/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ky-rKG/strings.xml14
-rw-r--r--packages/DocumentsUI/res/values-lo-rLA/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-lt/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-lv/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-mk-rMK/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ml-rIN/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-mn-rMN/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-mr-rIN/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ms-rMY/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-my-rMM/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-nb/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ne-rNP/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-nl/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-pl/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-pt-rPT/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-pt/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ro/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ru/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-si-rLK/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-sk/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-sl/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-sr/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-sv/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-sw/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ta-rIN/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-te-rIN/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-th/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-tl/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-tr/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-uk/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-ur-rPK/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-uz-rUZ/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values-vi/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-zh-rCN/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-zh-rHK/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-zh-rTW/strings.xml13
-rw-r--r--packages/DocumentsUI/res/values-zu/strings.xml12
-rw-r--r--packages/DocumentsUI/res/values/strings.xml19
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java17
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/CopyService.java31
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java10
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java8
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/FailureDialogFragment.java99
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/PickFragment.java43
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/RootsCache.java3
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/StandaloneActivity.java9
-rw-r--r--packages/Keyguard/res/values-af/strings.xml4
-rw-r--r--packages/Keyguard/res/values-am/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ar/strings.xml4
-rw-r--r--packages/Keyguard/res/values-bg/strings.xml4
-rw-r--r--packages/Keyguard/res/values-bn-rBD/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ca/strings.xml4
-rw-r--r--packages/Keyguard/res/values-cs/strings.xml4
-rw-r--r--packages/Keyguard/res/values-da/strings.xml4
-rw-r--r--packages/Keyguard/res/values-de/strings.xml4
-rw-r--r--packages/Keyguard/res/values-el/strings.xml1
-rw-r--r--packages/Keyguard/res/values-en-rAU/strings.xml1
-rw-r--r--packages/Keyguard/res/values-en-rGB/strings.xml1
-rw-r--r--packages/Keyguard/res/values-en-rIN/strings.xml1
-rw-r--r--packages/Keyguard/res/values-es-rUS/strings.xml4
-rw-r--r--packages/Keyguard/res/values-es/strings.xml4
-rw-r--r--packages/Keyguard/res/values-et-rEE/strings.xml4
-rw-r--r--packages/Keyguard/res/values-eu-rES/strings.xml4
-rw-r--r--packages/Keyguard/res/values-fa/strings.xml4
-rw-r--r--packages/Keyguard/res/values-fi/strings.xml4
-rw-r--r--packages/Keyguard/res/values-fr-rCA/strings.xml4
-rw-r--r--packages/Keyguard/res/values-fr/strings.xml4
-rw-r--r--packages/Keyguard/res/values-gl-rES/strings.xml4
-rw-r--r--packages/Keyguard/res/values-hi/strings.xml4
-rw-r--r--packages/Keyguard/res/values-hr/strings.xml4
-rw-r--r--packages/Keyguard/res/values-hu/strings.xml4
-rw-r--r--packages/Keyguard/res/values-hy-rAM/strings.xml4
-rw-r--r--packages/Keyguard/res/values-in/strings.xml1
-rw-r--r--packages/Keyguard/res/values-is-rIS/strings.xml4
-rw-r--r--packages/Keyguard/res/values-it/strings.xml4
-rw-r--r--packages/Keyguard/res/values-iw/strings.xml1
-rw-r--r--packages/Keyguard/res/values-ja/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ka-rGE/strings.xml4
-rw-r--r--packages/Keyguard/res/values-kk-rKZ/strings.xml4
-rw-r--r--packages/Keyguard/res/values-km-rKH/strings.xml4
-rw-r--r--packages/Keyguard/res/values-kn-rIN/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ko/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ky-rKG/strings.xml4
-rw-r--r--packages/Keyguard/res/values-lo-rLA/strings.xml1
-rw-r--r--packages/Keyguard/res/values-lt/strings.xml4
-rw-r--r--packages/Keyguard/res/values-lv/strings.xml4
-rw-r--r--packages/Keyguard/res/values-mk-rMK/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ml-rIN/strings.xml4
-rw-r--r--packages/Keyguard/res/values-mn-rMN/strings.xml4
-rw-r--r--packages/Keyguard/res/values-mr-rIN/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ms-rMY/strings.xml4
-rw-r--r--packages/Keyguard/res/values-my-rMM/strings.xml1
-rw-r--r--packages/Keyguard/res/values-nb/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ne-rNP/strings.xml1
-rw-r--r--packages/Keyguard/res/values-nl/strings.xml4
-rw-r--r--packages/Keyguard/res/values-pl/strings.xml4
-rw-r--r--packages/Keyguard/res/values-pt-rPT/strings.xml4
-rw-r--r--packages/Keyguard/res/values-pt/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ro/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ru/strings.xml4
-rw-r--r--packages/Keyguard/res/values-si-rLK/strings.xml4
-rw-r--r--packages/Keyguard/res/values-sk/strings.xml4
-rw-r--r--packages/Keyguard/res/values-sl/strings.xml4
-rw-r--r--packages/Keyguard/res/values-sr/strings.xml4
-rw-r--r--packages/Keyguard/res/values-sv/strings.xml4
-rw-r--r--packages/Keyguard/res/values-sw/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ta-rIN/strings.xml4
-rw-r--r--packages/Keyguard/res/values-te-rIN/strings.xml4
-rw-r--r--packages/Keyguard/res/values-th/strings.xml4
-rw-r--r--packages/Keyguard/res/values-tl/strings.xml1
-rw-r--r--packages/Keyguard/res/values-tr/strings.xml4
-rw-r--r--packages/Keyguard/res/values-uk/strings.xml4
-rw-r--r--packages/Keyguard/res/values-ur-rPK/strings.xml4
-rw-r--r--packages/Keyguard/res/values-uz-rUZ/strings.xml1
-rw-r--r--packages/Keyguard/res/values-vi/strings.xml4
-rw-r--r--packages/Keyguard/res/values-zh-rCN/strings.xml4
-rw-r--r--packages/Keyguard/res/values-zh-rHK/strings.xml4
-rw-r--r--packages/Keyguard/res/values-zh-rTW/strings.xml4
-rw-r--r--packages/Keyguard/res/values-zu/strings.xml1
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java13
-rw-r--r--packages/SystemUI/AndroidManifest.xml1
-rw-r--r--packages/SystemUI/res/anim/heads_up_enter.xml12
-rw-r--r--packages/SystemUI/res/anim/heads_up_exit.xml12
-rw-r--r--packages/SystemUI/res/layout/heads_up.xml33
-rw-r--r--packages/SystemUI/res/layout/super_status_bar.xml7
-rw-r--r--packages/SystemUI/res/values-af/strings.xml15
-rw-r--r--packages/SystemUI/res/values-am/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ar/strings.xml15
-rw-r--r--packages/SystemUI/res/values-bg/strings.xml15
-rw-r--r--packages/SystemUI/res/values-bn-rBD/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ca/strings.xml15
-rw-r--r--packages/SystemUI/res/values-cs/strings.xml15
-rw-r--r--packages/SystemUI/res/values-da/strings.xml17
-rw-r--r--packages/SystemUI/res/values-de/strings.xml15
-rw-r--r--packages/SystemUI/res/values-el/strings.xml14
-rw-r--r--packages/SystemUI/res/values-en-rAU/strings.xml14
-rw-r--r--packages/SystemUI/res/values-en-rGB/strings.xml14
-rw-r--r--packages/SystemUI/res/values-en-rIN/strings.xml14
-rw-r--r--packages/SystemUI/res/values-es-rUS/strings.xml15
-rw-r--r--packages/SystemUI/res/values-es/strings.xml15
-rw-r--r--packages/SystemUI/res/values-et-rEE/strings.xml15
-rw-r--r--packages/SystemUI/res/values-eu-rES/strings.xml15
-rw-r--r--packages/SystemUI/res/values-fa/strings.xml15
-rw-r--r--packages/SystemUI/res/values-fi/strings.xml15
-rw-r--r--packages/SystemUI/res/values-fr-rCA/strings.xml15
-rw-r--r--packages/SystemUI/res/values-fr/strings.xml15
-rw-r--r--packages/SystemUI/res/values-gl-rES/strings.xml15
-rw-r--r--packages/SystemUI/res/values-hi/strings.xml15
-rw-r--r--packages/SystemUI/res/values-hr/strings.xml15
-rw-r--r--packages/SystemUI/res/values-hu/strings.xml15
-rw-r--r--packages/SystemUI/res/values-hy-rAM/strings.xml15
-rw-r--r--packages/SystemUI/res/values-in/strings.xml14
-rw-r--r--packages/SystemUI/res/values-is-rIS/strings.xml15
-rw-r--r--packages/SystemUI/res/values-it/strings.xml15
-rw-r--r--packages/SystemUI/res/values-iw/strings.xml14
-rw-r--r--packages/SystemUI/res/values-ja/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ka-rGE/strings.xml15
-rw-r--r--packages/SystemUI/res/values-kk-rKZ/strings.xml15
-rw-r--r--packages/SystemUI/res/values-km-rKH/strings.xml15
-rw-r--r--packages/SystemUI/res/values-kn-rIN/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ko/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ky-rKG/strings.xml15
-rw-r--r--packages/SystemUI/res/values-lo-rLA/strings.xml14
-rw-r--r--packages/SystemUI/res/values-lt/strings.xml15
-rw-r--r--packages/SystemUI/res/values-lv/strings.xml15
-rw-r--r--packages/SystemUI/res/values-mk-rMK/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ml-rIN/strings.xml15
-rw-r--r--packages/SystemUI/res/values-mn-rMN/strings.xml15
-rw-r--r--packages/SystemUI/res/values-mr-rIN/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ms-rMY/strings.xml15
-rw-r--r--packages/SystemUI/res/values-my-rMM/strings.xml14
-rw-r--r--packages/SystemUI/res/values-nb/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ne-rNP/strings.xml14
-rw-r--r--packages/SystemUI/res/values-nl/strings.xml15
-rw-r--r--packages/SystemUI/res/values-pl/strings.xml15
-rw-r--r--packages/SystemUI/res/values-pt-rPT/strings.xml15
-rw-r--r--packages/SystemUI/res/values-pt/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ro/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ru/strings.xml15
-rw-r--r--packages/SystemUI/res/values-si-rLK/strings.xml15
-rw-r--r--packages/SystemUI/res/values-sk/strings.xml15
-rw-r--r--packages/SystemUI/res/values-sl/strings.xml15
-rw-r--r--packages/SystemUI/res/values-sr/strings.xml15
-rw-r--r--packages/SystemUI/res/values-sv/strings.xml15
-rw-r--r--packages/SystemUI/res/values-sw/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ta-rIN/strings.xml15
-rw-r--r--packages/SystemUI/res/values-te-rIN/strings.xml15
-rw-r--r--packages/SystemUI/res/values-th/strings.xml15
-rw-r--r--packages/SystemUI/res/values-tl/strings.xml14
-rw-r--r--packages/SystemUI/res/values-tr/strings.xml15
-rw-r--r--packages/SystemUI/res/values-uk/strings.xml15
-rw-r--r--packages/SystemUI/res/values-ur-rPK/strings.xml15
-rw-r--r--packages/SystemUI/res/values-uz-rUZ/strings.xml14
-rw-r--r--packages/SystemUI/res/values-vi/strings.xml15
-rw-r--r--packages/SystemUI/res/values-zh-rCN/strings.xml15
-rw-r--r--packages/SystemUI/res/values-zh-rHK/strings.xml15
-rw-r--r--packages/SystemUI/res/values-zh-rTW/strings.xml15
-rw-r--r--packages/SystemUI/res/values-zu/strings.xml14
-rw-r--r--packages/SystemUI/res/values/config.xml2
-rw-r--r--packages/SystemUI/res/values/dimens.xml2
-rw-r--r--packages/SystemUI/res/values/ids.xml2
-rw-r--r--packages/SystemUI/res/values/styles.xml5
-rw-r--r--packages/SystemUI/src/com/android/systemui/ExpandHelper.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java395
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java59
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java198
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java38
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java160
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java186
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationsQuickSettingsContainer.java29
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java60
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java257
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java125
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java519
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java622
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java73
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java262
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java186
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java94
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java14
-rw-r--r--packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java595
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HeadsUpNotificationTest.java261
-rw-r--r--rs/java/android/renderscript/AllocationAdapter.java2
-rw-r--r--rs/java/android/renderscript/RenderScript.java11
-rw-r--r--rs/java/android/renderscript/ScriptIntrinsicBLAS.java21
-rw-r--r--rs/java/android/renderscript/Type.java3
-rw-r--r--rs/jni/Android.mk1
-rw-r--r--rs/jni/android_renderscript_RenderScript.cpp28
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java1
-rw-r--r--services/core/java/com/android/server/AssetAtlasService.java118
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java115
-rw-r--r--services/core/java/com/android/server/MountService.java245
-rw-r--r--services/core/java/com/android/server/Watchdog.java17
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java124
-rw-r--r--services/core/java/com/android/server/am/ActivityStack.java13
-rw-r--r--services/core/java/com/android/server/am/ActivityStackSupervisor.java189
-rw-r--r--services/core/java/com/android/server/am/TaskRecord.java77
-rw-r--r--services/core/java/com/android/server/connectivity/NetworkAgentInfo.java22
-rw-r--r--services/core/java/com/android/server/content/SyncManager.java2
-rw-r--r--services/core/java/com/android/server/fingerprint/FingerprintService.java379
-rw-r--r--services/core/java/com/android/server/location/FlpHardwareProvider.java19
-rw-r--r--services/core/java/com/android/server/location/FusedLocationHardwareSecure.java6
-rw-r--r--services/core/java/com/android/server/notification/NotificationManagerService.java110
-rw-r--r--services/core/java/com/android/server/notification/ZenModeHelper.java29
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java3
-rw-r--r--services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java3
-rw-r--r--services/core/java/com/android/server/statusbar/StatusBarManagerService.java7
-rw-r--r--services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java57
-rw-r--r--services/core/java/com/android/server/wm/AccessibilityController.java1
-rw-r--r--services/core/java/com/android/server/wm/InputMonitor.java2
-rw-r--r--services/core/jni/Android.mk3
-rw-r--r--services/core/jni/com_android_server_AssetAtlasService.cpp55
-rw-r--r--services/core/jni/com_android_server_fingerprint_FingerprintService.cpp60
-rw-r--r--services/core/jni/com_android_server_location_FlpHardwareProvider.cpp13
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java83
-rw-r--r--services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java18
-rw-r--r--services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java8
-rw-r--r--services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java4
-rw-r--r--telecomm/java/android/telecom/AudioState.java22
-rw-r--r--telecomm/java/android/telecom/AuthenticatorService.java2
-rw-r--r--telecomm/java/android/telecom/Call.java24
-rw-r--r--telecomm/java/android/telecom/CallProperties.java1
-rw-r--r--telecomm/java/android/telecom/CallState.java5
-rw-r--r--telecomm/java/android/telecom/CameraCapabilities.java6
-rw-r--r--telecomm/java/android/telecom/Conference.java19
-rw-r--r--telecomm/java/android/telecom/Connection.java16
-rw-r--r--telecomm/java/android/telecom/ConnectionRequest.java3
-rw-r--r--telecomm/java/android/telecom/ConnectionService.java3
-rw-r--r--telecomm/java/android/telecom/DisconnectCause.java3
-rw-r--r--telecomm/java/android/telecom/GatewayInfo.java5
-rw-r--r--telecomm/java/android/telecom/IConferenceable.java5
-rw-r--r--telecomm/java/android/telecom/InCallService.java8
-rw-r--r--telecomm/java/android/telecom/Phone.java8
-rw-r--r--telecomm/java/android/telecom/PhoneAccount.java15
-rw-r--r--telecomm/java/android/telecom/PhoneAccountHandle.java5
-rw-r--r--telecomm/java/android/telecom/RemoteConference.java8
-rw-r--r--telecomm/java/android/telecom/RemoteConnection.java9
-rw-r--r--telecomm/java/android/telecom/StatusHints.java3
-rw-r--r--telecomm/java/android/telecom/TelecomManager.java59
-rw-r--r--telecomm/java/android/telecom/Voicemail.java4
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java2
-rw-r--r--tests/LockTaskTests/Android.mk15
-rw-r--r--tests/LockTaskTests/AndroidManifest.xml57
-rw-r--r--tests/LockTaskTests/res/drawable-hdpi/ic_launcher.pngbin0 -> 7658 bytes
-rw-r--r--tests/LockTaskTests/res/drawable-mdpi/ic_launcher.pngbin0 -> 3777 bytes
-rw-r--r--tests/LockTaskTests/res/drawable-xhdpi/ic_launcher.pngbin0 -> 12516 bytes
-rw-r--r--tests/LockTaskTests/res/drawable-xxhdpi/ic_launcher.pngbin0 -> 24777 bytes
-rw-r--r--tests/LockTaskTests/res/layout/activity_launch.xml32
-rw-r--r--tests/LockTaskTests/res/layout/activity_main.xml41
-rw-r--r--tests/LockTaskTests/res/values-v11/styles.xml11
-rw-r--r--tests/LockTaskTests/res/values-v14/styles.xml12
-rw-r--r--tests/LockTaskTests/res/values-w820dp/dimens.xml10
-rw-r--r--tests/LockTaskTests/res/values/dimens.xml7
-rw-r--r--tests/LockTaskTests/res/values/strings.xml25
-rw-r--r--tests/LockTaskTests/res/values/styles.xml20
-rw-r--r--tests/LockTaskTests/src/com/google/android/example/locktasktests/LaunchActivity.java67
-rw-r--r--tests/LockTaskTests/src/com/google/android/example/locktasktests/LockAtLaunchActivity.java20
-rw-r--r--tests/LockTaskTests/src/com/google/android/example/locktasktests/LockDefaultActivity.java20
-rw-r--r--tests/LockTaskTests/src/com/google/android/example/locktasktests/LockTaskNeverActivity.java20
-rw-r--r--tests/LockTaskTests/src/com/google/android/example/locktasktests/LockWhitelistedActivity.java20
-rw-r--r--tests/LockTaskTests/src/com/google/android/example/locktasktests/MainActivity.java58
-rw-r--r--wifi/java/android/net/wifi/WifiConfiguration.java19
561 files changed, 14771 insertions, 9243 deletions
diff --git a/Android.mk b/Android.mk
index d7e8e4e..7ec010d 100644
--- a/Android.mk
+++ b/Android.mk
@@ -74,6 +74,7 @@ LOCAL_SRC_FILES += \
core/java/android/app/IBackupAgent.aidl \
core/java/android/app/IInstrumentationWatcher.aidl \
core/java/android/app/INotificationManager.aidl \
+ core/java/android/app/INotificationManagerCallback.aidl \
core/java/android/app/IProcessObserver.aidl \
core/java/android/app/ISearchManager.aidl \
core/java/android/app/ISearchManagerCallback.aidl \
@@ -555,6 +556,7 @@ aidl_files := \
frameworks/base/core/java/android/app/AssistStructure.aidl \
frameworks/base/core/java/android/app/AssistContent.aidl \
frameworks/base/core/java/android/app/Notification.aidl \
+ frameworks/base/core/java/android/app/NotificationManager.aidl \
frameworks/base/core/java/android/app/WallpaperInfo.aidl \
frameworks/base/core/java/android/app/AppOpsManager.aidl \
frameworks/base/core/java/android/app/ActivityManager.aidl \
diff --git a/api/current.txt b/api/current.txt
index 26b7ae2..bea7d1b 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -793,6 +793,7 @@ package android {
field public static final int layout_x = 16843135; // 0x101017f
field public static final int layout_y = 16843136; // 0x1010180
field public static final int left = 16843181; // 0x10101ad
+ field public static final int leftIndents = 16844016; // 0x10104f0
field public static final int letterSpacing = 16843958; // 0x10104b6
field public static final int lineSpacingExtra = 16843287; // 0x1010217
field public static final int lineSpacingMultiplier = 16843288; // 0x1010218
@@ -815,6 +816,7 @@ package android {
field public static final int listSeparatorTextViewStyle = 16843272; // 0x1010208
field public static final int listViewStyle = 16842868; // 0x1010074
field public static final int listViewWhiteStyle = 16842869; // 0x1010075
+ field public static final int lockTaskMode = 16844015; // 0x10104ef
field public static final int logo = 16843454; // 0x10102be
field public static final int longClickable = 16842982; // 0x10100e6
field public static final int loopViews = 16843527; // 0x1010307
@@ -1020,6 +1022,7 @@ package android {
field public static final int reversible = 16843851; // 0x101044b
field public static final int revisionCode = 16843989; // 0x10104d5
field public static final int right = 16843183; // 0x10101af
+ field public static final int rightIndents = 16844017; // 0x10104f1
field public static final int ringtonePreferenceStyle = 16842899; // 0x1010093
field public static final int ringtoneType = 16843257; // 0x10101f9
field public static final int rotation = 16843558; // 0x1010326
@@ -5107,8 +5110,44 @@ package android.app {
method public void cancel(int);
method public void cancel(java.lang.String, int);
method public void cancelAll();
+ method public android.app.NotificationManager.Policy getNotificationPolicy(android.app.NotificationManager.Policy.Token);
+ method public boolean isNotificationPolicyTokenValid(android.app.NotificationManager.Policy.Token);
method public void notify(int, android.app.Notification);
method public void notify(java.lang.String, int, android.app.Notification);
+ method public void requestNotificationPolicyToken(android.app.NotificationManager.Policy.Token.RequestCallback, android.os.Handler);
+ method public void setNotificationPolicy(android.app.NotificationManager.Policy.Token, android.app.NotificationManager.Policy);
+ field public static final java.lang.String ACTION_NOTIFICATION_POLICY_CHANGED = "android.app.action.NOTIFICATION_POLICY_CHANGED";
+ }
+
+ public static class NotificationManager.Policy implements android.os.Parcelable {
+ ctor public NotificationManager.Policy(int, int);
+ method public int describeContents();
+ method public static java.lang.String priorityCategoriesToString(int);
+ method public static java.lang.String prioritySendersToString(int);
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.app.NotificationManager.Policy> CREATOR;
+ field public static final int PRIORITY_CATEGORY_CALLS = 8; // 0x8
+ field public static final int PRIORITY_CATEGORY_EVENTS = 2; // 0x2
+ field public static final int PRIORITY_CATEGORY_MESSAGES = 4; // 0x4
+ field public static final int PRIORITY_CATEGORY_REMINDERS = 1; // 0x1
+ field public static final int PRIORITY_CATEGORY_REPEAT_CALLERS = 16; // 0x10
+ field public static final int PRIORITY_SENDERS_ANY = 0; // 0x0
+ field public static final int PRIORITY_SENDERS_CONTACTS = 1; // 0x1
+ field public static final int PRIORITY_SENDERS_STARRED = 2; // 0x2
+ field public final int priorityCategories;
+ field public final int prioritySenders;
+ }
+
+ public static class NotificationManager.Policy.Token implements android.os.Parcelable {
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.app.NotificationManager.Policy.Token> CREATOR;
+ }
+
+ public static abstract class NotificationManager.Policy.Token.RequestCallback {
+ ctor public NotificationManager.Policy.Token.RequestCallback();
+ method public abstract void onTokenDenied();
+ method public abstract void onTokenGranted(android.app.NotificationManager.Policy.Token);
}
public final class PendingIntent implements android.os.Parcelable {
@@ -5740,6 +5779,7 @@ package android.app.admin {
method public void setRestrictionsProvider(android.content.ComponentName, android.content.ComponentName);
method public void setScreenCaptureDisabled(android.content.ComponentName, boolean);
method public void setSecureSetting(android.content.ComponentName, java.lang.String, java.lang.String);
+ method public void setStatusBarEnabledState(android.content.ComponentName, boolean);
method public int setStorageEncryption(android.content.ComponentName, boolean);
method public void setTrustAgentConfiguration(android.content.ComponentName, android.content.ComponentName, android.os.PersistableBundle);
method public void setUninstallBlocked(android.content.ComponentName, java.lang.String, boolean);
@@ -7292,6 +7332,8 @@ package android.content {
ctor public ComponentName(android.os.Parcel);
method public android.content.ComponentName clone();
method public int compareTo(android.content.ComponentName);
+ method public static android.content.ComponentName createRelative(java.lang.String, java.lang.String);
+ method public static android.content.ComponentName createRelative(android.content.Context, java.lang.String);
method public int describeContents();
method public java.lang.String flattenToShortString();
method public java.lang.String flattenToString();
@@ -7664,6 +7706,7 @@ package android.content {
field public static final java.lang.String ALARM_SERVICE = "alarm";
field public static final java.lang.String APPWIDGET_SERVICE = "appwidget";
field public static final java.lang.String APP_OPS_SERVICE = "appops";
+ field public static final java.lang.String AUDIO_DEVICES_SERVICE = "audio_devices_manager";
field public static final java.lang.String AUDIO_SERVICE = "audio";
field public static final java.lang.String BATTERY_SERVICE = "batterymanager";
field public static final int BIND_ABOVE_CLIENT = 8; // 0x8
@@ -12611,6 +12654,7 @@ package android.hardware {
method public final void unlock();
field public static final java.lang.String ACTION_NEW_PICTURE = "android.hardware.action.NEW_PICTURE";
field public static final java.lang.String ACTION_NEW_VIDEO = "android.hardware.action.NEW_VIDEO";
+ field public static final int CAMERA_ERROR_EVICTED = 2; // 0x2
field public static final int CAMERA_ERROR_SERVER_DIED = 100; // 0x64
field public static final int CAMERA_ERROR_UNKNOWN = 1; // 0x1
}
@@ -13059,6 +13103,7 @@ package android.hardware.camera2 {
method public abstract android.hardware.camera2.CameraDevice getDevice();
method public abstract android.view.Surface getInputSurface();
method public abstract boolean isReprocessible();
+ method public abstract void prepare(android.view.Surface) throws android.hardware.camera2.CameraAccessException;
method public abstract int setRepeatingBurst(java.util.List<android.hardware.camera2.CaptureRequest>, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
method public abstract int setRepeatingRequest(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
method public abstract void stopRepeating() throws android.hardware.camera2.CameraAccessException;
@@ -13081,6 +13126,7 @@ package android.hardware.camera2 {
method public abstract void onConfigureFailed(android.hardware.camera2.CameraCaptureSession);
method public abstract void onConfigured(android.hardware.camera2.CameraCaptureSession);
method public void onReady(android.hardware.camera2.CameraCaptureSession);
+ method public void onSurfacePrepared(android.hardware.camera2.CameraCaptureSession, android.view.Surface);
}
public final class CameraCharacteristics extends android.hardware.camera2.CameraMetadata {
@@ -13769,6 +13815,8 @@ package android.hardware.fingerprint {
public class FingerprintManager {
method public void authenticate(android.hardware.fingerprint.FingerprintManager.CryptoObject, android.os.CancellationSignal, android.hardware.fingerprint.FingerprintManager.AuthenticationCallback, int);
+ method public boolean hasEnrolledFingerprints();
+ method public boolean isHardwareDetected();
field public static final int FINGERPRINT_ACQUIRED_GOOD = 0; // 0x0
field public static final int FINGERPRINT_ACQUIRED_IMAGER_DIRTY = 3; // 0x3
field public static final int FINGERPRINT_ACQUIRED_INSUFFICIENT = 2; // 0x2
@@ -13778,6 +13826,7 @@ package android.hardware.fingerprint {
field public static final int FINGERPRINT_ACQUIRED_VENDOR_BASE = 1000; // 0x3e8
field public static final int FINGERPRINT_ERROR_CANCELED = 5; // 0x5
field public static final int FINGERPRINT_ERROR_HW_UNAVAILABLE = 1; // 0x1
+ field public static final int FINGERPRINT_ERROR_LOCKOUT = 7; // 0x7
field public static final int FINGERPRINT_ERROR_NO_SPACE = 4; // 0x4
field public static final int FINGERPRINT_ERROR_TIMEOUT = 3; // 0x3
field public static final int FINGERPRINT_ERROR_UNABLE_TO_PROCESS = 2; // 0x2
@@ -13798,6 +13847,8 @@ package android.hardware.fingerprint {
}
public static class FingerprintManager.CryptoObject {
+ ctor public FingerprintManager.CryptoObject(java.security.Signature);
+ ctor public FingerprintManager.CryptoObject(javax.crypto.Cipher);
method public javax.crypto.Cipher getCipher();
method public java.security.Signature getSignature();
}
@@ -14566,6 +14617,47 @@ package android.media {
method public android.media.AudioAttributes.Builder setUsage(int);
}
+ public class AudioDeviceInfo {
+ method public java.lang.String getAddress();
+ method public int[] getChannelCounts();
+ method public int[] getChannelMasks();
+ method public int[] getFormats();
+ method public java.lang.String getName();
+ method public int[] getSampleRates();
+ method public int getType();
+ method public boolean isSink();
+ method public boolean isSource();
+ field public static final int TYPE_AUX_LINE = 19; // 0x13
+ field public static final int TYPE_BLUETOOTH_A2DP = 8; // 0x8
+ field public static final int TYPE_BLUETOOTH_SCO = 7; // 0x7
+ field public static final int TYPE_BUILTIN_EARPIECE = 1; // 0x1
+ field public static final int TYPE_BUILTIN_MIC = 15; // 0xf
+ field public static final int TYPE_BUILTIN_SPEAKER = 2; // 0x2
+ field public static final int TYPE_DOCK = 13; // 0xd
+ field public static final int TYPE_FM = 14; // 0xe
+ field public static final int TYPE_FM_TUNER = 16; // 0x10
+ field public static final int TYPE_HDMI = 9; // 0x9
+ field public static final int TYPE_HDMI_ARC = 10; // 0xa
+ field public static final int TYPE_LINE_ANALOG = 5; // 0x5
+ field public static final int TYPE_LINE_DIGITAL = 6; // 0x6
+ field public static final int TYPE_TELEPHONY = 18; // 0x12
+ field public static final int TYPE_TV_TUNER = 17; // 0x11
+ field public static final int TYPE_UNKNOWN = 0; // 0x0
+ field public static final int TYPE_USB_ACCESSORY = 12; // 0xc
+ field public static final int TYPE_USB_DEVICE = 11; // 0xb
+ field public static final int TYPE_WIRED_HEADPHONES = 4; // 0x4
+ field public static final int TYPE_WIRED_HEADSET = 3; // 0x3
+ }
+
+ public class AudioDevicesManager {
+ method public void addOnAudioDeviceConnectionListener(android.media.OnAudioDeviceConnectionListener, android.os.Handler);
+ method public android.media.AudioDeviceInfo[] listDevices(int);
+ method public void removeOnAudioDeviceConnectionListener(android.media.OnAudioDeviceConnectionListener);
+ field public static final int LIST_DEVICES_ALL = 3; // 0x3
+ field public static final int LIST_DEVICES_INPUTS = 1; // 0x1
+ field public static final int LIST_DEVICES_OUTPUTS = 2; // 0x2
+ }
+
public class AudioFormat {
method public int getChannelCount();
method public int getChannelIndexMask();
@@ -14784,6 +14876,7 @@ package android.media {
method public int getChannelConfiguration();
method public int getChannelCount();
method public static int getMinBufferSize(int, int, int);
+ method public int getNativeFrameCount() throws java.lang.IllegalStateException;
method public int getNotificationMarkerPosition();
method public int getPositionNotificationPeriod();
method public int getRecordingState();
@@ -15160,7 +15253,6 @@ package android.media {
field public static final java.lang.String PARAMETER_KEY_REQUEST_SYNC_FRAME = "request-sync";
field public static final java.lang.String PARAMETER_KEY_SUSPEND = "drop-input-frames";
field public static final java.lang.String PARAMETER_KEY_VIDEO_BITRATE = "video-bitrate";
- field public static final int REASON_RECLAIMED = 1; // 0x1
field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT = 1; // 0x1
field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING = 2; // 0x2
}
@@ -15176,7 +15268,6 @@ package android.media {
public static abstract class MediaCodec.Callback {
ctor public MediaCodec.Callback();
- method public void onCodecReleased(android.media.MediaCodec, int);
method public abstract void onError(android.media.MediaCodec, android.media.MediaCodec.CodecException);
method public abstract void onInputBufferAvailable(android.media.MediaCodec, int);
method public abstract void onOutputBufferAvailable(android.media.MediaCodec, int, android.media.MediaCodec.BufferInfo);
@@ -15185,8 +15276,11 @@ package android.media {
public static final class MediaCodec.CodecException extends java.lang.IllegalStateException {
method public java.lang.String getDiagnosticInfo();
+ method public int getReason();
method public boolean isRecoverable();
method public boolean isTransient();
+ field public static final int REASON_HARDWARE = 0; // 0x0
+ field public static final int REASON_RECLAIMED = 1; // 0x1
}
public static final class MediaCodec.CryptoException extends java.lang.RuntimeException {
@@ -16206,6 +16300,10 @@ package android.media {
ctor public NotProvisionedException(java.lang.String);
}
+ public abstract interface OnAudioDeviceConnectionListener {
+ method public abstract void onAudioDeviceConnection();
+ }
+
public final class Rating implements android.os.Parcelable {
method public int describeContents();
method public float getPercentRating();
@@ -17811,6 +17909,7 @@ package android.media.tv {
method public final int getType();
method public final float getVideoFrameRate();
method public final int getVideoHeight();
+ method public final float getVideoPixelAspectRatio();
method public final int getVideoWidth();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.media.tv.TvTrackInfo> CREATOR;
@@ -17829,6 +17928,7 @@ package android.media.tv {
method public final android.media.tv.TvTrackInfo.Builder setLanguage(java.lang.String);
method public final android.media.tv.TvTrackInfo.Builder setVideoFrameRate(float);
method public final android.media.tv.TvTrackInfo.Builder setVideoHeight(int);
+ method public final android.media.tv.TvTrackInfo.Builder setVideoPixelAspectRatio(float);
method public final android.media.tv.TvTrackInfo.Builder setVideoWidth(int);
}
@@ -18207,6 +18307,7 @@ package android.net {
method public int describeContents();
method public java.net.InetAddress[] getAllByName(java.lang.String) throws java.net.UnknownHostException;
method public java.net.InetAddress getByName(java.lang.String) throws java.net.UnknownHostException;
+ method public long getNetworkHandle();
method public javax.net.SocketFactory getSocketFactory();
method public java.net.URLConnection openConnection(java.net.URL) throws java.io.IOException;
method public java.net.URLConnection openConnection(java.net.URL, java.net.Proxy) throws java.io.IOException;
@@ -26462,6 +26563,7 @@ package android.provider {
field public static final java.lang.String DEBUG_APP = "debug_app";
field public static final java.lang.String DEVELOPMENT_SETTINGS_ENABLED = "development_settings_enabled";
field public static final java.lang.String DEVICE_PROVISIONED = "device_provisioned";
+ field public static final java.lang.String HIDE_CARRIER_NETWORK_SETTINGS = "hide_carrier_network_settings";
field public static final java.lang.String HTTP_PROXY = "http_proxy";
field public static final deprecated java.lang.String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
field public static final java.lang.String MODE_RINGER = "mode_ringer";
@@ -26627,6 +26729,7 @@ package android.provider {
field public static final android.net.Uri DEFAULT_RINGTONE_URI;
field public static final deprecated java.lang.String DEVICE_PROVISIONED = "device_provisioned";
field public static final deprecated java.lang.String DIM_SCREEN = "dim_screen";
+ field public static final java.lang.String DTMF_TONE_TYPE_WHEN_DIALING = "dtmf_tone_type";
field public static final java.lang.String DTMF_TONE_WHEN_DIALING = "dtmf_tone";
field public static final java.lang.String END_BUTTON_BEHAVIOR = "end_button_behavior";
field public static final java.lang.String FONT_SCALE = "font_scale";
@@ -26675,6 +26778,7 @@ package android.provider {
field public static final java.lang.String USER_ROTATION = "user_rotation";
field public static final deprecated java.lang.String USE_GOOGLE_MAIL = "use_google_mail";
field public static final java.lang.String VIBRATE_ON = "vibrate_on";
+ field public static final java.lang.String VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
field public static final deprecated java.lang.String WAIT_FOR_DEBUGGER = "wait_for_debugger";
field public static final deprecated java.lang.String WALLPAPER_ACTIVITY = "wallpaper_activity";
field public static final deprecated java.lang.String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
@@ -27206,7 +27310,6 @@ package android.renderscript {
method public static android.renderscript.AllocationAdapter create1D(android.renderscript.RenderScript, android.renderscript.Allocation);
method public static android.renderscript.AllocationAdapter create2D(android.renderscript.RenderScript, android.renderscript.Allocation);
method public static android.renderscript.AllocationAdapter createTyped(android.renderscript.RenderScript, android.renderscript.Allocation, android.renderscript.Type);
- method public void setArray(int, int);
method public void setFace(android.renderscript.Type.CubemapFace);
method public void setLOD(int);
method public void setX(int);
@@ -28029,8 +28132,6 @@ package android.renderscript {
method public static android.renderscript.Type createX(android.renderscript.RenderScript, android.renderscript.Element, int);
method public static android.renderscript.Type createXY(android.renderscript.RenderScript, android.renderscript.Element, int, int);
method public static android.renderscript.Type createXYZ(android.renderscript.RenderScript, android.renderscript.Element, int, int, int);
- method public int getArray(int);
- method public int getArrayCount();
method public int getCount();
method public android.renderscript.Element getElement();
method public int getX();
@@ -28044,7 +28145,6 @@ package android.renderscript {
public static class Type.Builder {
ctor public Type.Builder(android.renderscript.RenderScript, android.renderscript.Element);
method public android.renderscript.Type create();
- method public android.renderscript.Type.Builder setArray(int, int);
method public android.renderscript.Type.Builder setFaces(boolean);
method public android.renderscript.Type.Builder setMipmaps(boolean);
method public android.renderscript.Type.Builder setX(int);
@@ -28549,6 +28649,7 @@ package android.service.notification {
method public final int getCurrentInterruptionFilter();
method public final int getCurrentListenerHints();
method public android.service.notification.NotificationListenerService.RankingMap getCurrentRanking();
+ method public final android.app.NotificationManager.Policy.Token getNotificationPolicyToken();
method public android.os.IBinder onBind(android.content.Intent);
method public void onInterruptionFilterChanged(int);
method public void onListenerConnected();
@@ -29732,6 +29833,394 @@ package android.system {
package android.telecom {
+ public final class AudioState implements android.os.Parcelable {
+ ctor public AudioState(boolean, int, int);
+ ctor public AudioState(android.telecom.AudioState);
+ method public static java.lang.String audioRouteToString(int);
+ method public int describeContents();
+ method public int getRoute();
+ method public int getSupportedRouteMask();
+ method public boolean isMuted();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.telecom.AudioState> CREATOR;
+ field public static final int ROUTE_BLUETOOTH = 2; // 0x2
+ field public static final int ROUTE_EARPIECE = 1; // 0x1
+ field public static final int ROUTE_SPEAKER = 8; // 0x8
+ field public static final int ROUTE_WIRED_HEADSET = 4; // 0x4
+ field public static final int ROUTE_WIRED_OR_EARPIECE = 5; // 0x5
+ }
+
+ public final class Call {
+ method public void addListener(android.telecom.Call.Listener);
+ method public void answer(int);
+ method public void conference(android.telecom.Call);
+ method public void disconnect();
+ method public java.util.List<java.lang.String> getCannedTextResponses();
+ method public java.util.List<android.telecom.Call> getChildren();
+ method public java.util.List<android.telecom.Call> getConferenceableCalls();
+ method public android.telecom.Call.Details getDetails();
+ method public android.telecom.Call getParent();
+ method public java.lang.String getRemainingPostDialSequence();
+ method public int getState();
+ method public android.telecom.InCallService.VideoCall getVideoCall();
+ method public void hold();
+ method public void mergeConference();
+ method public void phoneAccountSelected(android.telecom.PhoneAccountHandle, boolean);
+ method public void playDtmfTone(char);
+ method public void postDialContinue(boolean);
+ method public void reject(boolean, java.lang.String);
+ method public void removeListener(android.telecom.Call.Listener);
+ method public void splitFromConference();
+ method public void stopDtmfTone();
+ method public void swapConference();
+ method public void unhold();
+ field public static final java.lang.String AVAILABLE_PHONE_ACCOUNTS = "selectPhoneAccountAccounts";
+ field public static final int STATE_ACTIVE = 4; // 0x4
+ field public static final int STATE_CONNECTING = 9; // 0x9
+ field public static final int STATE_DIALING = 1; // 0x1
+ field public static final int STATE_DISCONNECTED = 7; // 0x7
+ field public static final int STATE_DISCONNECTING = 10; // 0xa
+ field public static final int STATE_HOLDING = 3; // 0x3
+ field public static final int STATE_NEW = 0; // 0x0
+ field public static final int STATE_PRE_DIAL_WAIT = 8; // 0x8
+ field public static final int STATE_RINGING = 2; // 0x2
+ }
+
+ public static class Call.Details {
+ method public static boolean can(int, int);
+ method public boolean can(int);
+ method public static java.lang.String capabilitiesToString(int);
+ method public android.telecom.PhoneAccountHandle getAccountHandle();
+ method public int getCallCapabilities();
+ method public int getCallProperties();
+ method public java.lang.String getCallerDisplayName();
+ method public int getCallerDisplayNamePresentation();
+ method public final long getConnectTimeMillis();
+ method public android.telecom.DisconnectCause getDisconnectCause();
+ method public android.os.Bundle getExtras();
+ method public android.telecom.GatewayInfo getGatewayInfo();
+ method public android.net.Uri getHandle();
+ method public int getHandlePresentation();
+ method public android.telecom.StatusHints getStatusHints();
+ method public int getVideoState();
+ field public static final int CAPABILITY_DISCONNECT_FROM_CONFERENCE = 8192; // 0x2000
+ field public static final int CAPABILITY_GENERIC_CONFERENCE = 16384; // 0x4000
+ field public static final int CAPABILITY_HIGH_DEF_AUDIO = 32768; // 0x8000
+ field public static final int CAPABILITY_HOLD = 1; // 0x1
+ field public static final int CAPABILITY_MANAGE_CONFERENCE = 128; // 0x80
+ field public static final int CAPABILITY_MERGE_CONFERENCE = 4; // 0x4
+ field public static final int CAPABILITY_MUTE = 64; // 0x40
+ field public static final int CAPABILITY_RESPOND_VIA_TEXT = 32; // 0x20
+ field public static final int CAPABILITY_SEPARATE_FROM_CONFERENCE = 4096; // 0x1000
+ field public static final int CAPABILITY_SHOW_CALLBACK_NUMBER = 131072; // 0x20000
+ field public static final int CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL = 768; // 0x300
+ field public static final int CAPABILITY_SUPPORTS_VT_LOCAL_RX = 256; // 0x100
+ field public static final int CAPABILITY_SUPPORTS_VT_LOCAL_TX = 512; // 0x200
+ field public static final int CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL = 3072; // 0xc00
+ field public static final int CAPABILITY_SUPPORTS_VT_REMOTE_RX = 1024; // 0x400
+ field public static final int CAPABILITY_SUPPORTS_VT_REMOTE_TX = 2048; // 0x800
+ field public static final int CAPABILITY_SUPPORT_HOLD = 2; // 0x2
+ field public static final int CAPABILITY_SWAP_CONFERENCE = 8; // 0x8
+ field public static final int CAPABILITY_WIFI = 65536; // 0x10000
+ }
+
+ public static abstract class Call.Listener {
+ ctor public Call.Listener();
+ method public void onCallDestroyed(android.telecom.Call);
+ method public void onCannedTextResponsesLoaded(android.telecom.Call, java.util.List<java.lang.String>);
+ method public void onChildrenChanged(android.telecom.Call, java.util.List<android.telecom.Call>);
+ method public void onConferenceableCallsChanged(android.telecom.Call, java.util.List<android.telecom.Call>);
+ method public void onDetailsChanged(android.telecom.Call, android.telecom.Call.Details);
+ method public void onParentChanged(android.telecom.Call, android.telecom.Call);
+ method public void onPostDialWait(android.telecom.Call, java.lang.String);
+ method public void onStateChanged(android.telecom.Call, int);
+ method public void onVideoCallChanged(android.telecom.Call, android.telecom.InCallService.VideoCall);
+ }
+
+ public class CallProperties {
+ ctor public CallProperties();
+ field public static final int CONFERENCE = 1; // 0x1
+ }
+
+ public final class CallState {
+ method public static java.lang.String toString(int);
+ field public static final int ABORTED = 8; // 0x8
+ field public static final int ACTIVE = 5; // 0x5
+ field public static final int CONNECTING = 1; // 0x1
+ field public static final int DIALING = 3; // 0x3
+ field public static final int DISCONNECTED = 7; // 0x7
+ field public static final int DISCONNECTING = 9; // 0x9
+ field public static final int NEW = 0; // 0x0
+ field public static final int ON_HOLD = 6; // 0x6
+ field public static final int PRE_DIAL_WAIT = 2; // 0x2
+ field public static final int RINGING = 4; // 0x4
+ }
+
+ public final class CameraCapabilities implements android.os.Parcelable {
+ ctor public CameraCapabilities(int, int);
+ method public int describeContents();
+ method public int getHeight();
+ method public int getWidth();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.telecom.CameraCapabilities> CREATOR;
+ }
+
+ public abstract class Conference implements android.telecom.IConferenceable {
+ ctor public Conference(android.telecom.PhoneAccountHandle);
+ method public final boolean addConnection(android.telecom.Connection);
+ method public final void destroy();
+ method public final android.telecom.AudioState getAudioState();
+ method public final java.util.List<android.telecom.Connection> getConferenceableConnections();
+ method public final long getConnectTimeMillis();
+ method public final int getConnectionCapabilities();
+ method public final java.util.List<android.telecom.Connection> getConnections();
+ method public final android.telecom.DisconnectCause getDisconnectCause();
+ method public final android.telecom.PhoneAccountHandle getPhoneAccountHandle();
+ method public android.telecom.Connection getPrimaryConnection();
+ method public final int getState();
+ method public void onAudioStateChanged(android.telecom.AudioState);
+ method public void onConnectionAdded(android.telecom.Connection);
+ method public void onDisconnect();
+ method public void onHold();
+ method public void onMerge(android.telecom.Connection);
+ method public void onMerge();
+ method public void onPlayDtmfTone(char);
+ method public void onSeparate(android.telecom.Connection);
+ method public void onStopDtmfTone();
+ method public void onSwap();
+ method public void onUnhold();
+ method public final void removeConnection(android.telecom.Connection);
+ method public final void setActive();
+ method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
+ method public void setConnectTimeMillis(long);
+ method public final void setConnectionCapabilities(int);
+ method public final void setDisconnected(android.telecom.DisconnectCause);
+ method public final void setOnHold();
+ field public static final long CONNECT_TIME_NOT_SPECIFIED = 0L; // 0x0L
+ }
+
+ public abstract class Connection implements android.telecom.IConferenceable {
+ ctor public Connection();
+ method public static java.lang.String capabilitiesToString(int);
+ method public static android.telecom.Connection createCanceledConnection();
+ method public static android.telecom.Connection createFailedConnection(android.telecom.DisconnectCause);
+ method public final void destroy();
+ method public final android.net.Uri getAddress();
+ method public final int getAddressPresentation();
+ method public final boolean getAudioModeIsVoip();
+ method public final android.telecom.AudioState getAudioState();
+ method public final java.lang.String getCallerDisplayName();
+ method public final int getCallerDisplayNamePresentation();
+ method public final android.telecom.Conference getConference();
+ method public final java.util.List<android.telecom.IConferenceable> getConferenceables();
+ method public final int getConnectionCapabilities();
+ method public final android.telecom.DisconnectCause getDisconnectCause();
+ method public final int getState();
+ method public final android.telecom.StatusHints getStatusHints();
+ method public final android.telecom.Connection.VideoProvider getVideoProvider();
+ method public final boolean isRingbackRequested();
+ method public void onAbort();
+ method public void onAnswer();
+ method public void onAudioStateChanged(android.telecom.AudioState);
+ method public void onDisconnect();
+ method public void onHold();
+ method public void onPlayDtmfTone(char);
+ method public void onPostDialContinue(boolean);
+ method public void onReject();
+ method public void onSeparate();
+ method public void onStateChanged(int);
+ method public void onStopDtmfTone();
+ method public void onUnhold();
+ method public final void setActive();
+ method public final void setAddress(android.net.Uri, int);
+ method public final void setAudioModeIsVoip(boolean);
+ method public final void setCallerDisplayName(java.lang.String, int);
+ method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
+ method public final void setConferenceables(java.util.List<android.telecom.IConferenceable>);
+ method public final void setConnectionCapabilities(int);
+ method public final void setConnectionService(android.telecom.ConnectionService);
+ method public final void setDialing();
+ method public final void setDisconnected(android.telecom.DisconnectCause);
+ method public final void setInitialized();
+ method public final void setInitializing();
+ method public final void setNextPostDialChar(char);
+ method public final void setOnHold();
+ method public final void setPostDialWait(java.lang.String);
+ method public final void setRingbackRequested(boolean);
+ method public final void setRinging();
+ method public final void setStatusHints(android.telecom.StatusHints);
+ method public static java.lang.String stateToString(int);
+ field public static final int CAPABILITY_DISCONNECT_FROM_CONFERENCE = 8192; // 0x2000
+ field public static final int CAPABILITY_HOLD = 1; // 0x1
+ field public static final int CAPABILITY_MANAGE_CONFERENCE = 128; // 0x80
+ field public static final int CAPABILITY_MERGE_CONFERENCE = 4; // 0x4
+ field public static final int CAPABILITY_MUTE = 64; // 0x40
+ field public static final int CAPABILITY_RESPOND_VIA_TEXT = 32; // 0x20
+ field public static final int CAPABILITY_SEPARATE_FROM_CONFERENCE = 4096; // 0x1000
+ field public static final int CAPABILITY_SUPPORT_HOLD = 2; // 0x2
+ field public static final int CAPABILITY_SWAP_CONFERENCE = 8; // 0x8
+ field public static final int STATE_ACTIVE = 4; // 0x4
+ field public static final int STATE_DIALING = 3; // 0x3
+ field public static final int STATE_DISCONNECTED = 6; // 0x6
+ field public static final int STATE_HOLDING = 5; // 0x5
+ field public static final int STATE_INITIALIZING = 0; // 0x0
+ field public static final int STATE_NEW = 1; // 0x1
+ field public static final int STATE_RINGING = 2; // 0x2
+ }
+
+ public static abstract class Connection.VideoProvider {
+ ctor public Connection.VideoProvider();
+ method public void changeCallDataUsage(long);
+ method public void changeCameraCapabilities(android.telecom.CameraCapabilities);
+ method public void changePeerDimensions(int, int);
+ method public void changeVideoQuality(int);
+ method public void handleCallSessionEvent(int);
+ method public abstract void onRequestCameraCapabilities();
+ method public abstract void onRequestConnectionDataUsage();
+ method public abstract void onSendSessionModifyRequest(android.telecom.VideoProfile);
+ method public abstract void onSendSessionModifyResponse(android.telecom.VideoProfile);
+ method public abstract void onSetCamera(java.lang.String);
+ method public abstract void onSetDeviceOrientation(int);
+ method public abstract void onSetDisplaySurface(android.view.Surface);
+ method public abstract void onSetPauseImage(java.lang.String);
+ method public abstract void onSetPreviewSurface(android.view.Surface);
+ method public abstract void onSetZoom(float);
+ method public void receiveSessionModifyRequest(android.telecom.VideoProfile);
+ method public void receiveSessionModifyResponse(int, android.telecom.VideoProfile, android.telecom.VideoProfile);
+ field public static final int SESSION_EVENT_CAMERA_FAILURE = 5; // 0x5
+ field public static final int SESSION_EVENT_CAMERA_READY = 6; // 0x6
+ field public static final int SESSION_EVENT_RX_PAUSE = 1; // 0x1
+ field public static final int SESSION_EVENT_RX_RESUME = 2; // 0x2
+ field public static final int SESSION_EVENT_TX_START = 3; // 0x3
+ field public static final int SESSION_EVENT_TX_STOP = 4; // 0x4
+ field public static final int SESSION_MODIFY_REQUEST_FAIL = 2; // 0x2
+ field public static final int SESSION_MODIFY_REQUEST_INVALID = 3; // 0x3
+ field public static final int SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE = 5; // 0x5
+ field public static final int SESSION_MODIFY_REQUEST_SUCCESS = 1; // 0x1
+ field public static final int SESSION_MODIFY_REQUEST_TIMED_OUT = 4; // 0x4
+ }
+
+ public final class ConnectionRequest implements android.os.Parcelable {
+ ctor public ConnectionRequest(android.telecom.PhoneAccountHandle, android.net.Uri, android.os.Bundle);
+ method public int describeContents();
+ method public android.telecom.PhoneAccountHandle getAccountHandle();
+ method public android.net.Uri getAddress();
+ method public android.os.Bundle getExtras();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.telecom.ConnectionRequest> CREATOR;
+ }
+
+ public abstract class ConnectionService extends android.app.Service {
+ ctor public ConnectionService();
+ method public final void addConference(android.telecom.Conference);
+ method public final void addExistingConnection(android.telecom.PhoneAccountHandle, android.telecom.Connection);
+ method public final void conferenceRemoteConnections(android.telecom.RemoteConnection, android.telecom.RemoteConnection);
+ method public final android.telecom.RemoteConnection createRemoteIncomingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
+ method public final android.telecom.RemoteConnection createRemoteOutgoingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
+ method public final java.util.Collection<android.telecom.Connection> getAllConnections();
+ method public final android.os.IBinder onBind(android.content.Intent);
+ method public void onConference(android.telecom.Connection, android.telecom.Connection);
+ method public android.telecom.Connection onCreateIncomingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
+ method public android.telecom.Connection onCreateOutgoingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
+ method public void onRemoteConferenceAdded(android.telecom.RemoteConference);
+ method public void onRemoteExistingConnectionAdded(android.telecom.RemoteConnection);
+ field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.ConnectionService";
+ }
+
+ public final class DisconnectCause implements android.os.Parcelable {
+ ctor public DisconnectCause(int);
+ ctor public DisconnectCause(int, java.lang.String);
+ ctor public DisconnectCause(int, java.lang.CharSequence, java.lang.CharSequence, java.lang.String);
+ ctor public DisconnectCause(int, java.lang.CharSequence, java.lang.CharSequence, java.lang.String, int);
+ method public int describeContents();
+ method public int getCode();
+ method public java.lang.CharSequence getDescription();
+ method public java.lang.CharSequence getLabel();
+ method public java.lang.String getReason();
+ method public int getTone();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final int BUSY = 7; // 0x7
+ field public static final int CANCELED = 4; // 0x4
+ field public static final int CONNECTION_MANAGER_NOT_SUPPORTED = 10; // 0xa
+ field public static final android.os.Parcelable.Creator<android.telecom.DisconnectCause> CREATOR;
+ field public static final int ERROR = 1; // 0x1
+ field public static final int LOCAL = 2; // 0x2
+ field public static final int MISSED = 5; // 0x5
+ field public static final int OTHER = 9; // 0x9
+ field public static final int REJECTED = 6; // 0x6
+ field public static final int REMOTE = 3; // 0x3
+ field public static final int RESTRICTED = 8; // 0x8
+ field public static final int UNKNOWN = 0; // 0x0
+ }
+
+ public class GatewayInfo implements android.os.Parcelable {
+ ctor public GatewayInfo(java.lang.String, android.net.Uri, android.net.Uri);
+ method public int describeContents();
+ method public android.net.Uri getGatewayAddress();
+ method public java.lang.String getGatewayProviderPackageName();
+ method public android.net.Uri getOriginalAddress();
+ method public boolean isEmpty();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.telecom.GatewayInfo> CREATOR;
+ }
+
+ public abstract interface IConferenceable {
+ }
+
+ public abstract class InCallService extends android.app.Service {
+ ctor public InCallService();
+ method public final android.telecom.Phone getPhone();
+ method public android.os.IBinder onBind(android.content.Intent);
+ method public void onPhoneCreated(android.telecom.Phone);
+ method public void onPhoneDestroyed(android.telecom.Phone);
+ field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.InCallService";
+ }
+
+ public static abstract class InCallService.VideoCall {
+ ctor public InCallService.VideoCall();
+ method public abstract void requestCallDataUsage();
+ method public abstract void requestCameraCapabilities();
+ method public abstract void sendSessionModifyRequest(android.telecom.VideoProfile);
+ method public abstract void sendSessionModifyResponse(android.telecom.VideoProfile);
+ method public abstract void setCamera(java.lang.String);
+ method public abstract void setDeviceOrientation(int);
+ method public abstract void setDisplaySurface(android.view.Surface);
+ method public abstract void setPauseImage(java.lang.String);
+ method public abstract void setPreviewSurface(android.view.Surface);
+ method public abstract void setVideoCallListener(android.telecom.InCallService.VideoCall.Listener);
+ method public abstract void setZoom(float);
+ }
+
+ public static abstract class InCallService.VideoCall.Listener {
+ ctor public InCallService.VideoCall.Listener();
+ method public abstract void onCallDataUsageChanged(long);
+ method public abstract void onCallSessionEvent(int);
+ method public abstract void onCameraCapabilitiesChanged(android.telecom.CameraCapabilities);
+ method public abstract void onPeerDimensionsChanged(int, int);
+ method public abstract void onSessionModifyRequestReceived(android.telecom.VideoProfile);
+ method public abstract void onSessionModifyResponseReceived(int, android.telecom.VideoProfile, android.telecom.VideoProfile);
+ method public abstract void onVideoQualityChanged(int);
+ }
+
+ public final class Phone {
+ method public final void addListener(android.telecom.Phone.Listener);
+ method public final boolean canAddCall();
+ method public final android.telecom.AudioState getAudioState();
+ method public final java.util.List<android.telecom.Call> getCalls();
+ method public final void removeListener(android.telecom.Phone.Listener);
+ method public final void setAudioRoute(int);
+ method public final void setMuted(boolean);
+ }
+
+ public static abstract class Phone.Listener {
+ ctor public Phone.Listener();
+ method public void onAudioStateChanged(android.telecom.Phone, android.telecom.AudioState);
+ method public void onBringToForeground(android.telecom.Phone, boolean);
+ method public void onCallAdded(android.telecom.Phone, android.telecom.Call);
+ method public void onCallRemoved(android.telecom.Phone, android.telecom.Call);
+ method public void onCanAddCallChanged(android.telecom.Phone, boolean);
+ }
+
public class PhoneAccount implements android.os.Parcelable {
method public static android.telecom.PhoneAccount.Builder builder(android.telecom.PhoneAccountHandle, java.lang.CharSequence);
method public android.graphics.drawable.Drawable createIconDrawable(android.content.Context);
@@ -29750,7 +30239,10 @@ package android.telecom {
method public java.util.List<java.lang.String> getSupportedUriSchemes();
method public boolean hasCapabilities(int);
method public boolean supportsUriScheme(java.lang.String);
+ method public android.telecom.PhoneAccount.Builder toBuilder();
method public void writeToParcel(android.os.Parcel, int);
+ field public static final int CAPABILITY_CALL_PROVIDER = 2; // 0x2
+ field public static final int CAPABILITY_CONNECTION_MANAGER = 1; // 0x1
field public static final int CAPABILITY_PLACE_EMERGENCY_CALLS = 16; // 0x10
field public static final int CAPABILITY_SIM_SUBSCRIPTION = 4; // 0x4
field public static final int CAPABILITY_VIDEO_CALLING = 8; // 0x8
@@ -29766,6 +30258,7 @@ package android.telecom {
public static class PhoneAccount.Builder {
ctor public PhoneAccount.Builder(android.telecom.PhoneAccountHandle, java.lang.CharSequence);
ctor public PhoneAccount.Builder(android.telecom.PhoneAccount);
+ method public android.telecom.PhoneAccount.Builder addSupportedUriScheme(java.lang.String);
method public android.telecom.PhoneAccount build();
method public android.telecom.PhoneAccount.Builder setAddress(android.net.Uri);
method public android.telecom.PhoneAccount.Builder setCapabilities(int);
@@ -29782,27 +30275,130 @@ package android.telecom {
public class PhoneAccountHandle implements android.os.Parcelable {
ctor public PhoneAccountHandle(android.content.ComponentName, java.lang.String);
+ ctor public PhoneAccountHandle(android.content.ComponentName, java.lang.String, android.os.UserHandle);
method public int describeContents();
method public android.content.ComponentName getComponentName();
method public java.lang.String getId();
+ method public android.os.UserHandle getUserHandle();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.telecom.PhoneAccountHandle> CREATOR;
}
+ public final class RemoteConference {
+ method public void disconnect();
+ method public java.util.List<android.telecom.RemoteConnection> getConferenceableConnections();
+ method public final int getConnectionCapabilities();
+ method public final java.util.List<android.telecom.RemoteConnection> getConnections();
+ method public android.telecom.DisconnectCause getDisconnectCause();
+ method public final int getState();
+ method public void hold();
+ method public void merge();
+ method public void playDtmfTone(char);
+ method public final void registerCallback(android.telecom.RemoteConference.Callback);
+ method public void separate(android.telecom.RemoteConnection);
+ method public void setAudioState(android.telecom.AudioState);
+ method public void stopDtmfTone();
+ method public void swap();
+ method public void unhold();
+ method public final void unregisterCallback(android.telecom.RemoteConference.Callback);
+ }
+
+ public static abstract class RemoteConference.Callback {
+ ctor public RemoteConference.Callback();
+ method public void onConferenceableConnectionsChanged(android.telecom.RemoteConference, java.util.List<android.telecom.RemoteConnection>);
+ method public void onConnectionAdded(android.telecom.RemoteConference, android.telecom.RemoteConnection);
+ method public void onConnectionCapabilitiesChanged(android.telecom.RemoteConference, int);
+ method public void onConnectionRemoved(android.telecom.RemoteConference, android.telecom.RemoteConnection);
+ method public void onDestroyed(android.telecom.RemoteConference);
+ method public void onDisconnected(android.telecom.RemoteConference, android.telecom.DisconnectCause);
+ method public void onStateChanged(android.telecom.RemoteConference, int, int);
+ }
+
+ public final class RemoteConnection {
+ method public void abort();
+ method public void answer();
+ method public void disconnect();
+ method public android.net.Uri getAddress();
+ method public int getAddressPresentation();
+ method public java.lang.CharSequence getCallerDisplayName();
+ method public int getCallerDisplayNamePresentation();
+ method public android.telecom.RemoteConference getConference();
+ method public java.util.List<android.telecom.RemoteConnection> getConferenceableConnections();
+ method public int getConnectionCapabilities();
+ method public android.telecom.DisconnectCause getDisconnectCause();
+ method public int getState();
+ method public android.telecom.StatusHints getStatusHints();
+ method public void hold();
+ method public boolean isRingbackRequested();
+ method public boolean isVoipAudioMode();
+ method public void playDtmfTone(char);
+ method public void postDialContinue(boolean);
+ method public void registerCallback(android.telecom.RemoteConnection.Callback);
+ method public void reject();
+ method public void setAudioState(android.telecom.AudioState);
+ method public void stopDtmfTone();
+ method public void unhold();
+ method public void unregisterCallback(android.telecom.RemoteConnection.Callback);
+ }
+
+ public static abstract class RemoteConnection.Callback {
+ ctor public RemoteConnection.Callback();
+ method public void onAddressChanged(android.telecom.RemoteConnection, android.net.Uri, int);
+ method public void onCallerDisplayNameChanged(android.telecom.RemoteConnection, java.lang.String, int);
+ method public void onConferenceChanged(android.telecom.RemoteConnection, android.telecom.RemoteConference);
+ method public void onConferenceableConnectionsChanged(android.telecom.RemoteConnection, java.util.List<android.telecom.RemoteConnection>);
+ method public void onConnectionCapabilitiesChanged(android.telecom.RemoteConnection, int);
+ method public void onDestroyed(android.telecom.RemoteConnection);
+ method public void onDisconnected(android.telecom.RemoteConnection, android.telecom.DisconnectCause);
+ method public void onPostDialChar(android.telecom.RemoteConnection, char);
+ method public void onPostDialWait(android.telecom.RemoteConnection, java.lang.String);
+ method public void onRingbackRequested(android.telecom.RemoteConnection, boolean);
+ method public void onStateChanged(android.telecom.RemoteConnection, int);
+ method public void onStatusHintsChanged(android.telecom.RemoteConnection, android.telecom.StatusHints);
+ method public void onVoipAudioChanged(android.telecom.RemoteConnection, boolean);
+ }
+
+ public final class StatusHints implements android.os.Parcelable {
+ ctor public StatusHints(android.content.ComponentName, java.lang.CharSequence, int, android.os.Bundle);
+ method public int describeContents();
+ method public android.os.Bundle getExtras();
+ method public android.graphics.drawable.Drawable getIcon(android.content.Context);
+ method public int getIconResId();
+ method public java.lang.CharSequence getLabel();
+ method public android.content.ComponentName getPackageName();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.telecom.StatusHints> CREATOR;
+ }
+
public class TelecomManager {
+ method public void addNewIncomingCall(android.telecom.PhoneAccountHandle, android.os.Bundle);
method public void cancelMissedCallsNotification();
+ method public android.net.Uri getAdnUriForPhoneAccount(android.telecom.PhoneAccountHandle);
method public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts();
+ method public android.telecom.PhoneAccountHandle getDefaultOutgoingPhoneAccount(java.lang.String);
+ method public java.lang.String getLine1Number(android.telecom.PhoneAccountHandle);
method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle);
+ method public android.telecom.PhoneAccountHandle getSimCallManager();
method public boolean handleMmi(java.lang.String);
+ method public boolean handleMmi(java.lang.String, android.telecom.PhoneAccountHandle);
+ method public boolean hasVoiceMailNumber(android.telecom.PhoneAccountHandle);
method public boolean isInCall();
+ method public boolean isVoiceMailNumber(android.telecom.PhoneAccountHandle, java.lang.String);
+ method public void registerPhoneAccount(android.telecom.PhoneAccount);
method public void showInCallScreen(boolean);
+ method public void silenceRinger();
+ method public void unregisterPhoneAccount(android.telecom.PhoneAccountHandle);
+ field public static final java.lang.String ACTION_CHANGE_PHONE_ACCOUNTS = "android.telecom.action.CHANGE_PHONE_ACCOUNTS";
+ field public static final java.lang.String ACTION_INCOMING_CALL = "android.telecom.action.INCOMING_CALL";
field public static final java.lang.String ACTION_SHOW_CALL_ACCESSIBILITY_SETTINGS = "android.telecom.action.SHOW_CALL_ACCESSIBILITY_SETTINGS";
field public static final java.lang.String ACTION_SHOW_CALL_SETTINGS = "android.telecom.action.SHOW_CALL_SETTINGS";
field public static final java.lang.String ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS = "android.telecom.action.SHOW_RESPOND_VIA_SMS_SETTINGS";
field public static final char DTMF_CHARACTER_PAUSE = 44; // 0x002c ','
field public static final char DTMF_CHARACTER_WAIT = 59; // 0x003b ';'
+ field public static final java.lang.String EXTRA_CALL_BACK_NUMBER = "android.telecom.extra.CALL_BACK_NUMBER";
field public static final java.lang.String EXTRA_CALL_DISCONNECT_CAUSE = "android.telecom.extra.CALL_DISCONNECT_CAUSE";
field public static final java.lang.String EXTRA_CALL_DISCONNECT_MESSAGE = "android.telecom.extra.CALL_DISCONNECT_MESSAGE";
+ field public static final java.lang.String EXTRA_INCOMING_CALL_EXTRAS = "android.telecom.extra.INCOMING_CALL_EXTRAS";
field public static final java.lang.String EXTRA_OUTGOING_CALL_EXTRAS = "android.telecom.extra.OUTGOING_CALL_EXTRAS";
field public static final java.lang.String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telecom.extra.PHONE_ACCOUNT_HANDLE";
field public static final java.lang.String EXTRA_START_CALL_WITH_SPEAKERPHONE = "android.telecom.extra.START_CALL_WITH_SPEAKERPHONE";
@@ -30319,6 +30915,7 @@ package android.telephony {
method public int getDataActivity();
method public int getDataState();
method public java.lang.String getDeviceId();
+ method public java.lang.String getDeviceId(int);
method public java.lang.String getDeviceSoftwareVersion();
method public java.lang.String getGroupIdLevel1();
method public java.lang.String getLine1Number();
@@ -30329,6 +30926,7 @@ package android.telephony {
method public java.lang.String getNetworkOperator();
method public java.lang.String getNetworkOperatorName();
method public int getNetworkType();
+ method public int getPhoneCount();
method public int getPhoneType();
method public java.lang.String getSimCountryIso();
method public java.lang.String getSimOperator();
@@ -36524,6 +37122,7 @@ package android.view {
field public static final int TITLE_CHANGED = 64; // 0x40
field public static final int TYPE_ACCESSIBILITY_OVERLAY = 2032; // 0x7f0
field public static final int TYPE_APPLICATION = 2; // 0x2
+ field public static final int TYPE_APPLICATION_ABOVE_SUB_PANEL = 1005; // 0x3ed
field public static final int TYPE_APPLICATION_ATTACHED_DIALOG = 1003; // 0x3eb
field public static final int TYPE_APPLICATION_MEDIA = 1001; // 0x3e9
field public static final int TYPE_APPLICATION_PANEL = 1000; // 0x3e8
@@ -39810,6 +40409,7 @@ package android.widget {
method public boolean getOverlapAnchor();
method public int getSoftInputMode();
method public int getWidth();
+ method public int getWindowLayoutType();
method public boolean isAboveAnchor();
method public boolean isAttachedInDecor();
method public boolean isClippingEnabled();
@@ -39839,6 +40439,7 @@ package android.widget {
method public void setTouchable(boolean);
method public void setWidth(int);
method public deprecated void setWindowLayoutMode(int, int);
+ method public void setWindowLayoutType(int);
method public void showAsDropDown(android.view.View);
method public void showAsDropDown(android.view.View, int, int);
method public void showAsDropDown(android.view.View, int, int, int);
@@ -40634,6 +41235,7 @@ package android.widget {
method public int getInputType();
method public final android.text.method.KeyListener getKeyListener();
method public final android.text.Layout getLayout();
+ method public int[] getLeftIndents();
method public float getLetterSpacing();
method public int getLineBounds(int, android.graphics.Rect);
method public int getLineCount();
@@ -40656,6 +41258,7 @@ package android.widget {
method public android.text.TextPaint getPaint();
method public int getPaintFlags();
method public java.lang.String getPrivateImeOptions();
+ method public int[] getRightIndents();
method public int getSelectionEnd();
method public int getSelectionStart();
method public int getShadowColor();
@@ -40733,6 +41336,7 @@ package android.widget {
method public void setImeActionLabel(java.lang.CharSequence, int);
method public void setImeOptions(int);
method public void setIncludeFontPadding(boolean);
+ method public void setIndents(int[], int[]);
method public void setInputExtras(int) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public void setInputType(int);
method public void setKeyListener(android.text.method.KeyListener);
diff --git a/api/system-current.txt b/api/system-current.txt
index b8c7a7c..c7d6a20 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -866,6 +866,7 @@ package android {
field public static final int layout_x = 16843135; // 0x101017f
field public static final int layout_y = 16843136; // 0x1010180
field public static final int left = 16843181; // 0x10101ad
+ field public static final int leftIndents = 16844016; // 0x10104f0
field public static final int letterSpacing = 16843958; // 0x10104b6
field public static final int lineSpacingExtra = 16843287; // 0x1010217
field public static final int lineSpacingMultiplier = 16843288; // 0x1010218
@@ -888,6 +889,7 @@ package android {
field public static final int listSeparatorTextViewStyle = 16843272; // 0x1010208
field public static final int listViewStyle = 16842868; // 0x1010074
field public static final int listViewWhiteStyle = 16842869; // 0x1010075
+ field public static final int lockTaskMode = 16844015; // 0x10104ef
field public static final int logo = 16843454; // 0x10102be
field public static final int longClickable = 16842982; // 0x10100e6
field public static final int loopViews = 16843527; // 0x1010307
@@ -1093,6 +1095,7 @@ package android {
field public static final int reversible = 16843851; // 0x101044b
field public static final int revisionCode = 16843989; // 0x10104d5
field public static final int right = 16843183; // 0x10101af
+ field public static final int rightIndents = 16844017; // 0x10104f1
field public static final int ringtonePreferenceStyle = 16842899; // 0x1010093
field public static final int ringtoneType = 16843257; // 0x10101f9
field public static final int rotation = 16843558; // 0x1010326
@@ -5198,8 +5201,44 @@ package android.app {
method public void cancel(int);
method public void cancel(java.lang.String, int);
method public void cancelAll();
+ method public android.app.NotificationManager.Policy getNotificationPolicy(android.app.NotificationManager.Policy.Token);
+ method public boolean isNotificationPolicyTokenValid(android.app.NotificationManager.Policy.Token);
method public void notify(int, android.app.Notification);
method public void notify(java.lang.String, int, android.app.Notification);
+ method public void requestNotificationPolicyToken(android.app.NotificationManager.Policy.Token.RequestCallback, android.os.Handler);
+ method public void setNotificationPolicy(android.app.NotificationManager.Policy.Token, android.app.NotificationManager.Policy);
+ field public static final java.lang.String ACTION_NOTIFICATION_POLICY_CHANGED = "android.app.action.NOTIFICATION_POLICY_CHANGED";
+ }
+
+ public static class NotificationManager.Policy implements android.os.Parcelable {
+ ctor public NotificationManager.Policy(int, int);
+ method public int describeContents();
+ method public static java.lang.String priorityCategoriesToString(int);
+ method public static java.lang.String prioritySendersToString(int);
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.app.NotificationManager.Policy> CREATOR;
+ field public static final int PRIORITY_CATEGORY_CALLS = 8; // 0x8
+ field public static final int PRIORITY_CATEGORY_EVENTS = 2; // 0x2
+ field public static final int PRIORITY_CATEGORY_MESSAGES = 4; // 0x4
+ field public static final int PRIORITY_CATEGORY_REMINDERS = 1; // 0x1
+ field public static final int PRIORITY_CATEGORY_REPEAT_CALLERS = 16; // 0x10
+ field public static final int PRIORITY_SENDERS_ANY = 0; // 0x0
+ field public static final int PRIORITY_SENDERS_CONTACTS = 1; // 0x1
+ field public static final int PRIORITY_SENDERS_STARRED = 2; // 0x2
+ field public final int priorityCategories;
+ field public final int prioritySenders;
+ }
+
+ public static class NotificationManager.Policy.Token implements android.os.Parcelable {
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.app.NotificationManager.Policy.Token> CREATOR;
+ }
+
+ public static abstract class NotificationManager.Policy.Token.RequestCallback {
+ ctor public NotificationManager.Policy.Token.RequestCallback();
+ method public abstract void onTokenDenied();
+ method public abstract void onTokenGranted(android.app.NotificationManager.Policy.Token);
}
public final class PendingIntent implements android.os.Parcelable {
@@ -5844,6 +5883,7 @@ package android.app.admin {
method public void setRestrictionsProvider(android.content.ComponentName, android.content.ComponentName);
method public void setScreenCaptureDisabled(android.content.ComponentName, boolean);
method public void setSecureSetting(android.content.ComponentName, java.lang.String, java.lang.String);
+ method public void setStatusBarEnabledState(android.content.ComponentName, boolean);
method public int setStorageEncryption(android.content.ComponentName, boolean);
method public void setTrustAgentConfiguration(android.content.ComponentName, android.content.ComponentName, android.os.PersistableBundle);
method public void setUninstallBlocked(android.content.ComponentName, java.lang.String, boolean);
@@ -7506,6 +7546,8 @@ package android.content {
ctor public ComponentName(android.os.Parcel);
method public android.content.ComponentName clone();
method public int compareTo(android.content.ComponentName);
+ method public static android.content.ComponentName createRelative(java.lang.String, java.lang.String);
+ method public static android.content.ComponentName createRelative(android.content.Context, java.lang.String);
method public int describeContents();
method public java.lang.String flattenToShortString();
method public java.lang.String flattenToString();
@@ -7879,6 +7921,7 @@ package android.content {
field public static final java.lang.String ALARM_SERVICE = "alarm";
field public static final java.lang.String APPWIDGET_SERVICE = "appwidget";
field public static final java.lang.String APP_OPS_SERVICE = "appops";
+ field public static final java.lang.String AUDIO_DEVICES_SERVICE = "audio_devices_manager";
field public static final java.lang.String AUDIO_SERVICE = "audio";
field public static final java.lang.String BACKUP_SERVICE = "backup";
field public static final java.lang.String BATTERY_SERVICE = "batterymanager";
@@ -12905,6 +12948,7 @@ package android.hardware {
method public final void unlock();
field public static final java.lang.String ACTION_NEW_PICTURE = "android.hardware.action.NEW_PICTURE";
field public static final java.lang.String ACTION_NEW_VIDEO = "android.hardware.action.NEW_VIDEO";
+ field public static final int CAMERA_ERROR_EVICTED = 2; // 0x2
field public static final int CAMERA_ERROR_SERVER_DIED = 100; // 0x64
field public static final int CAMERA_ERROR_UNKNOWN = 1; // 0x1
}
@@ -13355,6 +13399,7 @@ package android.hardware.camera2 {
method public abstract android.hardware.camera2.CameraDevice getDevice();
method public abstract android.view.Surface getInputSurface();
method public abstract boolean isReprocessible();
+ method public abstract void prepare(android.view.Surface) throws android.hardware.camera2.CameraAccessException;
method public abstract int setRepeatingBurst(java.util.List<android.hardware.camera2.CaptureRequest>, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
method public abstract int setRepeatingRequest(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler) throws android.hardware.camera2.CameraAccessException;
method public abstract void stopRepeating() throws android.hardware.camera2.CameraAccessException;
@@ -13377,6 +13422,7 @@ package android.hardware.camera2 {
method public abstract void onConfigureFailed(android.hardware.camera2.CameraCaptureSession);
method public abstract void onConfigured(android.hardware.camera2.CameraCaptureSession);
method public void onReady(android.hardware.camera2.CameraCaptureSession);
+ method public void onSurfacePrepared(android.hardware.camera2.CameraCaptureSession, android.view.Surface);
}
public final class CameraCharacteristics extends android.hardware.camera2.CameraMetadata {
@@ -14065,6 +14111,8 @@ package android.hardware.fingerprint {
public class FingerprintManager {
method public void authenticate(android.hardware.fingerprint.FingerprintManager.CryptoObject, android.os.CancellationSignal, android.hardware.fingerprint.FingerprintManager.AuthenticationCallback, int);
+ method public boolean hasEnrolledFingerprints();
+ method public boolean isHardwareDetected();
field public static final int FINGERPRINT_ACQUIRED_GOOD = 0; // 0x0
field public static final int FINGERPRINT_ACQUIRED_IMAGER_DIRTY = 3; // 0x3
field public static final int FINGERPRINT_ACQUIRED_INSUFFICIENT = 2; // 0x2
@@ -14074,6 +14122,7 @@ package android.hardware.fingerprint {
field public static final int FINGERPRINT_ACQUIRED_VENDOR_BASE = 1000; // 0x3e8
field public static final int FINGERPRINT_ERROR_CANCELED = 5; // 0x5
field public static final int FINGERPRINT_ERROR_HW_UNAVAILABLE = 1; // 0x1
+ field public static final int FINGERPRINT_ERROR_LOCKOUT = 7; // 0x7
field public static final int FINGERPRINT_ERROR_NO_SPACE = 4; // 0x4
field public static final int FINGERPRINT_ERROR_TIMEOUT = 3; // 0x3
field public static final int FINGERPRINT_ERROR_UNABLE_TO_PROCESS = 2; // 0x2
@@ -14094,6 +14143,8 @@ package android.hardware.fingerprint {
}
public static class FingerprintManager.CryptoObject {
+ ctor public FingerprintManager.CryptoObject(java.security.Signature);
+ ctor public FingerprintManager.CryptoObject(javax.crypto.Cipher);
method public javax.crypto.Cipher getCipher();
method public java.security.Signature getSignature();
}
@@ -15754,6 +15805,47 @@ package android.media {
method public android.media.AudioAttributes.Builder setUsage(int);
}
+ public class AudioDeviceInfo {
+ method public java.lang.String getAddress();
+ method public int[] getChannelCounts();
+ method public int[] getChannelMasks();
+ method public int[] getFormats();
+ method public java.lang.String getName();
+ method public int[] getSampleRates();
+ method public int getType();
+ method public boolean isSink();
+ method public boolean isSource();
+ field public static final int TYPE_AUX_LINE = 19; // 0x13
+ field public static final int TYPE_BLUETOOTH_A2DP = 8; // 0x8
+ field public static final int TYPE_BLUETOOTH_SCO = 7; // 0x7
+ field public static final int TYPE_BUILTIN_EARPIECE = 1; // 0x1
+ field public static final int TYPE_BUILTIN_MIC = 15; // 0xf
+ field public static final int TYPE_BUILTIN_SPEAKER = 2; // 0x2
+ field public static final int TYPE_DOCK = 13; // 0xd
+ field public static final int TYPE_FM = 14; // 0xe
+ field public static final int TYPE_FM_TUNER = 16; // 0x10
+ field public static final int TYPE_HDMI = 9; // 0x9
+ field public static final int TYPE_HDMI_ARC = 10; // 0xa
+ field public static final int TYPE_LINE_ANALOG = 5; // 0x5
+ field public static final int TYPE_LINE_DIGITAL = 6; // 0x6
+ field public static final int TYPE_TELEPHONY = 18; // 0x12
+ field public static final int TYPE_TV_TUNER = 17; // 0x11
+ field public static final int TYPE_UNKNOWN = 0; // 0x0
+ field public static final int TYPE_USB_ACCESSORY = 12; // 0xc
+ field public static final int TYPE_USB_DEVICE = 11; // 0xb
+ field public static final int TYPE_WIRED_HEADPHONES = 4; // 0x4
+ field public static final int TYPE_WIRED_HEADSET = 3; // 0x3
+ }
+
+ public class AudioDevicesManager {
+ method public void addOnAudioDeviceConnectionListener(android.media.OnAudioDeviceConnectionListener, android.os.Handler);
+ method public android.media.AudioDeviceInfo[] listDevices(int);
+ method public void removeOnAudioDeviceConnectionListener(android.media.OnAudioDeviceConnectionListener);
+ field public static final int LIST_DEVICES_ALL = 3; // 0x3
+ field public static final int LIST_DEVICES_INPUTS = 1; // 0x1
+ field public static final int LIST_DEVICES_OUTPUTS = 2; // 0x2
+ }
+
public final class AudioFocusInfo implements android.os.Parcelable {
method public int describeContents();
method public android.media.AudioAttributes getAttributes();
@@ -15994,6 +16086,7 @@ package android.media {
method public int getChannelConfiguration();
method public int getChannelCount();
method public static int getMinBufferSize(int, int, int);
+ method public int getNativeFrameCount() throws java.lang.IllegalStateException;
method public int getNotificationMarkerPosition();
method public int getPositionNotificationPeriod();
method public int getRecordingState();
@@ -16372,7 +16465,6 @@ package android.media {
field public static final java.lang.String PARAMETER_KEY_REQUEST_SYNC_FRAME = "request-sync";
field public static final java.lang.String PARAMETER_KEY_SUSPEND = "drop-input-frames";
field public static final java.lang.String PARAMETER_KEY_VIDEO_BITRATE = "video-bitrate";
- field public static final int REASON_RECLAIMED = 1; // 0x1
field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT = 1; // 0x1
field public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING = 2; // 0x2
}
@@ -16388,7 +16480,6 @@ package android.media {
public static abstract class MediaCodec.Callback {
ctor public MediaCodec.Callback();
- method public void onCodecReleased(android.media.MediaCodec, int);
method public abstract void onError(android.media.MediaCodec, android.media.MediaCodec.CodecException);
method public abstract void onInputBufferAvailable(android.media.MediaCodec, int);
method public abstract void onOutputBufferAvailable(android.media.MediaCodec, int, android.media.MediaCodec.BufferInfo);
@@ -16397,8 +16488,11 @@ package android.media {
public static final class MediaCodec.CodecException extends java.lang.IllegalStateException {
method public java.lang.String getDiagnosticInfo();
+ method public int getReason();
method public boolean isRecoverable();
method public boolean isTransient();
+ field public static final int REASON_HARDWARE = 0; // 0x0
+ field public static final int REASON_RECLAIMED = 1; // 0x1
}
public static final class MediaCodec.CryptoException extends java.lang.RuntimeException {
@@ -17421,6 +17515,10 @@ package android.media {
ctor public NotProvisionedException(java.lang.String);
}
+ public abstract interface OnAudioDeviceConnectionListener {
+ method public abstract void onAudioDeviceConnection();
+ }
+
public final class Rating implements android.os.Parcelable {
method public int describeContents();
method public float getPercentRating();
@@ -18057,6 +18155,10 @@ package android.media.audiofx {
package android.media.audiopolicy {
public class AudioMix {
+ method public int getMixState();
+ field public static final int MIX_STATE_DISABLED = -1; // 0xffffffff
+ field public static final int MIX_STATE_IDLE = 0; // 0x0
+ field public static final int MIX_STATE_MIXING = 1; // 0x1
field public static final int ROUTE_FLAG_LOOP_BACK = 2; // 0x2
field public static final int ROUTE_FLAG_RENDER = 1; // 0x1
}
@@ -19258,6 +19360,7 @@ package android.media.tv {
method public final int getType();
method public final float getVideoFrameRate();
method public final int getVideoHeight();
+ method public final float getVideoPixelAspectRatio();
method public final int getVideoWidth();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.media.tv.TvTrackInfo> CREATOR;
@@ -19276,6 +19379,7 @@ package android.media.tv {
method public final android.media.tv.TvTrackInfo.Builder setLanguage(java.lang.String);
method public final android.media.tv.TvTrackInfo.Builder setVideoFrameRate(float);
method public final android.media.tv.TvTrackInfo.Builder setVideoHeight(int);
+ method public final android.media.tv.TvTrackInfo.Builder setVideoPixelAspectRatio(float);
method public final android.media.tv.TvTrackInfo.Builder setVideoWidth(int);
}
@@ -19661,6 +19765,7 @@ package android.net {
method public int describeContents();
method public java.net.InetAddress[] getAllByName(java.lang.String) throws java.net.UnknownHostException;
method public java.net.InetAddress getByName(java.lang.String) throws java.net.UnknownHostException;
+ method public long getNetworkHandle();
method public javax.net.SocketFactory getSocketFactory();
method public java.net.URLConnection openConnection(java.net.URL) throws java.io.IOException;
method public java.net.URLConnection openConnection(java.net.URL, java.net.Proxy) throws java.io.IOException;
@@ -28460,6 +28565,7 @@ package android.provider {
field public static final java.lang.String DEBUG_APP = "debug_app";
field public static final java.lang.String DEVELOPMENT_SETTINGS_ENABLED = "development_settings_enabled";
field public static final java.lang.String DEVICE_PROVISIONED = "device_provisioned";
+ field public static final java.lang.String HIDE_CARRIER_NETWORK_SETTINGS = "hide_carrier_network_settings";
field public static final java.lang.String HTTP_PROXY = "http_proxy";
field public static final deprecated java.lang.String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
field public static final java.lang.String MODE_RINGER = "mode_ringer";
@@ -28626,6 +28732,7 @@ package android.provider {
field public static final android.net.Uri DEFAULT_RINGTONE_URI;
field public static final deprecated java.lang.String DEVICE_PROVISIONED = "device_provisioned";
field public static final deprecated java.lang.String DIM_SCREEN = "dim_screen";
+ field public static final java.lang.String DTMF_TONE_TYPE_WHEN_DIALING = "dtmf_tone_type";
field public static final java.lang.String DTMF_TONE_WHEN_DIALING = "dtmf_tone";
field public static final java.lang.String END_BUTTON_BEHAVIOR = "end_button_behavior";
field public static final java.lang.String FONT_SCALE = "font_scale";
@@ -28674,6 +28781,7 @@ package android.provider {
field public static final java.lang.String USER_ROTATION = "user_rotation";
field public static final deprecated java.lang.String USE_GOOGLE_MAIL = "use_google_mail";
field public static final java.lang.String VIBRATE_ON = "vibrate_on";
+ field public static final java.lang.String VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
field public static final deprecated java.lang.String WAIT_FOR_DEBUGGER = "wait_for_debugger";
field public static final deprecated java.lang.String WALLPAPER_ACTIVITY = "wallpaper_activity";
field public static final deprecated java.lang.String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
@@ -29205,7 +29313,6 @@ package android.renderscript {
method public static android.renderscript.AllocationAdapter create1D(android.renderscript.RenderScript, android.renderscript.Allocation);
method public static android.renderscript.AllocationAdapter create2D(android.renderscript.RenderScript, android.renderscript.Allocation);
method public static android.renderscript.AllocationAdapter createTyped(android.renderscript.RenderScript, android.renderscript.Allocation, android.renderscript.Type);
- method public void setArray(int, int);
method public void setFace(android.renderscript.Type.CubemapFace);
method public void setLOD(int);
method public void setX(int);
@@ -30028,8 +30135,6 @@ package android.renderscript {
method public static android.renderscript.Type createX(android.renderscript.RenderScript, android.renderscript.Element, int);
method public static android.renderscript.Type createXY(android.renderscript.RenderScript, android.renderscript.Element, int, int);
method public static android.renderscript.Type createXYZ(android.renderscript.RenderScript, android.renderscript.Element, int, int, int);
- method public int getArray(int);
- method public int getArrayCount();
method public int getCount();
method public android.renderscript.Element getElement();
method public int getX();
@@ -30043,7 +30148,6 @@ package android.renderscript {
public static class Type.Builder {
ctor public Type.Builder(android.renderscript.RenderScript, android.renderscript.Element);
method public android.renderscript.Type create();
- method public android.renderscript.Type.Builder setArray(int, int);
method public android.renderscript.Type.Builder setFaces(boolean);
method public android.renderscript.Type.Builder setMipmaps(boolean);
method public android.renderscript.Type.Builder setX(int);
@@ -30588,6 +30692,7 @@ package android.service.notification {
method public final int getCurrentInterruptionFilter();
method public final int getCurrentListenerHints();
method public android.service.notification.NotificationListenerService.RankingMap getCurrentRanking();
+ method public final android.app.NotificationManager.Policy.Token getNotificationPolicyToken();
method public android.os.IBinder onBind(android.content.Intent);
method public void onInterruptionFilterChanged(int);
method public void onListenerConnected();
@@ -31831,6 +31936,7 @@ package android.telecom {
public final class AudioState implements android.os.Parcelable {
ctor public AudioState(boolean, int, int);
ctor public AudioState(android.telecom.AudioState);
+ method public static java.lang.String audioRouteToString(int);
method public int describeContents();
method public int getRoute();
method public int getSupportedRouteMask();
@@ -31842,25 +31948,6 @@ package android.telecom {
field public static final int ROUTE_SPEAKER = 8; // 0x8
field public static final int ROUTE_WIRED_HEADSET = 4; // 0x4
field public static final int ROUTE_WIRED_OR_EARPIECE = 5; // 0x5
- field public final boolean isMuted;
- field public final int route;
- field public final int supportedRouteMask;
- }
-
- public class AuthenticatorService extends android.app.Service {
- ctor public AuthenticatorService();
- method public android.os.IBinder onBind(android.content.Intent);
- }
-
- public class AuthenticatorService.Authenticator extends android.accounts.AbstractAccountAuthenticator {
- ctor public AuthenticatorService.Authenticator(android.content.Context);
- method public android.os.Bundle addAccount(android.accounts.AccountAuthenticatorResponse, java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle) throws android.accounts.NetworkErrorException;
- method public android.os.Bundle confirmCredentials(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, android.os.Bundle) throws android.accounts.NetworkErrorException;
- method public android.os.Bundle editProperties(android.accounts.AccountAuthenticatorResponse, java.lang.String);
- method public android.os.Bundle getAuthToken(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, java.lang.String, android.os.Bundle) throws android.accounts.NetworkErrorException;
- method public java.lang.String getAuthTokenLabel(java.lang.String);
- method public android.os.Bundle hasFeatures(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, java.lang.String[]) throws android.accounts.NetworkErrorException;
- method public android.os.Bundle updateCredentials(android.accounts.AccountAuthenticatorResponse, android.accounts.Account, java.lang.String, android.os.Bundle) throws android.accounts.NetworkErrorException;
}
public final class Call {
@@ -31875,6 +31962,7 @@ package android.telecom {
method public android.telecom.Call getParent();
method public java.lang.String getRemainingPostDialSequence();
method public int getState();
+ method public android.telecom.InCallService.VideoCall getVideoCall();
method public void hold();
method public void mergeConference();
method public void phoneAccountSelected(android.telecom.PhoneAccountHandle, boolean);
@@ -31886,6 +31974,7 @@ package android.telecom {
method public void stopDtmfTone();
method public void swapConference();
method public void unhold();
+ field public static final java.lang.String AVAILABLE_PHONE_ACCOUNTS = "selectPhoneAccountAccounts";
field public static final int STATE_ACTIVE = 4; // 0x4
field public static final int STATE_CONNECTING = 9; // 0x9
field public static final int STATE_DIALING = 1; // 0x1
@@ -31898,13 +31987,15 @@ package android.telecom {
}
public static class Call.Details {
+ method public static boolean can(int, int);
+ method public boolean can(int);
method public static java.lang.String capabilitiesToString(int);
method public android.telecom.PhoneAccountHandle getAccountHandle();
method public int getCallCapabilities();
method public int getCallProperties();
method public java.lang.String getCallerDisplayName();
method public int getCallerDisplayNamePresentation();
- method public long getConnectTimeMillis();
+ method public final long getConnectTimeMillis();
method public android.telecom.DisconnectCause getDisconnectCause();
method public android.os.Bundle getExtras();
method public android.telecom.GatewayInfo getGatewayInfo();
@@ -31913,14 +32004,24 @@ package android.telecom {
method public android.telecom.StatusHints getStatusHints();
method public int getVideoState();
field public static final int CAPABILITY_DISCONNECT_FROM_CONFERENCE = 8192; // 0x2000
+ field public static final int CAPABILITY_GENERIC_CONFERENCE = 16384; // 0x4000
+ field public static final int CAPABILITY_HIGH_DEF_AUDIO = 32768; // 0x8000
field public static final int CAPABILITY_HOLD = 1; // 0x1
field public static final int CAPABILITY_MANAGE_CONFERENCE = 128; // 0x80
field public static final int CAPABILITY_MERGE_CONFERENCE = 4; // 0x4
field public static final int CAPABILITY_MUTE = 64; // 0x40
field public static final int CAPABILITY_RESPOND_VIA_TEXT = 32; // 0x20
field public static final int CAPABILITY_SEPARATE_FROM_CONFERENCE = 4096; // 0x1000
+ field public static final int CAPABILITY_SHOW_CALLBACK_NUMBER = 131072; // 0x20000
+ field public static final int CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL = 768; // 0x300
+ field public static final int CAPABILITY_SUPPORTS_VT_LOCAL_RX = 256; // 0x100
+ field public static final int CAPABILITY_SUPPORTS_VT_LOCAL_TX = 512; // 0x200
+ field public static final int CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL = 3072; // 0xc00
+ field public static final int CAPABILITY_SUPPORTS_VT_REMOTE_RX = 1024; // 0x400
+ field public static final int CAPABILITY_SUPPORTS_VT_REMOTE_TX = 2048; // 0x800
field public static final int CAPABILITY_SUPPORT_HOLD = 2; // 0x2
field public static final int CAPABILITY_SWAP_CONFERENCE = 8; // 0x8
+ field public static final int CAPABILITY_WIFI = 65536; // 0x10000
}
public static abstract class Call.Listener {
@@ -31933,6 +32034,12 @@ package android.telecom {
method public void onParentChanged(android.telecom.Call, android.telecom.Call);
method public void onPostDialWait(android.telecom.Call, java.lang.String);
method public void onStateChanged(android.telecom.Call, int);
+ method public void onVideoCallChanged(android.telecom.Call, android.telecom.InCallService.VideoCall);
+ }
+
+ public class CallProperties {
+ ctor public CallProperties();
+ field public static final int CONFERENCE = 1; // 0x1
}
public final class CallState {
@@ -31949,13 +32056,22 @@ package android.telecom {
field public static final int RINGING = 4; // 0x4
}
+ public final class CameraCapabilities implements android.os.Parcelable {
+ ctor public CameraCapabilities(int, int);
+ method public int describeContents();
+ method public int getHeight();
+ method public int getWidth();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.telecom.CameraCapabilities> CREATOR;
+ }
+
public abstract class Conference implements android.telecom.IConferenceable {
ctor public Conference(android.telecom.PhoneAccountHandle);
method public final boolean addConnection(android.telecom.Connection);
method public final void destroy();
method public final android.telecom.AudioState getAudioState();
method public final java.util.List<android.telecom.Connection> getConferenceableConnections();
- method public long getConnectTimeMillis();
+ method public final long getConnectTimeMillis();
method public final int getConnectionCapabilities();
method public final java.util.List<android.telecom.Connection> getConnections();
method public final android.telecom.DisconnectCause getDisconnectCause();
@@ -31980,8 +32096,7 @@ package android.telecom {
method public final void setConnectionCapabilities(int);
method public final void setDisconnected(android.telecom.DisconnectCause);
method public final void setOnHold();
- field public static long CONNECT_TIME_NOT_SPECIFIED;
- field protected android.telecom.PhoneAccountHandle mPhoneAccount;
+ field public static final long CONNECT_TIME_NOT_SPECIFIED = 0L; // 0x0L
}
public abstract class Connection implements android.telecom.IConferenceable {
@@ -31994,7 +32109,6 @@ package android.telecom {
method public final int getAddressPresentation();
method public final boolean getAudioModeIsVoip();
method public final android.telecom.AudioState getAudioState();
- method public final deprecated int getCallCapabilities();
method public final java.lang.String getCallerDisplayName();
method public final int getCallerDisplayNamePresentation();
method public final android.telecom.Conference getConference();
@@ -32003,8 +32117,8 @@ package android.telecom {
method public final android.telecom.DisconnectCause getDisconnectCause();
method public final int getState();
method public final android.telecom.StatusHints getStatusHints();
+ method public final android.telecom.Connection.VideoProvider getVideoProvider();
method public final boolean isRingbackRequested();
- method protected void notifyConferenceStarted();
method public void onAbort();
method public void onAnswer();
method public void onAudioStateChanged(android.telecom.AudioState);
@@ -32020,7 +32134,6 @@ package android.telecom {
method public final void setActive();
method public final void setAddress(android.net.Uri, int);
method public final void setAudioModeIsVoip(boolean);
- method public final deprecated void setCallCapabilities(int);
method public final void setCallerDisplayName(java.lang.String, int);
method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
method public final void setConferenceables(java.util.List<android.telecom.IConferenceable>);
@@ -32055,6 +32168,38 @@ package android.telecom {
field public static final int STATE_RINGING = 2; // 0x2
}
+ public static abstract class Connection.VideoProvider {
+ ctor public Connection.VideoProvider();
+ method public void changeCallDataUsage(long);
+ method public void changeCameraCapabilities(android.telecom.CameraCapabilities);
+ method public void changePeerDimensions(int, int);
+ method public void changeVideoQuality(int);
+ method public void handleCallSessionEvent(int);
+ method public abstract void onRequestCameraCapabilities();
+ method public abstract void onRequestConnectionDataUsage();
+ method public abstract void onSendSessionModifyRequest(android.telecom.VideoProfile);
+ method public abstract void onSendSessionModifyResponse(android.telecom.VideoProfile);
+ method public abstract void onSetCamera(java.lang.String);
+ method public abstract void onSetDeviceOrientation(int);
+ method public abstract void onSetDisplaySurface(android.view.Surface);
+ method public abstract void onSetPauseImage(java.lang.String);
+ method public abstract void onSetPreviewSurface(android.view.Surface);
+ method public abstract void onSetZoom(float);
+ method public void receiveSessionModifyRequest(android.telecom.VideoProfile);
+ method public void receiveSessionModifyResponse(int, android.telecom.VideoProfile, android.telecom.VideoProfile);
+ field public static final int SESSION_EVENT_CAMERA_FAILURE = 5; // 0x5
+ field public static final int SESSION_EVENT_CAMERA_READY = 6; // 0x6
+ field public static final int SESSION_EVENT_RX_PAUSE = 1; // 0x1
+ field public static final int SESSION_EVENT_RX_RESUME = 2; // 0x2
+ field public static final int SESSION_EVENT_TX_START = 3; // 0x3
+ field public static final int SESSION_EVENT_TX_STOP = 4; // 0x4
+ field public static final int SESSION_MODIFY_REQUEST_FAIL = 2; // 0x2
+ field public static final int SESSION_MODIFY_REQUEST_INVALID = 3; // 0x3
+ field public static final int SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE = 5; // 0x5
+ field public static final int SESSION_MODIFY_REQUEST_SUCCESS = 1; // 0x1
+ field public static final int SESSION_MODIFY_REQUEST_TIMED_OUT = 4; // 0x4
+ }
+
public final class ConnectionRequest implements android.os.Parcelable {
ctor public ConnectionRequest(android.telecom.PhoneAccountHandle, android.net.Uri, android.os.Bundle);
method public int describeContents();
@@ -32124,13 +32269,39 @@ package android.telecom {
public abstract class InCallService extends android.app.Service {
ctor public InCallService();
- method public android.telecom.Phone getPhone();
+ method public final android.telecom.Phone getPhone();
method public android.os.IBinder onBind(android.content.Intent);
method public void onPhoneCreated(android.telecom.Phone);
method public void onPhoneDestroyed(android.telecom.Phone);
field public static final java.lang.String SERVICE_INTERFACE = "android.telecom.InCallService";
}
+ public static abstract class InCallService.VideoCall {
+ ctor public InCallService.VideoCall();
+ method public abstract void requestCallDataUsage();
+ method public abstract void requestCameraCapabilities();
+ method public abstract void sendSessionModifyRequest(android.telecom.VideoProfile);
+ method public abstract void sendSessionModifyResponse(android.telecom.VideoProfile);
+ method public abstract void setCamera(java.lang.String);
+ method public abstract void setDeviceOrientation(int);
+ method public abstract void setDisplaySurface(android.view.Surface);
+ method public abstract void setPauseImage(java.lang.String);
+ method public abstract void setPreviewSurface(android.view.Surface);
+ method public abstract void setVideoCallListener(android.telecom.InCallService.VideoCall.Listener);
+ method public abstract void setZoom(float);
+ }
+
+ public static abstract class InCallService.VideoCall.Listener {
+ ctor public InCallService.VideoCall.Listener();
+ method public abstract void onCallDataUsageChanged(long);
+ method public abstract void onCallSessionEvent(int);
+ method public abstract void onCameraCapabilitiesChanged(android.telecom.CameraCapabilities);
+ method public abstract void onPeerDimensionsChanged(int, int);
+ method public abstract void onSessionModifyRequestReceived(android.telecom.VideoProfile);
+ method public abstract void onSessionModifyResponseReceived(int, android.telecom.VideoProfile, android.telecom.VideoProfile);
+ method public abstract void onVideoQualityChanged(int);
+ }
+
public final class Phone {
method public final void addListener(android.telecom.Phone.Listener);
method public final boolean canAddCall();
@@ -32139,8 +32310,6 @@ package android.telecom {
method public final void removeListener(android.telecom.Phone.Listener);
method public final void setAudioRoute(int);
method public final void setMuted(boolean);
- method public final void setProximitySensorOff(boolean);
- method public final void setProximitySensorOn();
}
public static abstract class Phone.Listener {
@@ -32192,7 +32361,6 @@ package android.telecom {
ctor public PhoneAccount.Builder(android.telecom.PhoneAccount);
method public android.telecom.PhoneAccount.Builder addSupportedUriScheme(java.lang.String);
method public android.telecom.PhoneAccount build();
- method public android.telecom.PhoneAccount.Builder setAccountHandle(android.telecom.PhoneAccountHandle);
method public android.telecom.PhoneAccount.Builder setAddress(android.net.Uri);
method public android.telecom.PhoneAccount.Builder setCapabilities(int);
method public android.telecom.PhoneAccount.Builder setHighlightColor(int);
@@ -32308,7 +32476,8 @@ package android.telecom {
method public void addNewIncomingCall(android.telecom.PhoneAccountHandle, android.os.Bundle);
method public void addNewUnknownCall(android.telecom.PhoneAccountHandle, android.os.Bundle);
method public void cancelMissedCallsNotification();
- method public void clearAccounts();
+ method public deprecated void clearAccounts();
+ method public void clearPhoneAccounts();
method public boolean endCall();
method public android.net.Uri getAdnUriForPhoneAccount(android.telecom.PhoneAccountHandle);
method public java.util.List<android.telecom.PhoneAccountHandle> getAllPhoneAccountHandles();
@@ -32324,9 +32493,9 @@ package android.telecom {
method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage();
method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(java.lang.String);
method public java.util.List<android.telecom.PhoneAccountHandle> getRegisteredConnectionManagers();
+ method public android.telecom.PhoneAccountHandle getSimCallManager();
method public boolean handleMmi(java.lang.String);
- method public boolean handleMmi(android.telecom.PhoneAccountHandle, java.lang.String);
- method public boolean hasMultipleCallCapableAccounts();
+ method public boolean handleMmi(java.lang.String, android.telecom.PhoneAccountHandle);
method public boolean hasVoiceMailNumber(android.telecom.PhoneAccountHandle);
method public boolean isInCall();
method public boolean isRinging();
@@ -32338,6 +32507,7 @@ package android.telecom {
method public void unregisterPhoneAccount(android.telecom.PhoneAccountHandle);
field public static final java.lang.String ACTION_CHANGE_PHONE_ACCOUNTS = "android.telecom.action.CHANGE_PHONE_ACCOUNTS";
field public static final java.lang.String ACTION_CONNECTION_SERVICE_CONFIGURE = "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
+ field public static final java.lang.String ACTION_INCOMING_CALL = "android.telecom.action.INCOMING_CALL";
field public static final java.lang.String ACTION_PHONE_ACCOUNT_REGISTERED = "android.telecom.action.PHONE_ACCOUNT_REGISTERED";
field public static final java.lang.String ACTION_SHOW_CALL_ACCESSIBILITY_SETTINGS = "android.telecom.action.SHOW_CALL_ACCESSIBILITY_SETTINGS";
field public static final java.lang.String ACTION_SHOW_CALL_SETTINGS = "android.telecom.action.SHOW_CALL_SETTINGS";
@@ -32389,36 +32559,6 @@ package android.telecom {
field public static final int TX_ENABLED = 1; // 0x1
}
- public class Voicemail implements android.os.Parcelable {
- method public static android.telecom.Voicemail.Builder createForInsertion(long, java.lang.String);
- method public static android.telecom.Voicemail.Builder createForUpdate(long, java.lang.String);
- method public int describeContents();
- method public long getDuration();
- method public long getId();
- method public java.lang.String getNumber();
- method public java.lang.String getSourceData();
- method public java.lang.String getSourcePackage();
- method public long getTimestampMillis();
- method public android.net.Uri getUri();
- method public boolean hasContent();
- method public boolean isRead();
- method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator<android.telecom.Voicemail> CREATOR;
- }
-
- public static class Voicemail.Builder {
- method public android.telecom.Voicemail build();
- method public android.telecom.Voicemail.Builder setDuration(long);
- method public android.telecom.Voicemail.Builder setHasContent(boolean);
- method public android.telecom.Voicemail.Builder setId(long);
- method public android.telecom.Voicemail.Builder setIsRead(boolean);
- method public android.telecom.Voicemail.Builder setNumber(java.lang.String);
- method public android.telecom.Voicemail.Builder setSourceData(java.lang.String);
- method public android.telecom.Voicemail.Builder setSourcePackage(java.lang.String);
- method public android.telecom.Voicemail.Builder setTimestamp(long);
- method public android.telecom.Voicemail.Builder setUri(android.net.Uri);
- }
-
}
package android.telephony {
@@ -32912,6 +33052,7 @@ package android.telephony {
method public boolean getDataEnabled(int);
method public int getDataState();
method public java.lang.String getDeviceId();
+ method public java.lang.String getDeviceId(int);
method public java.lang.String getDeviceSoftwareVersion();
method public java.lang.String getGroupIdLevel1();
method public java.lang.String getLine1Number();
@@ -32922,6 +33063,7 @@ package android.telephony {
method public java.lang.String getNetworkOperator();
method public java.lang.String getNetworkOperatorName();
method public int getNetworkType();
+ method public int getPhoneCount();
method public int getPhoneType();
method public java.lang.String getSimCountryIso();
method public java.lang.String getSimOperator();
@@ -39148,6 +39290,7 @@ package android.view {
field public static final int TITLE_CHANGED = 64; // 0x40
field public static final int TYPE_ACCESSIBILITY_OVERLAY = 2032; // 0x7f0
field public static final int TYPE_APPLICATION = 2; // 0x2
+ field public static final int TYPE_APPLICATION_ABOVE_SUB_PANEL = 1005; // 0x3ed
field public static final int TYPE_APPLICATION_ATTACHED_DIALOG = 1003; // 0x3eb
field public static final int TYPE_APPLICATION_MEDIA = 1001; // 0x3e9
field public static final int TYPE_APPLICATION_PANEL = 1000; // 0x3e8
@@ -42733,6 +42876,7 @@ package android.widget {
method public boolean getOverlapAnchor();
method public int getSoftInputMode();
method public int getWidth();
+ method public int getWindowLayoutType();
method public boolean isAboveAnchor();
method public boolean isAttachedInDecor();
method public boolean isClippingEnabled();
@@ -42762,6 +42906,7 @@ package android.widget {
method public void setTouchable(boolean);
method public void setWidth(int);
method public deprecated void setWindowLayoutMode(int, int);
+ method public void setWindowLayoutType(int);
method public void showAsDropDown(android.view.View);
method public void showAsDropDown(android.view.View, int, int);
method public void showAsDropDown(android.view.View, int, int, int);
@@ -43557,6 +43702,7 @@ package android.widget {
method public int getInputType();
method public final android.text.method.KeyListener getKeyListener();
method public final android.text.Layout getLayout();
+ method public int[] getLeftIndents();
method public float getLetterSpacing();
method public int getLineBounds(int, android.graphics.Rect);
method public int getLineCount();
@@ -43579,6 +43725,7 @@ package android.widget {
method public android.text.TextPaint getPaint();
method public int getPaintFlags();
method public java.lang.String getPrivateImeOptions();
+ method public int[] getRightIndents();
method public int getSelectionEnd();
method public int getSelectionStart();
method public int getShadowColor();
@@ -43656,6 +43803,7 @@ package android.widget {
method public void setImeActionLabel(java.lang.CharSequence, int);
method public void setImeOptions(int);
method public void setIncludeFontPadding(boolean);
+ method public void setIndents(int[], int[]);
method public void setInputExtras(int) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public void setInputType(int);
method public void setKeyListener(android.text.method.KeyListener);
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 6cf6481..4ccde1c 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -6434,18 +6434,22 @@ public class Activity extends ContextThemeWrapper
* Request to put this Activity in a mode where the user is locked to the
* current task.
*
- * This will prevent the user from launching other apps, going to settings,
- * or reaching the home screen.
+ * This will prevent the user from launching other apps, going to settings, or reaching the
+ * home screen. This does not include those apps whose {@link android.R.attr#lockTaskMode}
+ * values permit launching while locked.
*
- * If {@link DevicePolicyManager#isLockTaskPermitted(String)} returns true
- * for this component then the app will go directly into Lock Task mode. The user
- * will not be able to exit this mode until {@link Activity#stopLockTask()} is called.
+ * If {@link DevicePolicyManager#isLockTaskPermitted(String)} returns true or
+ * lockTaskMode=lockTaskModeAlways for this component then the app will go directly into
+ * Lock Task mode. The user will not be able to exit this mode until
+ * {@link Activity#stopLockTask()} is called.
*
* If {@link DevicePolicyManager#isLockTaskPermitted(String)} returns false
* then the system will prompt the user with a dialog requesting permission to enter
* this mode. When entered through this method the user can exit at any time through
* an action described by the request dialog. Calling stopLockTask will also exit the
* mode.
+ *
+ * @see android.R.attr#lockTaskMode
*/
public void startLockTask() {
try {
@@ -6462,6 +6466,14 @@ public class Activity extends ContextThemeWrapper
* startLockTask previously.
*
* This will allow the user to exit this app and move onto other activities.
+ * <p>Note: This method should only be called when the activity is user-facing. That is,
+ * between onResume() and onPause().
+ * <p>Note: If there are other tasks below this one that are also locked then calling this
+ * method will immediately finish this task and resume the previous locked one, remaining in
+ * lockTask mode.
+ *
+ * @see android.R.attr#lockTaskMode
+ * @see ActivityManager#getLockTaskModeState()
*/
public void stopLockTask() {
try {
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 907ae26..fe6e4f3 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -771,10 +771,12 @@ final class ApplicationPackageManager extends PackageManager {
.getCompatibilityInfo().applicationScale,
e);
}
- if (DEBUG_ICONS)
+ if (DEBUG_ICONS) {
Log.v(TAG, "Getting drawable 0x"
+ Integer.toHexString(resId) + " from " + r
+ ": " + dr);
+ }
+ return dr;
} catch (NameNotFoundException e) {
Log.w("PackageManager", "Failure retrieving resources for "
+ appInfo.packageName);
diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl
index e2230da..913159a 100644
--- a/core/java/android/app/INotificationManager.aidl
+++ b/core/java/android/app/INotificationManager.aidl
@@ -17,8 +17,10 @@
package android.app;
+import android.app.INotificationManagerCallback;
import android.app.ITransientNotification;
import android.app.Notification;
+import android.app.NotificationManager;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.ParceledListSlice;
@@ -71,6 +73,7 @@ interface INotificationManager
void requestInterruptionFilterFromListener(in INotificationListener token, int interruptionFilter);
int getInterruptionFilterFromListener(in INotificationListener token);
void setOnNotificationPostedTrimFromListener(in INotificationListener token, int trim);
+ NotificationManager.Policy.Token getPolicyTokenFromListener(in INotificationListener listener);
ComponentName getEffectsSuppressor();
boolean matchesCallFilter(in Bundle extras);
@@ -82,4 +85,8 @@ interface INotificationManager
oneway void setZenMode(int mode, in Uri conditionId, String reason);
oneway void notifyConditions(String pkg, in IConditionProvider provider, in Condition[] conditions);
oneway void requestZenModeConditions(in IConditionListener callback, int relevance);
+ oneway void requestNotificationPolicyToken(String pkg, in INotificationManagerCallback callback);
+ boolean isNotificationPolicyTokenValid(String pkg, in NotificationManager.Policy.Token token);
+ NotificationManager.Policy getNotificationPolicy(in NotificationManager.Policy.Token token);
+ void setNotificationPolicy(in NotificationManager.Policy.Token token, in NotificationManager.Policy policy);
}
diff --git a/core/java/android/app/INotificationManagerCallback.aidl b/core/java/android/app/INotificationManagerCallback.aidl
new file mode 100644
index 0000000..b9414ca
--- /dev/null
+++ b/core/java/android/app/INotificationManagerCallback.aidl
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2015, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app;
+
+import android.app.NotificationManager;
+
+/** @hide */
+oneway interface INotificationManagerCallback {
+ void onPolicyToken(in NotificationManager.Policy.Token token);
+}
diff --git a/core/java/android/app/NotificationManager.aidl b/core/java/android/app/NotificationManager.aidl
new file mode 100644
index 0000000..8380b8d
--- /dev/null
+++ b/core/java/android/app/NotificationManager.aidl
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2015, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app;
+
+parcelable NotificationManager.Policy;
+parcelable NotificationManager.Policy.Token; \ No newline at end of file
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index fa61e18..7133dce 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -16,14 +16,19 @@
package android.app;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.annotation.SdkConstant;
import android.app.Notification.Builder;
+import android.app.NotificationManager.Policy.Token;
import android.content.ComponentName;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
+import android.os.Parcel;
+import android.os.Parcelable;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.StrictMode;
@@ -33,6 +38,8 @@ import android.service.notification.IConditionListener;
import android.service.notification.ZenModeConfig;
import android.util.Log;
+import java.util.Objects;
+
/**
* Class to notify the user of events that happen. This is how you tell
* the user that something has happened in the background. {@more}
@@ -89,6 +96,14 @@ public class NotificationManager
public static final String ACTION_EFFECTS_SUPPRESSOR_CHANGED
= "android.os.action.ACTION_EFFECTS_SUPPRESSOR_CHANGED";
+ /**
+ * Intent that is broadcast when the state of getNotificationPolicy() changes.
+ * This broadcast is only sent to registered receivers.
+ */
+ @SdkConstant(SdkConstant.SdkConstantType.BROADCAST_INTENT_ACTION)
+ public static final String ACTION_NOTIFICATION_POLICY_CHANGED
+ = "android.app.action.NOTIFICATION_POLICY_CHANGED";
+
private static INotificationManager sService;
/** @hide */
@@ -338,5 +353,293 @@ public class NotificationManager
return null;
}
+ /**
+ * Requests a notification policy token for the calling package.
+ *
+ * @param callback required, used to receive the granted token or the deny signal.
+ * @param handler The handler used when receiving the result.
+ * If null, the current thread is used.
+ */
+ public void requestNotificationPolicyToken(@NonNull final Policy.Token.RequestCallback callback,
+ @Nullable Handler handler) {
+ checkRequired("callback", callback);
+ final Handler h = handler != null ? handler : new Handler();
+ INotificationManager service = getService();
+ try {
+ service.requestNotificationPolicyToken(mContext.getOpPackageName(),
+ new INotificationManagerCallback.Stub() {
+ @Override
+ public void onPolicyToken(final Token token) throws RemoteException {
+ h.post(new Runnable() {
+ @Override
+ public void run() {
+ if (token != null) {
+ callback.onTokenGranted(token);
+ } else {
+ callback.onTokenDenied();
+ }
+ }
+ });
+ }
+ });
+ } catch (RemoteException e) {
+ }
+ }
+
+ /**
+ * Checks a given notification policy token.
+ *
+ * Returns true if the token is still valid for managing policy.
+ */
+ public boolean isNotificationPolicyTokenValid(@NonNull Policy.Token token) {
+ if (token == null) return false;
+ INotificationManager service = getService();
+ try {
+ return service.isNotificationPolicyTokenValid(mContext.getOpPackageName(), token);
+ } catch (RemoteException e) {
+ }
+ return false;
+ }
+
+ /**
+ * Gets the current notification policy.
+ *
+ * @param token A valid notification policy token is required to access the current policy.
+ */
+ public Policy getNotificationPolicy(@NonNull Policy.Token token) {
+ checkRequired("token", token);
+ INotificationManager service = getService();
+ try {
+ return service.getNotificationPolicy(token);
+ } catch (RemoteException e) {
+ }
+ return null;
+ }
+
+ /**
+ * Sets the current notification policy.
+ *
+ * @param token A valid notification policy token is required to modify the current policy.
+ * @param policy The new desired policy.
+ */
+ public void setNotificationPolicy(@NonNull Policy.Token token, @NonNull Policy policy) {
+ checkRequired("token", token);
+ checkRequired("policy", policy);
+ INotificationManager service = getService();
+ try {
+ service.setNotificationPolicy(token, policy);
+ } catch (RemoteException e) {
+ }
+ }
+
private Context mContext;
+
+ private static void checkRequired(String name, Object value) {
+ if (value == null) {
+ throw new IllegalArgumentException(name + " is required");
+ }
+ }
+
+ /**
+ * Notification policy configuration. Represents user-preferences for notification
+ * filtering and prioritization.
+ */
+ public static class Policy implements android.os.Parcelable {
+ /** Reminder notifications are prioritized. */
+ public static final int PRIORITY_CATEGORY_REMINDERS = 1 << 0;
+ /** Event notifications are prioritized. */
+ public static final int PRIORITY_CATEGORY_EVENTS = 1 << 1;
+ /** Message notifications are prioritized. */
+ public static final int PRIORITY_CATEGORY_MESSAGES = 1 << 2;
+ /** Calls are prioritized. */
+ public static final int PRIORITY_CATEGORY_CALLS = 1 << 3;
+ /** Calls from repeat callers are prioritized. */
+ public static final int PRIORITY_CATEGORY_REPEAT_CALLERS = 1 << 4;
+
+ private static final int[] ALL_PRIORITY_CATEGORIES = {
+ PRIORITY_CATEGORY_REMINDERS,
+ PRIORITY_CATEGORY_EVENTS,
+ PRIORITY_CATEGORY_MESSAGES,
+ PRIORITY_CATEGORY_CALLS,
+ PRIORITY_CATEGORY_REPEAT_CALLERS,
+ };
+
+ /** Any sender is prioritized. */
+ public static final int PRIORITY_SENDERS_ANY = 0;
+ /** Saved contacts are prioritized. */
+ public static final int PRIORITY_SENDERS_CONTACTS = 1;
+ /** Only starred contacts are prioritized. */
+ public static final int PRIORITY_SENDERS_STARRED = 2;
+
+ /** Notification categories to prioritize. Bitmask of PRIORITY_CATEGORY_* constants. */
+ public final int priorityCategories;
+
+ /** Notification senders to prioritize. One of:
+ * PRIORITY_SENDERS_ANY, PRIORITY_SENDERS_CONTACTS, PRIORITY_SENDERS_STARRED */
+ public final int prioritySenders;
+
+ public Policy(int priorityCategories, int prioritySenders) {
+ this.priorityCategories = priorityCategories;
+ this.prioritySenders = prioritySenders;
+ }
+
+ /** @hide */
+ public Policy(Parcel source) {
+ this(source.readInt(), source.readInt());
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeInt(priorityCategories);
+ dest.writeInt(prioritySenders);
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(priorityCategories, prioritySenders);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof Policy)) return false;
+ if (o == this) return true;
+ final Policy other = (Policy) o;
+ return other.priorityCategories == priorityCategories
+ && other.prioritySenders == prioritySenders;
+ }
+
+ @Override
+ public String toString() {
+ return "NotificationManager.Policy["
+ + "priorityCategories=" + priorityCategoriesToString(priorityCategories)
+ + ",prioritySenders=" + prioritySendersToString(prioritySenders)
+ + "]";
+ }
+
+ public static String priorityCategoriesToString(int priorityCategories) {
+ if (priorityCategories == 0) return "";
+ final StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < ALL_PRIORITY_CATEGORIES.length; i++) {
+ final int priorityCategory = ALL_PRIORITY_CATEGORIES[i];
+ if ((priorityCategories & priorityCategory) != 0) {
+ if (sb.length() > 0) sb.append(',');
+ sb.append(priorityCategoryToString(priorityCategory));
+ }
+ priorityCategories &= ~priorityCategory;
+ }
+ if (priorityCategories != 0) {
+ if (sb.length() > 0) sb.append(',');
+ sb.append("PRIORITY_CATEGORY_UNKNOWN_").append(priorityCategories);
+ }
+ return sb.toString();
+ }
+
+ private static String priorityCategoryToString(int priorityCategory) {
+ switch (priorityCategory) {
+ case PRIORITY_CATEGORY_REMINDERS: return "PRIORITY_CATEGORY_REMINDERS";
+ case PRIORITY_CATEGORY_EVENTS: return "PRIORITY_CATEGORY_EVENTS";
+ case PRIORITY_CATEGORY_MESSAGES: return "PRIORITY_CATEGORY_MESSAGES";
+ case PRIORITY_CATEGORY_CALLS: return "PRIORITY_CATEGORY_CALLS";
+ case PRIORITY_CATEGORY_REPEAT_CALLERS: return "PRIORITY_CATEGORY_REPEAT_CALLERS";
+ default: return "PRIORITY_CATEGORY_UNKNOWN_" + priorityCategory;
+ }
+ }
+
+ public static String prioritySendersToString(int prioritySenders) {
+ switch (prioritySenders) {
+ case PRIORITY_SENDERS_ANY: return "PRIORITY_SENDERS_ANY";
+ case PRIORITY_SENDERS_CONTACTS: return "PRIORITY_SENDERS_CONTACTS";
+ case PRIORITY_SENDERS_STARRED: return "PRIORITY_SENDERS_STARRED";
+ default: return "PRIORITY_SENDERS_UNKNOWN_" + prioritySenders;
+ }
+ }
+
+ public static final Parcelable.Creator<Policy> CREATOR = new Parcelable.Creator<Policy>() {
+ @Override
+ public Policy createFromParcel(Parcel in) {
+ return new Policy(in);
+ }
+
+ @Override
+ public Policy[] newArray(int size) {
+ return new Policy[size];
+ }
+ };
+
+ /**
+ * Represents a client-specific token required to manage notification policy.
+ */
+ public static class Token implements Parcelable {
+ private final IBinder mBinder;
+
+ /** @hide */
+ public Token(IBinder binder) {
+ if (binder == null) throw new IllegalArgumentException("Binder required for token");
+ mBinder = binder;
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mBinder);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof Token)) return false;
+ if (o == this) return true;
+ final Token other = (Token) o;
+ return Objects.equals(other.mBinder, mBinder);
+ }
+
+ @Override
+ public String toString() {
+ return String.format("NotificationManager.Token[0x%08x]",
+ System.identityHashCode(mBinder));
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeStrongBinder(mBinder);
+ }
+
+ public static final Parcelable.Creator<Token> CREATOR
+ = new Parcelable.Creator<Token>() {
+ @Override
+ public Token createFromParcel(Parcel in) {
+ return new Token(in.readStrongBinder());
+ }
+
+ @Override
+ public Token[] newArray(int size) {
+ return new Token[size];
+ }
+ };
+
+ /** Callback for receiving the result of a token request. */
+ public static abstract class RequestCallback {
+ /**
+ * Received if the request was granted for this package.
+ *
+ * @param token can be used to manage notification policy.
+ */
+ public abstract void onTokenGranted(Policy.Token token);
+
+ /**
+ * Received if the request was denied for this package.
+ */
+ public abstract void onTokenDenied();
+ }
+ }
+ }
+
}
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index b3aa6be..4ede5b1 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -55,6 +55,7 @@ import android.location.CountryDetector;
import android.location.ICountryDetector;
import android.location.ILocationManager;
import android.location.LocationManager;
+import android.media.AudioDevicesManager;
import android.media.AudioManager;
import android.media.MediaRouter;
import android.media.midi.IMidiManager;
@@ -693,6 +694,13 @@ final class SystemServiceRegistry {
public RadioManager createService(ContextImpl ctx) {
return new RadioManager(ctx);
}});
+
+ registerService(Context.AUDIO_DEVICES_SERVICE, AudioDevicesManager.class,
+ new CachedServiceFetcher<AudioDevicesManager>() {
+ @Override
+ public AudioDevicesManager createService(ContextImpl ctx) {
+ return new AudioDevicesManager(ctx);
+ }});
}
/**
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index a0a6c4c..44760ce 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -4210,4 +4210,20 @@ public class DevicePolicyManager {
return false;
}
}
+
+ /**
+ * Called by device owner to set the enabled state of the status bar. Disabling the status
+ * bar blocks notifications, quick settings and other screen overlays that allow escaping from
+ * a single use device.
+ *
+ * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
+ * @param enabled New state of the status bar.
+ */
+ public void setStatusBarEnabledState(ComponentName admin, boolean enabled) {
+ try {
+ mService.setStatusBarEnabledState(admin, enabled);
+ } catch (RemoteException re) {
+ Log.w(TAG, "Failed talking with device policy service", re);
+ }
+ }
}
diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl
index 131b99c..7502e1d 100644
--- a/core/java/android/app/admin/IDevicePolicyManager.aidl
+++ b/core/java/android/app/admin/IDevicePolicyManager.aidl
@@ -223,4 +223,5 @@ interface IDevicePolicyManager {
PersistableBundle getOtaPolicy();
boolean setKeyguardEnabledState(in ComponentName admin, boolean enabled);
+ void setStatusBarEnabledState(in ComponentName who, boolean enabled);
}
diff --git a/core/java/android/app/backup/BackupAgent.java b/core/java/android/app/backup/BackupAgent.java
index 2bf267a..d8556a2 100644
--- a/core/java/android/app/backup/BackupAgent.java
+++ b/core/java/android/app/backup/BackupAgent.java
@@ -283,6 +283,7 @@ public abstract class BackupAgent extends ContextWrapper {
// all of the ones we will be traversing
String rootDir = new File(appInfo.dataDir).getCanonicalPath();
String filesDir = getFilesDir().getCanonicalPath();
+ String nobackupDir = getNoBackupFilesDir().getCanonicalPath();
String databaseDir = getDatabasePath("foo").getParentFile().getCanonicalPath();
String sharedPrefsDir = getSharedPrefsFile("foo").getParentFile().getCanonicalPath();
String cacheDir = getCacheDir().getCanonicalPath();
@@ -304,6 +305,7 @@ public abstract class BackupAgent extends ContextWrapper {
filterSet.add(databaseDir);
filterSet.add(sharedPrefsDir);
filterSet.add(filesDir);
+ filterSet.add(nobackupDir);
fullBackupFileTree(packageName, FullBackup.ROOT_TREE_TOKEN, rootDir, filterSet, data);
// Now do the same for the files dir, db dir, and shared prefs dir
diff --git a/core/java/android/content/ComponentName.java b/core/java/android/content/ComponentName.java
index 547a2c3..8aeb22d 100644
--- a/core/java/android/content/ComponentName.java
+++ b/core/java/android/content/ComponentName.java
@@ -18,6 +18,7 @@ package android.content;
import android.os.Parcel;
import android.os.Parcelable;
+import android.text.TextUtils;
import java.io.PrintWriter;
import java.lang.Comparable;
@@ -37,6 +38,56 @@ public final class ComponentName implements Parcelable, Cloneable, Comparable<Co
private final String mClass;
/**
+ * Create a new component identifier where the class name may be specified
+ * as either absolute or relative to the containing package.
+ *
+ * <p>Relative package names begin with a <code>'.'</code> character. For a package
+ * <code>"com.example"</code> and class name <code>".app.MyActivity"</code> this method
+ * will return a ComponentName with the package <code>"com.example"</code>and class name
+ * <code>"com.example.app.MyActivity"</code>. Fully qualified class names are also
+ * permitted.</p>
+ *
+ * @param pkg the name of the package the component exists in
+ * @param cls the name of the class inside of <var>pkg</var> that implements
+ * the component
+ * @return the new ComponentName
+ */
+ public static ComponentName createRelative(String pkg, String cls) {
+ if (TextUtils.isEmpty(cls)) {
+ throw new IllegalArgumentException("class name cannot be empty");
+ }
+
+ final String fullName;
+ if (cls.charAt(0) == '.') {
+ // Relative to the package. Prepend the package name.
+ fullName = pkg + cls;
+ } else {
+ // Fully qualified package name.
+ fullName = cls;
+ }
+ return new ComponentName(pkg, fullName);
+ }
+
+ /**
+ * Create a new component identifier where the class name may be specified
+ * as either absolute or relative to the containing package.
+ *
+ * <p>Relative package names begin with a <code>'.'</code> character. For a package
+ * <code>"com.example"</code> and class name <code>".app.MyActivity"</code> this method
+ * will return a ComponentName with the package <code>"com.example"</code>and class name
+ * <code>"com.example.app.MyActivity"</code>. Fully qualified class names are also
+ * permitted.</p>
+ *
+ * @param pkg a Context for the package implementing the component
+ * @param cls the name of the class inside of <var>pkg</var> that implements
+ * the component
+ * @return the new ComponentName
+ */
+ public static ComponentName createRelative(Context pkg, String cls) {
+ return createRelative(pkg.getPackageName(), cls);
+ }
+
+ /**
* Create a new component identifier.
*
* @param pkg The name of the package that the component exists in. Can
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index e5e55d6..0cbf960 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -3077,6 +3077,15 @@ public abstract class Context {
*/
public static final String RADIO_SERVICE = "radio";
+ /**
+ * Use with {@link #getSystemService} to retrieve a
+ * {@link android.media.AudioDevicesManager} for handling device enumeration & notification.
+ *
+ * @see #getSystemService
+ * @see android.media.AudioDevicesManager
+ */
+ public static final String AUDIO_DEVICES_SERVICE = "audio_devices_manager";
+
/**
* Determine whether the given permission is allowed for a particular
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index 4723c0d..8d82aa2 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -609,7 +609,7 @@ public class ActivityInfo extends ComponentInfo
* attribute.
*/
public int configChanges;
-
+
/**
* The desired soft input mode for this activity's main window.
* Set from the {@link android.R.attr#windowSoftInputMode} attribute
@@ -648,6 +648,37 @@ public class ActivityInfo extends ComponentInfo
*/
public boolean resizeable;
+ /** @hide */
+ public static final int LOCK_TASK_LAUNCH_MODE_DEFAULT = 0;
+ /** @hide */
+ public static final int LOCK_TASK_LAUNCH_MODE_NEVER = 1;
+ /** @hide */
+ public static final int LOCK_TASK_LAUNCH_MODE_ALWAYS = 2;
+ /** @hide */
+ public static final int LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED = 3;
+
+ /** @hide */
+ public static final String lockTaskLaunchModeToString(int lockTaskLaunchMode) {
+ switch (lockTaskLaunchMode) {
+ case LOCK_TASK_LAUNCH_MODE_DEFAULT:
+ return "LOCK_TASK_LAUNCH_MODE_DEFAULT";
+ case LOCK_TASK_LAUNCH_MODE_NEVER:
+ return "LOCK_TASK_LAUNCH_MODE_NEVER";
+ case LOCK_TASK_LAUNCH_MODE_ALWAYS:
+ return "LOCK_TASK_LAUNCH_MODE_ALWAYS";
+ case LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED:
+ return "LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED";
+ default:
+ return "unknown=" + lockTaskLaunchMode;
+ }
+ }
+ /**
+ * Value indicating if the activity is to be locked at startup. Takes on the values from
+ * {@link android.R.attr#lockTaskMode}.
+ * @hide
+ */
+ public int lockTaskLaunchMode;
+
public ActivityInfo() {
}
@@ -665,13 +696,15 @@ public class ActivityInfo extends ComponentInfo
uiOptions = orig.uiOptions;
parentActivityName = orig.parentActivityName;
maxRecents = orig.maxRecents;
+ resizeable = orig.resizeable;
+ lockTaskLaunchMode = orig.lockTaskLaunchMode;
}
-
+
/**
* Return the theme resource identifier to use for this activity. If
* the activity defines a theme, that is used; else, the application
* theme is used.
- *
+ *
* @return The theme associated with this activity.
*/
public final int getThemeResource() {
@@ -709,7 +742,8 @@ public class ActivityInfo extends ComponentInfo
if (uiOptions != 0) {
pw.println(prefix + " uiOptions=0x" + Integer.toHexString(uiOptions));
}
- pw.println(prefix + "resizeable=" + resizeable);
+ pw.println(prefix + "resizeable=" + resizeable + " lockTaskLaunchMode="
+ + lockTaskLaunchModeToString(lockTaskLaunchMode));
super.dumpBack(pw, prefix);
}
@@ -739,6 +773,7 @@ public class ActivityInfo extends ComponentInfo
dest.writeInt(persistableMode);
dest.writeInt(maxRecents);
dest.writeInt(resizeable ? 1 : 0);
+ dest.writeInt(lockTaskLaunchMode);
}
public static final Parcelable.Creator<ActivityInfo> CREATOR
@@ -767,5 +802,6 @@ public class ActivityInfo extends ComponentInfo
persistableMode = source.readInt();
maxRecents = source.readInt();
resizeable = (source.readInt() == 1);
+ lockTaskLaunchMode = source.readInt();
}
}
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 763a017..40f4e8f 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -3159,6 +3159,9 @@ public class PackageParser {
R.styleable.AndroidManifestActivity_screenOrientation,
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
+
+ a.info.lockTaskLaunchMode =
+ sa.getInt(R.styleable.AndroidManifestActivity_lockTaskMode, 0);
} else {
a.info.launchMode = ActivityInfo.LAUNCH_MULTIPLE;
a.info.configChanges = 0;
@@ -4655,7 +4658,7 @@ public class PackageParser {
private static boolean copyNeeded(int flags, Package p,
PackageUserState state, Bundle metaData, int userId) {
- if (userId != 0) {
+ if (userId != UserHandle.USER_OWNER) {
// We always need to copy for other users, since we need
// to fix up the uid.
return true;
@@ -4737,11 +4740,9 @@ public class PackageParser {
// Make shallow copy so we can store the metadata/libraries safely
ApplicationInfo ai = new ApplicationInfo(p.applicationInfo);
- if (userId != 0) {
- ai.uid = UserHandle.getUid(userId, ai.uid);
- ai.dataDir = PackageManager.getDataDirForUser(ai.volumeUuid, ai.packageName, userId)
- .getAbsolutePath();
- }
+ ai.uid = UserHandle.getUid(userId, ai.uid);
+ ai.dataDir = PackageManager.getDataDirForUser(ai.volumeUuid, ai.packageName, userId)
+ .getAbsolutePath();
if ((flags & PackageManager.GET_META_DATA) != 0) {
ai.metaData = p.mAppMetaData;
}
@@ -4766,11 +4767,9 @@ public class PackageParser {
// This is only used to return the ResolverActivity; we will just always
// make a copy.
ai = new ApplicationInfo(ai);
- if (userId != 0) {
- ai.uid = UserHandle.getUid(userId, ai.uid);
- ai.dataDir = PackageManager.getDataDirForUser(ai.volumeUuid, ai.packageName, userId)
- .getAbsolutePath();
- }
+ ai.uid = UserHandle.getUid(userId, ai.uid);
+ ai.dataDir = PackageManager.getDataDirForUser(ai.volumeUuid, ai.packageName, userId)
+ .getAbsolutePath();
if (state.stopped) {
ai.flags |= ApplicationInfo.FLAG_STOPPED;
} else {
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index 49f6513..d88594d 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -1803,8 +1803,6 @@ public class Camera {
public Point mouth = null;
}
- // Error codes match the enum in include/ui/Camera.h
-
/**
* Unspecified camera error.
* @see Camera.ErrorCallback
@@ -1812,6 +1810,12 @@ public class Camera {
public static final int CAMERA_ERROR_UNKNOWN = 1;
/**
+ * Camera was disconnected due to use by higher priority user.
+ * @see Camera.ErrorCallback
+ */
+ public static final int CAMERA_ERROR_EVICTED = 2;
+
+ /**
* Media server died. In this case, the application must release the
* Camera object and instantiate a new one.
* @see Camera.ErrorCallback
diff --git a/core/java/android/hardware/camera2/CameraCaptureSession.java b/core/java/android/hardware/camera2/CameraCaptureSession.java
index 6b6f026..31e6e25 100644
--- a/core/java/android/hardware/camera2/CameraCaptureSession.java
+++ b/core/java/android/hardware/camera2/CameraCaptureSession.java
@@ -18,6 +18,7 @@ package android.hardware.camera2;
import android.os.Handler;
import android.view.Surface;
+
import java.util.List;
@@ -69,6 +70,61 @@ public abstract class CameraCaptureSession implements AutoCloseable {
public abstract CameraDevice getDevice();
/**
+ * <p>Pre-allocate all buffers for an output Surface.</p>
+ *
+ * <p>Normally, the image buffers for a given output Surface are allocated on-demand,
+ * to minimize startup latency and memory overhead.</p>
+ *
+ * <p>However, in some cases, it may be desirable for the buffers to be allocated before
+ * any requests targeting the Surface are actually submitted to the device. Large buffers
+ * may take some time to allocate, which can result in delays in submitting requests until
+ * sufficient buffers are allocated to reach steady-state behavior. Such delays can cause
+ * bursts to take longer than desired, or cause skips or stutters in preview output.</p>
+ *
+ * <p>The prepare() method can be used to perform this preallocation. It may only be called for
+ * a given output Surface before that Surface is used as a target for a request. The number of
+ * buffers allocated is the sum of the count needed by the consumer providing the output
+ * Surface, and the maximum number needed by the camera device to fill its pipeline. Since this
+ * may be a larger number than what is actually required for steady-state operation, using
+ * prepare may result in higher memory consumption than the normal on-demand behavior results
+ * in. Prepare() will also delay the time to first output to a given Surface, in exchange for
+ * smoother frame rate once the allocation is complete.</p>
+ *
+ * <p>For example, an application that creates an
+ * {@link android.media.ImageReader#newInstance ImageReader} with a maxImages argument of 10,
+ * but only uses 3 simultaneous Images at once would normally only cause those 3 images to be
+ * allocated (plus what is needed by the camera device for smooth operation). But using
+ * prepare() on the ImageReader Surface will result in all 10 Images being allocated. So
+ * applications using this method should take care to request only the number of buffers
+ * actually necessary for their application.</p>
+ *
+ * <p>If the same output Surface is used in consecutive sessions (without closing the first
+ * session explicitly), then its already-allocated buffers are carried over, and if it was
+ * used as a target of a capture request in the first session, prepare cannot be called on it
+ * in the second session.</p>
+ *
+ * <p>Once allocation is complete, {@link StateCallback#onSurfacePrepared} will be invoked with
+ * the Surface provided to this method. Between the prepare call and the onSurfacePrepared call,
+ * the Surface provided to prepare must not be used as a target of a CaptureRequest submitted
+ * to this session.</p>
+ *
+ * @param surface the output Surface for which buffers should be pre-allocated. Must be one of
+ * the output Surfaces used to create this session.
+ *
+ * @throws CameraAccessException if the camera device is no longer connected or has
+ * encountered a fatal error
+ * @throws IllegalStateException if this session is no longer active, either because the session
+ * was explicitly closed, a new session has been created
+ * or the camera device has been closed.
+ * @throws IllegalArgumentException if the Surface is invalid, not part of this Session, or has
+ * already been used as a target of a CaptureRequest in this
+ * session or immediately prior sessions.
+ *
+ * @see StateCallback#onSurfacePrepared
+ */
+ public abstract void prepare(Surface surface) throws CameraAccessException;
+
+ /**
* <p>Submit a request for an image to be captured by the camera device.</p>
*
* <p>The request defines all the parameters for capturing the single image,
@@ -110,9 +166,10 @@ public abstract class CameraCaptureSession implements AutoCloseable {
* was explicitly closed, a new session has been created
* or the camera device has been closed.
* @throws IllegalArgumentException if the request targets no Surfaces or Surfaces that are not
- * configured as outputs for this session. Or if a reprocess
+ * configured as outputs for this session; or a reprocess
* capture request is submitted in a non-reprocessible capture
- * session. Or if the handler is
+ * session; or the capture targets a Surface in the middle
+ * of being {@link #prepare prepared}; or the handler is
* null, the listener is not null, and the calling thread has
* no looper.
*
@@ -164,13 +221,15 @@ public abstract class CameraCaptureSession implements AutoCloseable {
* @throws IllegalStateException if this session is no longer active, either because the session
* was explicitly closed, a new session has been created
* or the camera device has been closed.
- * @throws IllegalArgumentException If the requests target no Surfaces, or target Surfaces not
- * currently configured as outputs. Or if a reprocess
+ * @throws IllegalArgumentException If the requests target no Surfaces, or the requests target
+ * Surfaces not currently configured as outputs; or a reprocess
* capture request is submitted in a non-reprocessible capture
- * session. Or if the list of requests contains both requests
- * to capture images from the camera and reprocess capture
- * requests. Or if the handler is null, the listener is not
- * null, and the calling thread has no looper.
+ * session; or the list of requests contains both requests to
+ * capture images from the camera and reprocess capture
+ * requests; or one of the captures targets a Surface in the
+ * middle of being {@link #prepare prepared}; or if the handler
+ * is null, the listener is not null, and the calling thread
+ * has no looper.
*
* @see #capture
* @see #setRepeatingRequest
@@ -230,11 +289,12 @@ public abstract class CameraCaptureSession implements AutoCloseable {
* @throws IllegalStateException if this session is no longer active, either because the session
* was explicitly closed, a new session has been created
* or the camera device has been closed.
- * @throws IllegalArgumentException If the requests reference no Surfaces or Surfaces that are
- * not currently configured as outputs. Or if the request is
- * a reprocess capture request. Or if the handler is null, the
- * listener is not null, and the calling thread has no looper.
- * Or if no requests were passed in.
+ * @throws IllegalArgumentException If the request references no Surfaces or references Surfaces
+ * that are not currently configured as outputs; or the request
+ * is a reprocess capture request; or the capture targets a
+ * Surface in the middle of being {@link #prepare prepared}; or
+ * the handler is null, the listener is not null, and the
+ * calling thread has no looper; or no requests were passed in.
*
* @see #capture
* @see #captureBurst
@@ -299,11 +359,13 @@ public abstract class CameraCaptureSession implements AutoCloseable {
* @throws IllegalStateException if this session is no longer active, either because the session
* was explicitly closed, a new session has been created
* or the camera device has been closed.
- * @throws IllegalArgumentException If the requests reference no Surfaces or Surfaces not
- * currently configured as outputs. Or if one of the requests
- * is a reprocess capture request. Or if the handler is null,
- * the listener is not null, and the calling thread has no
- * looper. Or if no requests were passed in.
+ * @throws IllegalArgumentException If the requests reference no Surfaces or reference Surfaces
+ * not currently configured as outputs; or one of the requests
+ * is a reprocess capture request; or one of the captures
+ * targets a Surface in the middle of being
+ * {@link #prepare prepared}; or the handler is null, the
+ * listener is not null, and the calling thread has no looper;
+ * or no requests were passed in.
*
* @see #capture
* @see #captureBurst
@@ -514,6 +576,25 @@ public abstract class CameraCaptureSession implements AutoCloseable {
public void onClosed(CameraCaptureSession session) {
// default empty implementation
}
+
+ /**
+ * This method is called when the buffer pre-allocation for an output Surface is complete.
+ *
+ * <p>Buffer pre-allocation for an output Surface is started by the {@link #prepare} call.
+ * While allocation is underway, the Surface must not be used as a capture target.
+ * Once this callback fires, the output Surface provided can again be used as a target for
+ * a capture request.</p>
+ *
+ * <p>In case of a error during pre-allocation (such as running out of suitable memory),
+ * this callback is still invoked after the error is encountered, though some buffers may
+ * not have been successfully pre-allocated.</p>
+ *
+ * @param session the session returned by {@link CameraDevice#createCaptureSession}
+ * @param surface the Surface that was used with the {@link #prepare} call.
+ */
+ public void onSurfacePrepared(CameraCaptureSession session, Surface surface) {
+ // default empty implementation
+ }
}
/**
diff --git a/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl b/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl
index ca0935c..151c918 100644
--- a/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl
+++ b/core/java/android/hardware/camera2/ICameraDeviceCallbacks.aidl
@@ -31,4 +31,5 @@ interface ICameraDeviceCallbacks
oneway void onCaptureStarted(in CaptureResultExtras resultExtras, long timestamp);
oneway void onResultReceived(in CameraMetadataNative result,
in CaptureResultExtras resultExtras);
+ oneway void onPrepared(int streamId);
}
diff --git a/core/java/android/hardware/camera2/ICameraDeviceUser.aidl b/core/java/android/hardware/camera2/ICameraDeviceUser.aidl
index 23bfa66..375b310 100644
--- a/core/java/android/hardware/camera2/ICameraDeviceUser.aidl
+++ b/core/java/android/hardware/camera2/ICameraDeviceUser.aidl
@@ -98,4 +98,6 @@ interface ICameraDeviceUser
int waitUntilIdle();
int flush(out LongParcelable lastFrameNumber);
+
+ int prepare(int streamId);
}
diff --git a/core/java/android/hardware/camera2/impl/CallbackProxies.java b/core/java/android/hardware/camera2/impl/CallbackProxies.java
index f0217ac..dac2ef8 100644
--- a/core/java/android/hardware/camera2/impl/CallbackProxies.java
+++ b/core/java/android/hardware/camera2/impl/CallbackProxies.java
@@ -23,6 +23,7 @@ import android.hardware.camera2.CaptureResult;
import android.hardware.camera2.TotalCaptureResult;
import android.hardware.camera2.dispatch.Dispatchable;
import android.hardware.camera2.dispatch.MethodNameInvoker;
+import android.view.Surface;
import static com.android.internal.util.Preconditions.*;
@@ -175,6 +176,12 @@ public class CallbackProxies {
public void onClosed(CameraCaptureSession session) {
mProxy.invoke("onClosed", session);
}
+
+ @Override
+ public void onSurfacePrepared(CameraCaptureSession session, Surface surface) {
+ mProxy.invoke("onSurfacePrepared", session, surface);
+ }
+
}
private CallbackProxies() {
diff --git a/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java b/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
index fb5b13c..c74204d 100644
--- a/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
+++ b/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java
@@ -144,6 +144,11 @@ public class CameraCaptureSessionImpl extends CameraCaptureSession {
}
@Override
+ public void prepare(Surface surface) throws CameraAccessException {
+ mDeviceImpl.prepare(surface);
+ }
+
+ @Override
public synchronized int capture(CaptureRequest request, CaptureCallback callback,
Handler handler) throws CameraAccessException {
if (request == null) {
@@ -589,6 +594,13 @@ public class CameraCaptureSessionImpl extends CameraCaptureSession {
}
}
}
+
+ @Override
+ public void onSurfacePrepared(Surface surface) {
+ if (VERBOSE) Log.v(TAG, mIdString + "onPrepared");
+ mStateCallback.onSurfacePrepared(session, surface);
+ }
+
};
}
diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
index 91388c3..1e680dfd 100644
--- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
+++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
@@ -605,6 +605,29 @@ public class CameraDeviceImpl extends CameraDevice {
}
}
+ public void prepare(Surface surface) throws CameraAccessException {
+ synchronized(mInterfaceLock) {
+ int streamId = -1;
+ for (int i = 0; i < mConfiguredOutputs.size(); i++) {
+ if (surface == mConfiguredOutputs.valueAt(i).getSurface()) {
+ streamId = mConfiguredOutputs.keyAt(i);
+ break;
+ }
+ }
+ if (streamId == -1) {
+ throw new IllegalArgumentException("Surface is not part of this session");
+ }
+ try {
+ mRemoteDevice.prepare(streamId);
+ } catch (CameraRuntimeException e) {
+ throw e.asChecked();
+ } catch (RemoteException e) {
+ // impossible
+ return;
+ }
+ }
+ }
+
public int capture(CaptureRequest request, CaptureCallback callback, Handler handler)
throws CameraAccessException {
if (DEBUG) {
@@ -1056,6 +1079,14 @@ public class CameraDeviceImpl extends CameraDevice {
public void onIdle(CameraDevice camera) {
// Default empty implementation
}
+
+ /**
+ * The method called when the camera device has finished preparing
+ * an output Surface
+ */
+ public void onSurfacePrepared(Surface surface) {
+ // Default empty implementation
+ }
}
static class CaptureCallbackHolder {
@@ -1643,6 +1674,31 @@ public class CameraDeviceImpl extends CameraDevice {
}
}
+ @Override
+ public void onPrepared(int streamId) {
+ final OutputConfiguration output;
+ final StateCallbackKK sessionCallback;
+
+ if (DEBUG) {
+ Log.v(TAG, "Stream " + streamId + " is prepared");
+ }
+
+ synchronized(mInterfaceLock) {
+ output = mConfiguredOutputs.get(streamId);
+ sessionCallback = mSessionStateCallback;
+ }
+
+ if (sessionCallback == null) return;
+
+ if (output == null) {
+ Log.w(TAG, "onPrepared invoked for unknown output Surface");
+ return;
+ }
+ final Surface surface = output.getSurface();
+
+ sessionCallback.onSurfacePrepared(surface);
+ }
+
/**
* Called by onDeviceError for handling single-capture failures.
*/
diff --git a/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java b/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java
index 4cd9414..abe26ea 100644
--- a/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java
+++ b/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java
@@ -252,6 +252,11 @@ public class CameraDeviceUserShim implements ICameraDeviceUser {
}
@Override
+ public void onPrepared(int streamId) {
+ // TODO
+ }
+
+ @Override
public IBinder asBinder() {
// This is solely intended to be used for in-process binding.
return null;
@@ -617,6 +622,19 @@ public class CameraDeviceUserShim implements ICameraDeviceUser {
return CameraBinderDecorator.NO_ERROR;
}
+ public int prepare(int streamId) {
+ if (DEBUG) {
+ Log.d(TAG, "prepare called.");
+ }
+ if (mLegacyDevice.isClosed()) {
+ Log.e(TAG, "Cannot prepare stream, device has been closed.");
+ return CameraBinderDecorator.ENODEV;
+ }
+
+ // TODO: Implement and fire callback
+ return CameraBinderDecorator.NO_ERROR;
+ }
+
@Override
public IBinder asBinder() {
// This is solely intended to be used for in-process binding.
diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java
index 5f85e7d..0d7b261 100644
--- a/core/java/android/hardware/fingerprint/FingerprintManager.java
+++ b/core/java/android/hardware/fingerprint/FingerprintManager.java
@@ -56,7 +56,7 @@ public class FingerprintManager {
private static final boolean DEBUG = true;
private static final int MSG_ENROLL_RESULT = 100;
private static final int MSG_ACQUIRED = 101;
- private static final int MSG_PROCESSED = 102;
+ private static final int MSG_AUTHENTICATED = 102;
private static final int MSG_ERROR = 103;
private static final int MSG_REMOVED = 104;
@@ -103,6 +103,11 @@ public class FingerprintManager {
*/
public static final int FINGERPRINT_ERROR_UNABLE_TO_REMOVE = 6;
+ /**
+ * The operation was canceled because the API is locked out due to too many attempts.
+ */
+ public static final int FINGERPRINT_ERROR_LOCKOUT = 7;
+
/**
* Hardware vendors may extend this list if there are conditions that do not fall under one of
* the above categories. Vendors are responsible for providing error strings for these errors.
@@ -169,15 +174,9 @@ public class FingerprintManager {
private Fingerprint mRemovalFingerprint;
private class OnEnrollCancelListener implements OnCancelListener {
- private long mChallenge;
-
- public OnEnrollCancelListener(long challenge) {
- mChallenge = challenge;
- }
-
@Override
public void onCancel() {
- cancelEnrollment(mChallenge);
+ cancelEnrollment();
}
}
@@ -200,12 +199,12 @@ public class FingerprintManager {
*/
public static class CryptoObject {
- CryptoObject(Signature signature) {
+ public CryptoObject(Signature signature) {
mSignature = signature;
mCipher = null;
}
- CryptoObject(Cipher cipher) {
+ public CryptoObject(Cipher cipher) {
mCipher = cipher;
mSignature = null;
}
@@ -437,14 +436,14 @@ public class FingerprintManager {
* {@link EnrollmentCallback#onEnrollmentProgress(int) is called with remaining == 0, at
* which point the object is no longer valid. The operation can be canceled by using the
* provided cancel object.
- * @param challenge a unique id provided by a recent verification of device credentials
- * (e.g. pin, pattern or password).
+ * @param token a unique token provided by a recent creation or verification of device
+ * credentials (e.g. pin, pattern or password).
* @param cancel an object that can be used to cancel enrollment
* @param callback an object to receive enrollment events
* @param flags optional flags
* @hide
*/
- public void enroll(long challenge, CancellationSignal cancel, EnrollmentCallback callback,
+ public void enroll(byte [] token, CancellationSignal cancel, EnrollmentCallback callback,
int flags) {
if (callback == null) {
throw new IllegalArgumentException("Must supply an enrollment callback");
@@ -455,13 +454,13 @@ public class FingerprintManager {
Log.w(TAG, "enrollment already canceled");
return;
} else {
- cancel.setOnCancelListener(new OnEnrollCancelListener(challenge));
+ cancel.setOnCancelListener(new OnEnrollCancelListener());
}
}
if (mService != null) try {
mEnrollmentCallback = callback;
- mService.enroll(mToken, challenge, getCurrentUserId(), mServiceReceiver, flags);
+ mService.enroll(mToken, token, getCurrentUserId(), mServiceReceiver, flags);
} catch (RemoteException e) {
Log.w(TAG, "Remote exception in enroll: ", e);
if (callback != null) {
@@ -536,9 +535,9 @@ public class FingerprintManager {
*
* @hide
*/
- public List<Fingerprint> getEnrolledFingerprints() {
+ public List<Fingerprint> getEnrolledFingerprints(int userId) {
if (mService != null) try {
- return mService.getEnrolledFingerprints(getCurrentUserId());
+ return mService.getEnrolledFingerprints(userId);
} catch (RemoteException e) {
Log.v(TAG, "Remote exception in getEnrolledFingerprints: ", e);
}
@@ -546,11 +545,34 @@ public class FingerprintManager {
}
/**
- * Determine if fingerprint hardware is present and functional.
- * @return true if hardware is present and functional, false otherwise.
+ * Obtain the list of enrolled fingerprints templates.
+ * @return list of current fingerprint items
*
* @hide
*/
+ public List<Fingerprint> getEnrolledFingerprints() {
+ return getEnrolledFingerprints(UserHandle.myUserId());
+ }
+
+ /**
+ * Determine if there is at least one fingerprint enrolled.
+ *
+ * @return true if at least one fingerprint is enrolled, false otherwise
+ */
+ public boolean hasEnrolledFingerprints() {
+ if (mService != null) try {
+ return mService.hasEnrolledFingerprints(UserHandle.myUserId());
+ } catch (RemoteException e) {
+ Log.v(TAG, "Remote exception in getEnrolledFingerprints: ", e);
+ }
+ return false;
+ }
+
+ /**
+ * Determine if fingerprint hardware is present and functional.
+ *
+ * @return true if hardware is present and functional, false otherwise.
+ */
public boolean isHardwareDetected() {
if (mService != null) {
try {
@@ -574,8 +596,8 @@ public class FingerprintManager {
case MSG_ACQUIRED:
sendAcquiredResult((Long) msg.obj /* deviceId */, msg.arg1 /* acquire info */);
break;
- case MSG_PROCESSED:
- sendProcessedResult((Fingerprint) msg.obj);
+ case MSG_AUTHENTICATED:
+ sendAuthenticatedResult((Fingerprint) msg.obj);
break;
case MSG_ERROR:
sendErrorResult((Long) msg.obj /* deviceId */, msg.arg1 /* errMsgId */);
@@ -617,7 +639,7 @@ public class FingerprintManager {
}
}
- private void sendProcessedResult(Fingerprint fp) {
+ private void sendAuthenticatedResult(Fingerprint fp) {
if (mAuthenticationCallback != null) {
if (fp.getFingerId() == 0 && fp.getGroupId() == 0) {
// Fingerprint template valid but doesn't match one in database
@@ -667,7 +689,7 @@ public class FingerprintManager {
mRemovalCallback = null;
}
- private void cancelEnrollment(long challenge) {
+ private void cancelEnrollment() {
if (mService != null) try {
mService.cancelEnrollment(mToken);
} catch (RemoteException e) {
@@ -695,8 +717,11 @@ public class FingerprintManager {
return mContext.getString(
com.android.internal.R.string.fingerprint_error_no_space);
case FINGERPRINT_ERROR_TIMEOUT:
- return mContext.getString(
- com.android.internal.R.string.fingerprint_error_timeout);
+ return mContext.getString(com.android.internal.R.string.fingerprint_error_timeout);
+ case FINGERPRINT_ERROR_CANCELED:
+ return mContext.getString(com.android.internal.R.string.fingerprint_error_canceled);
+ case FINGERPRINT_ERROR_LOCKOUT:
+ return mContext.getString(com.android.internal.R.string.fingerprint_error_lockout);
default:
if (errMsg >= FINGERPRINT_ERROR_VENDOR_BASE) {
int msgNumber = errMsg - FINGERPRINT_ERROR_VENDOR_BASE;
@@ -753,8 +778,8 @@ public class FingerprintManager {
mHandler.obtainMessage(MSG_ACQUIRED, acquireInfo, 0, deviceId).sendToTarget();
}
- public void onProcessed(long deviceId, int fingerId, int groupId) {
- mHandler.obtainMessage(MSG_PROCESSED,
+ public void onAuthenticated(long deviceId, int fingerId, int groupId) {
+ mHandler.obtainMessage(MSG_AUTHENTICATED,
new Fingerprint(null, groupId, fingerId, deviceId)).sendToTarget();
}
diff --git a/core/java/android/hardware/fingerprint/IFingerprintService.aidl b/core/java/android/hardware/fingerprint/IFingerprintService.aidl
index 2fcb20e..51a0e4c 100644
--- a/core/java/android/hardware/fingerprint/IFingerprintService.aidl
+++ b/core/java/android/hardware/fingerprint/IFingerprintService.aidl
@@ -33,7 +33,7 @@ interface IFingerprintService {
void cancelAuthentication(IBinder token);
// Start fingerprint enrollment
- void enroll(IBinder token, long challenge, int groupId, IFingerprintServiceReceiver receiver,
+ void enroll(IBinder token, in byte [] cryptoToken, int groupId, IFingerprintServiceReceiver receiver,
int flags);
// Cancel enrollment in progress
@@ -54,6 +54,9 @@ interface IFingerprintService {
// Get a pre-enrollment authentication token
long preEnroll(IBinder token);
+ // Determine if a user has at least one enrolled fingerprint
+ boolean hasEnrolledFingerprints(int groupId);
+
// Gets the number of hardware devices
// int getHardwareDeviceCount();
diff --git a/core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl b/core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl
index e82395f..a2d74b8 100644
--- a/core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl
+++ b/core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl
@@ -25,7 +25,7 @@ import android.os.UserHandle;
oneway interface IFingerprintServiceReceiver {
void onEnrollResult(long deviceId, int fingerId, int groupId, int remaining);
void onAcquired(long deviceId, int acquiredInfo);
- void onProcessed(long deviceId, int fingerId, int groupId);
+ void onAuthenticated(long deviceId, int fingerId, int groupId);
void onError(long deviceId, int error);
void onRemoved(long deviceId, int fingerId, int groupId);
}
diff --git a/core/java/android/hardware/location/GeofenceHardwareImpl.java b/core/java/android/hardware/location/GeofenceHardwareImpl.java
index 5d40e94..ee2d43c 100644
--- a/core/java/android/hardware/location/GeofenceHardwareImpl.java
+++ b/core/java/android/hardware/location/GeofenceHardwareImpl.java
@@ -41,6 +41,7 @@ import java.util.Iterator;
public final class GeofenceHardwareImpl {
private static final String TAG = "GeofenceHardwareImpl";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
+ private static final int FIRST_VERSION_WITH_CAPABILITIES = 2;
private final Context mContext;
private static GeofenceHardwareImpl sInstance;
@@ -54,6 +55,7 @@ public final class GeofenceHardwareImpl {
private IFusedGeofenceHardware mFusedService;
private IGpsGeofenceHardware mGpsService;
private int mCapabilities;
+ private int mVersion = 1;
private int[] mSupportedMonitorTypes = new int[GeofenceHardware.NUM_MONITORS];
@@ -145,8 +147,10 @@ public final class GeofenceHardwareImpl {
private void updateFusedHardwareAvailability() {
boolean fusedSupported;
try {
+ final boolean hasGnnsCapabilities = (mVersion < FIRST_VERSION_WITH_CAPABILITIES)
+ || (mCapabilities & CAPABILITY_GNSS) != 0;
fusedSupported = (mFusedService != null
- ? mFusedService.isSupported() && (mCapabilities & CAPABILITY_GNSS) != 0
+ ? mFusedService.isSupported() && hasGnnsCapabilities
: false);
} catch (RemoteException e) {
Log.e(TAG, "RemoteException calling LocationManagerService");
@@ -177,6 +181,11 @@ public final class GeofenceHardwareImpl {
updateFusedHardwareAvailability();
}
+ public void setVersion(int version) {
+ mVersion = version;
+ updateFusedHardwareAvailability();
+ }
+
public void setFusedGeofenceHardware(IFusedGeofenceHardware service) {
if(mFusedService == null) {
mFusedService = service;
@@ -230,7 +239,12 @@ public final class GeofenceHardwareImpl {
case GeofenceHardware.MONITORING_TYPE_GPS_HARDWARE:
return CAPABILITY_GNSS;
case GeofenceHardware.MONITORING_TYPE_FUSED_HARDWARE:
- return mCapabilities;
+ if (mVersion >= FIRST_VERSION_WITH_CAPABILITIES) {
+ return mCapabilities;
+ }
+ // This was the implied capability on old FLP HAL versions that didn't
+ // have the capability callback.
+ return CAPABILITY_GNSS;
}
break;
}
diff --git a/core/java/android/hardware/location/IFusedLocationHardware.aidl b/core/java/android/hardware/location/IFusedLocationHardware.aidl
index 3de766a..2ea4d23 100644
--- a/core/java/android/hardware/location/IFusedLocationHardware.aidl
+++ b/core/java/android/hardware/location/IFusedLocationHardware.aidl
@@ -121,4 +121,9 @@ interface IFusedLocationHardware {
* of the locations returned in this call.
*/
void flushBatchedLocations() = 11;
+
+ /**
+ * Returns the version of this FLP HAL implementation.
+ */
+ int getVersion() = 12;
}
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index 8fb4e76..ce1b01e 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -286,6 +286,14 @@ public class ConnectivityManager {
public static final String EXTRA_IS_CAPTIVE_PORTAL = "captivePortal";
/**
+ * Action used to display a dialog that asks the user whether to connect to a network that is
+ * not validated. This intent is used to start the dialog in settings via startActivity.
+ *
+ * @hide
+ */
+ public static final String ACTION_PROMPT_UNVALIDATED = "android.net.conn.PROMPT_UNVALIDATED";
+
+ /**
* The absence of a connection type.
* @hide
*/
@@ -2463,6 +2471,29 @@ public class ConnectivityManager {
}
/**
+ * Informs the system whether it should switch to {@code network} regardless of whether it is
+ * validated or not. If {@code accept} is true, and the network was explicitly selected by the
+ * user (e.g., by selecting a Wi-Fi network in the Settings app), then the network will become
+ * the system default network regardless of any other network that's currently connected. If
+ * {@code always} is true, then the choice is remembered, so that the next time the user
+ * connects to this network, the system will switch to it.
+ *
+ * <p>This method requires the caller to hold the permission
+ * {@link android.Manifest.permission#CONNECTIVITY_INTERNAL}
+ *
+ * @param network The network to accept.
+ * @param accept Whether to accept the network even if unvalidated.
+ * @param always Whether to remember this choice in the future.
+ *
+ * @hide
+ */
+ public void setAcceptUnvalidated(Network network, boolean accept, boolean always) {
+ try {
+ mService.setAcceptUnvalidated(network, accept, always);
+ } catch (RemoteException e) {}
+ }
+
+ /**
* Resets all connectivity manager settings back to factory defaults.
* @hide
*/
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl
index 43dd7c9..055f1ab 100644
--- a/core/java/android/net/IConnectivityManager.aidl
+++ b/core/java/android/net/IConnectivityManager.aidl
@@ -155,6 +155,8 @@ interface IConnectivityManager
void releaseNetworkRequest(in NetworkRequest networkRequest);
+ void setAcceptUnvalidated(in Network network, boolean accept, boolean always);
+
int getRestoreDefaultNetworkDelay(int networkType);
boolean addVpnAddress(String address, int prefixLength);
diff --git a/core/java/android/net/Network.java b/core/java/android/net/Network.java
index 65d325a1..67ecb5d 100644
--- a/core/java/android/net/Network.java
+++ b/core/java/android/net/Network.java
@@ -340,6 +340,35 @@ public class Network implements Parcelable {
}
}
+ /**
+ * Returns a handle representing this {@code Network}, for use with the NDK API.
+ */
+ public long getNetworkHandle() {
+ // The network handle is explicitly not the same as the netId.
+ //
+ // The netId is an implementation detail which might be changed in the
+ // future, or which alone (i.e. in the absence of some additional
+ // context) might not be sufficient to fully identify a Network.
+ //
+ // As such, the intention is to prevent accidental misuse of the API
+ // that might result if a developer assumed that handles and netIds
+ // were identical and passing a netId to a call expecting a handle
+ // "just worked". Such accidental misuse, if widely deployed, might
+ // prevent future changes to the semantics of the netId field or
+ // inhibit the expansion of state required for Network objects.
+ //
+ // This extra layer of indirection might be seen as paranoia, and might
+ // never end up being necessary, but the added complexity is trivial.
+ // At some future date it may be desirable to realign the handle with
+ // Multiple Provisioning Domains API recommendations, as made by the
+ // IETF mif working group.
+ //
+ // The HANDLE_MAGIC value MUST be kept in sync with the corresponding
+ // value in the native/android/net.c NDK implementation.
+ final long HANDLE_MAGIC = 0xfacade;
+ return (((long) netId) << 32) | HANDLE_MAGIC;
+ }
+
// implement the Parcelable interface
public int describeContents() {
return 0;
diff --git a/core/java/android/net/NetworkAgent.java b/core/java/android/net/NetworkAgent.java
index a955bbb..3f2dd28 100644
--- a/core/java/android/net/NetworkAgent.java
+++ b/core/java/android/net/NetworkAgent.java
@@ -108,7 +108,7 @@ public abstract class NetworkAgent extends Handler {
public static final int EVENT_UID_RANGES_REMOVED = BASE + 6;
/**
- * Sent by ConnectivitySerice to the NetworkAgent to inform the agent of the
+ * Sent by ConnectivityService to the NetworkAgent to inform the agent of the
* networks status - whether we could use the network or could not, due to
* either a bad network configuration (no internet link) or captive portal.
*
@@ -123,9 +123,21 @@ public abstract class NetworkAgent extends Handler {
* Sent by the NetworkAgent to ConnectivityService to indicate this network was
* explicitly selected. This should be sent before the NetworkInfo is marked
* CONNECTED so it can be given special treatment at that time.
+ *
+ * obj = boolean indicating whether to use this network even if unvalidated
*/
public static final int EVENT_SET_EXPLICITLY_SELECTED = BASE + 8;
+ /**
+ * Sent by ConnectivityService to the NetworkAgent to inform the agent of
+ * whether the network should in the future be used even if not validated.
+ * This decision is made by the user, but it is the network transport's
+ * responsibility to remember it.
+ *
+ * arg1 = 1 if true, 0 if false
+ */
+ public static final int CMD_SAVE_ACCEPT_UNVALIDATED = BASE + 9;
+
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
NetworkCapabilities nc, LinkProperties lp, int score) {
this(looper, context, logTag, ni, nc, lp, score, null);
@@ -195,6 +207,9 @@ public abstract class NetworkAgent extends Handler {
networkStatus(msg.arg1);
break;
}
+ case CMD_SAVE_ACCEPT_UNVALIDATED: {
+ saveAcceptUnvalidated(msg.arg1 != 0);
+ }
}
}
@@ -262,10 +277,16 @@ public abstract class NetworkAgent extends Handler {
/**
* Called by the bearer to indicate this network was manually selected by the user.
* This should be called before the NetworkInfo is marked CONNECTED so that this
- * Network can be given special treatment at that time.
+ * Network can be given special treatment at that time. If {@code acceptUnvalidated} is
+ * {@code true}, then the system will switch to this network. If it is {@code false} and the
+ * network cannot be validated, the system will ask the user whether to switch to this network.
+ * If the user confirms and selects "don't ask again", then the system will call
+ * {@link #saveAcceptUnvalidated} to persist the user's choice. Thus, if the transport ever
+ * calls this method with {@code acceptUnvalidated} set to {@code false}, it must also implement
+ * {@link #saveAcceptUnvalidated} to respect the user's choice.
*/
- public void explicitlySelected() {
- queueOrSendMessage(EVENT_SET_EXPLICITLY_SELECTED, 0);
+ public void explicitlySelected(boolean acceptUnvalidated) {
+ queueOrSendMessage(EVENT_SET_EXPLICITLY_SELECTED, acceptUnvalidated);
}
/**
@@ -294,6 +315,16 @@ public abstract class NetworkAgent extends Handler {
protected void networkStatus(int status) {
}
+ /**
+ * Called when the user asks to remember the choice to use this network even if unvalidated.
+ * The transport is responsible for remembering the choice, and the next time the user connects
+ * to the network, should explicitlySelected with {@code acceptUnvalidated} set to {@code true}.
+ * This method will only be called if {@link #explicitlySelected} was called with
+ * {@code acceptUnvalidated} set to {@code false}.
+ */
+ protected void saveAcceptUnvalidated(boolean accept) {
+ }
+
protected void log(String s) {
Log.d(LOG_TAG, "NetworkAgent: " + s);
}
diff --git a/core/java/android/net/NetworkMisc.java b/core/java/android/net/NetworkMisc.java
index b92c9e3..5511a24 100644
--- a/core/java/android/net/NetworkMisc.java
+++ b/core/java/android/net/NetworkMisc.java
@@ -45,6 +45,13 @@ public class NetworkMisc implements Parcelable {
public boolean explicitlySelected;
/**
+ * Set if the user desires to use this network even if it is unvalidated. This field has meaning
+ * only if {#link explicitlySelected} is true. If it is, this field must also be set to the
+ * appropriate value based on previous user choice.
+ */
+ public boolean acceptUnvalidated;
+
+ /**
* For mobile networks, this is the subscriber ID (such as IMSI).
*/
public String subscriberId;
@@ -56,6 +63,7 @@ public class NetworkMisc implements Parcelable {
if (nm != null) {
allowBypass = nm.allowBypass;
explicitlySelected = nm.explicitlySelected;
+ acceptUnvalidated = nm.acceptUnvalidated;
subscriberId = nm.subscriberId;
}
}
@@ -69,6 +77,7 @@ public class NetworkMisc implements Parcelable {
public void writeToParcel(Parcel out, int flags) {
out.writeInt(allowBypass ? 1 : 0);
out.writeInt(explicitlySelected ? 1 : 0);
+ out.writeInt(acceptUnvalidated ? 1 : 0);
out.writeString(subscriberId);
}
@@ -78,6 +87,7 @@ public class NetworkMisc implements Parcelable {
NetworkMisc networkMisc = new NetworkMisc();
networkMisc.allowBypass = in.readInt() != 0;
networkMisc.explicitlySelected = in.readInt() != 0;
+ networkMisc.acceptUnvalidated = in.readInt() != 0;
networkMisc.subscriberId = in.readString();
return networkMisc;
}
diff --git a/core/java/android/nfc/cardemulation/ApduServiceInfo.java b/core/java/android/nfc/cardemulation/ApduServiceInfo.java
index 00b2ee3..f10e530 100644
--- a/core/java/android/nfc/cardemulation/ApduServiceInfo.java
+++ b/core/java/android/nfc/cardemulation/ApduServiceInfo.java
@@ -40,6 +40,7 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -262,7 +263,7 @@ public final class ApduServiceInfo implements Parcelable {
* for that category.
* @return List of AIDs registered by the service
*/
- public ArrayList<String> getAids() {
+ public List<String> getAids() {
final ArrayList<String> aids = new ArrayList<String>();
for (AidGroup group : getAidGroups()) {
aids.addAll(group.aids);
@@ -270,6 +271,18 @@ public final class ApduServiceInfo implements Parcelable {
return aids;
}
+ public List<String> getPrefixAids() {
+ final ArrayList<String> prefixAids = new ArrayList<String>();
+ for (AidGroup group : getAidGroups()) {
+ for (String aid : group.aids) {
+ if (aid.endsWith("*")) {
+ prefixAids.add(aid);
+ }
+ }
+ }
+ return prefixAids;
+ }
+
/**
* Returns the registered AID group for this category.
*/
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java
index b4a4624..64562a4 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -187,6 +187,13 @@ public class Binder implements IBinder {
}
/**
+ * Call blocks until the number of executing binder threads is less
+ * than the maximum number of binder threads allowed for this process.
+ * @hide
+ */
+ public static final native void blockUntilThreadAvailable();
+
+ /**
* Default constructor initializes the object.
*/
public Binder() {
diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java
index 360e5c68..75b1101 100644
--- a/core/java/android/os/Debug.java
+++ b/core/java/android/os/Debug.java
@@ -1181,7 +1181,7 @@ href="{@docRoot}guide/developing/tools/traceview.html">Traceview: A Graphical Lo
/**
* Returns a map of the names/values of the runtime statistics
- * that {@link #getRuntimeStat()} supports.
+ * that {@link #getRuntimeStat(String)} supports.
*
* @return a map of the names/values of the supported runtime statistics.
* @hide
diff --git a/core/java/android/os/storage/DiskInfo.java b/core/java/android/os/storage/DiskInfo.java
index 4704b67..dc96640 100644
--- a/core/java/android/os/storage/DiskInfo.java
+++ b/core/java/android/os/storage/DiskInfo.java
@@ -16,6 +16,7 @@
package android.os.storage;
+import android.annotation.NonNull;
import android.content.res.Resources;
import android.os.Parcel;
import android.os.Parcelable;
@@ -33,6 +34,8 @@ import java.io.CharArrayWriter;
* @hide
*/
public class DiskInfo implements Parcelable {
+ public static final String EXTRA_DISK_ID = "android.os.storage.extra.DISK_ID";
+
public static final int FLAG_ADOPTABLE = 1 << 0;
public static final int FLAG_DEFAULT_PRIMARY = 1 << 1;
public static final int FLAG_SD = 1 << 2;
@@ -42,7 +45,7 @@ public class DiskInfo implements Parcelable {
public final int flags;
public long size;
public String label;
- public String[] volumes;
+ public String[] volumeIds;
public DiskInfo(String id, int flags) {
this.id = Preconditions.checkNotNull(id);
@@ -54,7 +57,11 @@ public class DiskInfo implements Parcelable {
flags = parcel.readInt();
size = parcel.readLong();
label = parcel.readString();
- volumes = parcel.readStringArray();
+ volumeIds = parcel.readStringArray();
+ }
+
+ public @NonNull String getId() {
+ return id;
}
public String getDescription() {
@@ -68,6 +75,18 @@ public class DiskInfo implements Parcelable {
}
}
+ public boolean isSd() {
+ return (flags & FLAG_SD) != 0;
+ }
+
+ public boolean isUsb() {
+ return (flags & FLAG_USB) != 0;
+ }
+
+ public boolean isAdoptable() {
+ return (flags & FLAG_ADOPTABLE) != 0;
+ }
+
@Override
public String toString() {
final CharArrayWriter writer = new CharArrayWriter();
@@ -82,7 +101,7 @@ public class DiskInfo implements Parcelable {
pw.printPair("flags", DebugUtils.flagsToString(getClass(), "FLAG_", flags));
pw.printPair("size", size);
pw.printPair("label", label);
- pw.printPair("volumes", volumes);
+ pw.printPair("volumeIds", volumeIds);
pw.decreaseIndent();
pw.println();
}
@@ -122,6 +141,6 @@ public class DiskInfo implements Parcelable {
parcel.writeInt(this.flags);
parcel.writeLong(size);
parcel.writeString(label);
- parcel.writeStringArray(volumes);
+ parcel.writeStringArray(volumeIds);
}
}
diff --git a/core/java/android/os/storage/IMountService.java b/core/java/android/os/storage/IMountService.java
index 10ffd48..0a8187e 100644
--- a/core/java/android/os/storage/IMountService.java
+++ b/core/java/android/os/storage/IMountService.java
@@ -923,12 +923,13 @@ public interface IMountService extends IInterface {
}
@Override
- public VolumeInfo[] getVolumes() throws RemoteException {
+ public VolumeInfo[] getVolumes(int _flags) throws RemoteException {
Parcel _data = Parcel.obtain();
Parcel _reply = Parcel.obtain();
VolumeInfo[] _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeInt(_flags);
mRemote.transact(Stub.TRANSACTION_getVolumes, _data, _reply, 0);
_reply.readException();
_result = _reply.createTypedArray(VolumeInfo.CREATOR);
@@ -1029,6 +1030,39 @@ public interface IMountService extends IInterface {
_data.recycle();
}
}
+
+ @Override
+ public void setVolumeNickname(String volId, String nickname) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(volId);
+ _data.writeString(nickname);
+ mRemote.transact(Stub.TRANSACTION_setVolumeNickname, _data, _reply, 0);
+ _reply.readException();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ }
+
+ @Override
+ public void setVolumeUserFlags(String volId, int flags, int mask) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeString(volId);
+ _data.writeInt(flags);
+ _data.writeInt(mask);
+ mRemote.transact(Stub.TRANSACTION_setVolumeUserFlags, _data, _reply, 0);
+ _reply.readException();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ }
}
private static final String DESCRIPTOR = "IMountService";
@@ -1132,6 +1166,9 @@ public interface IMountService extends IInterface {
static final int TRANSACTION_partitionPrivate = IBinder.FIRST_CALL_TRANSACTION + 50;
static final int TRANSACTION_partitionMixed = IBinder.FIRST_CALL_TRANSACTION + 51;
+ static final int TRANSACTION_setVolumeNickname = IBinder.FIRST_CALL_TRANSACTION + 52;
+ static final int TRANSACTION_setVolumeUserFlags = IBinder.FIRST_CALL_TRANSACTION + 53;
+
/**
* Cast an IBinder object into an IMountService interface, generating a
* proxy if needed.
@@ -1566,7 +1603,8 @@ public interface IMountService extends IInterface {
}
case TRANSACTION_getVolumes: {
data.enforceInterface(DESCRIPTOR);
- VolumeInfo[] volumes = getVolumes();
+ int _flags = data.readInt();
+ VolumeInfo[] volumes = getVolumes(_flags);
reply.writeNoException();
reply.writeTypedArray(volumes, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
return true;
@@ -1614,6 +1652,23 @@ public interface IMountService extends IInterface {
reply.writeNoException();
return true;
}
+ case TRANSACTION_setVolumeNickname: {
+ data.enforceInterface(DESCRIPTOR);
+ String volId = data.readString();
+ String nickname = data.readString();
+ setVolumeNickname(volId, nickname);
+ reply.writeNoException();
+ return true;
+ }
+ case TRANSACTION_setVolumeUserFlags: {
+ data.enforceInterface(DESCRIPTOR);
+ String volId = data.readString();
+ int _flags = data.readInt();
+ int _mask = data.readInt();
+ setVolumeUserFlags(volId, _flags, _mask);
+ reply.writeNoException();
+ return true;
+ }
}
return super.onTransact(code, data, reply, flags);
}
@@ -1902,7 +1957,7 @@ public interface IMountService extends IInterface {
public void waitForAsecScan() throws RemoteException;
public DiskInfo[] getDisks() throws RemoteException;
- public VolumeInfo[] getVolumes() throws RemoteException;
+ public VolumeInfo[] getVolumes(int flags) throws RemoteException;
public void mount(String volId) throws RemoteException;
public void unmount(String volId) throws RemoteException;
@@ -1911,4 +1966,7 @@ public interface IMountService extends IInterface {
public void partitionPublic(String diskId) throws RemoteException;
public void partitionPrivate(String diskId) throws RemoteException;
public void partitionMixed(String diskId, int ratio) throws RemoteException;
+
+ public void setVolumeNickname(String volId, String nickname) throws RemoteException;
+ public void setVolumeUserFlags(String volId, int flags, int mask) throws RemoteException;
}
diff --git a/core/java/android/os/storage/IMountServiceListener.java b/core/java/android/os/storage/IMountServiceListener.java
index 3965f9d..fd914bc 100644
--- a/core/java/android/os/storage/IMountServiceListener.java
+++ b/core/java/android/os/storage/IMountServiceListener.java
@@ -91,6 +91,13 @@ public interface IMountServiceListener extends IInterface {
reply.writeNoException();
return true;
}
+ case TRANSACTION_onVolumeMetadataChanged: {
+ data.enforceInterface(DESCRIPTOR);
+ final VolumeInfo vol = (VolumeInfo) data.readParcelable(null);
+ onVolumeMetadataChanged(vol);
+ reply.writeNoException();
+ return true;
+ }
}
return super.onTransact(code, data, reply, flags);
}
@@ -175,6 +182,22 @@ public interface IMountServiceListener extends IInterface {
_data.recycle();
}
}
+
+ @Override
+ public void onVolumeMetadataChanged(VolumeInfo vol) throws RemoteException {
+ Parcel _data = Parcel.obtain();
+ Parcel _reply = Parcel.obtain();
+ try {
+ _data.writeInterfaceToken(DESCRIPTOR);
+ _data.writeParcelable(vol, 0);
+ mRemote.transact(Stub.TRANSACTION_onVolumeMetadataChanged, _data, _reply,
+ android.os.IBinder.FLAG_ONEWAY);
+ _reply.readException();
+ } finally {
+ _reply.recycle();
+ _data.recycle();
+ }
+ }
}
static final int TRANSACTION_onUsbMassStorageConnectionChanged = (IBinder.FIRST_CALL_TRANSACTION + 0);
@@ -182,6 +205,7 @@ public interface IMountServiceListener extends IInterface {
static final int TRANSACTION_onStorageStateChanged = (IBinder.FIRST_CALL_TRANSACTION + 1);
static final int TRANSACTION_onVolumeStateChanged = (IBinder.FIRST_CALL_TRANSACTION + 2);
+ static final int TRANSACTION_onVolumeMetadataChanged = (IBinder.FIRST_CALL_TRANSACTION + 3);
}
/**
@@ -204,4 +228,6 @@ public interface IMountServiceListener extends IInterface {
public void onVolumeStateChanged(VolumeInfo vol, int oldState, int newState)
throws RemoteException;
+
+ public void onVolumeMetadataChanged(VolumeInfo vol) throws RemoteException;
}
diff --git a/core/java/android/os/storage/StorageEventListener.java b/core/java/android/os/storage/StorageEventListener.java
index 29d5494..28a187d 100644
--- a/core/java/android/os/storage/StorageEventListener.java
+++ b/core/java/android/os/storage/StorageEventListener.java
@@ -40,4 +40,7 @@ public class StorageEventListener {
public void onVolumeStateChanged(VolumeInfo vol, int oldState, int newState) {
}
+
+ public void onVolumeMetadataChanged(VolumeInfo vol) {
+ }
}
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index bd42f6a..0e977ff 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -35,7 +35,6 @@ import android.util.Log;
import android.util.SparseArray;
import com.android.internal.os.SomeArgs;
-import com.android.internal.util.ArrayUtils;
import com.android.internal.util.Preconditions;
import java.io.File;
@@ -71,6 +70,9 @@ public class StorageManager {
/** {@hide} */
public static final String PROP_PRIMARY_PHYSICAL = "ro.vold.primary_physical";
+ /** {@hide} */
+ public static final int FLAG_ALL_METADATA = 1 << 0;
+
private final Context mContext;
private final ContentResolver mResolver;
@@ -84,6 +86,7 @@ public class StorageManager {
Handler.Callback {
private static final int MSG_STORAGE_STATE_CHANGED = 1;
private static final int MSG_VOLUME_STATE_CHANGED = 2;
+ private static final int MSG_VOLUME_METADATA_CHANGED = 3;
final StorageEventListener mCallback;
final Handler mHandler;
@@ -106,6 +109,10 @@ public class StorageManager {
mCallback.onVolumeStateChanged((VolumeInfo) args.arg1, args.argi2, args.argi3);
args.recycle();
return true;
+ case MSG_VOLUME_METADATA_CHANGED:
+ mCallback.onVolumeMetadataChanged((VolumeInfo) args.arg1);
+ args.recycle();
+ return true;
}
args.recycle();
return false;
@@ -133,6 +140,13 @@ public class StorageManager {
args.argi3 = newState;
mHandler.obtainMessage(MSG_VOLUME_STATE_CHANGED, args).sendToTarget();
}
+
+ @Override
+ public void onVolumeMetadataChanged(VolumeInfo vol) {
+ final SomeArgs args = SomeArgs.obtain();
+ args.arg1 = vol;
+ mHandler.obtainMessage(MSG_VOLUME_METADATA_CHANGED, args).sendToTarget();
+ }
}
/**
@@ -456,18 +470,6 @@ public class StorageManager {
}
/** {@hide} */
- public @Nullable DiskInfo findDiskByVolumeId(String volId) {
- Preconditions.checkNotNull(volId);
- // TODO; go directly to service to make this faster
- for (DiskInfo disk : getDisks()) {
- if (ArrayUtils.contains(disk.volumes, volId)) {
- return disk;
- }
- }
- return null;
- }
-
- /** {@hide} */
public @Nullable VolumeInfo findVolumeById(String id) {
Preconditions.checkNotNull(id);
// TODO; go directly to service to make this faster
@@ -493,25 +495,27 @@ public class StorageManager {
/** {@hide} */
public @NonNull List<VolumeInfo> getVolumes() {
+ return getVolumes(0);
+ }
+
+ /** {@hide} */
+ public @NonNull List<VolumeInfo> getVolumes(int flags) {
try {
- return Arrays.asList(mMountService.getVolumes());
+ return Arrays.asList(mMountService.getVolumes(flags));
} catch (RemoteException e) {
throw e.rethrowAsRuntimeException();
}
}
/** {@hide} */
- public @Nullable String getBestVolumeDescription(String volId) {
- String descrip = null;
-
- final VolumeInfo vol = findVolumeById(volId);
- if (vol != null) {
- descrip = vol.getDescription();
- }
+ public @Nullable String getBestVolumeDescription(VolumeInfo vol) {
+ String descrip = vol.getDescription();
- final DiskInfo disk = findDiskByVolumeId(volId);
- if (disk != null && TextUtils.isEmpty(descrip)) {
- descrip = disk.getDescription();
+ if (vol.diskId != null) {
+ final DiskInfo disk = findDiskById(vol.diskId);
+ if (disk != null && TextUtils.isEmpty(descrip)) {
+ descrip = disk.getDescription();
+ }
}
return descrip;
@@ -572,6 +576,35 @@ public class StorageManager {
}
/** {@hide} */
+ public void setVolumeNickname(String volId, String nickname) {
+ try {
+ mMountService.setVolumeNickname(volId, nickname);
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ /** {@hide} */
+ public void setVolumeInited(String volId, boolean inited) {
+ try {
+ mMountService.setVolumeUserFlags(volId, inited ? VolumeInfo.USER_FLAG_INITED : 0,
+ VolumeInfo.USER_FLAG_INITED);
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ /** {@hide} */
+ public void setVolumeSnoozed(String volId, boolean snoozed) {
+ try {
+ mMountService.setVolumeUserFlags(volId, snoozed ? VolumeInfo.USER_FLAG_SNOOZED : 0,
+ VolumeInfo.USER_FLAG_SNOOZED);
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ /** {@hide} */
public @Nullable StorageVolume getStorageVolume(File file) {
return getStorageVolume(getVolumeList(), file);
}
diff --git a/core/java/android/os/storage/VolumeInfo.java b/core/java/android/os/storage/VolumeInfo.java
index beca8b8..f06fc8c 100644
--- a/core/java/android/os/storage/VolumeInfo.java
+++ b/core/java/android/os/storage/VolumeInfo.java
@@ -22,10 +22,12 @@ import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.mtp.MtpStorage;
+import android.net.Uri;
import android.os.Environment;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.UserHandle;
+import android.provider.DocumentsContract;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.DebugUtils;
@@ -45,6 +47,8 @@ import java.io.File;
* @hide
*/
public class VolumeInfo implements Parcelable {
+ public static final String EXTRA_VOLUME_ID = "android.os.storage.extra.VOLUME_ID";
+
/** Stub volume representing internal private storage */
public static final String ID_PRIVATE_INTERNAL = "private";
/** Real volume representing internal emulated storage */
@@ -67,6 +71,9 @@ public class VolumeInfo implements Parcelable {
public static final int FLAG_PRIMARY = 1 << 0;
public static final int FLAG_VISIBLE = 1 << 1;
+ public static final int USER_FLAG_INITED = 1 << 0;
+ public static final int USER_FLAG_SNOOZED = 1 << 1;
+
private static SparseArray<String> sStateToEnvironment = new SparseArray<>();
private static ArrayMap<String, String> sEnvironmentToBroadcast = new ArrayMap<>();
@@ -100,7 +107,9 @@ public class VolumeInfo implements Parcelable {
/** Framework state */
public final int mtpIndex;
+ public String diskId;
public String nickname;
+ public int userFlags = 0;
public VolumeInfo(String id, int type, int mtpIndex) {
this.id = Preconditions.checkNotNull(id);
@@ -119,7 +128,9 @@ public class VolumeInfo implements Parcelable {
fsLabel = parcel.readString();
path = parcel.readString();
mtpIndex = parcel.readInt();
+ diskId = parcel.readString();
nickname = parcel.readString();
+ userFlags = parcel.readInt();
}
public static @NonNull String getEnvironmentForState(int state) {
@@ -139,6 +150,30 @@ public class VolumeInfo implements Parcelable {
return getBroadcastForEnvironment(getEnvironmentForState(state));
}
+ public @NonNull String getId() {
+ return id;
+ }
+
+ public @Nullable String getDiskId() {
+ return diskId;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public int getState() {
+ return state;
+ }
+
+ public @Nullable String getFsUuid() {
+ return fsUuid;
+ }
+
+ public @Nullable String getNickname() {
+ return nickname;
+ }
+
public @Nullable String getDescription() {
if (ID_PRIVATE_INTERNAL.equals(id)) {
return Resources.getSystem().getString(com.android.internal.R.string.storage_internal);
@@ -159,6 +194,14 @@ public class VolumeInfo implements Parcelable {
return (flags & FLAG_VISIBLE) != 0;
}
+ public boolean isInited() {
+ return (userFlags & USER_FLAG_INITED) != 0;
+ }
+
+ public boolean isSnoozed() {
+ return (userFlags & USER_FLAG_SNOOZED) != 0;
+ }
+
public boolean isVisibleToUser(int userId) {
if (type == TYPE_PUBLIC && userId == this.userId) {
return isVisible();
@@ -169,6 +212,10 @@ public class VolumeInfo implements Parcelable {
}
}
+ public File getPath() {
+ return new File(path);
+ }
+
public File getPathForUser(int userId) {
if (path == null) {
return null;
@@ -228,6 +275,34 @@ public class VolumeInfo implements Parcelable {
fsUuid, envState);
}
+ // TODO: avoid this layering violation
+ private static final String DOCUMENT_AUTHORITY = "com.android.externalstorage.documents";
+ private static final String DOCUMENT_ROOT_PRIMARY_EMULATED = "primary";
+
+ /**
+ * Build an intent to browse the contents of this volume. Only valid for
+ * {@link #TYPE_EMULATED} or {@link #TYPE_PUBLIC}.
+ */
+ public Intent buildBrowseIntent() {
+ final Uri uri;
+ if (type == VolumeInfo.TYPE_PUBLIC) {
+ uri = DocumentsContract.buildRootUri(DOCUMENT_AUTHORITY, fsUuid);
+ } else if (VolumeInfo.ID_EMULATED_INTERNAL.equals(id)) {
+ uri = DocumentsContract.buildRootUri(DOCUMENT_AUTHORITY,
+ DOCUMENT_ROOT_PRIMARY_EMULATED);
+ } else if (type == VolumeInfo.TYPE_EMULATED) {
+ // TODO: build intent once supported
+ uri = null;
+ } else {
+ throw new IllegalArgumentException();
+ }
+
+ final Intent intent = new Intent(DocumentsContract.ACTION_BROWSE_DOCUMENT_ROOT);
+ intent.addCategory(Intent.CATEGORY_DEFAULT);
+ intent.setData(uri);
+ return intent;
+ }
+
@Override
public String toString() {
final CharArrayWriter writer = new CharArrayWriter();
@@ -250,6 +325,9 @@ public class VolumeInfo implements Parcelable {
pw.println();
pw.printPair("path", path);
pw.printPair("mtpIndex", mtpIndex);
+ pw.printPair("diskId", diskId);
+ pw.printPair("nickname", nickname);
+ pw.printPair("userFlags", DebugUtils.flagsToString(getClass(), "USER_FLAG_", userFlags));
pw.decreaseIndent();
pw.println();
}
@@ -295,6 +373,8 @@ public class VolumeInfo implements Parcelable {
parcel.writeString(fsLabel);
parcel.writeString(path);
parcel.writeInt(mtpIndex);
+ parcel.writeString(diskId);
parcel.writeString(nickname);
+ parcel.writeInt(userFlags);
}
}
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 109c23b..3707694 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -2766,8 +2766,6 @@ public final class Settings {
* It was about AudioManager's setting and thus affected all the applications which
* relied on the setting, while this is purely about the vibration setting for incoming
* calls.
- *
- * @hide
*/
public static final String VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
@@ -2788,7 +2786,6 @@ public final class Settings {
* DTMF tone type played by the dialer when dialing.
* 0 = Normal
* 1 = Long
- * @hide
*/
public static final String DTMF_TONE_TYPE_WHEN_DIALING = "dtmf_tone_type";
@@ -7057,7 +7054,6 @@ public final class Settings {
/**
* Setting to 1 will hide carrier network settings.
* Default is 0.
- * @hide
*/
public static final String HIDE_CARRIER_NETWORK_SETTINGS =
"hide_carrier_network_settings";
@@ -7724,6 +7720,13 @@ public final class Settings {
* @hide
*/
public static final String NEW_CONTACT_AGGREGATOR = "new_contact_aggregator";
+
+ /**
+ * Whether to enable contacts metadata syncing or not
+ * The value 1 - enable, 0 - disable
+ * @hide
+ */
+ public static final String CONTACT_METADATA_SYNC = "contact_metadata_sync";
}
/**
diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java
index fa782e4..cc7f880 100644
--- a/core/java/android/service/notification/NotificationListenerService.java
+++ b/core/java/android/service/notification/NotificationListenerService.java
@@ -21,6 +21,7 @@ import android.annotation.SdkConstant;
import android.app.INotificationManager;
import android.app.Notification;
import android.app.Notification.Builder;
+import android.app.NotificationManager.Policy;
import android.app.Service;
import android.content.ComponentName;
import android.content.Context;
@@ -501,6 +502,22 @@ public abstract class NotificationListenerService extends Service {
}
/**
+ * Gets the notification policy token associated with this listener.
+ *
+ * <p>
+ * Returns null if this listener is not currently active.
+ */
+ public final Policy.Token getNotificationPolicyToken() {
+ if (!isBound()) return null;
+ try {
+ return getNotificationInterface().getPolicyTokenFromListener(mWrapper);
+ } catch (android.os.RemoteException ex) {
+ Log.v(TAG, "Unable to contact notification manager", ex);
+ return null;
+ }
+ }
+
+ /**
* Sets the desired {@link #getCurrentListenerHints() listener hints}.
*
* <p>
diff --git a/core/java/android/service/notification/ZenModeConfig.java b/core/java/android/service/notification/ZenModeConfig.java
index 1ed4779..14e947c 100644
--- a/core/java/android/service/notification/ZenModeConfig.java
+++ b/core/java/android/service/notification/ZenModeConfig.java
@@ -16,6 +16,7 @@
package android.service.notification;
+import android.app.NotificationManager.Policy;
import android.content.ComponentName;
import android.content.Context;
import android.content.res.Resources;
@@ -470,6 +471,59 @@ public class ZenModeConfig implements Parcelable {
}
};
+ public Policy toNotificationPolicy() {
+ int priorityCategories = 0;
+ int prioritySenders = Policy.PRIORITY_SENDERS_ANY;
+ if (allowCalls) {
+ priorityCategories |= Policy.PRIORITY_CATEGORY_CALLS;
+ }
+ if (allowMessages) {
+ priorityCategories |= Policy.PRIORITY_CATEGORY_MESSAGES;
+ }
+ if (allowEvents) {
+ priorityCategories |= Policy.PRIORITY_CATEGORY_EVENTS;
+ }
+ if (allowReminders) {
+ priorityCategories |= Policy.PRIORITY_CATEGORY_REMINDERS;
+ }
+ if (allowRepeatCallers) {
+ priorityCategories |= Policy.PRIORITY_CATEGORY_REPEAT_CALLERS;
+ }
+ switch (allowFrom) {
+ case SOURCE_ANYONE:
+ prioritySenders = Policy.PRIORITY_SENDERS_ANY;
+ break;
+ case SOURCE_CONTACT:
+ prioritySenders = Policy.PRIORITY_SENDERS_CONTACTS;
+ break;
+ case SOURCE_STAR:
+ prioritySenders = Policy.PRIORITY_SENDERS_STARRED;
+ break;
+ }
+ return new Policy(priorityCategories, prioritySenders);
+ }
+
+ public void applyNotificationPolicy(Policy policy) {
+ if (policy == null) return;
+ allowCalls = (policy.priorityCategories & Policy.PRIORITY_CATEGORY_CALLS) != 0;
+ allowMessages = (policy.priorityCategories & Policy.PRIORITY_CATEGORY_MESSAGES) != 0;
+ allowEvents = (policy.priorityCategories & Policy.PRIORITY_CATEGORY_EVENTS) != 0;
+ allowReminders = (policy.priorityCategories & Policy.PRIORITY_CATEGORY_REMINDERS) != 0;
+ allowRepeatCallers = (policy.priorityCategories & Policy.PRIORITY_CATEGORY_REPEAT_CALLERS)
+ != 0;
+ switch (policy.prioritySenders) {
+ case Policy.PRIORITY_SENDERS_CONTACTS:
+ allowFrom = SOURCE_CONTACT;
+ break;
+ case Policy.PRIORITY_SENDERS_STARRED:
+ allowFrom = SOURCE_STAR;
+ break;
+ default:
+ allowFrom = SOURCE_ANYONE;
+ break;
+ }
+ }
+
public static Condition toTimeCondition(Context context, int minutesFromNow, int userHandle) {
final long now = System.currentTimeMillis();
final long millis = minutesFromNow == 0 ? ZERO_VALUE_MS : minutesFromNow * MINUTES_MS;
@@ -881,4 +935,5 @@ public class ZenModeConfig implements Parcelable {
public interface Migration {
ZenModeConfig migrate(XmlV1 v1);
}
+
}
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index 2bcb352..67794b1 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -165,6 +165,19 @@ public class StaticLayout extends Layout {
return this;
}
+ public Builder setIndents(int[] leftIndents, int[] rightIndents) {
+ int leftLen = leftIndents == null ? 0 : leftIndents.length;
+ int rightLen = rightIndents == null ? 0 : rightIndents.length;
+ int[] indents = new int[Math.max(leftLen, rightLen)];
+ for (int i = 0; i < indents.length; i++) {
+ int leftMargin = i < leftLen ? leftIndents[i] : 0;
+ int rightMargin = i < rightLen ? rightIndents[i] : 0;
+ indents[i] = leftMargin + rightMargin;
+ }
+ nSetIndents(mNativePtr, indents);
+ return this;
+ }
+
/**
* Measurement and break iteration is done in native code. The protocol for using
* the native code is as follows.
@@ -811,7 +824,7 @@ public class StaticLayout extends Layout {
float sum = 0;
int i;
- for (i = len; i >= 0; i--) {
+ for (i = len; i > 0; i--) {
float w = widths[i - 1 + lineStart - widthStart];
if (w + sum + ellipsisWidth > avail) {
@@ -1009,6 +1022,8 @@ public class StaticLayout extends Layout {
private static native void nSetLocale(long nativePtr, String locale, long nativeHyphenator);
+ private static native void nSetIndents(long nativePtr, int[] indents);
+
// Set up paragraph text and settings; done as one big method to minimize jni crossings
private static native void nSetupParagraph(long nativePtr, char[] text, int length,
float firstWidth, int firstWidthLineCount, float restWidth,
diff --git a/core/java/android/view/PhoneWindow.java b/core/java/android/view/PhoneWindow.java
index 5af2832..794c8e7 100644
--- a/core/java/android/view/PhoneWindow.java
+++ b/core/java/android/view/PhoneWindow.java
@@ -4257,7 +4257,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
if (deviceId != 0) {
searchEvent = new SearchEvent(InputDevice.getDevice(deviceId));
}
- result = cb.onSearchRequested(searchEvent);
+ try {
+ result = cb.onSearchRequested(searchEvent);
+ } catch (AbstractMethodError e) {
+ Log.e(TAG, "WindowCallback " + cb.getClass().getName() + " does not implement"
+ + " method onSearchRequested(SearchEvent); fa", e);
+ result = cb.onSearchRequested();
+ }
}
if (!result && (getContext().getResources().getConfiguration().uiMode
& Configuration.UI_MODE_TYPE_MASK) == Configuration.UI_MODE_TYPE_TELEVISION) {
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index 87d5d9a..25c5127 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -360,7 +360,7 @@ public class ThreadedRenderer extends HardwareRenderer {
@Override
boolean copyLayerInto(final HardwareLayer layer, final Bitmap bitmap) {
return nCopyLayerInto(mNativeProxy,
- layer.getDeferredLayerUpdater(), bitmap.getSkBitmap());
+ layer.getDeferredLayerUpdater(), bitmap);
}
@Override
@@ -460,8 +460,6 @@ public class ThreadedRenderer extends HardwareRenderer {
if (buffer != null) {
long[] map = atlas.getMap();
if (map != null) {
- // TODO Remove after fixing b/15425820
- validateMap(context, map);
nSetAtlas(renderProxy, buffer, map);
}
// If IAssetAtlas is not the same class as the IBinder
@@ -476,32 +474,6 @@ public class ThreadedRenderer extends HardwareRenderer {
Log.w(LOG_TAG, "Could not acquire atlas", e);
}
}
-
- private static void validateMap(Context context, long[] map) {
- Log.d("Atlas", "Validating map...");
- HashSet<Long> preloadedPointers = new HashSet<Long>();
-
- // We only care about drawables that hold bitmaps
- final Resources resources = context.getResources();
- final LongSparseArray<Drawable.ConstantState> drawables = resources.getPreloadedDrawables();
-
- final int count = drawables.size();
- ArrayList<Bitmap> tmpList = new ArrayList<Bitmap>();
- for (int i = 0; i < count; i++) {
- drawables.valueAt(i).addAtlasableBitmaps(tmpList);
- for (int j = 0; j < tmpList.size(); j++) {
- preloadedPointers.add(tmpList.get(j).getSkBitmap());
- }
- tmpList.clear();
- }
-
- for (int i = 0; i < map.length; i += 4) {
- if (!preloadedPointers.contains(map[i])) {
- Log.w("Atlas", String.format("Pointer 0x%X, not in getPreloadedDrawables?", map[i]));
- map[i] = 0;
- }
- }
- }
}
static native void setupShadersDiskCache(String cacheFile);
@@ -531,7 +503,7 @@ public class ThreadedRenderer extends HardwareRenderer {
private static native long nCreateTextureLayer(long nativeProxy);
private static native void nBuildLayer(long nativeProxy, long node);
- private static native boolean nCopyLayerInto(long nativeProxy, long layer, long bitmap);
+ private static native boolean nCopyLayerInto(long nativeProxy, long layer, Bitmap bitmap);
private static native void nPushLayerUpdate(long nativeProxy, long layer);
private static native void nCancelLayerUpdate(long nativeProxy, long layer);
private static native void nDetachSurfaceTexture(long nativeProxy, long layer);
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 6b28746..25fa349 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -15205,27 +15205,33 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
/**
* This method is called by ViewGroup.drawChild() to have each child view draw itself.
- * This draw() method is an implementation detail and is not intended to be overridden or
- * to be called from anywhere else other than ViewGroup.drawChild().
+ *
+ * This is where the View specializes rendering behavior based on layer type,
+ * and hardware acceleration.
*/
boolean draw(Canvas canvas, ViewGroup parent, long drawingTime) {
- boolean usingRenderNodeProperties = mAttachInfo != null && mAttachInfo.mHardwareAccelerated;
+ final boolean hardwareAcceleratedCanvas = canvas.isHardwareAccelerated();
+ /* If an attached view draws to a HW canvas, it may use its RenderNode + DisplayList.
+ *
+ * If a view is dettached, its DisplayList shouldn't exist. If the canvas isn't
+ * HW accelerated, it can't handle drawing RenderNodes.
+ */
+ boolean drawingWithRenderNode = mAttachInfo != null
+ && mAttachInfo.mHardwareAccelerated
+ && hardwareAcceleratedCanvas;
+
boolean more = false;
final boolean childHasIdentityMatrix = hasIdentityMatrix();
- final int flags = parent.mGroupFlags;
+ final int parentFlags = parent.mGroupFlags;
- if ((flags & ViewGroup.FLAG_CLEAR_TRANSFORMATION) == ViewGroup.FLAG_CLEAR_TRANSFORMATION) {
+ if ((parentFlags & ViewGroup.FLAG_CLEAR_TRANSFORMATION) != 0) {
parent.getChildTransformation().clear();
parent.mGroupFlags &= ~ViewGroup.FLAG_CLEAR_TRANSFORMATION;
}
Transformation transformToApply = null;
boolean concatMatrix = false;
-
- boolean scalingRequired = mAttachInfo != null && mAttachInfo.mScalingRequired;
- int layerType = getLayerType();
- final boolean hardwareAccelerated = canvas.isHardwareAccelerated();
-
+ final boolean scalingRequired = mAttachInfo != null && mAttachInfo.mScalingRequired;
final Animation a = getAnimation();
if (a != null) {
more = applyLegacyAnimation(parent, drawingTime, a, scalingRequired);
@@ -15240,8 +15246,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mRenderNode.setAnimationMatrix(null);
mPrivateFlags3 &= ~PFLAG3_VIEW_IS_ANIMATING_TRANSFORM;
}
- if (!usingRenderNodeProperties &&
- (flags & ViewGroup.FLAG_SUPPORT_STATIC_TRANSFORMATIONS) != 0) {
+ if (!drawingWithRenderNode
+ && (parentFlags & ViewGroup.FLAG_SUPPORT_STATIC_TRANSFORMATIONS) != 0) {
final Transformation t = parent.getChildTransformation();
final boolean hasTransform = parent.getChildStaticTransformation(this, t);
if (hasTransform) {
@@ -15259,7 +15265,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mPrivateFlags |= PFLAG_DRAWN;
if (!concatMatrix &&
- (flags & (ViewGroup.FLAG_SUPPORT_STATIC_TRANSFORMATIONS |
+ (parentFlags & (ViewGroup.FLAG_SUPPORT_STATIC_TRANSFORMATIONS |
ViewGroup.FLAG_CLIP_CHILDREN)) == ViewGroup.FLAG_CLIP_CHILDREN &&
canvas.quickReject(mLeft, mTop, mRight, mBottom, Canvas.EdgeType.BW) &&
(mPrivateFlags & PFLAG_DRAW_ANIMATION) == 0) {
@@ -15268,81 +15274,61 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
mPrivateFlags2 &= ~PFLAG2_VIEW_QUICK_REJECTED;
- if (hardwareAccelerated) {
+ if (hardwareAcceleratedCanvas) {
// Clear INVALIDATED flag to allow invalidation to occur during rendering, but
// retain the flag's value temporarily in the mRecreateDisplayList flag
- mRecreateDisplayList = (mPrivateFlags & PFLAG_INVALIDATED) == PFLAG_INVALIDATED;
+ mRecreateDisplayList = (mPrivateFlags & PFLAG_INVALIDATED) != 0;
mPrivateFlags &= ~PFLAG_INVALIDATED;
}
RenderNode renderNode = null;
Bitmap cache = null;
- boolean hasDisplayList = false;
- if (!hardwareAccelerated) {
- if (layerType != LAYER_TYPE_NONE) {
- layerType = LAYER_TYPE_SOFTWARE;
- buildDrawingCache(true);
- }
+ int layerType = getLayerType();
+ if (layerType == LAYER_TYPE_SOFTWARE
+ || (!drawingWithRenderNode && layerType != LAYER_TYPE_NONE)) {
+ layerType = LAYER_TYPE_SOFTWARE;
+ buildDrawingCache(true);
cache = getDrawingCache(true);
- } else {
- switch (layerType) {
- case LAYER_TYPE_SOFTWARE:
- if (usingRenderNodeProperties) {
- hasDisplayList = canHaveDisplayList();
- } else {
- buildDrawingCache(true);
- cache = getDrawingCache(true);
- }
- break;
- case LAYER_TYPE_HARDWARE:
- if (usingRenderNodeProperties) {
- hasDisplayList = canHaveDisplayList();
- }
- break;
- case LAYER_TYPE_NONE:
- // Delay getting the display list until animation-driven alpha values are
- // set up and possibly passed on to the view
- hasDisplayList = canHaveDisplayList();
- break;
- }
}
- usingRenderNodeProperties &= hasDisplayList;
- if (usingRenderNodeProperties) {
+
+ if (drawingWithRenderNode) {
+ // Delay getting the display list until animation-driven alpha values are
+ // set up and possibly passed on to the view
renderNode = getDisplayList();
if (!renderNode.isValid()) {
// Uncommon, but possible. If a view is removed from the hierarchy during the call
// to getDisplayList(), the display list will be marked invalid and we should not
// try to use it again.
renderNode = null;
- hasDisplayList = false;
- usingRenderNodeProperties = false;
+ drawingWithRenderNode = false;
}
}
int sx = 0;
int sy = 0;
- if (!hasDisplayList) {
+ if (!drawingWithRenderNode) {
computeScroll();
sx = mScrollX;
sy = mScrollY;
}
- final boolean hasNoCache = cache == null || hasDisplayList;
- final boolean offsetForScroll = cache == null && !hasDisplayList &&
- layerType != LAYER_TYPE_HARDWARE;
+ final boolean hasNoCache = cache == null || drawingWithRenderNode;
+ final boolean offsetForScroll = cache == null
+ && !drawingWithRenderNode
+ && layerType != LAYER_TYPE_HARDWARE;
int restoreTo = -1;
- if (!usingRenderNodeProperties || transformToApply != null) {
+ if (!drawingWithRenderNode || transformToApply != null) {
restoreTo = canvas.save();
}
if (offsetForScroll) {
canvas.translate(mLeft - sx, mTop - sy);
} else {
- if (!usingRenderNodeProperties) {
+ if (!drawingWithRenderNode) {
canvas.translate(mLeft, mTop);
}
if (scalingRequired) {
- if (usingRenderNodeProperties) {
+ if (drawingWithRenderNode) {
// TODO: Might not need this if we put everything inside the DL
restoreTo = canvas.save();
}
@@ -15352,9 +15338,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
}
- float alpha = usingRenderNodeProperties ? 1 : (getAlpha() * getTransitionAlpha());
- if (transformToApply != null || alpha < 1 || !hasIdentityMatrix() ||
- (mPrivateFlags3 & PFLAG3_VIEW_IS_ANIMATING_ALPHA) == PFLAG3_VIEW_IS_ANIMATING_ALPHA) {
+ float alpha = drawingWithRenderNode ? 1 : (getAlpha() * getTransitionAlpha());
+ if (transformToApply != null
+ || alpha < 1
+ || !hasIdentityMatrix()
+ || (mPrivateFlags3 & PFLAG3_VIEW_IS_ANIMATING_ALPHA) != 0) {
if (transformToApply != null || !childHasIdentityMatrix) {
int transX = 0;
int transY = 0;
@@ -15366,7 +15354,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
if (transformToApply != null) {
if (concatMatrix) {
- if (usingRenderNodeProperties) {
+ if (drawingWithRenderNode) {
renderNode.setAnimationMatrix(transformToApply.getMatrix());
} else {
// Undo the scroll translation, apply the transformation matrix,
@@ -15385,7 +15373,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
}
- if (!childHasIdentityMatrix && !usingRenderNodeProperties) {
+ if (!childHasIdentityMatrix && !drawingWithRenderNode) {
canvas.translate(-transX, -transY);
canvas.concat(getMatrix());
canvas.translate(transX, transY);
@@ -15393,8 +15381,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
// Deal with alpha if it is or used to be <1
- if (alpha < 1 ||
- (mPrivateFlags3 & PFLAG3_VIEW_IS_ANIMATING_ALPHA) == PFLAG3_VIEW_IS_ANIMATING_ALPHA) {
+ if (alpha < 1 || (mPrivateFlags3 & PFLAG3_VIEW_IS_ANIMATING_ALPHA) != 0) {
if (alpha < 1) {
mPrivateFlags3 |= PFLAG3_VIEW_IS_ANIMATING_ALPHA;
} else {
@@ -15405,17 +15392,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
final int multipliedAlpha = (int) (255 * alpha);
if (!onSetAlpha(multipliedAlpha)) {
int layerFlags = Canvas.HAS_ALPHA_LAYER_SAVE_FLAG;
- if ((flags & ViewGroup.FLAG_CLIP_CHILDREN) != 0 ||
- layerType != LAYER_TYPE_NONE) {
+ if ((parentFlags & ViewGroup.FLAG_CLIP_CHILDREN) != 0
+ || layerType != LAYER_TYPE_NONE) {
layerFlags |= Canvas.CLIP_TO_LAYER_SAVE_FLAG;
}
- if (usingRenderNodeProperties) {
+ if (drawingWithRenderNode) {
renderNode.setAlpha(alpha * getAlpha() * getTransitionAlpha());
- } else if (layerType == LAYER_TYPE_NONE) {
- final int scrollX = hasDisplayList ? 0 : sx;
- final int scrollY = hasDisplayList ? 0 : sy;
- canvas.saveLayerAlpha(scrollX, scrollY,
- scrollX + (mRight - mLeft), scrollY + (mBottom - mTop),
+ } else if (layerType == LAYER_TYPE_NONE) {
+ canvas.saveLayerAlpha(sx, sy, sx + getWidth(), sy + getHeight(),
multipliedAlpha, layerFlags);
}
} else {
@@ -15429,15 +15413,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mPrivateFlags &= ~PFLAG_ALPHA_SET;
}
- if (!usingRenderNodeProperties) {
+ if (!drawingWithRenderNode) {
// apply clips directly, since RenderNode won't do it for this draw
- if ((flags & ViewGroup.FLAG_CLIP_CHILDREN) == ViewGroup.FLAG_CLIP_CHILDREN
- && cache == null) {
+ if ((parentFlags & ViewGroup.FLAG_CLIP_CHILDREN) != 0 && cache == null) {
if (offsetForScroll) {
- canvas.clipRect(sx, sy, sx + (mRight - mLeft), sy + (mBottom - mTop));
+ canvas.clipRect(sx, sy, sx + getWidth(), sy + getHeight());
} else {
if (!scalingRequired || cache == null) {
- canvas.clipRect(0, 0, mRight - mLeft, mBottom - mTop);
+ canvas.clipRect(0, 0, getWidth(), getHeight());
} else {
canvas.clipRect(0, 0, cache.getWidth(), cache.getHeight());
}
@@ -15450,22 +15433,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
}
-
-
- if (!usingRenderNodeProperties && hasDisplayList) {
- renderNode = getDisplayList();
- if (!renderNode.isValid()) {
- // Uncommon, but possible. If a view is removed from the hierarchy during the call
- // to getDisplayList(), the display list will be marked invalid and we should not
- // try to use it again.
- renderNode = null;
- hasDisplayList = false;
- }
- }
-
if (hasNoCache) {
boolean layerRendered = false;
- if (layerType == LAYER_TYPE_HARDWARE && !usingRenderNodeProperties) {
+ if (layerType == LAYER_TYPE_HARDWARE && !drawingWithRenderNode) {
final HardwareLayer layer = getHardwareLayer();
if (layer != null && layer.isValid()) {
int restoreAlpha = mLayerPaint.getAlpha();
@@ -15474,16 +15444,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
mLayerPaint.setAlpha(restoreAlpha);
layerRendered = true;
} else {
- final int scrollX = hasDisplayList ? 0 : sx;
- final int scrollY = hasDisplayList ? 0 : sy;
- canvas.saveLayer(scrollX, scrollY,
- scrollX + mRight - mLeft, scrollY + mBottom - mTop, mLayerPaint,
- Canvas.HAS_ALPHA_LAYER_SAVE_FLAG | Canvas.CLIP_TO_LAYER_SAVE_FLAG);
+ canvas.saveLayer(sx, sy, sx + getWidth(), sy + getHeight(), mLayerPaint);
}
}
if (!layerRendered) {
- if (!hasDisplayList) {
+ if (!drawingWithRenderNode) {
// Fast path for layouts with no backgrounds
if ((mPrivateFlags & PFLAG_SKIP_DRAW) == PFLAG_SKIP_DRAW) {
mPrivateFlags &= ~PFLAG_DIRTY_MASK;
@@ -15493,7 +15459,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
} else {
mPrivateFlags &= ~PFLAG_DIRTY_MASK;
- ((DisplayListCanvas) canvas).drawRenderNode(renderNode, flags);
+ ((DisplayListCanvas) canvas).drawRenderNode(renderNode, parentFlags);
}
}
} else if (cache != null) {
@@ -15522,13 +15488,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
if (a != null && !more) {
- if (!hardwareAccelerated && !a.getFillAfter()) {
+ if (!hardwareAcceleratedCanvas && !a.getFillAfter()) {
onSetAlpha(255);
}
parent.finishAnimatingView(this, a);
}
- if (more && hardwareAccelerated) {
+ if (more && hardwareAcceleratedCanvas) {
if (a.hasAlpha() && (mPrivateFlags & PFLAG_ALPHA_SET) == PFLAG_ALPHA_SET) {
// alpha animations should cause the child to recreate its display list
invalidate(true);
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index 9d0d5ff..49a72ce 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -595,6 +595,8 @@ public abstract class Window {
title="Panel";
} else if (wp.type == WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL) {
title="SubPanel";
+ } else if (wp.type == WindowManager.LayoutParams.TYPE_APPLICATION_ABOVE_SUB_PANEL) {
+ title="AboveSubPanel";
} else if (wp.type == WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG) {
title="AtchDlg";
} else {
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 54d78f3..e983910 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -164,13 +164,14 @@ public interface WindowManager extends ViewManager {
* be used by applications, and a special permission is required
* to use them.
* </ul>
- *
+ *
* @see #TYPE_BASE_APPLICATION
* @see #TYPE_APPLICATION
* @see #TYPE_APPLICATION_STARTING
* @see #TYPE_APPLICATION_PANEL
* @see #TYPE_APPLICATION_MEDIA
* @see #TYPE_APPLICATION_SUB_PANEL
+ * @see #TYPE_APPLICATION_ABOVE_SUB_PANEL
* @see #TYPE_APPLICATION_ATTACHED_DIALOG
* @see #TYPE_STATUS_BAR
* @see #TYPE_SEARCH_BAR
@@ -193,6 +194,7 @@ public interface WindowManager extends ViewManager {
@ViewDebug.IntToString(from = TYPE_APPLICATION_PANEL, to = "TYPE_APPLICATION_PANEL"),
@ViewDebug.IntToString(from = TYPE_APPLICATION_MEDIA, to = "TYPE_APPLICATION_MEDIA"),
@ViewDebug.IntToString(from = TYPE_APPLICATION_SUB_PANEL, to = "TYPE_APPLICATION_SUB_PANEL"),
+ @ViewDebug.IntToString(from = TYPE_APPLICATION_ABOVE_SUB_PANEL, to = "TYPE_APPLICATION_ABOVE_SUB_PANEL"),
@ViewDebug.IntToString(from = TYPE_APPLICATION_ATTACHED_DIALOG, to = "TYPE_APPLICATION_ATTACHED_DIALOG"),
@ViewDebug.IntToString(from = TYPE_APPLICATION_MEDIA_OVERLAY, to = "TYPE_APPLICATION_MEDIA_OVERLAY"),
@ViewDebug.IntToString(from = TYPE_STATUS_BAR, to = "TYPE_STATUS_BAR"),
@@ -260,40 +262,40 @@ public interface WindowManager extends ViewManager {
* End of types of application windows.
*/
public static final int LAST_APPLICATION_WINDOW = 99;
-
+
/**
* Start of types of sub-windows. The {@link #token} of these windows
* must be set to the window they are attached to. These types of
* windows are kept next to their attached window in Z-order, and their
* coordinate space is relative to their attached window.
*/
- public static final int FIRST_SUB_WINDOW = 1000;
-
+ public static final int FIRST_SUB_WINDOW = 1000;
+
/**
* Window type: a panel on top of an application window. These windows
* appear on top of their attached window.
*/
- public static final int TYPE_APPLICATION_PANEL = FIRST_SUB_WINDOW;
-
+ public static final int TYPE_APPLICATION_PANEL = FIRST_SUB_WINDOW;
+
/**
* Window type: window for showing media (such as video). These windows
* are displayed behind their attached window.
*/
- public static final int TYPE_APPLICATION_MEDIA = FIRST_SUB_WINDOW+1;
-
+ public static final int TYPE_APPLICATION_MEDIA = FIRST_SUB_WINDOW + 1;
+
/**
* Window type: a sub-panel on top of an application window. These
* windows are displayed on top their attached window and any
* {@link #TYPE_APPLICATION_PANEL} panels.
*/
- public static final int TYPE_APPLICATION_SUB_PANEL = FIRST_SUB_WINDOW+2;
+ public static final int TYPE_APPLICATION_SUB_PANEL = FIRST_SUB_WINDOW + 2;
/** Window type: like {@link #TYPE_APPLICATION_PANEL}, but layout
* of the window happens as that of a top-level window, <em>not</em>
* as a child of its container.
*/
- public static final int TYPE_APPLICATION_ATTACHED_DIALOG = FIRST_SUB_WINDOW+3;
-
+ public static final int TYPE_APPLICATION_ATTACHED_DIALOG = FIRST_SUB_WINDOW + 3;
+
/**
* Window type: window for showing overlays on top of media windows.
* These windows are displayed between TYPE_APPLICATION_MEDIA and the
@@ -301,19 +303,26 @@ public interface WindowManager extends ViewManager {
* is a big ugly hack so:
* @hide
*/
- public static final int TYPE_APPLICATION_MEDIA_OVERLAY = FIRST_SUB_WINDOW+4;
-
+ public static final int TYPE_APPLICATION_MEDIA_OVERLAY = FIRST_SUB_WINDOW + 4;
+
+ /**
+ * Window type: a above sub-panel on top of an application window and it's
+ * sub-panel windows. These windows are displayed on top of their attached window
+ * and any {@link #TYPE_APPLICATION_SUB_PANEL} panels.
+ */
+ public static final int TYPE_APPLICATION_ABOVE_SUB_PANEL = FIRST_SUB_WINDOW + 5;
+
/**
* End of types of sub-windows.
*/
- public static final int LAST_SUB_WINDOW = 1999;
-
+ public static final int LAST_SUB_WINDOW = 1999;
+
/**
* Start of system-specific window types. These are not normally
* created by applications.
*/
public static final int FIRST_SYSTEM_WINDOW = 2000;
-
+
/**
* Window type: the status bar. There can be only one status bar
* window; it is placed at the top of the screen, and all other
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index e7c4328..7ab5aaa 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -2427,9 +2427,7 @@ public class WebView extends AbsoluteLayout
@Override
public void onProvideVirtualAssistStructure(ViewAssistStructure structure) {
- super.onProvideVirtualAssistStructure(structure);
- // TODO: enable when chromium backend lands.
- // mProvider.getViewDelegate().onProvideVirtualAssistStructure(structure);
+ mProvider.getViewDelegate().onProvideVirtualAssistStructure(structure);
}
/** @hide */
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index 1be05f3..93ccd1d 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -17,6 +17,7 @@
package android.widget;
import android.R;
+import android.annotation.Nullable;
import android.app.PendingIntent;
import android.app.PendingIntent.CanceledException;
import android.content.ClipData;
@@ -1281,74 +1282,79 @@ public class Editor {
EXTRACT_UNKNOWN, outText);
}
- private boolean extractTextInternal(ExtractedTextRequest request,
+ private boolean extractTextInternal(@Nullable ExtractedTextRequest request,
int partialStartOffset, int partialEndOffset, int delta,
- ExtractedText outText) {
+ @Nullable ExtractedText outText) {
+ if (request == null || outText == null) {
+ return false;
+ }
+
final CharSequence content = mTextView.getText();
- if (content != null) {
- if (partialStartOffset != EXTRACT_NOTHING) {
- final int N = content.length();
- if (partialStartOffset < 0) {
- outText.partialStartOffset = outText.partialEndOffset = -1;
- partialStartOffset = 0;
- partialEndOffset = N;
- } else {
- // Now use the delta to determine the actual amount of text
- // we need.
- partialEndOffset += delta;
- // Adjust offsets to ensure we contain full spans.
- if (content instanceof Spanned) {
- Spanned spanned = (Spanned)content;
- Object[] spans = spanned.getSpans(partialStartOffset,
- partialEndOffset, ParcelableSpan.class);
- int i = spans.length;
- while (i > 0) {
- i--;
- int j = spanned.getSpanStart(spans[i]);
- if (j < partialStartOffset) partialStartOffset = j;
- j = spanned.getSpanEnd(spans[i]);
- if (j > partialEndOffset) partialEndOffset = j;
- }
- }
- outText.partialStartOffset = partialStartOffset;
- outText.partialEndOffset = partialEndOffset - delta;
+ if (content == null) {
+ return false;
+ }
- if (partialStartOffset > N) {
- partialStartOffset = N;
- } else if (partialStartOffset < 0) {
- partialStartOffset = 0;
- }
- if (partialEndOffset > N) {
- partialEndOffset = N;
- } else if (partialEndOffset < 0) {
- partialEndOffset = 0;
+ if (partialStartOffset != EXTRACT_NOTHING) {
+ final int N = content.length();
+ if (partialStartOffset < 0) {
+ outText.partialStartOffset = outText.partialEndOffset = -1;
+ partialStartOffset = 0;
+ partialEndOffset = N;
+ } else {
+ // Now use the delta to determine the actual amount of text
+ // we need.
+ partialEndOffset += delta;
+ // Adjust offsets to ensure we contain full spans.
+ if (content instanceof Spanned) {
+ Spanned spanned = (Spanned)content;
+ Object[] spans = spanned.getSpans(partialStartOffset,
+ partialEndOffset, ParcelableSpan.class);
+ int i = spans.length;
+ while (i > 0) {
+ i--;
+ int j = spanned.getSpanStart(spans[i]);
+ if (j < partialStartOffset) partialStartOffset = j;
+ j = spanned.getSpanEnd(spans[i]);
+ if (j > partialEndOffset) partialEndOffset = j;
}
}
- if ((request.flags&InputConnection.GET_TEXT_WITH_STYLES) != 0) {
- outText.text = content.subSequence(partialStartOffset,
- partialEndOffset);
- } else {
- outText.text = TextUtils.substring(content, partialStartOffset,
- partialEndOffset);
+ outText.partialStartOffset = partialStartOffset;
+ outText.partialEndOffset = partialEndOffset - delta;
+
+ if (partialStartOffset > N) {
+ partialStartOffset = N;
+ } else if (partialStartOffset < 0) {
+ partialStartOffset = 0;
+ }
+ if (partialEndOffset > N) {
+ partialEndOffset = N;
+ } else if (partialEndOffset < 0) {
+ partialEndOffset = 0;
}
- } else {
- outText.partialStartOffset = 0;
- outText.partialEndOffset = 0;
- outText.text = "";
- }
- outText.flags = 0;
- if (MetaKeyKeyListener.getMetaState(content, MetaKeyKeyListener.META_SELECTING) != 0) {
- outText.flags |= ExtractedText.FLAG_SELECTING;
}
- if (mTextView.isSingleLine()) {
- outText.flags |= ExtractedText.FLAG_SINGLE_LINE;
+ if ((request.flags&InputConnection.GET_TEXT_WITH_STYLES) != 0) {
+ outText.text = content.subSequence(partialStartOffset,
+ partialEndOffset);
+ } else {
+ outText.text = TextUtils.substring(content, partialStartOffset,
+ partialEndOffset);
}
- outText.startOffset = 0;
- outText.selectionStart = mTextView.getSelectionStart();
- outText.selectionEnd = mTextView.getSelectionEnd();
- return true;
+ } else {
+ outText.partialStartOffset = 0;
+ outText.partialEndOffset = 0;
+ outText.text = "";
}
- return false;
+ outText.flags = 0;
+ if (MetaKeyKeyListener.getMetaState(content, MetaKeyKeyListener.META_SELECTING) != 0) {
+ outText.flags |= ExtractedText.FLAG_SELECTING;
+ }
+ if (mTextView.isSingleLine()) {
+ outText.flags |= ExtractedText.FLAG_SINGLE_LINE;
+ }
+ outText.startOffset = 0;
+ outText.selectionStart = mTextView.getSelectionStart();
+ outText.selectionEnd = mTextView.getSelectionEnd();
+ return true;
}
boolean reportExtractedText() {
diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java
index 8792323..c5b5c84 100644
--- a/core/java/android/widget/PopupWindow.java
+++ b/core/java/android/widget/PopupWindow.java
@@ -860,19 +860,22 @@ public class PopupWindow {
}
/**
- * Set the layout type for this window. Should be one of the TYPE constants defined in
- * {@link WindowManager.LayoutParams}.
+ * Set the layout type for this window. This value will be passed through to
+ * {@link WindowManager.LayoutParams#type} therefore the value should match any value
+ * {@link WindowManager.LayoutParams#type} accepts.
*
* @param layoutType Layout type for this window.
- * @hide
+ *
+ * @see WindowManager.LayoutParams#type
*/
public void setWindowLayoutType(int layoutType) {
mWindowLayoutType = layoutType;
}
/**
- * @return The layout type for this window.
- * @hide
+ * Returns the layout type for this window.
+ *
+ * @see #setWindowLayoutType(int)
*/
public int getWindowLayoutType() {
return mWindowLayoutType;
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index b44a886..0854eef 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -236,6 +236,9 @@ import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR1;
* @attr ref android.R.styleable#TextView_elegantTextHeight
* @attr ref android.R.styleable#TextView_letterSpacing
* @attr ref android.R.styleable#TextView_fontFeatureSettings
+ * @attr ref android.R.styleable#TextView_breakStrategy
+ * @attr ref android.R.styleable#TextView_leftIndents
+ * @attr ref android.R.styleable#TextView_rightIndents
*/
@RemoteView
public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {
@@ -551,6 +554,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
private float mSpacingAdd = 0.0f;
private int mBreakStrategy;
+ private int[] mLeftIndents;
+ private int[] mRightIndents;
private int mMaximum = Integer.MAX_VALUE;
private int mMaxMode = LINES;
@@ -1146,6 +1151,17 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
case com.android.internal.R.styleable.TextView_breakStrategy:
mBreakStrategy = a.getInt(attr, Layout.BREAK_STRATEGY_SIMPLE);
+ break;
+
+ case com.android.internal.R.styleable.TextView_leftIndents:
+ TypedArray margins = res.obtainTypedArray(a.getResourceId(attr, View.NO_ID));
+ mLeftIndents = parseDimensionArray(margins);
+ break;
+
+ case com.android.internal.R.styleable.TextView_rightIndents:
+ margins = res.obtainTypedArray(a.getResourceId(attr, View.NO_ID));
+ mRightIndents = parseDimensionArray(margins);
+ break;
}
}
a.recycle();
@@ -1421,6 +1437,17 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
}
}
+ private int[] parseDimensionArray(TypedArray dimens) {
+ if (dimens == null) {
+ return null;
+ }
+ int[] result = new int[dimens.length()];
+ for (int i = 0; i < result.length; i++) {
+ result[i] = dimens.getDimensionPixelSize(i, 0);
+ }
+ return result;
+ }
+
/**
* @hide
*/
@@ -3019,6 +3046,51 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
}
/**
+ * Set indents. Arguments are arrays holding an indent amount, one per line, measured in
+ * pixels. For lines past the last element in the array, the last element repeats.
+ *
+ * @param leftIndents array of indent values for left margin, in pixels
+ * @param rightIndents array of indent values for right margin, in pixels
+ *
+ * @see #getLeftIndents()
+ * @see #getRightIndents()
+ *
+ * @attr ref android.R.styleable#TextView_leftIndents
+ * @attr ref android.R.styleable#TextView_rightIndents
+ */
+ public void setIndents(@Nullable int[] leftIndents, @Nullable int[] rightIndents) {
+ mLeftIndents = leftIndents;
+ mRightIndents = rightIndents;
+ if (mLayout != null) {
+ nullLayouts();
+ requestLayout();
+ invalidate();
+ }
+ }
+
+ /**
+ * Get left indents. See {#link setMargins} for more details.
+ *
+ * @return left indents
+ * @see #setIndents(int[], int[])
+ * @attr ref android.R.styleable#TextView_leftIndents
+ */
+ public int[] getLeftIndents() {
+ return mLeftIndents;
+ }
+
+ /**
+ * Get right indents. See {#link setMargins} for more details.
+ *
+ * @return right indents
+ * @see #setIndents(int[], int[])
+ * @attr ref android.R.styleable#TextView_rightIndents
+ */
+ public int[] getRightIndents() {
+ return mRightIndents;
+ }
+
+ /**
* Sets font feature settings. The format is the same as the CSS
* font-feature-settings attribute:
* http://dev.w3.org/csswg/css-fonts/#propdef-font-feature-settings
@@ -6564,6 +6636,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
.setSpacingAdd(mSpacingAdd)
.setIncludePad(mIncludePad)
.setBreakStrategy(mBreakStrategy);
+ if (mLeftIndents != null || mRightIndents != null) {
+ builder.setIndents(mLeftIndents, mRightIndents);
+ }
if (shouldEllipsize) {
builder.setEllipsize(mEllipsize)
.setEllipsizedWidth(ellipsisWidth)
@@ -6652,6 +6727,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
.setSpacingAdd(mSpacingAdd)
.setIncludePad(mIncludePad)
.setBreakStrategy(mBreakStrategy);
+ if (mLeftIndents != null || mRightIndents != null) {
+ builder.setIndents(mLeftIndents, mRightIndents);
+ }
if (shouldEllipsize) {
builder.setEllipsize(effectiveEllipsize)
.setEllipsizedWidth(ellipsisWidth)
diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
index 6cb839e..87e0603 100644
--- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
@@ -27,6 +27,7 @@ interface IStatusBarService
void expandNotificationsPanel();
void collapsePanels();
void disable(int what, IBinder token, String pkg);
+ void disableForUser(int what, IBinder token, String pkg, int userId);
void setIcon(String slot, String iconPackage, int iconId, int iconLevel, String contentDescription);
void setIconVisibility(String slot, boolean visible);
void removeIcon(String slot);
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index 7a934bd..5c95f8a 100755
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -857,6 +857,13 @@ static void Bitmap_prepareToDraw(JNIEnv* env, jobject, jlong bitmapHandle) {
bitmap->unlockPixels();
}
+static jlong Bitmap_refPixelRef(JNIEnv* env, jobject, jlong bitmapHandle) {
+ SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
+ SkPixelRef* pixelRef = bitmap ? bitmap->pixelRef() : nullptr;
+ SkSafeRef(pixelRef);
+ return reinterpret_cast<jlong>(pixelRef);
+}
+
///////////////////////////////////////////////////////////////////////////////
static JNINativeMethod gBitmapMethods[] = {
@@ -896,6 +903,7 @@ static JNINativeMethod gBitmapMethods[] = {
(void*)Bitmap_copyPixelsFromBuffer },
{ "nativeSameAs", "(JJ)Z", (void*)Bitmap_sameAs },
{ "nativePrepareToDraw", "(J)V", (void*)Bitmap_prepareToDraw },
+ { "nativeRefPixelRef", "(J)J", (void*)Bitmap_refPixelRef },
};
int register_android_graphics_Bitmap(JNIEnv* env)
diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp
index f0bd5dd..f0bd8d1 100644
--- a/core/jni/android/graphics/Graphics.cpp
+++ b/core/jni/android/graphics/Graphics.cpp
@@ -373,7 +373,7 @@ SkColorType GraphicsJNI::getNativeBitmapColorType(JNIEnv* env, jobject jconfig)
return legacyBitmapConfigToColorType(c);
}
-SkCanvas* GraphicsJNI::getNativeCanvas(JNIEnv* env, jobject canvas) {
+android::Canvas* GraphicsJNI::getNativeCanvas(JNIEnv* env, jobject canvas) {
SkASSERT(env);
SkASSERT(canvas);
SkASSERT(env->IsInstanceOf(canvas, gCanvas_class));
@@ -381,9 +381,7 @@ SkCanvas* GraphicsJNI::getNativeCanvas(JNIEnv* env, jobject canvas) {
if (!canvasHandle) {
return NULL;
}
- SkCanvas* c = reinterpret_cast<android::Canvas*>(canvasHandle)->asSkCanvas();
- SkASSERT(c);
- return c;
+ return reinterpret_cast<android::Canvas*>(canvasHandle);
}
SkRegion* GraphicsJNI::getNativeRegion(JNIEnv* env, jobject region)
diff --git a/core/jni/android/graphics/GraphicsJNI.h b/core/jni/android/graphics/GraphicsJNI.h
index 49def13..8eb43f8 100644
--- a/core/jni/android/graphics/GraphicsJNI.h
+++ b/core/jni/android/graphics/GraphicsJNI.h
@@ -8,6 +8,7 @@
#include "SkPoint.h"
#include "SkRect.h"
#include "SkImageDecoder.h"
+#include <Canvas.h>
#include <jni.h>
class SkBitmapRegionDecoder;
@@ -47,7 +48,7 @@ public:
static SkPoint* jpointf_to_point(JNIEnv*, jobject jpointf, SkPoint* point);
static void point_to_jpointf(const SkPoint& point, JNIEnv*, jobject jpointf);
- static SkCanvas* getNativeCanvas(JNIEnv*, jobject canvas);
+ static android::Canvas* getNativeCanvas(JNIEnv*, jobject canvas);
static SkBitmap* getSkBitmapDeprecated(JNIEnv*, jobject bitmap);
static void getSkBitmap(JNIEnv*, jobject bitmap, SkBitmap* outBitmap);
static SkPixelRef* getSkPixelRef(JNIEnv*, jobject bitmap);
diff --git a/core/jni/android/graphics/Shader.cpp b/core/jni/android/graphics/Shader.cpp
index 6591d29..d0f7591 100644
--- a/core/jni/android/graphics/Shader.cpp
+++ b/core/jni/android/graphics/Shader.cpp
@@ -80,11 +80,12 @@ static jlong Shader_setLocalMatrix(JNIEnv* env, jobject o, jlong shaderHandle, j
///////////////////////////////////////////////////////////////////////////////////////////////
-static jlong BitmapShader_constructor(JNIEnv* env, jobject o, jlong bitmapHandle,
+static jlong BitmapShader_constructor(JNIEnv* env, jobject o, jobject jbitmap,
jint tileModeX, jint tileModeY)
{
- const SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
- SkShader* s = SkShader::CreateBitmapShader(*bitmap,
+ SkBitmap bitmap;
+ GraphicsJNI::getSkBitmap(env, jbitmap, &bitmap);
+ SkShader* s = SkShader::CreateBitmapShader(bitmap,
(SkShader::TileMode)tileModeX,
(SkShader::TileMode)tileModeY);
@@ -249,7 +250,7 @@ static JNINativeMethod gShaderMethods[] = {
};
static JNINativeMethod gBitmapShaderMethods[] = {
- { "nativeCreate", "(JII)J", (void*)BitmapShader_constructor },
+ { "nativeCreate", "(Landroid/graphics/Bitmap;II)J", (void*)BitmapShader_constructor },
};
static JNINativeMethod gLinearGradientMethods[] = {
diff --git a/core/jni/android_graphics_Canvas.cpp b/core/jni/android_graphics_Canvas.cpp
index a2c1609..50a1069 100644
--- a/core/jni/android_graphics_Canvas.cpp
+++ b/core/jni/android_graphics_Canvas.cpp
@@ -39,17 +39,22 @@ static void finalizer(JNIEnv* env, jobject clazz, jlong canvasHandle) {
}
// Native wrapper constructor used by Canvas(Bitmap)
-static jlong initRaster(JNIEnv* env, jobject, jlong bitmapHandle) {
- SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
+static jlong initRaster(JNIEnv* env, jobject, jobject jbitmap) {
+ SkBitmap bitmap;
+ if (jbitmap != NULL) {
+ GraphicsJNI::getSkBitmap(env, jbitmap, &bitmap);
+ }
return reinterpret_cast<jlong>(Canvas::create_canvas(bitmap));
}
// Set the given bitmap as the new draw target (wrapped in a new SkCanvas),
// optionally copying canvas matrix & clip state.
-static void setBitmap(JNIEnv* env, jobject, jlong canvasHandle, jlong bitmapHandle,
- jboolean copyState) {
- SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
- get_canvas(canvasHandle)->setBitmap(bitmap, copyState);
+static void setBitmap(JNIEnv* env, jobject, jlong canvasHandle, jobject jbitmap) {
+ SkBitmap bitmap;
+ if (jbitmap != NULL) {
+ GraphicsJNI::getSkBitmap(env, jbitmap, &bitmap);
+ }
+ get_canvas(canvasHandle)->setBitmap(bitmap);
}
static jboolean isOpaque(JNIEnv*, jobject, jlong canvasHandle) {
@@ -658,8 +663,8 @@ static void freeTextLayoutCaches(JNIEnv* env, jobject) {
static JNINativeMethod gMethods[] = {
{"finalizer", "(J)V", (void*) CanvasJNI::finalizer},
- {"initRaster", "(J)J", (void*) CanvasJNI::initRaster},
- {"native_setBitmap", "(JJZ)V", (void*) CanvasJNI::setBitmap},
+ {"initRaster", "(Landroid/graphics/Bitmap;)J", (void*) CanvasJNI::initRaster},
+ {"native_setBitmap", "(JLandroid/graphics/Bitmap;)V", (void*) CanvasJNI::setBitmap},
{"native_isOpaque","(J)Z", (void*) CanvasJNI::isOpaque},
{"native_getWidth","(J)I", (void*) CanvasJNI::getWidth},
{"native_getHeight","(J)I", (void*) CanvasJNI::getHeight},
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp
index ec2b590..c9b0e76 100644
--- a/core/jni/android_media_AudioRecord.cpp
+++ b/core/jni/android_media_AudioRecord.cpp
@@ -524,6 +524,17 @@ static jint android_media_AudioRecord_readInDirectBuffer(JNIEnv *env, jobject t
// ----------------------------------------------------------------------------
+static jint android_media_AudioRecord_get_native_frame_count(JNIEnv *env, jobject thiz) {
+ sp<AudioRecord> lpRecorder = getAudioRecord(env, thiz);
+ if (lpRecorder == NULL) {
+ jniThrowException(env, "java/lang/IllegalStateException",
+ "Unable to retrieve AudioRecord pointer for getNativeFrameCount()");
+ return (jint)AUDIO_JAVA_ERROR;
+ }
+ return lpRecorder->frameCount();
+}
+
+// ----------------------------------------------------------------------------
static jint android_media_AudioRecord_set_marker_pos(JNIEnv *env, jobject thiz,
jint markerPos) {
@@ -629,6 +640,8 @@ static JNINativeMethod gMethods[] = {
"([FIIZ)I", (void *)android_media_AudioRecord_readInFloatArray},
{"native_read_in_direct_buffer","(Ljava/lang/Object;I)I",
(void *)android_media_AudioRecord_readInDirectBuffer},
+ {"native_get_native_frame_count",
+ "()I", (void *)android_media_AudioRecord_get_native_frame_count},
{"native_set_marker_pos","(I)I", (void *)android_media_AudioRecord_set_marker_pos},
{"native_get_marker_pos","()I", (void *)android_media_AudioRecord_get_marker_pos},
{"native_set_pos_update_period",
diff --git a/core/jni/android_text_StaticLayout.cpp b/core/jni/android_text_StaticLayout.cpp
index 87c58d6..5e73ef2 100644
--- a/core/jni/android_text_StaticLayout.cpp
+++ b/core/jni/android_text_StaticLayout.cpp
@@ -132,6 +132,13 @@ static void nSetLocale(JNIEnv* env, jclass, jlong nativePtr, jstring javaLocaleN
}
}
+static void nSetIndents(JNIEnv* env, jclass, jlong nativePtr, jintArray indents) {
+ ScopedIntArrayRO indentArr(env, indents);
+ std::vector<float> indentVec(indentArr.get(), indentArr.get() + indentArr.size());
+ LineBreaker* b = reinterpret_cast<LineBreaker*>(nativePtr);
+ b->setIndents(indentVec);
+}
+
// Basically similar to Paint.getTextRunAdvances but with C++ interface
static jfloat nAddStyleRun(JNIEnv* env, jclass, jlong nativePtr,
jlong nativePaint, jlong nativeTypeface, jint start, jint end, jboolean isRtl) {
@@ -171,6 +178,7 @@ static JNINativeMethod gMethods[] = {
{"nLoadHyphenator", "(Ljava/lang/String;)J", (void*) nLoadHyphenator},
{"nSetLocale", "(JLjava/lang/String;J)V", (void*) nSetLocale},
{"nSetupParagraph", "(J[CIFIF[III)V", (void*) nSetupParagraph},
+ {"nSetIndents", "(J[I)V", (void*) nSetIndents},
{"nAddStyleRun", "(JJJIIZ)F", (void*) nAddStyleRun},
{"nAddMeasuredRun", "(JII[F)V", (void*) nAddMeasuredRun},
{"nAddReplacementRun", "(JIIF)V", (void*) nAddReplacementRun},
diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp
index 5f42c3d..cfbedda 100644
--- a/core/jni/android_util_Binder.cpp
+++ b/core/jni/android_util_Binder.cpp
@@ -807,6 +807,11 @@ static void android_os_Binder_destroy(JNIEnv* env, jobject obj)
}
}
+static void android_os_Binder_blockUntilThreadAvailable(JNIEnv* env, jobject clazz)
+{
+ return IPCThreadState::self()->blockUntilThreadAvailable();
+}
+
// ----------------------------------------------------------------------------
static const JNINativeMethod gBinderMethods[] = {
@@ -819,7 +824,8 @@ static const JNINativeMethod gBinderMethods[] = {
{ "getThreadStrictModePolicy", "()I", (void*)android_os_Binder_getThreadStrictModePolicy },
{ "flushPendingCommands", "()V", (void*)android_os_Binder_flushPendingCommands },
{ "init", "()V", (void*)android_os_Binder_init },
- { "destroy", "()V", (void*)android_os_Binder_destroy }
+ { "destroy", "()V", (void*)android_os_Binder_destroy },
+ { "blockUntilThreadAvailable", "()V", (void*)android_os_Binder_blockUntilThreadAvailable }
};
const char* const kBinderPathName = "android/os/Binder";
diff --git a/core/jni/android_view_GraphicBuffer.cpp b/core/jni/android_view_GraphicBuffer.cpp
index a12629f..aa79d70 100644
--- a/core/jni/android_view_GraphicBuffer.cpp
+++ b/core/jni/android_view_GraphicBuffer.cpp
@@ -67,11 +67,6 @@ static struct {
jfieldID bottom;
} gRectClassInfo;
-static struct {
- jfieldID mSurfaceFormat;
- jmethodID setNativeBitmap;
-} gCanvasClassInfo;
-
#define GET_INT(object, field) \
env->GetIntField(object, field)
@@ -196,13 +191,9 @@ static jboolean android_view_GraphicBuffer_lockCanvas(JNIEnv* env, jobject,
bitmap.setPixels(NULL);
}
- SET_INT(canvas, gCanvasClassInfo.mSurfaceFormat, buffer->getPixelFormat());
- INVOKEV(canvas, gCanvasClassInfo.setNativeBitmap, reinterpret_cast<jlong>(&bitmap));
-
- SkRect clipRect;
- clipRect.set(rect.left, rect.top, rect.right, rect.bottom);
- SkCanvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvas);
- nativeCanvas->clipRect(clipRect);
+ Canvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvas);
+ nativeCanvas->setBitmap(bitmap);
+ nativeCanvas->clipRect(rect.left, rect.top, rect.right, rect.bottom);
if (dirtyRect) {
INVOKEV(dirtyRect, gRectClassInfo.set,
@@ -217,7 +208,8 @@ static jboolean android_view_GraphicBuffer_unlockCanvasAndPost(JNIEnv* env, jobj
GraphicBufferWrapper* wrapper =
reinterpret_cast<GraphicBufferWrapper*>(wrapperHandle);
- INVOKEV(canvas, gCanvasClassInfo.setNativeBitmap, (jlong)0);
+ Canvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvas);
+ nativeCanvas->setBitmap(SkBitmap());
if (wrapper) {
status_t status = wrapper->buffer->unlock();
@@ -302,10 +294,6 @@ int register_android_view_GraphicBuffer(JNIEnv* env) {
gRectClassInfo.right = GetFieldIDOrDie(env, clazz, "right", "I");
gRectClassInfo.bottom = GetFieldIDOrDie(env, clazz, "bottom", "I");
- clazz = FindClassOrDie(env, "android/graphics/Canvas");
- gCanvasClassInfo.mSurfaceFormat = GetFieldIDOrDie(env, clazz, "mSurfaceFormat", "I");
- gCanvasClassInfo.setNativeBitmap = GetMethodIDOrDie(env, clazz, "setNativeBitmap", "(J)V");
-
return RegisterMethodsOrDie(env, kClassPathName, gMethods, NELEM(gMethods));
}
diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp
index f1c90ea..06d1e85 100644
--- a/core/jni/android_view_Surface.cpp
+++ b/core/jni/android_view_Surface.cpp
@@ -74,11 +74,6 @@ static struct {
jfieldID bottom;
} gRectClassInfo;
-static struct {
- jfieldID mSurfaceFormat;
- jmethodID setNativeBitmap;
-} gCanvasClassInfo;
-
// ----------------------------------------------------------------------------
// this is just a pointer we use to pass to inc/decStrong
@@ -319,9 +314,6 @@ static jlong nativeLockCanvas(JNIEnv* env, jclass clazz,
return 0;
}
- // Associate a SkCanvas object to this surface
- env->SetIntField(canvasObj, gCanvasClassInfo.mSurfaceFormat, outBuffer.format);
-
SkImageInfo info = SkImageInfo::Make(outBuffer.width, outBuffer.height,
convertPixelFormat(outBuffer.format),
kPremul_SkAlphaType);
@@ -339,12 +331,12 @@ static jlong nativeLockCanvas(JNIEnv* env, jclass clazz,
bitmap.setPixels(NULL);
}
- env->CallVoidMethod(canvasObj, gCanvasClassInfo.setNativeBitmap,
- reinterpret_cast<jlong>(&bitmap));
+ Canvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvasObj);
+ nativeCanvas->setBitmap(bitmap);
if (dirtyRectPtr) {
- SkCanvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvasObj);
- nativeCanvas->clipRect( SkRect::Make(reinterpret_cast<const SkIRect&>(dirtyRect)) );
+ nativeCanvas->clipRect(dirtyRect.left, dirtyRect.top,
+ dirtyRect.right, dirtyRect.bottom);
}
if (dirtyRectObj) {
@@ -370,7 +362,8 @@ static void nativeUnlockCanvasAndPost(JNIEnv* env, jclass clazz,
}
// detach the canvas from the surface
- env->CallVoidMethod(canvasObj, gCanvasClassInfo.setNativeBitmap, (jlong)0);
+ Canvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvasObj);
+ nativeCanvas->setBitmap(SkBitmap());
// unlock surface
status_t err = surface->unlockAndPost();
@@ -565,10 +558,6 @@ int register_android_view_Surface(JNIEnv* env)
gSurfaceClassInfo.clazz, "mLock", "Ljava/lang/Object;");
gSurfaceClassInfo.ctor = GetMethodIDOrDie(env, gSurfaceClassInfo.clazz, "<init>", "(J)V");
- clazz = FindClassOrDie(env, "android/graphics/Canvas");
- gCanvasClassInfo.mSurfaceFormat = GetFieldIDOrDie(env, clazz, "mSurfaceFormat", "I");
- gCanvasClassInfo.setNativeBitmap = GetMethodIDOrDie(env, clazz, "setNativeBitmap", "(J)V");
-
clazz = FindClassOrDie(env, "android/graphics/Rect");
gRectClassInfo.left = GetFieldIDOrDie(env, clazz, "left", "I");
gRectClassInfo.top = GetFieldIDOrDie(env, clazz, "top", "I");
diff --git a/core/jni/android_view_TextureView.cpp b/core/jni/android_view_TextureView.cpp
index c2bd0b3..7e05793 100644
--- a/core/jni/android_view_TextureView.cpp
+++ b/core/jni/android_view_TextureView.cpp
@@ -48,11 +48,6 @@ static struct {
} gRectClassInfo;
static struct {
- jfieldID mSurfaceFormat;
- jmethodID setNativeBitmap;
-} gCanvasClassInfo;
-
-static struct {
jfieldID nativeWindow;
} gTextureViewClassInfo;
@@ -172,13 +167,9 @@ static jboolean android_view_TextureView_lockCanvas(JNIEnv* env, jobject,
bitmap.setPixels(NULL);
}
- SET_INT(canvas, gCanvasClassInfo.mSurfaceFormat, buffer.format);
- INVOKEV(canvas, gCanvasClassInfo.setNativeBitmap, reinterpret_cast<jlong>(&bitmap));
-
- SkRect clipRect;
- clipRect.set(rect.left, rect.top, rect.right, rect.bottom);
- SkCanvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvas);
- nativeCanvas->clipRect(clipRect);
+ Canvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvas);
+ nativeCanvas->setBitmap(bitmap);
+ nativeCanvas->clipRect(rect.left, rect.top, rect.right, rect.bottom);
if (dirtyRect) {
INVOKEV(dirtyRect, gRectClassInfo.set,
@@ -191,7 +182,8 @@ static jboolean android_view_TextureView_lockCanvas(JNIEnv* env, jobject,
static void android_view_TextureView_unlockCanvasAndPost(JNIEnv* env, jobject,
jlong nativeWindow, jobject canvas) {
- INVOKEV(canvas, gCanvasClassInfo.setNativeBitmap, (jlong)0);
+ Canvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvas);
+ nativeCanvas->setBitmap(SkBitmap());
if (nativeWindow) {
sp<ANativeWindow> window((ANativeWindow*) nativeWindow);
@@ -225,10 +217,6 @@ int register_android_view_TextureView(JNIEnv* env) {
gRectClassInfo.right = GetFieldIDOrDie(env, clazz, "right", "I");
gRectClassInfo.bottom = GetFieldIDOrDie(env, clazz, "bottom", "I");
- clazz = FindClassOrDie(env, "android/graphics/Canvas");
- gCanvasClassInfo.mSurfaceFormat = GetFieldIDOrDie(env, clazz, "mSurfaceFormat", "I");
- gCanvasClassInfo.setNativeBitmap = GetMethodIDOrDie(env, clazz, "setNativeBitmap", "(J)V");
-
clazz = FindClassOrDie(env, "android/view/TextureView");
gTextureViewClassInfo.nativeWindow = GetFieldIDOrDie(env, clazz, "mNativeWindow", "J");
diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp
index 11b3805..4ccbb41 100644
--- a/core/jni/android_view_ThreadedRenderer.cpp
+++ b/core/jni/android_view_ThreadedRenderer.cpp
@@ -21,6 +21,7 @@
#include "jni.h"
#include <nativehelper/JNIHelp.h>
#include "core_jni_helpers.h"
+#include <GraphicsJNI.h>
#include <ScopedPrimitiveArray.h>
#include <EGL/egl.h>
@@ -347,10 +348,11 @@ static void android_view_ThreadedRenderer_buildLayer(JNIEnv* env, jobject clazz,
}
static jboolean android_view_ThreadedRenderer_copyLayerInto(JNIEnv* env, jobject clazz,
- jlong proxyPtr, jlong layerPtr, jlong bitmapPtr) {
+ jlong proxyPtr, jlong layerPtr, jobject jbitmap) {
RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerPtr);
- SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapPtr);
+ SkBitmap bitmap;
+ GraphicsJNI::getSkBitmap(env, jbitmap, &bitmap);
return proxy->copyLayerInto(layer, bitmap);
}
@@ -458,7 +460,7 @@ static JNINativeMethod gMethods[] = {
{ "nInvokeFunctor", "(JZ)V", (void*) android_view_ThreadedRenderer_invokeFunctor },
{ "nCreateTextureLayer", "(J)J", (void*) android_view_ThreadedRenderer_createTextureLayer },
{ "nBuildLayer", "(JJ)V", (void*) android_view_ThreadedRenderer_buildLayer },
- { "nCopyLayerInto", "(JJJ)Z", (void*) android_view_ThreadedRenderer_copyLayerInto },
+ { "nCopyLayerInto", "(JJLandroid/graphics/Bitmap;)Z", (void*) android_view_ThreadedRenderer_copyLayerInto },
{ "nPushLayerUpdate", "(JJ)V", (void*) android_view_ThreadedRenderer_pushLayerUpdate },
{ "nCancelLayerUpdate", "(JJ)V", (void*) android_view_ThreadedRenderer_cancelLayerUpdate },
{ "nDetachSurfaceTexture", "(JJ)V", (void*) android_view_ThreadedRenderer_detachSurfaceTexture },
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 6b44cd4..13877fb 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -1636,6 +1636,14 @@
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.BIND_JOB_SERVICE"/>
+ <!-- Allows an application to initiate configuration updates
+ <p>An application requesting this permission is responsible for
+ verifying the source and integrity of any update before passing
+ it off to the various individual installer components
+ @hide -->
+ <permission android:name="android.permission.UPDATE_CONFIG"
+ android:protectionLevel="signature|system" />
+
<!-- ========================================= -->
<!-- Permissions for special development tools -->
<!-- ========================================= -->
@@ -2556,42 +2564,48 @@
</intent-filter>
</receiver>
- <receiver android:name="com.android.server.updates.CertPinInstallReceiver" >
+ <receiver android:name="com.android.server.updates.CertPinInstallReceiver"
+ android:permission="android.permission.UPDATE_CONFIG">
<intent-filter>
<action android:name="android.intent.action.UPDATE_PINS" />
<data android:scheme="content" android:host="*" android:mimeType="*/*" />
</intent-filter>
</receiver>
- <receiver android:name="com.android.server.updates.IntentFirewallInstallReceiver" >
+ <receiver android:name="com.android.server.updates.IntentFirewallInstallReceiver"
+ android:permission="android.permission.UPDATE_CONFIG">
<intent-filter>
<action android:name="android.intent.action.UPDATE_INTENT_FIREWALL" />
<data android:scheme="content" android:host="*" android:mimeType="*/*" />
</intent-filter>
</receiver>
- <receiver android:name="com.android.server.updates.SmsShortCodesInstallReceiver" >
+ <receiver android:name="com.android.server.updates.SmsShortCodesInstallReceiver"
+ android:permission="android.permission.UPDATE_CONFIG">
<intent-filter>
<action android:name="android.intent.action.UPDATE_SMS_SHORT_CODES" />
<data android:scheme="content" android:host="*" android:mimeType="*/*" />
</intent-filter>
</receiver>
- <receiver android:name="com.android.server.updates.CarrierProvisioningUrlsInstallReceiver" >
+ <receiver android:name="com.android.server.updates.CarrierProvisioningUrlsInstallReceiver"
+ android:permission="android.permission.UPDATE_CONFIG">
<intent-filter>
<action android:name="android.intent.action.UPDATE_CARRIER_PROVISIONING_URLS" />
<data android:scheme="content" android:host="*" android:mimeType="*/*" />
</intent-filter>
</receiver>
- <receiver android:name="com.android.server.updates.TzDataInstallReceiver" >
+ <receiver android:name="com.android.server.updates.TzDataInstallReceiver"
+ android:permission="android.permission.UPDATE_CONFIG">
<intent-filter>
<action android:name="android.intent.action.UPDATE_TZDATA" />
<data android:scheme="content" android:host="*" android:mimeType="*/*" />
</intent-filter>
</receiver>
- <receiver android:name="com.android.server.updates.SELinuxPolicyInstallReceiver" >
+ <receiver android:name="com.android.server.updates.SELinuxPolicyInstallReceiver"
+ android:permission="android.permission.UPDATE_CONFIG">
<intent-filter>
<action android:name="android.intent.action.UPDATE_SEPOLICY" />
<data android:scheme="content" android:host="*" android:mimeType="*/*" />
diff --git a/core/res/res/color/ratingbar_background_material.xml b/core/res/res/color/ratingbar_background_material.xml
index e6f7488..5af6de1 100644
--- a/core/res/res/color/ratingbar_background_material.xml
+++ b/core/res/res/color/ratingbar_background_material.xml
@@ -20,6 +20,10 @@
android:color="?attr/colorControlActivated"
android:alpha="?attr/disabledAlpha" />
<item
+ android:state_focused="true"
+ android:color="?attr/colorControlActivated"
+ android:alpha="?attr/disabledAlpha" />
+ <item
android:color="?attr/colorControlNormal"
android:alpha="?attr/disabledAlpha" />
</selector>
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 05ff157..97df7e5 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android-stelsel"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Persoonlike programme"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Werk"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontakte"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"toegang tot jou kontakte verkry en hulle wysig"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Ligging"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"toegang tot jou ligging verkry"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Jou sosiale inligting"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direkte toegang tot inligting oor jou kontakte en sosiale verbindings."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"toegang tot jou kalender verkry en dit wysig"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"toegang tot SMS verkry en dit wysig"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Gebruikerwoordeboek"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lees of skryf woorde in gebruikerswoordeboek."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Boekmerke en geskiedenis"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direkte toegang tot boekmerke en blaaiergeskiedenis."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofoon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"toestelmikrofoon gebruik"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"toestelkamera gebruik"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Foon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"toesteltelefonie gebruik"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensors"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"toegang tot sensors en drabare toestelle verkry"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Haal venster-inhoud op"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Ondersoek die inhoud van \'n venster waarmee jy interaksie het."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Skakel Verken deur raak aan"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Gedeeltelike vingerafdruk is bespeur. Probeer asseblief weer."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Kon nie vingerafdruk verwerk nie. Probeer asseblief weer."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Vingerafdruksensor is vuil. Maak dit skoon en probeer weer."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Vinger is te vinnig beweeg. Probeer asseblief weer."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Vinger is te stadig beweeg. Probeer asseblief weer."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Kon nie verwerk nie. Probeer weer."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardeware is nie beskikbaar nie."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Vingerafdruk kan nie gestoor word nie. Verwyder asseblief \'n bestaande vingerafdruk."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Vingerafdrukuittelling is bereik. Probeer weer."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Vingerafdrukuittelling is bereik. Probeer weer."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"lees sinkroniseer-instellings"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Laat \'n program toe om die sinkroniseringinstellings van \'n rekening te verander. Byvoorbeeld, dit kan gebruik word om sinkronisasie van die People-program met \'n ander rekening te aktiveer."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"lees sinkroniseerstatistiek"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Laat \'n program toe om die sinkroniseringstatistieke van \'n rekening te lees, insluitend die geskiedenis van sinkroniseringgebeure en hoeveel data gesinkroniseer is."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"skryf ingetekende strome"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Laat die program toe om jou huidig gesinkroniseerde strome te verander. Kwaadwillige programme kan dalk jou gesinkroniseerde strome verander."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"lees terme wat jy by die woordeboek gevoeg het"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Laat ’n program toe om alle woorde, name en frases wat die gebruiker moontlik in die gebruikerwoordeboek gestoor het, te lees."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"voeg woorde by gebruiker-gedefinieerde woordeboek"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Druk kieslys om oop te sluit of maak noodoproep."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Druk kieslys om oop te maak."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Teken patroon om te ontsluit"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Noodoproep"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Keer terug na oproep"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Reg!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Probeer weer"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidate"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Berei USB-berging voor"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Berei SD-kaart voor"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Kontroleer vir foute."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Leë USB-berging"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Blanko SD-kaart"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB-geheue is leeg of is van \'n nieondersteunde lêerstelsel."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD-kaart is leeg of is van \'n nieondersteunde lêerstelsel."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Beskadigde USB-berging"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Beskadigde SD-kaart"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB-geheue is beskadig. Probeer dit herformateer."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD-kaart is beskadig. Probeer dit herformateer."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-berging onverwags verwyder"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD-kaart onverwags verwyder"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Ontheg USB-berging voordat jy dit verwyder om dataverlies te vermy."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Ontheg SD-kaart voor jy dit uithaal, om dataverlies te vermy."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Veilig om USB-berging te verwyder"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD-kaart veilig om te verwyder"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Jy kan USB-berging veilig verwyder."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Jy kan SD-kaart veilig verwyder."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB-berging is verwyder"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Verwyder SD-kaart"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB-berging is verwyder. Voeg nuwe media in."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD-kaart verwyder. Sit \'n nuwe een in."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Geen passende aktiwiteite gevind nie."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Roeteer media-uitvoer"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Laat \'n program toe om media-uitvoere na ander eksterne toestelle te roeteer."</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Oorlegger #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", veilig"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Noodoproep"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Het jy die patroon vergeet?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Verkeerde patroon"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Verkeerde wagwoord"</string>
@@ -1447,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Tot <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Totdat jy dit afskakel"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Vou in"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blokkeer onderbrekings"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Staantyd"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Weekaande"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Naweke"</string>
<string name="muted_by" msgid="6147073845094180001">"Gedemp deur <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Daar is \'n interne probleem met jou toestel en dit sal dalk onstabiel wees totdat jy \'n fabriekterugstelling doen."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Daar is \'n interne probleem met jou toestel. Kontak jou vervaardiger vir besonderhede."</string>
@@ -1467,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS-versoek is gewysig tot DIAL-versoek."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS-versoek is gewysig tot USSD-versoek."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS-versoek is gewysig tot nuwe SS-versoek."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android-USB-randpoort"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB-randpoort"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Nog opsies"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Maak oorloop toe"</string>
</resources>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index ea49736..b2a0910 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android ስርዓት"</string>
<string name="user_owner_label" msgid="6465364741001216388">"የግል መተግበሪያዎች"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"ስራ"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"ዕውቂያዎች"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"የእርስዎን ዕውቂያዎች ይድረስበት እና ያሻሽል"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"መገኛ አካባቢ"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"የእርስዎን መገኛ አካባቢ ይድረስበት"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ማህበራዊ መረጃዎ"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ወደ የእውቂያዎችህና የማህበራዊ ግንኙነቶችህ መረጃ ቀጥተኛ መዳረሻ።"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"ቀን መቁጠሪያ"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"የእርስዎን ቀን መቁጠሪያ ይድረስበት እና ያሻሽል"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"ኤስኤምኤስ"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"ኤስኤምኤስ ላይ ይድረስበት እና ያሻሽል"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"የተጠቃሚ መዝገበ ቃላት"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"በተጠቃሚ መዝገበቃላት ላይ ቃሎችን አንብብ ወይም ጻፍ።"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ዕልባቶች እና ታሪክ"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ወደ ዕልባቶችና የአሳሽ ታሪክ ቀጥተኛ መዳረሻ።"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"ማይክሮፎን"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"የመሣሪያ ማይክራፎን ተጠቀም"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"ካሜራ"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"የመሣሪያ ካሜራ ይጠቀም"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"ስልክ"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"የመሣሪያ ቴሌፎኒ ተጠቀም"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"አነፍናፊዎች"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"አነፍናፊዎችን እና ተለባሾችን ይድረስባቸው"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"የመስኮት ይዘት ሰርስረው ያውጡ"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"መስተጋበር የሚፈጥሩት የመስኮት ይዘት ይመርምሩ።"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"በመንካት ያስሱን ያብሩ"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"ከፊል የጣት አሻራ ተገኝቷል። እባክዎ እንደገና ይሞክሩ።"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ጣት አሻራን መስራት አልተቻለም። እባክዎ እንደገና ይሞክሩ።"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"የጣት አሻራ ዳሳሽ ቆሽሿል። እባክዎ ያጽዱት እና እንደገና ይሞክሩ።"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"ጣት በጣም በፍጥነት ተንቀሳቅሷል። እባክዎ እንደገና ይሞክሩ።"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"ጣት በጣም በዝግታ ተንቀሳቅሷል። እባክዎ እንደገና ይሞክሩ።"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"ሂደትን ማከናወን አልተቻለም። እንደገና ይሞክሩ።"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"ሃርድዌር አይገኝም።"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"የጣት አሻራ ሊከማች አይችልም። እባክዎ አሁን ያለውን የጣት አሻራ ያስወግዱ።"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"የጣት አሻራ ማብቂያ ጊዜ ደርሷል። እንደገና ይሞክሩ።"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"የጣት አሻራ ማብቂያ ጊዜ ደርሷል። እንደገና ይሞክሩ።"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"የሥምሪያ ቅንብሮች አንብብ"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"መተግበሪያው የመለያ ማመሳሰል ቅንብሮችን እንዲያስተካክል ይፈቅድለታል። ለምሳሌ ይህ የሰዎች መተግበሪያን ከመለያ መመሳሰልን ለማንቃት ጥቅም ላይ ሊውል ይችላል።"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"የሥምሪያ ስታስቲክስ አንብብ"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"መተግበሪያው የማመሳሰል ክስተቶችን ታሪክ እና የተመሳሰለውን የውሂብ መጠን ጨምሮ የመለያን የማመሳሰል ስታትስቲክስ እንዲያነብ ይፈቅድለታል።"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"የተመዝጋቢዎች ምላሾች ፃፍ"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"በአሁኑ ጊዜ የተመሳሰሉ ምግቦችን ለመቀየር ለመተግበሪያው ይፈቅዳሉ፡፡ የተመሳሰሉ ምግቦችህን ተንኮል አዘል መተግበሪያዎች ሊለውጡ ይችላሉ፡፡"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"መዝገበ ቃላቱ ላይ ያከልካቸውን ቃላት አንብብ"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"መተግበሪያው ተጠቃሚው በተጠቃሚው መዝገበ-ቃላት አከማችቷቸው ሊሆኑ የሚችሉ ሁሉንም ቃላት፣ ስሞችና ሐረጋት እንዲያነባቸው ይፈቅድለታል።"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"በተጠቃሚ በተገለጸ መዝገበ ቃላት ላይ ቃላትን ያክላል"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"ለመክፈት ምናሌ ተጫንወይም የአደጋ ጊዜ ጥሪ አድርግ።"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"ለመክፈት ምናሌ ተጫን"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"ለመክፈት ስርዓተ ጥለት ሳል"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"የአደጋ ጊዜ ጥሪ"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"ወደ ጥሪ ተመለስ"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ትክክል!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"እንደገና ሞክር"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"ዕጩዎች"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB ማከማቻ በማዘጋጀት ላይ"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD ካርድ ማዘጋጀት"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"ስህተቶችን መመልከት።"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"ባዶ የUSB ማከማቻ"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"ባዶ SD ካርድ"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB ማህደረ ትውስታ ባዶ ነው ወይም የማይደገፍ ስርዓተ ፋይል አለው።"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD ካርድ ባዶ ነው ወይም የማይደገፍ ፋይል ስርዓት አለው።"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"የተበላሸ የUSB ማከማቻ"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"የወደመ SD ካርድ"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB ማከማቻ ተጎድቷል። ዳግም ለመቅረጽ ሞክር።"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD ካርድ ተጎድቷል። ዳግም ለመቅረጽ ሞክር።"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB ማከማቻ በድንገት ተወግዷል"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD ካርድ ሳይጠበቅ ተወግዷል"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"የውሂብ መጥፋት ለማስቀረትከመወገዱ በፊት የUSB ማከማቻ ንቀል"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"የውሂብ መጥፋትንከማስወደገድ በፊት የ SD ካርድ ንቀል።"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"የUSB ማከማቻ ለማስወገድ ደህና ነው"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD ካርድበደህናለማውጣት"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USB ማከማቻ በደህና ማስወገድ ይችላሉ።"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"SD ካርድ በደህናማስወገድ ይችላሉ።"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB ማከማቻ ተወግዷል"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"የተወገደ SD ካርድ"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB ማከማቻ ተወግዷል። አዲስ ማህደረ መረጃ አስገባ።"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD ካርድተወግዷል።አዲስ አስገባ።"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"ምንም ተመሳሳይ እንቅስቃሴዎች አልተገኙም።"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"የሚዲያ ውፅአት መንገድ"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"አንድ መተግበሪያ የሚዲያ ውፅአትን ወደ ሌላ ውጫዊ መሳሪያ እንዲመራ ይፈቅድለታል።"</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"ተደራቢ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>፦ <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>፣ <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"፣ የተጠበቀ"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"የአደጋ ጊዜ ጥሪ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ስርዓተ ጥለቱን እርሳ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"የተሳሳተ ስርዓተ ጥለት"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"የተሳሳተ ይለፍ ቃል"</string>
@@ -1447,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"እስከ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> ድረስ"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"ይህን እስኪያጠፉት ድረስ"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"መቆራረጦችን አግድ"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"የማይገኝበት ጊዜ"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"የሳምንቱ ቀኖች ምሽቶች"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"የሳምንት መጨረሻ ቀኖች"</string>
<string name="muted_by" msgid="6147073845094180001">"ድምጽ በ<xliff:g id="THIRD_PARTY">%1$s</xliff:g> ተዘግቷል"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"መሣሪያዎ ላይ የውስጣዊ ችግር አለ፣ የፋብሪካ ውሂብ ዳግም እስኪያስጀምሩት ድረስ ላይረጋጋ ይችላል።"</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"መሣሪያዎ ላይ የውስጣዊ ችግር አለ። ዝርዝሮችን ለማግኘት አምራችዎን ያነጋግሩ።"</string>
@@ -1467,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS ጥያቄ ወደ ደውል ጥያቄ ተሻሽሎዋል።"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS ጥያቄ ወደ USSD ጥያቄ ተሻሽሎዋል።"</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS ጥያቄ ወደ አዲስ SS ጥያቄ ተሻሽሎዋል።"</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"የAndroid USB Peripheral ወደብ"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB Peripheral ወደብ"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"ተጨማሪ አማራጮች"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"ትርፍ ፍሰትን ዝጋ"</string>
</resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index ccf5fa2..222ed6a 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -222,42 +222,28 @@
<string name="android_system_label" msgid="6577375335728551336">"‏نظام Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"التطبيقات الشخصية"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"عمل"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"جهات الاتصال"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"الدخول إلى جهات الاتصال وتعديلها"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"الموقع"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"الدخول إلى موقعك"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"المعلومات الاجتماعية"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"الدخول المباشر إلى معلومات عن جهات الاتصال والاتصالات الاجتماعية."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"التقويم"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"الدخول إلى التقويم وتعديله"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"‏الدخول إلى SMS وتعديلها"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"قاموس المستخدم"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"قراءة الكلمات وكتابتها في قاموس المستخدم."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"الإشارات المرجعية والسجل"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"الدخول المباشر إلى الإشارات المرجعية وسجل المتصفح."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"الميكروفون"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"استخدام ميكروفون الجهاز"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"الكاميرا"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"استخدام كاميرا الجهاز"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"الهاتف"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"استخدام الاتصالات الهاتفية للجهاز"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"أجهزة الاستشعار"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"الدخول إلى أجهزة الاستشعار والأجهزة القابلة للارتداء"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"استرداد محتوى النافذة"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"فحص محتوى نافذة يتم التفاعل معها."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"تشغيل الاستكشاف باللمس"</string>
@@ -447,15 +433,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"تم اكتشاف بصمة الإصبع بشكل جزئي؛ يرجى إعادة المحاولة."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"تعذرت معالجة بصمة الإصبع. يُرجى إعادة المحاولة."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"جهاز استشعار بصمات الأصابع متسخ، يرجى تنظيفه وإعادة المحاولة."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"تحرك الإصبع بسرعة كبيرة جدًا؛ يرجى إعادة المحاولة."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"تحرك الإصبع ببطء شديد جدًا؛ يرجى إعادة المحاولة."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"تعذرت المعالجة؛ أعد المحاولة."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"الجهاز غير متاح."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"يتعذر تخزين بصمة الإصبع؛ يرجى إزالة إحدى البصمات المخزنة."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"تم بلوغ مهلة إدخال بصمة الإصبع. أعد المحاولة."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"تم بلوغ مهلة إدخال بصمة الإصبع. أعد المحاولة."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"قراءة إعدادات المزامنة"</string>
@@ -464,6 +456,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"للسماح للتطبيق بتعديل إعدادات المزامنة لحساب ما. على سبيل المثال، يمكن استخدام ذلك لتمكين مزامنة تطبيق \"الأشخاص\" مع حساب ما."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"قراءة إحصاءات المزامنة"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"للسماح للتطبيق بقراءة إحصائيات المزامنة لحساب ما، بما في ذلك سجل الأحداث المتزامنة ومقدار البيانات التي تمت مزامنتها."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"كتابة الخلاصات المشتركة"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"للسماح للتطبيق بتعديل خلاصاتك المتزامنة في الوقت الحالي. قد تغيّر التطبيقات الضارة خلاصاتك المتزامنة."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"قراءة المصطلحات التي أضفتها إلى القاموس"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"للسماح للتطبيق بقراءة جميع الكلمات والأسماء والعبارات التي ربما يكون المستخدم قد خزنها في قاموس المستخدم."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"إضافة كلمات إلى القاموس المعرّف بواسطة المستخدم"</string>
@@ -638,7 +632,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"اضغط على \"القائمة\" لإلغاء التأمين أو إجراء اتصال بالطوارئ."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"اضغط على \"القائمة\" لإلغاء التأمين."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"رسم نقش لإلغاء التأمين"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"الاتصال بالطوارئ"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"العودة إلى الاتصال"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"صحيح!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"أعد المحاولة"</string>
@@ -1062,29 +1057,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" أ ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789 أ ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"العناصر المرشحة"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"‏تحضير وحدة تخزين USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"‏تحضير بطاقة SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"التحقق من الأخطاء."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"‏وحدة تخزين USB فارغة"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"‏بطاقة SD فارغة"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"‏وحدة تخزين USB فارغة أو تشتمل على نظام ملفات غير معتمد."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"‏بطاقة SD فارغة أو تشتمل على نظام ملفات غير معتمد."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"‏وحدة تخزين USB تالفة"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"‏بطاقة SD تالفة"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"‏تعطلت وحدة تخزين USB. جرّب إعادة تنسيقها."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"‏تعطلت بطاقة SD. جرّب إعادة تنسيقها."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"‏تمت إزالة وحدة تخزين USB على غير المتوقع"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"‏تمت إزالة بطاقة SD على نحو غير متوقع"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"‏إلغاء تركيب وحدة تخزين USB قبل الإزالة لتجنب فقد البيانات."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"‏ألغ تحميل بطاقة SD قبل الإزالة لتجنب فقدان البيانات."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"‏يمكنك إزالة وحدة تخزين USB بشكل آمن"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"‏يمكن إزالة بطاقة SD بأمان"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"‏يمكنك إزالة وحدة تخزين USB بشكل آمن."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"‏يمكنك إزالة بطاقة SD بأمان."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"‏تمت إزالة وحدة تخزين USB"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"‏تمت إزالة بطاقة SD"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"‏تمت إزالة وحدة تخزين USB. أدرج وسائط جديدة."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"‏تمت إزالة بطاقة SD. أدخل بطاقة جديدة."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"لم يتم العثور على أي أنشطة متطابقة."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"توجيه إخراج الوسائط"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"للسماح للتطبيق بتوجيه إخراج الوسائط إلى أجهزة خارجية أخرى."</string>
@@ -1283,7 +1285,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"المركب #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"‏<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>، <xliff:g id="DPI">%4$d</xliff:g> نقطة لكل بوصة"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"آمن"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"الاتصال بالطوارئ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"نسيت النقش"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"نقش خاطئ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"كلمة مرور خاطئة"</string>
@@ -1499,17 +1500,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"حتى <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"لحين تعطيل هذا الإعداد"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"حظر المقاطعات"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"التعطل"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"ليالي الأسبوع"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"نهايات الأسبوع"</string>
<string name="muted_by" msgid="6147073845094180001">"تم كتم الصوت بواسطة <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"حدثت مشكلة داخلية في جهازك، وقد لا يستقر وضعه حتى إجراء إعادة الضبط بحسب بيانات المصنع."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"حدثت مشكلة داخلية في جهازك. يمكنك الاتصال بالمصنِّع للحصول على تفاصيل."</string>
@@ -1519,11 +1515,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"‏يتم تعديل الطلب SS لطلب الاتصال."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"‏يتم تعديل طلب SS إلى طلب USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"‏يتم تعديل طلب SS إلى طلب SS الجديد."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"‏منفذ الأجهزة الطرفية المزودة بكابل USB ونظام التشغيل Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"‏منفذ الأجهزة الطرفية المزودة بكابل USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"خيارات أخرى"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"إغلاق التجاوز"</string>
</resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index ceb64e5..bd255f4 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Системно от Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Лични приложения"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Служебен"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Контакти"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"достъп до и промяна на контактите ви"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Местоположение"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"достъп до местоположението ви"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Социалната ви информация"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Осъществяване на директен достъп до информация за контактите и социалните ви връзки."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"достъп до и промяна на календара ви"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"достъп до и промяна на SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Потребителски речник"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Четене или запис на думи в потребителския речник."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Отметки и история"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Осъществяване на директен достъп до отметките и историята на браузъра."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"използване на микрофона на устройството"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"използване на камерата на устройството"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Телефон"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"използване на телефонните функции на устройството"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Сензори"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"достъп до сензорите и носимите аксесоари"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Извличане на съдържанието от прозореца"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Инспектиране на съдържанието на прозорец, с който взаимодействате."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Включване на изследването чрез докосване"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Открит е частичен отпечатък. Моля, опитайте отново."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Отпечатъкът не можа да се обработи. Моля, опитайте отново."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Сензорът за отпечатъци е мръсен. Моля, почистете го и опитайте отново."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Преместихте пръста си твърде бързо. Моля, опитайте отново."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Преместихте пръста си твърде бавно. Моля, опитайте отново."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Не може да се обработи. Опитайте отново."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Няма достъп до хардуера."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Отпечатъкът не може да бъде съхранен. Моля, премахнете съществуващ."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Времето за изчакване за отпечатък изтече. Опитайте отново."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Времето за изчакване за отпечатък изтече. Опитайте отново."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"четене на настройките за синхронизиране"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Разрешава на приложението да чете настройките за синхронизиране на профил. Например това може да бъде използвано за активиране на синхронизирането на приложението Хора с даден профил."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"четене на статистическите данни за синхронизиране"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Разрешава на приложението да чете статистическите данни за синхронизирането на профил, включително историята на синхронизираните събития и обема на информацията, която се синхронизира."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"запис в емисиите с абонамент"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Разрешава на приложението да променя текущо синхронизираните ви емисии. Злонамерените приложения могат да ги променят."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"четене на думите, които сте добавили в речника"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Разрешава на приложението да чете всички думи, имена и фрази, които потребителят може да е съхранил в потребителския речник."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"добавяне на думи в дефинирания от потребителя речник"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Натиснете „Меню“, за да отключите или да извършите спешно обаждане."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Натиснете „Меню“, за да отключите."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Нарисувайте фигура, за да отключите"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Спешно обаждане"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Назад към обаждането"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правилно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Опитайте отново"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"кандидати"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB хранилището се подготвя"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD картата се подготвя"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Проверява се за грешки."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Празно USB хранилище"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Празна SD карта"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB хранилището е празно или е с неподдържана файлова система."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD картата е празна или е с неподдържана файлова система."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Повредено USB хранилище"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"SD картата е повредена"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB хранилището е повредено. Опитайте да го преформатирате."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD картата е повредена. Опитайте да я преформатирате."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB е премахнато неочаквано"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD картата бе премахната неочаквано."</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Спрете USB хранилището, преди да го извадите, за да избегнете загуба на данни."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Премахнете активирането на SD картата, преди да я извадите, за да избегнете загуба на данни."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB е безопасно за премахване"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Премахването на SD картата е безопасно"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Можете безопасно да премахнете USB хранилището."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Можете безопасно да премахнете SD картата."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB хранилището е премахнато"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD картата бе премахната"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB хранилището е премахнато. Поставете нов носител."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD картата е премахната. Поставете нова."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Не бяха намерени съответстващи дейности."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Насочване на изходящата мултимедия"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Разрешава на приложението да насочва изходящата мултимедия към други външни устройства."</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Наслагване №<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"„<xliff:g id="NAME">%1$s</xliff:g>“: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", защитено"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Спешно обаждане"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Забравена фигура"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Грешна фигура"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Грешна парола"</string>
@@ -1447,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"До <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Докато не изключите това"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Блокиране на прекъсванията"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Почивка"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Делничните вечери"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Събота и неделя"</string>
<string name="muted_by" msgid="6147073845094180001">"Заглушено от <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Възникна вътрешен проблем с устройството ви. То може да е нестабилно, докато не възстановите фабричните настройки."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Възникна вътрешен проблем с устройството ви. За подробности се свържете с производителя."</string>
@@ -1467,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS заявката е променена на DIAL заявка."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS заявката е променена на USSD заявка."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS заявката е променена на нова SS заявка."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Периферен USB порт под Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Периферен USB порт"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Още опции"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Затваряне на менюто при препълване"</string>
</resources>
diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml
index fd25d30..6e42fe4 100644
--- a/core/res/res/values-bn-rBD/strings.xml
+++ b/core/res/res/values-bn-rBD/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android সিস্টেম"</string>
<string name="user_owner_label" msgid="6465364741001216388">"ব্যক্তিগত অ্যাপ্লিকেশানগুলি"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"কর্মক্ষেত্র্র"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"পরিচিতি"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"আপনার পরিচিতি অ্যাক্সেস এবং সংশোধন করুন"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"অবস্থান"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"আপনার অবস্থান অ্যাক্সেস করুন"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"আপনার সামাজিক তথ্য"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"আপনার পরিচিতিগুলি এবং সামাজিক পরিচিতিগুলি সম্পর্কিত তথ্যে সরাসরি অ্যাক্সেস৷"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"ক্যালেন্ডার"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"আপনার ক্যালেন্ডার অ্যাক্সেস এবং সংশোধন করুন"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS অ্যাক্সেস এবং সংশোধন করুন"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"ব্যবহারকারীর অভিধান"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"ব্যবহারকারীর অভিধানে শব্দগুলিকে পড়ুন এবং লিখুন৷"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"বুকমার্কগুলি এবং ইতিহাস"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"বুকমার্কগুলি এবং ব্রাউজারের ইতিহাসে সরাসরি অ্যাক্সেস৷"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"মাইক্রোফোন"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"ডিভাইসের মাইক্রোফোন ব্যবহার করুন"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"ক্যামেরা"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"ডিভাইসের ক্যামেরা ব্যবহার করুন"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"ফোন"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"ডিভাইসের টেলিফোনি ব্যবহার করুন"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"সেন্সরগুলি"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"সেন্সর এবং হালকা ও ছোট ডিভাইসগুলি অ্যাক্সেস করুন"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"উইন্ডোর সামগ্রী পুনরুদ্ধার করে"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"আপনি ইন্টারঅ্যাক্ট করছেন এমন একটি উইন্ডোর সামগ্রীকে সযত্নে নিরীক্ষণ করে৷"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"স্পর্শের মাধ্যমে অন্বেষণ করা চালু করুন"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"আঙ্গুলের ছাপ আংশিক সনাক্ত করা হয়েছে৷ অনুগ্রহ করে আবার চেষ্টা করুন৷"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"আঙ্গুলের ছাপ প্রক্রিয়া করা যায়নি৷ অনুগ্রহ করে আবার চেষ্টা করুন৷"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"আঙ্গুলের ছাপ নেওয়ার সেন্সরটি অপরিস্কার৷ অনুগ্রহ করে পরিষ্কার করে আবার চেষ্টা করুন৷"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"আঙ্গুল অতি দ্রুত সরানো হয়েছে৷ অনুগ্রহ করে আবার চেষ্টা করুন৷"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"আঙ্গুল ধীরে সরানো হয়েছে৷ অনুগ্রহ করে আবার চেষ্টা করুন৷"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"প্রক্রিয়া করতে অক্ষম হয়েছে৷ আবার চেষ্টা করুন৷"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"হার্ডওয়্যার অনুপলব্ধ৷"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"আঙ্গুলের ছাপ সংরক্ষণ করা যাবে না৷ অনুগ্রহ করে একটি বিদ্যমান আঙ্গুলের ছাপ সরান৷"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"আঙ্গুলের ছাপ নেওয়ার সময়সীমা শেষ হযেছে৷ আবার চেষ্টা করুন৷"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"আঙ্গুলের ছাপ নেওয়ার সময়সীমা শেষ হযেছে৷ আবার চেষ্টা করুন৷"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"সিঙ্ক সেটিংস পড়ে"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"একটি অ্যাকাউন্টের জন্য সমন্বয় সেটিংস সংশোধন করতে একটি অ্যাপ্লিকেশানকে অনুমতি দেয়৷ উদাহরণস্বরূপ, এটি একটি অ্যাকাউন্টের সাথে People অ্যাপ্লিকেশানের সমন্বয় সক্ষম করার কাজে ব্যবহৃত হতে পারে৷"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"সিঙ্ক পরিসংখ্যান পড়ে"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"অ্যাপ্লিকেশানটিকে একটি অ্যাকাউন্টের জন্য কতটা ডেটা সিঙ্ক হয়েছে এবং সিঙ্ক করা ইভেন্টের ইতিহাস সহ সিঙ্কের স্থিতি পড়ার অনুমতি দেয়৷"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"গ্রাহক হিসাবে নেওয়া ফিডগুলি লেখে"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"অ্যাপ্লিকেশানকে বর্তমানে সিঙ্ক করা ফিডগুলির সম্পর্কে বিবরণ পেতে দেয়৷ ক্ষতিকারক অ্যাপ্লিকেশানগুলি আপনার সিঙ্ক হওয়া ফীডগুলি পরিবর্তন করতে পারে৷"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"আপনার অভিধানে যোগ করা শব্দগুলি পড়ুন"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"অ্যাপ্লিকেশানটিকে সমস্ত শব্দ, নাম এবং ব্যবহারকারী দ্বারা ব্যবহারকারী অভিধানে সংরক্ষিত বাক্যাংশ পড়ার অনুমতি দেয়৷"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"ব্যবহারকারী নির্ধারিত অভিধানে শব্দ যোগ করুন"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"আনলক করতে বা জরুরী কল করতে মেনু টিপুন৷"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"আনলক করতে মেনু টিপুন৷"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"আনলক করতে প্যাটার্ন আঁকুন"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"জরুরী কল"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"কলে ফিরুন"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"সঠিক!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"আবার চেষ্টা করুন"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"প্রার্থীরা"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB সঞ্চয়স্থান প্রস্তুত করা হচ্ছে"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD কার্ড প্রস্তুত করা হচ্ছে"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"ত্রুটি রয়েছে কিনা পরীক্ষা করা হচ্ছে৷"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB সঞ্চয়স্থানে কিছু নেই"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"SD কার্ডে কিছু নেই"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB সঞ্চয়স্থান খালি অথবা অসমর্থিত ফাইল সিস্টেম রয়েছে৷"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD কার্ড খালি অথবা অসমর্থিত ফাইল সিস্টেম রয়েছে৷"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"ক্ষতিগ্রস্ত USB সঞ্চয়স্থান"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"ক্ষতিগ্রস্ত SD কার্ড"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB সঞ্চয়স্থান নষ্ট হয়ে গেছে৷ এটির পুনরায় ফর্ম্যাট করার চেষ্টা করুন৷"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD কার্ড নষ্ট হয়ে গেছে৷ এটির পুনরায় ফর্ম্যাট করার চেষ্টা করুন৷"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB সঞ্চয়স্থান অপ্রত্যাশিতভাবে সরানো হয়েছে"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD কার্ড অপ্রত্যাশিতভাবে সরানো হয়েছে"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"ডেটার ক্ষতি এড়াতে USB সঞ্চয়স্থান সরানোর আগে এটিকে আনমাউন্ট করুন৷"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"ডেটার ক্ষতি এড়াতে SD কার্ড সরানোর আগে এটিকে আনমাউন্ট করুন৷"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB সঞ্চয়স্থান সরানো নিরাপদ"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD কার্ড সরানো নিরাপদ"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"আপনি নিশ্চিন্তে USB সঞ্চয়স্থান সরাতে পারেন৷"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"আপনি নিশ্চিন্তে SD কার্ড সরাতে পারেন৷"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB সঞ্চয়স্থান সরানো হয়েছে"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"সরানো SD কার্ড"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB সঞ্চয়স্থান সরানো হয়েছে৷ নতুন মিডিয়া ঢোকান৷"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD সরানো হয়েছে৷ নতুন একটি ঢোকান৷"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"কোনো সমরূপ কার্যকলাপ খুঁজে পাওয়া যায়নি৷"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"মিডিয়া আউটপুট রুট করুন"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"অ্যাপ্লিকেশানটিকে অন্যান্য বহিরাগত ডিভাইসে মিডিয়া আউটপুট রুট করার অনুমতি দেয়৷"</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"আচ্ছাদন #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", নিরাপদ"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"জরুরি কল"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"প্যাটার্ন ভুলে গেছেন"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ভুল প্যাটার্ন"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"ভুল পাসওয়ার্ড"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> পর্যন্ত"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"আপনার দ্বারা এটি বন্ধ করা পর্যন্ত"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"বাধাগুলিকে অবরুদ্ধ করুন"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"ডাউনটাইম"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"প্রতি সোম-শুক্র রাত"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"সপ্তাহান্ত"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> দ্বারা নিঃশব্দ করা হয়েছে"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"আপনার ডিভাইসে একটি অভ্যন্তরীন সমস্যা হয়েছে, এবং আপনি যতক্ষণ না পর্যন্ত এটিকে ফ্যাক্টরি ডেটা রিসেট করছেন ততক্ষণ এটি ঠিকভাবে কাজ নাও করতে পারে৷"</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"আপনার ডিভাইসে একটি অভ্যন্তরীন সমস্যা হয়েছে৷ বিস্তারিত জানার জন্য প্রস্তুতকারকের সাথে যোগাযোগ করুন৷"</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS অনুরোধটিকে ডায়াল অনুরোধে রুপান্তরিত করা হয়েছে৷"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS অনুরোধটিকে নতুন USSD অনুরোধে রুপান্তরিত করা হয়েছে৷"</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS অনুরোধটিকে নতুন SS অনুরোধে রুপান্তরিত করা হয়েছে৷"</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB পেরিফেরাল পোর্ট"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB পেরিফেরাল পোর্ট"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"আরো বিকল্প"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"ওভারফ্লো বন্ধ করুন"</string>
</resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index a643581..fa431c7 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Aplicacions personals"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Feina"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contactes"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"accedir als contactes i modificar-los"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Ubicació"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"accedir a la ubicació"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informació social"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Accés directe a informació sobre els teus contactes i sobre les teves connexions socials."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendari"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"accedir al calendari i modificar-lo"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"accedir als SMS i modificar-los"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Diccionari de l\'usuari"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Llegir o escriure paraules al diccionari de l\'usuari."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Marcadors i historial"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Accés directe a l\'historial de marcadors i de navegació."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Micròfon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"fer servir el micròfon del dispositiu"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Càmera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"utilitzar la càmera del dispositiu"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telèfon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"fer servir la telefonia del dispositiu"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensors"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"accedir als sensors i als complements connectats"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperar el contingut de les finestres"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecciona el contingut d\'una finestra amb la qual estàs interaccionant."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activar Exploració tàctil"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"S\'ha detectat una empremta digital parcial. Torna-ho a provar."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"No s\'ha pogut processar l\'empremta digital. Torna-ho a provar."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"El sensor d\'empremtes digitals està brut. Neteja\'l i torna-ho a provar."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"El dit s\'ha mogut massa ràpid. Torna-ho a provar."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"El dit s\'ha mogut massa lentament. Torna-ho a provar."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"No es pot processar. Torna-ho a provar."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"No hi ha maquinari disponible."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"L\'empremta digital no es pot desar. Suprimeix-ne una."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"S\'ha esgotat el temps d\'espera per a l\'empremta digital. Torna-ho a provar."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"S\'ha esgotat el temps d\'espera per a l\'empremta digital. Torna-ho a provar."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"llegir la configuració de sincronització"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permet que una aplicació modifiqui la configuració de sincronització d\'un compte. Per exemple, aquesta acció es pot fer servir per activar la sincronització de l\'aplicació Persones amb un compte."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"llegir les estadístiques de sincronització"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permet que una aplicació llegeixi les estadístiques de sincronització d\'un compte, inclòs l\'historial d\'esdeveniments sincronitzats i quantes dades se sincronitzen."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"escriure feeds subscrits"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Permet que l\'aplicació modifiqui els feeds sincronitzats actualment. Les aplicacions malicioses poden canviar els teus feeds sincronitzats."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"lectura dels termes que afegeixes al diccionari"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Permet que l\'aplicació llegeixi les paraules, els noms i les frases que l\'usuari pot haver emmagatzemat al seu diccionari."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"afegeix paraules al diccionari definit per l\'usuari"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Premeu Menú per desbloquejar-lo o per fer una trucada d\'emergència."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Premeu Menú per desbloquejar."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Dibuixeu el patró de desbloqueig"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Trucada d\'emergència"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Torna a la trucada"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcte!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Torna-ho a provar"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidats"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"S\'està preparant l\'emmagatzematge USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"S\'està preparant la targeta SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"S\'està comprovant si hi ha errors."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Emmagatzematge USB buit"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Targeta SD en blanc"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"L\'emmagatzematge USB està buit o té un sistema de fitxers incompatible."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"La targeta SD està buida o té un sistema de fitxers incompatible."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Emmagatzematge USB danyat"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Targeta SD malmesa"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"L\'emmagatzematge USB està malmès. Prova a formatar-lo."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"La targeta SD està malmesa. Prova a formatar-la."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Emmag. USB retirat inesperadament"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Targeta SD extreta inesperadament"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Desinstal·la l\'emmagatzematge USB abans de retirar-la per evitar pèrdues de dades."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Expulseu la targeta SD abans d\'extreure-la per evitar la pèrdua de dades."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"És segur retirar l\'emmagatzematge USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"La targeta SD es pot extreure"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Pots retirar l\'emmagatzematge USB de forma segura."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Podeu extreure la targeta SD sense problemes."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Emmagatzematge USB retirat"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Targeta SD extreta"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Emmagatzematge USB retirat. Insereix el mitjà nou."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"S\'ha extret la targeta SD. Inseriu-ne una."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"No s\'ha trobat cap activitat coincident."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Indicació de ruta de sortida de contingut multimèdia"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Permet que una aplicació indiqui la ruta de sortida de contingut multimèdia a altres dispositius externs."</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposa #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", segur"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Trucada d\'emergència"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Patró oblidat"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Patró incorrecte"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Contrasenya incorrecta"</string>
@@ -1447,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Fins a les <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Fins que no ho desactivis"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Replega"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Bloqueja les interrupcions"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Temps d\'inactivitat"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Nits entre setmana"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Caps de setmana"</string>
<string name="muted_by" msgid="6147073845094180001">"Silenciat per <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"S\'ha produït un error intern al dispositiu i és possible que funcioni de manera inestable fins que restableixis les dades de fàbrica."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"S\'ha produït un error intern al dispositiu. Contacta amb el fabricant del dispositiu per obtenir més informació."</string>
@@ -1467,13 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"La sol·licitud SS s\'ha transformat en una sol·licitud DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"La sol·licitud SS s\'ha transformat en una sol·licitud USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"La sol·licitud SS s\'ha transformat en una sol·licitud SS nova."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Port perifèric USB d\'Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
- <!-- no translation found for floating_toolbar_open_overflow_description (4797287862999444631) -->
- <skip />
- <!-- no translation found for floating_toolbar_close_overflow_description (559796923090723804) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Port perifèric USB"</string>
+ <string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Més opcions"</string>
+ <string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Tanca el menú addicional"</string>
</resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index b23e01d..5aadbdc 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -220,42 +220,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Systém Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Osobní aplikace"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Práce"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontakty"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"přístup k vašim kontaktům a jejich úpravy"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Poloha"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"přístup k poloze"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informace o vašich kontaktech a sociálních sítích"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Přímý přístup k informacím o vašich kontaktech a sociálních propojeních"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendář"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"přístup k vašemu kalendáři a jeho úpravy"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"přístup ke zprávám SMS a jejich úpravy"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Uživatelský slovník"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Čtení a zápis slov v uživatelském slovníku"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Záložky a historie"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Přímý přístup k záložkám a historii prohlížení"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"používání mikrofonu zařízení"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparát"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"používání fotoaparátu zařízení"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"používání funkcí telefonování"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Senzory"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"přístup k senzorům a nositelným zařízením"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Načíst obsah okna"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Můžete prozkoumat obsah okna, se kterým pracujete."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Zapnout funkci Prozkoumání dotykem"</string>
@@ -445,15 +431,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Byla zjištěna jen část otisku prstu. Zkuste to znovu."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Zpracování otisku prstu se nezdařilo. Zkuste to znovu."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzor otisků prstů je znečištěn. Vyčistěte jej a zkuste to znovu."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Pohyb prstem byl příliš rychlý. Zkuste to znovu."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Pohyb prstem byl příliš pomalý. Zkuste to znovu."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Otisk prstu nelze zpracovat. Zkuste to znovu."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware není dostupný."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Otisk prstu nelze uložit. Odstraňte existující otisk prstu."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Časový limit sejmutí otisku prstu vypršel. Zkuste to znovu."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Časový limit sejmutí otisku prstu vypršel. Zkuste to znovu."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"čtení nastavení synchronizace"</string>
@@ -462,6 +454,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Umožňuje aplikaci změnit nastavení synchronizace v účtu. Pomocí tohoto oprávnění lze například zapnout synchronizaci aplikace Lidé s účtem."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"čtení statistických údajů o synchronizaci"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Umožňuje aplikaci číst statistické informace o synchronizaci v účtu, včetně historie uskutečněných synchronizací a informací o množství synchronizovaných dat."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"zápis odebíraných zdrojů"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Umožňuje aplikaci upravit zdroje, které aktuálně synchronizujete. Škodlivé aplikace mohou synchronizované zdroje změnit."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"čtení výrazů přidaných do slovníku"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Umožňuje aplikaci číst slova, jména a fráze, která uživatel mohl uložit do svého slovníku."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"přidávání slov do slovníku definovaného uživatelem"</string>
@@ -636,7 +630,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Chcete-li odemknout telefon nebo provést tísňové volání, stiskněte Menu."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Telefon odemknete stisknutím tlačítka Menu."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Odblokujte pomocí gesta"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Tísňové volání"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Zavolat zpět"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Správně!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Zkusit znovu"</string>
@@ -1048,29 +1043,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" AÁBCČDĎEÉĚFGHCHIÍJKLMNŇOÓPQRŘSŠTŤUÚVWXYÝZŽ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789AÁBCČDĎEÉĚFGHCHIÍJKLMNŇOÓPQRŘSŠTŤUÚVWXYÝZŽ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidáti"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Příprava úložiště USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Příprava karty SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Kontrola chyb."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Prázdné úložiště USB"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Prázdná karta SD"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Úložiště USB je prázdné nebo obsahuje nepodporovaný systém souborů."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Karta SD je prázdná nebo obsahuje nepodporovaný systém souborů."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Úložiště USB je poškozeno"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Poškozená karta SD"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Úložiště USB je poškozeno. Zkuste ho přeformátovat."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Karta SD je poškozena. Zkuste ji přeformátovat."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Úložiště USB nečekaně odebráno"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Karta SD byla neočekávaně odebrána"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Před odebráním úložiště USB ho nejprve odpojte. Zabráníte tak ztrátě dat."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Chcete-li zabránit ztrátě dat, kartu SD před odebráním odpojte."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Úložiště USB lze odebrat"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Kartu SD je možné bezpečně odebrat"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Úložiště USB lze bezpečně odebrat."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Kartu SD lze bezpečně odebrat."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Úložiště USB odebráno"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Karta SD byla odstraněna"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Úložiště USB odebráno. Vložte nové médium."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Karta SD byla odebrána. Vložte novou kartu."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Kontrola chyb"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Nebyly nalezeny žádné odpovídající aktivity."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Směrování výstupu médií"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Umožňuje aplikaci směrovat výstup médií do dalších externích zařízení."</string>
@@ -1267,7 +1268,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Překryvná vrstva č. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", zabezpečené"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Tísňové volání"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zapomenuté gesto"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nesprávné gesto"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Nesprávné heslo"</string>
@@ -1473,17 +1473,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Dokud tuto funkci nevypnete"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Sbalit"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blokovat vyrušení"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Období klidu"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Noci pracovních dnů"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Víkendy"</string>
<string name="muted_by" msgid="6147073845094180001">"Ignorováno stranou <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"V zařízení došlo k internímu problému. Dokud neprovedete obnovení továrních dat, může být nestabilní."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"V zařízení došlo k internímu problému. Další informace vám sdělí výrobce."</string>
@@ -1493,11 +1488,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Požadavek SS byl změněn na požadavek DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Požadavek SS byl změněn na požadavek USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Požadavek SS byl změněn na nový požadavek SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Port USB pro periferní zařízení – Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Port USB pro periferní zařízení"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Další možnosti"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Zavřít rozbalovací nabídku"</string>
</resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index f63f274..99702e2 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android-system"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Personlige apps"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Arbejde"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktpersoner"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"få adgang til og redigere dine kontaktpersoner"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Placering"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"få adgang til din placering"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Dine sociale oplysninger"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direkte adgang til oplysninger om dine kontaktpersoner og sociale forbindelser."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"få adgang til og redigere din kalender"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"Sms"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"få adgang til og redigere sms\'er"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Brugerordbog"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Læse eller skrive ord i brugerordbogen."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bogmærker og historik"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direkte adgang til bogmærker og browserhistorik."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"bruge enhedens mikrofon"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"bruge enhedens kamera"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"bruge enhedens telefoni"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensorer"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"få adgang til sensorer og wearables"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"hente indholdet i vinduet"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"undersøge indholdet i et vindue, du interagerer med."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"aktivere Udforsk ved berøring"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Der blev registreret et delvist fingeraftryk. Prøv igen."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Fingeraftrykket kunne ikke behandles. Prøv igen."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sensoren til registrering af fingeraftryk er beskidt. Tør den af, og prøv igen."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Du bevægede fingeren for hurtigt. Prøv igen."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Du bevægede fingeren for langsomt. Prøv igen."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Registreringen kan ikke gennemføres. Prøv igen."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardwaren er ikke tilgængelig."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Fingeraftrykket kan ikke gemmes. Fjern et eksisterende fingeraftryk."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Registrering af fingeraftryk fik timeout. Prøv igen."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Registrering af fingeraftryk fik timeout. Prøv igen."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"læse indstillinger for synkronisering"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Tillader, at en app kan ændre synkroniseringsindstillingerne for en konto. Denne tilladelse kan f.eks. anvendes til at aktivere synkronisering af appen Personer med en konto."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"læse synkroniseringsstatistikker"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Tillader, at en app kan læse synkroniseringsstatistikkerne for en konto, f.eks. historikken for synkroniserede begivenheder og hvor meget data der synkroniseres."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"skrive feeds, som jeg abonnerer på"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Tillader, at appen kan ændre dine synkroniserede feeds. Ondsindede apps kan ændre dine synkroniserede feeds."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"læse termer, som du har føjet til ordbogen"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Tillader, at appen kan læse alle ord, navne og sætninger, som brugeren har gemt i brugerordbogen."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"føj ord til den brugerdefinerede ordbog"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Tryk på Menu for at låse op eller foretage et nødopkald."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Tryk på Menu for at låse op."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Tegn oplåsningsmønster"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Nødopkald"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Tilbage til opkald"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Rigtigt!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Prøv igen"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidater"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Forbereder USB-lager"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Forbereder SD-kortet"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Kontrollerer for fejl."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Tomt USB-lager"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tomt SD-kort"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB-lageret er tomt eller har et filsystem, der ikke understøttes."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD-kortet er tomt eller har et filsystem, der ikke understøttes."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Beskadiget USB-lager"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Beskadiget SD-kort"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB-lageret er beskadiget. Prøv at omformatere det."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD-kortet er beskadiget. Prøv at omformatere det."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-lager blev fjernet uventet"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD-kortet blev fjernet uventet"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Demonter USB-lager inden fjernelse for at undgå tab af data."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Demonter SD-kortet inden fjernelse for at undgå tab af data."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Sikkert at fjerne USB-lager"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD-kortet kan fjernes sikkert"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Det er nu sikkert at fjerne USB-lager."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Du kan nu fjerne SD-kortet."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Fjernet USB-lager"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD-kortet er fjernet"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB-lager er fjernet. Indsæt nyt medie."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD-kortet er fjernet. Indsæt et nyt."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Kontrollerer for fejl"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Der blev ikke fundet nogen matchende aktiviteter."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Viderefør medieoutput"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Tillader, at en applikation viderefører medieoutput til andre eksterne enheder."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlejring nr. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sikker"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Nødopkald"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Glemt mønster"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Forkert mønster"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Forkert adgangskode"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Indtil <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Indtil du slår denne indstilling fra"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Skjul"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Bloker afbrydelser"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Nedetid"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Hverdagsaftener"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Weekender"</string>
<string name="muted_by" msgid="6147073845094180001">"Lyden blev afbrudt af <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Der er et internt problem med enheden, og den vil muligvis være ustabil, indtil du gendanner fabriksdataene."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Der er et internt problem med enheden. Kontakt producenten for at få yderligere oplysninger."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS-anmodningen er ændret til en DIAL-anmodning."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS-anmodningen er ændret til en USSD-anmodning."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS-anmodningen er ændret til en ny SS-anmodning."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"USB-port til eksterne Android-enheder"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB-port til eksterne enheder"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Flere valgmuligheder"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Luk overløb"</string>
</resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 2873860..8bca1ed 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android-System"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Private Apps"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Geschäftlich"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontakte"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"Auf Kontakte zugreifen und diese ändern"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Standort"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"Auf Standort zugreifen"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Ihre sozialen Informationen"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direkter Zugriff auf Informationen über Ihre Kontakte und sozialen Verbindungen"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"Auf Kalender zugreifen und diesen ändern"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"Auf SMS zugreifen und diese ändern"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Mein Wörterbuch"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Wörter in Mein Wörterbuch lesen oder schreiben"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Lesezeichen und Verlauf"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direkter Zugriff auf Lesezeichen und Browserverlauf"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"Gerätemikrofon verwenden"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"Gerätekamera verwenden"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"Gerätetelefonie verwenden"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensoren"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"Auf Sensoren und Wearables zugreifen"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Fensterinhalte abrufen"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Die Inhalte eines Fensters mit dem Sie interagieren werden abgerufen."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"\"Tippen &amp; Entdecken\" aktivieren"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Fingerabdruck teilweise erkannt. Versuchen Sie es erneut."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Fingerabdruck konnte nicht verarbeitet werden. Versuchen Sie es erneut."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerabdrucksensor ist verschmutzt. Reinigen Sie ihn und versuchen Sie es erneut."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Finger zu schnell bewegt. Versuchen Sie es erneut."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Finger zu langsam bewegt. Versuchen Sie es erneut."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Unbrauchbar. Versuchen Sie es erneut."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware nicht verfügbar"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Fingerabdruck kann nicht gespeichert werden. Entfernen Sie einen vorhandenen Fingerabdruck."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Zeitüberschreitung für Fingerabdruck. Versuchen Sie es erneut."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Zeitüberschreitung für Fingerabdruck. Versuchen Sie es erneut."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"Synchronisierungseinstellungen lesen"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Ermöglicht der App, die Synchronisierungseinstellungen eines Kontos zu ändern. Dies kann beispielsweise dazu verwendet werden, die Synchronisierung von Kontakten mit einem Konto zu aktivieren."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"Synchronisierungsstatistiken lesen"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Ermöglicht der App, die Synchronisierungsstatistiken eines Kontos zu lesen, einschließlich des Verlaufs von Synchronisierungsereignissen und der Menge synchronisierter Daten."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"Abonnierte Feeds schreiben"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Ermöglicht der App, Änderungen an kürzlich synchronisierten Feeds vorzunehmen. Schädliche Apps können so Ihre synchronisierten Feeds ändern."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"Begriffe lesen, die Sie zum Wörterbuch hinzugefügt haben"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Ermöglicht der App, alle Wörter, Namen und Ausdrücke zu lesen, die ein Nutzer in seinem Wörterbuch gespeichert hat."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"Wörter zu meinem Wörterbuch hinzufügen"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Drücken Sie die Menütaste, um das Telefon zu entsperren oder einen Notruf zu tätigen."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Zum Entsperren die Menütaste drücken"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Muster zum Entsperren zeichnen"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Notruf"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Zurück zum Anruf"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Korrekt!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Erneut versuchen"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"Kandidaten"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB-Speicher wird vorbereitet."</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD-Karte wird vorbereitet..."</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Suche nach Fehlern"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB-Speicher leer"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"SD-Karte leer"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Der USB-Speicher ist leer oder verfügt über ein nicht unterstütztes Dateisystem."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD-Karte ist leer oder verfügt über ein nicht unterstütztes Dateisystem."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB-Speicher beschädigt"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"SD-Karte beschädigt"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Der USB-Speicher ist beschädigt. Formatieren Sie ihn neu."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Die SD-Karte ist beschädigt. Bitte formatieren Sie sie neu."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-Speicher unerwartet entfernt"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD-Karte unerwartet entfernt"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Trennen Sie den USB-Speicher vor dem Entfernen, um Datenverlust zu vermeiden."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"SD-Karte vor dem Entnehmen trennen, um Datenverlust zu vermeiden."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB-Speicher kann entfernt werden."</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD-Karte kann entfernt werden."</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Der USB-Speicher kann entfernt werden."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Die SD-Karte kann entfernt werden."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB-Speicher entfernt"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD-Karte entfernt"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB-Speicher entfernt. Neuen Datenträger einlegen"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD-Karte entfernt. Neue Karte einlegen"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Nach Fehlern wird gesucht"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Keine passenden Aktivitäten gefunden"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Medienausgabe umleiten"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Ermöglicht der App, die Medienausgabe auf andere externe Geräte umzuleiten."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay-Nr. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sicher"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Notruf"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Muster vergessen"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Falsches Muster"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Falsches Passwort"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Bis <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Bis zur Deaktivierung"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Minimieren"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Unterbrechungen blockieren"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Inaktivität"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Wochentags abends"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Wochenende"</string>
<string name="muted_by" msgid="6147073845094180001">"Stummgeschaltet durch <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Es liegt ein internes Problem mit Ihrem Gerät vor. Möglicherweise verhält es sich instabil, bis Sie es auf die Werkseinstellungen zurücksetzen."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Es liegt ein internes Problem mit Ihrem Gerät vor. Bitte wenden Sie sich diesbezüglich an den Hersteller."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS-Anfrage wird in DIAL-Anfrage geändert."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS-Anfrage wird in USSD-Anfrage geändert."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS-Anfrage wird in neue SS-Anfrage geändert."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"USB-Port für Android-Peripheriegeräte"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB-Port für Peripheriegeräte"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Weitere Optionen"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Überlauf schließen"</string>
</resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 3c3bf46..334f62f 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Σύστημα Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Προσωπικές εφαρμογές"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Εργασία"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Επαφές"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"πρόσβαση και τροποποίηση των επαφών σας"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Τοποθεσία"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"πρόσβαση στην τοποθεσία σας"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Οι κοινωνικές πληροφορίες σας"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Άμεση πρόσβαση σε πληροφορίες σχετικά με τις επαφές και τις κοινωνικές συνδέσεις σας."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Ημερολόγιο"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"πρόσβαση και τροποποίηση του ημερολογίου σας"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"πρόσβαση και τροποποίηση SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Λεξικό χρήστη"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Ανάγνωση ή εγγραφή λέξεων στο λεξικό χρήστη."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Σελιδοδείκτες και ιστορικό"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Άμεση πρόσβαση σε σελιδοδείκτες και ιστορικού προγράμματος περιήγησης."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Μικρόφωνο"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"χρήση μικροφώνου συσκευής"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Κάμερα"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"χρήση της κάμερας της συσκευής"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Τηλέφωνο"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"χρήση τηλεφωνίας συσκευής"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Αισθητήρες"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"αισθητήρες πρόσβασης και φορετές συσκευές"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Ανάκτηση του περιεχομένου του παραθύρου"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Έλεγχος του περιεχομένου ενός παραθύρου με το οποίο αλληλεπιδράτε."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Ενεργοποίηση της \"Εξερεύνησης με άγγιγμα\""</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Εντοπίστηκε μερικό μοναδικό χαρακτηριστικό. Δοκιμάστε ξανά."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Δεν ήταν δυνατή η επεξεργασία του μοναδικού χαρακτηριστικού. Δοκιμάστε ξανά."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Ο αισθητήρας μοναδικού χαρακτηριστικού δεν είναι καθαρός. Καθαρίστε τον και δοκιμάστε ξανά."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Πολύ γρήγορη κίνηση δαχτύλου. Δοκιμάστε ξανά."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Πολύ αργή κίνηση δαχτύλου. Δοκιμάστε ξανά."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Δεν είναι δυνατή η επεξεργασία. Δοκιμάστε ξανά."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Ο εξοπλισμός δεν είναι διαθέσιμος."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Δεν είναι δυνατή η αποθήκευση μοναδικού χαρακτηριστικού. Καταργήστε το υπάρχον μοναδικό χαρακτηριστικό."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Λήξη χρονικού ορίου μοναδικού χαρακτηριστικού. Δοκιμάστε ξανά."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Λήξη χρονικού ορίου μοναδικού χαρακτηριστικού. Δοκιμάστε ξανά."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"ανάγνωση ρυθμίσεων συγχρονισμού"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Επιτρέπει σε μια εφαρμογή την τροποποίηση των ρυθμίσεων συγχρονισμού για έναν λογαριασμό. Για παράδειγμα, αυτό μπορεί να χρησιμοποιηθεί για να ενεργοποιηθεί ο συγχρονισμός της εφαρμογής \"Άτομα\" με έναν λογαριασμό."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"ανάγνωση στατιστικών συγχρονισμού"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Επιτρέπει σε μια εφαρμογή την ανάγνωση των στατιστικών στοιχείων συγχρονισμού για έναν λογαριασμό, συμπεριλαμβανομένων του ιστορικού των συμβάντων συγχρονισμού και του όγκου των δεδομένων που συγχρονίζονται."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"εγγραφή ροών δεδομένων στις οποίες έχετε εγγραφεί"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Επιτρέπει στην εφαρμογή να τροποποιήσει τις ροές δεδομένων, με τις οποίες είστε συγχρονισμένοι αυτήν τη στιγμή. Τυχόν κακόβουλες εφαρμογές ενδέχεται να αλλάξουν τις συγχρονισμένες ροές δεδομένων σας."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"ανάγνωση όρων που έχετε προσθέσει στο λεξικό"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Επιτρέπει στην εφαρμογή την ανάγνωση όλων των λέξεων, των ονομάτων και φράσεων, τα οποία ο χρήστης ενδέχεται να έχει αποθηκεύσει στο λεξικό χρήστη."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"προσθήκη λέξεων στο καθορισμένο από το χρήστη λεξικό"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Πατήστε \"Menu\" για ξεκλείδωμα ή για κλήση έκτακτης ανάγκης."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Πατήστε \"Μενού\" για ξεκλείδωμα."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Σχεδιασμός μοτίβου για ξεκλείδωμα"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Κλήση έκτακτης ανάγκης"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Επιστροφή στην κλήση"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Σωστό!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Προσπαθήστε ξανά"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"υποψήφιοι"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Προετοιμασία αποθ. χώρου USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Προετοιμασία κάρτας SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Έλεγχος για σφάλματα."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Κενός αποθηκευτικός χώρος USB"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Κενή κάρτα SD"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Ο χώρος αποθήκευσης USB είναι κενός ή διαθέτει μη υποστηριζόμενο σύστημα αρχείων."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Η κάρτα SD είναι κενή ή διαθέτει μη υποστηριζόμενο σύστημα αρχείων."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Βλάβη αποθηκευτικού χώρου USB"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Κατεστραμμένη κάρτα SD"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Ο χώρος αποθήκευσης USB είναι κατεστραμμένος. Δοκιμάστε να τον διαμορφώσετε ξανά."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Η κάρτα SD είναι κατεστραμμένη. Δοκιμάστε να τη διαμορφώσετε ξανά."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Μη αναμ. κατάργ. απ. χώρου USB"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Μη αναμενόμενη αφαίρεση κάρτας SD"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Αποπροσαρτήστε τον αποθηκευτικό χώρο USB πριν τον αφαιρέσετε για την αποφυγή απώλειας δεδομένων."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Αποπροσαρτήστε την κάρτα SD πριν την αφαιρέσετε για την αποφυγή απώλειας δεδομένων."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Ασφαλ. κατάργ. αποθ. χώρου USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Η κάρτα SD μπορεί να αφαιρεθεί με ασφάλεια"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Μπορείτε να καταργήσετε τον αποθηκευτικό χώρο USB με ασφάλεια."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Μπορείτε να αφαιρέσετε με ασφάλεια της κάρτα SD."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Ο αποθ. χώρος USB καταργήθηκε"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Η κάρτα SD αφαιρέθηκε"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Ο αποθηκευτικός χώρος USB καταργήθηκε. Εισαγάγετε νέα πολυμέσα."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Αφαιρέθηκε η κάρτα SD. Τοποθετήστε μια νέα κάρτα."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Έλεγχος για σφάλματα"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Δεν βρέθηκαν δραστηριότητες που να συμφωνούν με τα κριτήρια."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Διαγραφή διαδρομής δεδομένων εξόδου μέσων"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Επιτρέπει σε μια εφαρμογή τη διαγραφή διαδρομής δεδομένων εξόδου μέσων σε άλλες εξωτερικές συσκευές."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Επικάλυψη #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ασφαλές"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Κλήσεις επείγουσας ανάγκης"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Ξεχάσατε το μοτίβο"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Εσφαλμένο μοτίβο"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Εσφαλμένος κωδικός πρόσβασης"</string>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 4fe28a9..1a893c8 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android System"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Personal apps"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Work"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contacts"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"access and modify your contacts"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Location"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"access your location"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Your social information"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direct access to information about your contacts and social connections."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"access and modify your calendar"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"access and modify SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"User Dictionary"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Read or write words in user dictionary."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bookmarks and History"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direct access to bookmarks and browser history."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Microphone"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"use device microphone"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Camera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"use device camera"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telephone"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"use device telephony"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensors"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"access sensors and wearables"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Retrieve window content"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspect the content of a window that you\'re interacting with."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Turn on Explore by Touch"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Finger moved to fast. Please try again."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Finger moved to slow. Please try again."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Unable to process. Try again."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware not available."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Fingerprint can\'t be stored. Please remove an existing fingerprint."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Fingerprint timeout reached. Try again."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Fingerprint timeout reached. Try again."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"read sync settings"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Allows an app to modify the sync settings for an account. For example, this can be used to enable syncing of the People app with an account."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"read sync statistics"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Allows an app to read the sync stats for an account, including the history of sync events and how much data is synced."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"write subscribed feeds"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Allows the app to modify your currently synced feeds. Malicious apps may change your synced feeds."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"read terms you added to the dictionary"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Allows the app to read all words, names and phrases that the user may have stored in the user dictionary."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"add words to user-defined dictionary"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Press Menu to unlock or place emergency call."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Press Menu to unlock."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Draw pattern to unlock"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Emergency call"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"Emergency"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Return to call"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correct!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Try again"</string>
@@ -1034,29 +1028,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidates"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Preparing USB storage"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Preparing SD card"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Checking for errors."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Blank USB storage"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Blank SD card"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB storage is blank or has unsupported filesystem."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD card is blank or has unsupported file system."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Damaged USB storage"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Damaged SD card"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB storage is damaged. Try reformatting it."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD card is damaged. Try reformatting it."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB storage removed unexpectedly"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD card removed unexpectedly"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Unmount USB storage before removing to avoid data loss."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Unmount SD card before removing to avoid data loss."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB storage safe to remove"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD card safe to remove"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"You can safely remove USB storage."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"You can safely remove SD card."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Removed USB storage"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Removed SD card"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB storage removed. Insert new media."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD card removed. Insert a new one."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Checking for errors"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"No matching activities found."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Route media output"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Allows an application to route media output to other external devices."</string>
@@ -1251,7 +1251,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", secure"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Emergency call"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Wrong Password"</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 4fe28a9..1a893c8 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android System"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Personal apps"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Work"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contacts"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"access and modify your contacts"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Location"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"access your location"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Your social information"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direct access to information about your contacts and social connections."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"access and modify your calendar"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"access and modify SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"User Dictionary"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Read or write words in user dictionary."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bookmarks and History"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direct access to bookmarks and browser history."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Microphone"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"use device microphone"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Camera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"use device camera"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telephone"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"use device telephony"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensors"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"access sensors and wearables"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Retrieve window content"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspect the content of a window that you\'re interacting with."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Turn on Explore by Touch"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Finger moved to fast. Please try again."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Finger moved to slow. Please try again."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Unable to process. Try again."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware not available."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Fingerprint can\'t be stored. Please remove an existing fingerprint."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Fingerprint timeout reached. Try again."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Fingerprint timeout reached. Try again."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"read sync settings"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Allows an app to modify the sync settings for an account. For example, this can be used to enable syncing of the People app with an account."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"read sync statistics"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Allows an app to read the sync stats for an account, including the history of sync events and how much data is synced."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"write subscribed feeds"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Allows the app to modify your currently synced feeds. Malicious apps may change your synced feeds."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"read terms you added to the dictionary"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Allows the app to read all words, names and phrases that the user may have stored in the user dictionary."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"add words to user-defined dictionary"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Press Menu to unlock or place emergency call."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Press Menu to unlock."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Draw pattern to unlock"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Emergency call"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"Emergency"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Return to call"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correct!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Try again"</string>
@@ -1034,29 +1028,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidates"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Preparing USB storage"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Preparing SD card"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Checking for errors."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Blank USB storage"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Blank SD card"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB storage is blank or has unsupported filesystem."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD card is blank or has unsupported file system."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Damaged USB storage"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Damaged SD card"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB storage is damaged. Try reformatting it."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD card is damaged. Try reformatting it."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB storage removed unexpectedly"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD card removed unexpectedly"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Unmount USB storage before removing to avoid data loss."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Unmount SD card before removing to avoid data loss."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB storage safe to remove"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD card safe to remove"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"You can safely remove USB storage."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"You can safely remove SD card."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Removed USB storage"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Removed SD card"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB storage removed. Insert new media."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD card removed. Insert a new one."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Checking for errors"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"No matching activities found."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Route media output"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Allows an application to route media output to other external devices."</string>
@@ -1251,7 +1251,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", secure"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Emergency call"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Wrong Password"</string>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 4fe28a9..1a893c8 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android System"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Personal apps"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Work"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contacts"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"access and modify your contacts"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Location"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"access your location"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Your social information"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direct access to information about your contacts and social connections."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendar"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"access and modify your calendar"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"access and modify SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"User Dictionary"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Read or write words in user dictionary."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bookmarks and History"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direct access to bookmarks and browser history."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Microphone"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"use device microphone"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Camera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"use device camera"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telephone"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"use device telephony"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensors"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"access sensors and wearables"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Retrieve window content"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspect the content of a window that you\'re interacting with."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Turn on Explore by Touch"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Partial fingerprint detected. Please try again."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Couldn\'t process fingerprint. Please try again."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingerprint sensor is dirty. Please clean and try again."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Finger moved to fast. Please try again."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Finger moved to slow. Please try again."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Unable to process. Try again."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware not available."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Fingerprint can\'t be stored. Please remove an existing fingerprint."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Fingerprint timeout reached. Try again."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Fingerprint timeout reached. Try again."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"read sync settings"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Allows an app to modify the sync settings for an account. For example, this can be used to enable syncing of the People app with an account."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"read sync statistics"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Allows an app to read the sync stats for an account, including the history of sync events and how much data is synced."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"write subscribed feeds"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Allows the app to modify your currently synced feeds. Malicious apps may change your synced feeds."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"read terms you added to the dictionary"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Allows the app to read all words, names and phrases that the user may have stored in the user dictionary."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"add words to user-defined dictionary"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Press Menu to unlock or place emergency call."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Press Menu to unlock."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Draw pattern to unlock"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Emergency call"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"Emergency"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Return to call"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correct!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Try again"</string>
@@ -1034,29 +1028,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidates"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Preparing USB storage"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Preparing SD card"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Checking for errors."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Blank USB storage"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Blank SD card"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB storage is blank or has unsupported filesystem."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD card is blank or has unsupported file system."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Damaged USB storage"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Damaged SD card"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB storage is damaged. Try reformatting it."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD card is damaged. Try reformatting it."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB storage removed unexpectedly"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD card removed unexpectedly"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Unmount USB storage before removing to avoid data loss."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Unmount SD card before removing to avoid data loss."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB storage safe to remove"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD card safe to remove"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"You can safely remove USB storage."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"You can safely remove SD card."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Removed USB storage"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Removed SD card"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB storage removed. Insert new media."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD card removed. Insert a new one."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Checking for errors"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"No matching activities found."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Route media output"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Allows an application to route media output to other external devices."</string>
@@ -1251,7 +1251,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", secure"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Emergency call"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Wrong Password"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index b730c70..e70140f 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Aplicaciones personales"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Trabajo"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contactos"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"acceder a los contactos y modificarlos"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Ubicación"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"acceder a tu ubicación"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Tu información social"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acceso directo a información sobre tus contactos y conexiones sociales"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"acceder al calendario y modificarlo"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"acceder a los SMS y modificarlos"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Diccionario del usuario"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"leer o escribir palabras en el diccionario del usuario"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Marcadores e historial"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acceso directo a marcadores e historial del navegador"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Micrófono"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"usar el micrófono del dispositivo"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Cámara"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"usar la cámara del dispositivo"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Teléfono"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"usar el teléfono del dispositivo"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensores"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"acceder a los sensores y los wearables"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperar el contenido de las ventanas"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecciona el contenido de la ventana con la que estés interactuando."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activar la Exploración táctil"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"La huella digital se detectó parcialmente. Vuelve a intentarlo."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"No se pudo procesar la huella digital. Vuelve a intentarlo."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"El sensor de huellas digitales está sucio. Limpia el sensor y vuelve a intentarlo."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Moviste el dedo muy rápido. Vuelve a intentarlo."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Moviste el dedo muy despacio. Vuelve a intentarlo."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"No se puede procesar. Vuelve a intentarlo."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"El hardware no está disponible."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"No se puede almacenar la huella digital. Elimina una de las existentes."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Finalizó el tiempo de espera para la huella digital. Vuelve a intentarlo."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Finalizó el tiempo de espera para la huella digital. Vuelve a intentarlo."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"leer la configuración de sincronización"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite que la aplicación modifique la configuración de sincronización de una cuenta. Este permiso se puede utilizar, por ejemplo, para activar la sincronización de la aplicación Personas con una cuenta."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"leer estadística de sincronización"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite que la aplicación consulte las estadísticas de sincronización de una cuenta, por ejemplo, el historial de eventos sincronizados y la cantidad de datos sincronizados."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"escribir canales suscritos"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Permite que la aplicación modifique los feeds actualmente sincronizados. Las aplicaciones maliciosas pueden cambiar tus feeds sincronizados."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"leer los términos que agregaste al diccionario"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Permite que la aplicación consulte cualquier palabra, nombre o frase que el usuario haya almacenado en su diccionario."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"agregar palabras en el diccionario definido por el usuario"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Presiona el Menú para desbloquear o realizar una llamada de emergencia."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Presionar Menú para desbloquear."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Dibujar el patrón de desbloqueo"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Realizar llamada de emergencia"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Regresar a llamada"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Vuelve a intentarlo."</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidatos"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Preparando almacenamiento USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Preparación de la tarjeta SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Verificando errores"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Almacenamiento USB en blanco"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tarjeta SD vacía"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Almacenamiento USB vacío o con sistema de archivos no admitido"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"La tarjeta SD está vacía o su sistema de archivos es incompatible."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Almacenamiento USB dañado"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Tarjeta SD dañada"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"El almacenamiento USB está dañado. Intenta formatearlo de nuevo."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"La tarjeta SD está dañada. Intenta formatearla de nuevo."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Almacenamiento USB extraído inesperadamente"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Almacenamiento USB extraído de forma imprevista"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Desactivar el almacenamiento USB antes de extraerlo para evitar la pérdida de datos."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Desmontar la tarjeta SD antes de extraerla para evitar la pérdida de datos."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Es seguro extraer el almacenamiento USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Es seguro extraer la tarjeta SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Puedes extraer de forma segura el almacenamiento USB."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Puedes extraer de forma segura la tarjeta SD."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Almacenamiento USB extraído"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Tarjeta SD extraída"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Almacenamiento USB eliminado. Insertar nuevos medios."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Tarjeta SD extraída. Insertar una nueva."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Verificando errores"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"No se encontraron actividades coincidentes."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Dirigir salida de medios"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Permite que la aplicación dirija salidas de medios a otros dispositivos externos."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposición #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> ppp"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", segura"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Realizar llamada de emergencia"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"¿Olvidaste el patrón?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Patrón incorrecto"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Contraseña incorrecta"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Hasta la(s) <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Hasta que lo desactives"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Contraer"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Bloquear interrupciones"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Tiempo de inactividad"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Noches entre semana"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Fines de semana"</string>
<string name="muted_by" msgid="6147073845094180001">"Silenciados por <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Existe un problema interno con el dispositivo, de modo que el dispositivo puede estar inestable hasta que restablezcas la configuración de fábrica."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Existe un problema interno con el dispositivo. Comunícate con el fabricante para obtener más información."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"La solicitud SS cambió por una solicitud DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"La solicitud SS cambió por una solicitud USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"La solicitud SS cambió por una nueva solicitud SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Puerto USB de periféricos Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Puerto USB de periféricos"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Más opciones"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Cerrar la barra de herramientas flotante adicional"</string>
</resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index bd2b942..dc1850b 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Aplicaciones personales"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Trabajo"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contactos"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"acceder a tus contactos y modificarlos"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Ubicación"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"acceder a tu ubicación"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Tu información social"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acceder directamente a la información de tus contactos y tus conexiones sociales"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"acceder el calendario y modificarlo"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"acceder a los SMS y modificarlos"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Diccionario del usuario"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Leer o escribir palabras en el diccionario del usuario."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Marcadores e historial"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acceder directamente a los marcadores y al historial del navegador"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Micrófono"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"utilizar el micrófono del dispositivo"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Cámara"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"utilizar la cámara del dispositivo"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Teléfono"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"utilizar el teléfono del dispositivo"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensores"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"acceder a los sensores y a los wearables"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperar el contenido de la ventana"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecciona el contenido de una ventana con la que estés interactuando."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activar exploración táctil"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Se ha detectado una huella digital parcial. Vuelve a intentarlo."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"No se ha podido procesar la huella digital. Vuelve a intentarlo."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"El sensor de huellas digitales está sucio. Límpialo y vuelve a intentarlo."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Has movido el dedo muy rápido. Vuelve a intentarlo."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Has movido el dedo muy despacio. Vuelve a intentarlo."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"No se puede procesar la huella digital. Vuelve a intentarlo."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware no disponible."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"No se puede almacenar la huella digital. Elimina una ya creada."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Se ha alcanzado el tiempo de espera de la huella digital. Vuelve a intentarlo."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Se ha alcanzado el tiempo de espera de la huella digital. Vuelve a intentarlo."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"leer la configuración de sincronización"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite que la aplicación modifique la configuración de sincronización de una cuenta. Este permiso se puede utilizar, por ejemplo, para habilitar la sincronización de la aplicación Contactos con una cuenta."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"leer estadísticas de sincronización"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite que la aplicación consulte las estadísticas de sincronización de una cuenta (por ejemplo, el historial de eventos sincronizados y la cantidad de datos sincronizados)."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"escribir feeds a los que está suscrito el usuario"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Permite que la aplicación modifique los feeds sincronizados actualmente. Las aplicaciones malintencionadas pueden modificar los feeds sincronizados."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"consultar términos que hayas añadido al diccionario"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Permite que la aplicación lea cualquier palabra, nombre o frase que el usuario haya almacenado en su diccionario."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"añadir palabras al diccionario definido por el usuario"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Pulsa la tecla de menú para desbloquear el teléfono o realizar una llamada de emergencia."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Pulsa la tecla de menú para desbloquear la pantalla."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Dibujar patrón de desbloqueo"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Llamada de emergencia"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Volver a llamada"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Vuelve a intentarlo"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidatos"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Preparando almacenamiento USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Preparando tarjeta SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Comprobando errores..."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Almacenamiento USB vacío"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tarjeta SD vacía"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Almacenamiento USB vacío o con sistema de archivos no admitido"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"La tarjeta SD está vacía o su sistema de archivos es incompatible."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Almacenamiento USB dañado"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Tarjeta SD dañada"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"El almacenamiento USB está dañado. Prueba a formatearlo de nuevo."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"La tarjeta SD está dañada. Prueba a formatearla de nuevo."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB extraído inesperadamente"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"La tarjeta SD se ha extraído inesperadamente."</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Desactiva el almacenamiento USB antes de extraerlo para evitar pérdidas de datos."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Desactiva la tarjeta SD antes de extraerla para evitar la pérdida de datos."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB extraído de forma segura"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Es seguro extraer la tarjeta SD."</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Puedes extraer el almacenamiento USB de forma segura."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Puedes extraer la tarjeta SD de forma segura."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Almacenamiento USB extraído"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Tarjeta SD extraída"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Almacenamiento USB extraído. Inserta un nuevo medio."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"La tarjeta SD se ha extraído. Inserta una nueva."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Comprobando errores"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"No se ha encontrado ninguna actividad coincidente."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Dirigir salida de medio"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Permite que la aplicación dirija salidas de medios a otros dispositivos externos."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposición #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", seguro"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Llamada de emergencia"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"¿Has olvidado el patrón?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"El patrón es incorrecto"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Contraseña incorrecta"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Hasta las <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Hasta apagar el dispositivo"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Contraer"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Bloquear interrupciones"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Tiempo de inactividad"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Noches entre semana"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Fines de semana"</string>
<string name="muted_by" msgid="6147073845094180001">"Silenciado por <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Se ha producido un problema interno en el dispositivo y es posible que este no sea estable hasta que restablezcas los datos de fábrica."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Se ha producido un problema interno en el dispositivo. Ponte en contacto con el fabricante para obtener más información."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"La solicitud SS se ha modificado para la solicitud DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"La solicitud SS se ha modificado para la solicitud USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"La solicitud SS se ha modificado para la nueva solicitud SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Puerto periférico USB (Android)"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Puerto periférico USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Más opciones"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Cerrar menú adicional"</string>
</resources>
diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml
index 7f1f6b0..042e0b3 100644
--- a/core/res/res/values-et-rEE/strings.xml
+++ b/core/res/res/values-et-rEE/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android-süsteem"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Isiklikud rakendused"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Töö"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktid"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"kontaktidele juurdepääsemine ja nende muutmine"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Asukoht"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"asukohale juurdepääsemine"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Teie sotsiaalne teave"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Otsene juurdepääs teie kontaktide teabele ja sotsiaalsetele sidemetele."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"kalendrile juurdepääsemine ja selle muutmine"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS-idele juurdepääsemine ja nende muutmine"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Kasutaja sõnaraamat"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Kasutaja sõnaraamatus sõnade lugemine ja nende sinna kirjutamine."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Järjehoidjad ja ajalugu"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Otsene juurdepääs järjehoidjatele ja brauseri ajaloole."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"seadme mikrofoni kasutamine"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kaamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"seadme kaamera kasutamine"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"seadme telefoni kasutamine"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Andurid"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"anduritele ja kaasaskantavatele seadmetele juurdepääsemine"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Akna sisu toomine"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Tutvuge kasutatava akna sisuga."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Puudutusega sirvimise sisselülitamine"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Tuvastati osaline sõrmejälg. Proovige uuesti."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Sõrmejälge ei õnnestunud töödelda. Proovige uuesti."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sõrmejäljeandur on must. Puhastage see ja proovige uuesti."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Sõrm liikus liiga kiiresti. Proovige uuesti."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Sõrm liikus liiga aeglaselt. Proovige uuesti."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Töötlemine ei õnnestu. Proovige uuesti."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Riistvara pole saadaval."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Sõrmejälge ei saa salvestada. Eemaldage olemasolev sõrmejälg."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Sõrmejälje riistvara taimeri ajalõpp. Proovige uuesti."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Sõrmejälje riistvara taimeri ajalõpp. Proovige uuesti."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"loe sünkroonimisseadeid"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Võimaldab rakendusel muuta konto sünkroonimisseadeid. Näiteks saab seda kasutada, et lubada rakenduse Inimesed sünkroonimine kontoga."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"loe sünkroonimisstatistikat"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Võimaldab rakendusel lugeda konto sünkroonimisstatistikat, sh sünkroonimissündmuste ajalugu ja sünkroonitud andmete hulka."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"kirjuta tellitud kanaleid"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Võimaldab rakendusel muuta teie praegu sünkroonitud vooge. Pahatahtlikud rakendused võivad muuta teie sünkroonitud vooge."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"lugege termineid, mis te sõnastikku lisasite"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Võimaldab rakendusel lugeda kõiki sõnu, nimesid ja fraase, mille kasutaja on kasutaja sõnaraamatusse salvestanud."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"sõnade lisamine kasutaja määratletud sõnastikku"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Vajutage avamiseks või hädaabikõne tegemiseks menüünuppu"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Vajutage avamiseks menüüklahvi."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Avamiseks joonistage muster"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Hädaabikõne"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"Hädaabi"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Kõne juurde tagasi"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Õige."</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Proovige uuesti"</string>
@@ -1034,29 +1028,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidaadid"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB-mäluseadme ettevalm. ..."</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD-kaardi ettevalmistamine"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Vigade kontrollimine."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Tühi USB-mäluseade"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tühi SD-kaart"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB-salvestusruum on tühi või ei toeta failisüsteemi."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD-kaart on tühi või ei toetata selle failisüsteemi."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Kahjustatud USB-mäluseade"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Kahjustatud SD-kaart"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB-salvestusruum on kahjustatud. Proovige uuesti vormindada."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD-kaart on kahjustatud. Proovige uuesti vormindada."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-seade eemaldati ootamatult"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD-kaart on ootamatult eemaldatud"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Andmekao vältimiseks lahutage USB-mäluseade enne eemaldamist."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Andmekao vältimiseks lahutage SD-kaart enne eemaldamist."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB-seadme eemaldamine ohutu"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD-kaardi eemaldamine on ohutu"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Saate USB-mäluseadme ohutult eemaldada."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"SD-kaardi saate ohutult eemaldada."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB-mäluseade eemaldatud"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Eemaldatud SD-kaart"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB-mäluseade eemaldatud. Sisestage uus meedium."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD-kaart on eemaldatud. Sisestage uus."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Sobivat tegevust ei leitud"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Meediaväljundi teekonna koostamine"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Võimaldab rakendusel koostada teekonna meediaväljundist teistesse välistesse seadmetesse."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Ülekate nr .<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", turvaline"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Hädaabikõne"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Unustasin mustri"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Vale muster"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Vale parool"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Kuni <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Kuni lülitate selle välja"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Ahendamine"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Katkestuste blokeerimine"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Puhkeaeg"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Argiõhtud"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Nädalavahetused"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> vaigistas"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Seadmes ilmnes sisemine probleem ja seade võib olla ebastabiilne seni, kuni lähtestate seadme tehase andmetele."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Seadmes ilmnes sisemine probleem. Üksikasjaliku teabe saamiseks võtke ühendust tootjaga."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS-päring muudeti DIAL-päringuks."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS-päring muudeti USSD-päringuks."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS-päring muudeti uueks SS-päringuks."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Androidi väline USB-port"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Väline USB-port"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Rohkem valikuid"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Ületäite sulgemine"</string>
</resources>
diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml
index 80b24c4..990a78b 100644
--- a/core/res/res/values-eu-rES/strings.xml
+++ b/core/res/res/values-eu-rES/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android sistema"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Aplikazio pertsonalak"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Lana"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktuak"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"Ikusi eta egin aldaketak kontaktuei"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Kokapena"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"Atzitu kokapena"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Sare sozialetako zure informazioa"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Zure kontaktuei eta konexio sozialei buruzko informaziorako sarbide zuzena."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Egutegia"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"Ikusi eta egin aldaketak egutegian"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS mezuak"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"Irakurri eta egin aldaketak SMS mezuetan"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Erabiltzailearen hiztegia"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Irakurri edo idatzi hitzak erabiltzaileek hiztegian."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Laster-markak eta historia"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Laster-marketarako eta arakatzailearen historiarako sarbide zuzena."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofonoa"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"Erabili gailuaren mikrofonoa"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"Erabili gailuaren kamera"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefonoa"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"Erabili gailuaren telefono-eginbidea"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sentsoreak"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"Atzitu sentsoreak eta osagarriak"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Eskuratu leihoko edukia"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Arakatu irekita daukazun leihoko edukia."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Aktibatu ukipen bidez arakatzeko eginbidea"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Hatz-marka digitala ez da osorik hauteman. Saiatu berriro."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Ezin izan da hatza-marka prozesatu. Saiatu berriro."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Hatz-marka digitalen sentsorea zikina dago. Garbi ezazu, eta saiatu berriro."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Hatza bizkorregi mugitu duzu. Saiatu berriro."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Hatza mantsoegi mugitu duzu. Saiatu berriro."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Ezin da prozesatu. Saiatu berriro."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardwarea ez dago erabilgarri."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Ezin da gorde hatz-marka digitala. Kendu lehendik gordeta duzunetako bat."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Hatz-marka digitalak prozesatzeko denbora-muga gainditu da. Saiatu berriro."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Hatz-marka digitalak prozesatzeko denbora-muga gainditu da. Saiatu berriro."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"Irakurri sinkronizazio-ezarpenak"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Kontu baten sinkronizazio-ezarpenak aldatzeko baimena ematen die aplikazioei. Adibidez, Jendea aplikazioa kontu batekin sinkronizatzeko erabil daiteke."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"irakurri sinkronizazio-estatistikak"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Kontu baten sinkronizazio-estatistikak irakurtzeko baimena ematen dio; besteak beste, sinkronizazio-gertaeren historia eta sinkronizatutako datu kopurua."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"idatzi harpidetutako jarioak"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Unean sinkronizatutako jarioak aldatzea baimentzen die aplikazioei. Aplikazio gaiztoek sinkronizatutako jarioak alda ditzakete."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"hiztegian gehitutako terminoak irakurtzea"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Erabiltzaile-hiztegian erabiltzaileak gordetako hitzak, izenak eta esaldiak irakurtzeko baimena ematen die aplikazioei."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"erabiltzaileak definitutako hiztegian hitzak gehitzea"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Desblokeatzeko edo larrialdi-deia egiteko, sakatu Menua."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Desblokeatzeko, sakatu Menua."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Desblokeatzeko, marraztu eredua"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Larrialdi-deia"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Itzuli deira"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Eredua zuzena da!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Saiatu berriro"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"hautagaiak"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB memoria prestatzen"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD txartela prestatzen"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Errorerik dagoen egiaztatzen."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB memoria hutsik dago"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"SD txartela hutsik dago"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB memoria hutsik dago edo haren fitxategi-sistema bateraezina da."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD txartela hutsik dago edo haren fitxategi-sistema bateraezina da."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB memoria kaltetuta dago"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"SD txartela kaltetuta dago"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB memoria hondatuta dago. Saiatu berriro formateatzen."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD txartela hondatuta dago. Saiatu berriro formateatzen."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB memoria ustekabean kendu da"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD txartela ustekabean kendu da"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Kendu aurretik, desmuntatu USB memoria daturik ez galtzeko."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Kendu aurretik, desmuntatu SD txartela daturik ez galtzeko."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB memoria arriskurik gabe ken daiteke"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD txartela segurtasunez ken daiteke"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USB memoria kentzeko prest dago."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"SD txartela kentzeko prest dago."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB memoria kendu da"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD txartela kendu da"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB memoria kendu da. Sartu euskarri berria."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD txartela kendu da. Sartu beste bat."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Ez da bat datorren jarduerarik aurkitu."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Multimedia-irteera bideratzea"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Multimedia elementuak kanpoko gailuetara bideratzeko baimena ematen die aplikazioei."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"<xliff:g id="ID">%1$d</xliff:g>. gainjartzea"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", segurua"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Larrialdi-deia"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Eredua ahaztu zaizu"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Eredu okerra"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Pasahitz okerra"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> arte"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Zuk desaktibatu arte"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Tolestu"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blokeatu etenaldiak"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Jarduerarik gabeko denbora"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Lanegunetako gauak"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Asteburuak"</string>
<string name="muted_by" msgid="6147073845094180001">"Audioa desaktibatu da (<xliff:g id="THIRD_PARTY">%1$s</xliff:g>)"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Barneko arazo bat dago zure gailuan eta agian ezegonkor egongo da jatorrizko datuak berrezartzen dituzun arte."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Barneko arazo bat dago zure gailuan. Xehetasunak jakiteko, jarri fabrikatzailearekin harremanetan."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS eskaera DIAL eskaerara aldatu da."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS eskaera USSD eskaerara aldatu da."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS eskaera SS eskaera berrira aldatu da."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB ataka periferikoa"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB ataka periferikoa"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Aukera gehiago"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Itxi gainfluxua"</string>
</resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 0f3da45..b9da918 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"‏سیستم Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"برنامه‌های شخصی"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"محل کار"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"مخاطبین"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"دسترسی به مخاطبین شما و تغییر آنها"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"مکان"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"دسترسی به مکان شما"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"اطلاعات اجتماعی شما"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"مستقیم به اطلاعات مخاطبین و روابط اجتماعی دسترسی داشته باشید."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"تقویم"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"دسترسی به تقویم شما و تغییر آن"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"پیامک"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"دسترسی به پیامک و تغییر آن"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"فرهنگ‌ لغت کاربر"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"خواندن یا نوشتن کلمات در فرهنگ لغت کاربر."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"نشانک‌ها و سابقه"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"مستقیم به نشانک‌ها و سابقه مرور دسترسی داشته باشید."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"میکروفن"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"استفاده از میکروفن دستگاه"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"دوربین"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"استفاده از دوربین دستگاه"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"تلفن"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"استفاده از تلفن دستگاه"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"حسگرها"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"دسترسی به حسگرها و فناوری‌های پوشیدنی"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"بازیابی محتوای پنجره"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"محتوای پنجره‌ای را که در حال تعامل با آن هستید بررسی کنید."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"فعال‌سازی کاوش لمسی"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"بخشی از اثر انگشت شناسایی شد. لطفاً دوباره امتحان کنید."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"اثرانگشت پردازش نشد. لطفاً دوباره امتحان کنید."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"حسگر اثر انگشت کثیف است. لطفاً آن را تمیز کنید و دوباره امتحان نمایید."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"انگشت خیلی سریع حرکت کرد. لطفاً دوباره امتحان کنید."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"انگشت خیلی آهسته حرکت کرد. لطفاً دوباره امتحان کنید."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"پردازش ممکن نیست. دوباره امتحان کنید."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"سخت‌افزار در دسترس نیست."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"ذخیره اثر انگشت ممکن نیست. لطفاً یک اثر انگشت موجود را حذف کنید."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"مهلت زمانی ثبت اثر انگشت به پایان رسید. دوباره امتحان کنید."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"مهلت زمانی ثبت اثر انگشت به پایان رسید. دوباره امتحان کنید."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"خواندن تنظیمات همگام‌سازی"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"به یک برنامه اجازه می‌دهد تنظیمات همگام‌سازی را برای یک حساب اصلاح کند. به‌عنوان مثال، از این ویژگی می‌توان برای فعال کردن همگام‌سازی برنامه «افراد» با یک حساب استفاده کرد."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"خواندن اطلاعات آماری همگام‌سازی"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"به یک برنامه اجازه می‌دهد وضعیت همگام‌سازی یک حساب را بخواند، از جمله سابقه رویدادهای همگام‌سازی و میزان داده‌های همگام‌سازی شده."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"نوشتن فیدهای مشترک"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"‏به برنامه اجازه می‎دهد تا فیدهای همگام شده کنونی را تغییر دهد. برنامه‎های مخرب می‎توانند فیدهای همگام شده را تغییر دهند."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"خواندن واژه‌هایی که به فرهنگ‌ لغت اضافه کردید"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"‏به برنامه اجازه می‎دهد همه کلمه، نام و عباراتی را که کاربر در فرهنگ لغت خود ذخیره کرده است بخواند."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"افزودن کلمات به فرهنگ لغت تعریف‌ شده توسط کاربر"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"برای بازگشایی قفل یا انجام تماس اضطراری روی منو فشار دهید."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"برای بازگشایی قفل روی منو فشار دهید."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"الگو را بکشید تا قفل آن باز شود"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"تماس اضطراری"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"بازگشت به تماس"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"صحیح است!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"دوباره امتحان کنید"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"داوطلبین"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"‏آماده سازی حافظهٔ USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"‏آماده کردن کارت SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"بررسی خطاها."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"‏حافظهٔ USB خالی"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"‏کارت SD خالی"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"‏حافظهٔ USB خالی است یا دارای سیستم فایل پشتیبانی نشده است."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"‏کارت SD خالی است یا دارای سیستم فایل پشتیبانی نشده است."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"‏حافظهٔ USB خراب شده"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"‏کارت SD آسیب دیده"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"‏حافظهٔ USB خراب است. سعی کنید آنرا دوباره فرمت کنید."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"‏کارت SD خراب است. سعی کنید آنرا دوباره فرمت کنید."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"‏حافظهٔ USB به صورت غیرمنتظره جدا شد"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"‏کارت SD به صورت غیرمنتظره‌ای جدا شد"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"‏اتصال حافظهٔ USB را قبل از بیرون آوردن قطع کنید تا سبب از بین رفتن داده‌ها نشود."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"‏کارت SD را قبل از بیرون آوردن جدا کنید تا سبب از بین رفتن داده‌ها نشود."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"‏حافظهٔ USB را می‌توانید با ایمنی جدا کنید"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"‏کارت SD را می‌توان با امنیت کامل جدا کرد"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"‏شما می‌توانید حافظهٔ USB را با اطمینان جدا کنید."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"‏کارت SD را می‌توانید با امنیت کامل خارج کنید."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"‏جدا کردن حافظهٔ USB"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"‏کارت SD حذف شده"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"‏حافظهٔ USB جدا شد. یک رسانه جدید متصل کنید."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"‏کارت SD جدا شد. یک کارت جدید وارد کنید."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"فعالیتی مطابق با این مورد یافت نشد."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"تعیین مسیر خروجی رسانه"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"به یک برنامه اجازه می‌دهد خروجی رسانه را به دستگاه‌های خارجی دیگر تعیین مسیر کند."</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"همپوشانی #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"، امن"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"تماس اضطراری"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"الگو را فراموش کرده‌اید"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"الگوی اشتباه"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"گذرواژه اشتباه"</string>
@@ -1447,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"تا <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"تا وقتی آن را خاموش کنید"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"مسدود کردن وقفه‌ها"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"فرویش"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"شب‌های آخر هفته"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"آخر هفته‌ها"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> آن را بی‌صدا کرد"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"دستگاهتان یک مشکل داخلی دارد، و ممکن است تا زمانی که بازنشانی به داده کارخانه انجام نگیرد، بی‌ثبات بماند."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"دستگاهتان یک مشکل داخلی دارد. برای جزئیات آن با سازنده‌تان تماس بگیرید."</string>
@@ -1467,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"‏درخواست SS به درخواست DIAL اصلاح می‌شود."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"‏درخواست SS به درخواست USSD اصلاح می‌شود."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"‏درخواست SS به درخواست SS جدید اصلاح می‌شود."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"‏درگاه جانبی Android USB"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"‏درگاه جانبی USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"گزینه‌های بیشتر"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"بستن منوی سرریز"</string>
</resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 1959ac1..a3cda6d 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android-järjestelmä"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Omat sovellukset"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Työ"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktit"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"käytä ja muokkaa kontakteja"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Sijainti"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"käytä sijaintiasi"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Sosiaaliset tietosi"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Kontaktiesi ja internet-kontaktiesi tietojen käyttöoikeus."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalenteri"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"käytä ja muokkaa kalenteria"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"Tekstiviestit"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"käytä ja muokkaa tekstiviestejä"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Käyttäjän sanakirja"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lue tai kirjoita sanoja käyttäjän sanakirjaan."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Kirjanmerkit ja historia"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Kirjanmerkkien ja selaimen historian käyttöoikeus."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofoni"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"käytä laitteen mikrofonia"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"käytä laitteen kameraa"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Puhelin"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"käytä laitteen puhelinta"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Anturit"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"käytä antureita ja puettavia laitteita"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Nouda ikkunan sisältöä"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Tarkista käyttämäsi ikkunan sisältö."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Ota kosketuksella tutkiminen käyttöön"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Sormenjälki havaittiin vain osittain. Yritä uudelleen."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Sormenjäljen käsittely epäonnistui. Yritä uudelleen."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sormenjälkitunnistin on likainen. Puhdista tunnistin ja yritä uudelleen."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Liikutit sormea liian nopeasti. Yritä uudelleen."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Liikutit sormea liian hitaasti. Yritä uudelleen."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Käsittely ei onnistu. Yritä uudelleen."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Laitteisto ei ole käytettävissä."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Sormenjälkeä ei voida tallentaa. Poista aiemmin lisätty sormenjälki."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Sormenjälkitunnistimen toiminta aikakatkaistiin. Yritä uudelleen."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Sormenjälkitunnistimen toiminta aikakatkaistiin. Yritä uudelleen."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"lue synkronointiasetuksia"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Antaa sovelluksen muokata tilin synkronointiasetuksia. Sovellus voi esimerkiksi ottaa Ihmiset-sovelluksen synkronoinnin käyttöön tilissä."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"lue synkronointitilastoja"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Antaa sovelluksen lukea tilien synkronoinnin tilan sekä synkronoitujen tapahtumien historian ja kuinka paljon tietoja on synkronoitu."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"kirjoita tilattuja syötteitä"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Antaa sovelluksen muokata synkronoitavia syötteitä. Haitalliset sovellukset voivat muuttaa synkronoitavia syötteitä."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"lue sanakirjaan lisättyjä termejä"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Antaa sovelluksen lukea sanoja, nimiä tai ilmauksia, joita käyttäjä on voinut tallentaa käyttäjän sanakirjaan."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"lisää sanoja käyttäjän sanakirjaan"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Poista lukitus tai soita hätäpuhelu painamalla Valikko-painiketta."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Poista lukitus painamalla Valikko-painiketta."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Poista lukitus piirtämällä kuvio"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Hätäpuhelu"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Palaa puheluun"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Oikein!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Yritä uudelleen"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidaatit"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Valmistellaan USB-tilaa"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Valmistellaan SD-korttia"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Tarkistetaan virheiden varalta."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Tyhjä USB-tallennustila"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tyhjä SD-kortti"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB-tallennustila on tyhjä tai sen tiedostojärjestelmää ei tueta."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD-kortti on tyhjä tai sen tiedostojärjestelmää ei tueta."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB-tila vahingoittunut"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Vahingoittunut SD-kortti"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB-tallennustila on vahingoittunut. Kokeile alustaa se uudelleen."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD-kortti on vahingoittunut. Kokeile alustaa se uudelleen."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-tila poistettiin yllättäen"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD-kortti poistettiin yllättäen"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Poista USB-tallennustila käytöstä ennen sen irrottamista estääksesi tietoja katoamasta."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Poista SD-kortti käytöstä ennen kuin poistat sen, jotta tietoja ei katoa."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Voit nyt poistaa USB-tilan"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD-kortti voidaan poistaa"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Voit nyt poistaa USB-tallennustilan turvallisesti."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Voit nyt poistaa SD-kortin."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB-tallennustila on poistettu"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD-kortti poistettu"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB-tallennustila poistettu. Lisää uusi laite."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD-kortti poistettu. Aseta uusi kortti."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Osuvia toimintoja ei löytynyt."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Median reititys"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Antaa sovelluksen reitittää mediaa muihin ulkoisiin laitteisiin."</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Peittokuva # <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", suojattu"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Hätäpuhelu"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Unohtunut kuvio"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Väärä kuvio"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Väärä salasana"</string>
@@ -1447,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Kunnes kello on <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Kunnes poistat tämän käytöstä"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Kutista"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Estä keskeytykset"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Vapaalla"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Arki-illat"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Viikonloput"</string>
<string name="muted_by" msgid="6147073845094180001">"Mykistänyt <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Laitteellasi on sisäinen ongelma, joka aiheuttaa epävakautta. Voit korjata tilanteen palauttamalla tehdasasetukset."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Laitteesi yhdistäminen ei onnistu sisäisen virheen takia. Saat lisätietoja valmistajalta."</string>
@@ -1467,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS-pyyntö muutettiin DIAL-pyynnöksi."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS-pyyntö muutettiin USSD-pyynnöksi."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS-pyyntö muutettiin uudeksi SS-pyynnöksi."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Androidin USB-oheislaiteportti"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB-oheislaiteportti"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Lisäasetukset"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Sulje ylivuoto"</string>
</resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 93648f6..39f75d9 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Système Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Applications personnelles"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Travail"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contacts"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"accéder à vos contacts et les modifier"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Localisation"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"accéder à votre position"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Vos données sur les réseaux sociaux"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Accès direct aux informations sur vos contacts et vos amis sur les réseaux sociaux"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"accéder à votre calendrier et le modifier"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"Messagerie texte"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"accéder aux messages texte et les modifier"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dctionnaire personnel"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lire ou écrire des mots dans le dictionnaire personnel."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Favoris et historique"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Accès direct aux favoris et à l\'historique du navigateur"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Microphone"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"utiliser le microphone de l\'appareil"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Appareil photo"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"utiliser l\'appareil photo de l\'appareil"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Téléphone"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"utiliser les fonctions d\'appel téléphonique de l\'appareil"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Capteurs"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"accéder aux capteurs et aux accessoires connectés"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Récupérer le contenu d\'une fenêtre"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecter le contenu d\'une fenêtre avec laquelle vous interagissez."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activer la fonctionnalité Explorer au toucher"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Empreinte digitale partielle détectée. Veuillez essayer de nouveau."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Impossible de traiter les empreintes digitales. Veuillez essayer de nouveau."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Le capteur d\'empreintes digitales est sale. Veuillez le nettoyer et essayer de nouveau."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Le doigt a bougé trop vite. Veuillez essayer de nouveau."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Le doigt a bougé trop lentement. Veuillez essayer de nouveau."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Traitement impossible. Essayer de nouveau."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Matériel non disponible."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"L\'empreinte digitale ne peut pas être enregistrée. Veuillez supprimer une empreinte existante."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Le temps attribué pour lire l\'empreinte est écoulé. Veuillez essayer de nouveau."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Le temps attribué pour lire l\'empreinte est écoulé. Veuillez essayer de nouveau."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"lire les paramètres de synchronisation"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permet à une application de modifier les paramètres de synchronisation d\'un compte. Cette autorisation peut, par exemple, être utilisée pour activer la synchronisation de l\'application Contacts avec un compte."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"lire les statistiques de synchronisation"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permet à une application d\'accéder aux statistiques de synchronisation d\'un compte, y compris l\'historique des événements de synchronisation et le volume de données synchronisées."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"modifier les flux auxquels vous êtes abonné"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Permet à l\'application de modifier les flux en cours de synchronisation. Des applications malveillantes peuvent utiliser cette fonctionnalité pour modifier vos flux synchronisés."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"voir les termes ajoutés au dictionnaire personnel"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Permet à l\'application d\'accéder aux mots, noms et expressions que l\'utilisateur a pu enregistrer dans son dictionnaire personnel."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"ajouter des mots au dictionnaire personnel"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Appuyez sur \"Menu\" pour débloquer le téléphone ou appeler un numéro d\'urgence."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Appuyez sur \"Menu\" pour déverrouiller l\'appareil."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Dessinez un schéma pour déverrouiller le téléphone"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Appel d\'urgence"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Retour à l\'appel"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"C\'est exact!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Réessayer"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidats"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Préparation de la mémoire de stockage USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Préparation de la carte SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Recherche d\'erreurs en cours"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Mémoire de stockage USB vide"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Carte SD vide"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"La mémoire de stockage USB est vide, ou son système de fichiers n\'est pas compatible."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"La carte SD est vide, ou son système de fichiers n\'est pas compatible."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Mémoire de stockage USB endommagée"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Carte SD endommagée"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"La mémoire de stockage USB est endommagée. Veuillez essayer de la reformater."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"La carte SD est endommagée. Veuillez tenter de la reformater."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Mémoire de stockage USB retirée inopinément"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Carte SD retirée inopinément"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Désinstaller la mémoire de stockage USB avant de la retirer pour éviter toute perte de données."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Désactivez la carte SD avant de la retirer pour éviter toute perte de données."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"La mémoire de stockage USB peut être retirée en toute sécurité."</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"La carte SD peut être retirée en toute sécurité"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Vous pouvez retirer la mémoire de stockage USB en toute sécurité."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Vous pouvez retirer la carte SD en toute sécurité."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Mémoire de stockage USB retirée"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Carte SD retirée"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Mémoire de stockage USB retirée. Insérez un nouveau support."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"La carte SD a été retirée. Insérez-en une autre."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Aucune activité correspondante trouvée."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Diriger la sortie multimédia"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Permet à une application de diriger la sortie multimédia vers d\'autres appareils externes."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposition n° <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g> : <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> ppp"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sécurisé"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Appel d\'urgence"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"J\'ai oublié le schéma"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Schéma incorrect."</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Mot de passe incorrect."</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Jusqu\'à <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Jusqu\'à la désactivation"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Réduire"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Bloquer les interruptions"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Temps d\'arrêt"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Les soirs de semaine"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Les fins de semaine"</string>
<string name="muted_by" msgid="6147073845094180001">"Mis en sourdine par <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Un problème interne est survenu avec votre appareil. Il se peut qu\'il soit instable jusqu\'à ce que vous le réinitialisiez à sa configuration d\'usine."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Un problème interne est survenu avec votre appareil. Communiquez avec le fabricant pour obtenir plus de détails."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"La demande SS a été modifiée et est maintenant une demande DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"La demande SS a été modifiée et est maintenant une demande USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"La demande SS a été modifiée et est maintenant une nouvelle demande SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Port USB de l\'appareil Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Port USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Plus d\'options"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Fermer la barre d\'outils en superposition"</string>
</resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 5eac701..76f61c1 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Système Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Applications personnelles"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Professionnel"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contacts"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"accéder à vos contacts et les modifier"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Position"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"accéder à votre position"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Vos informations sur les réseaux sociaux"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Accès direct aux informations sur vos contacts et vos amis sur les réseaux sociaux"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"accéder à votre agenda et le modifier"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"accéder aux SMS et les modifier"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dictionnaire personnel"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Consulter et ajouter des mots dans le dictionnaire personnel"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Favoris et historique"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Accès direct aux favoris et à l\'historique du navigateur"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Microphone"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"utiliser le micro de l\'appareil"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Appareil photo"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"utiliser l\'appareil photo"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Téléphone"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"utiliser les fonctionnalités de téléphonie de l\'appareil"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Capteurs"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"accéder aux capteurs et aux accessoires connectés"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Récupérer le contenu d\'une fenêtre"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecter le contenu d\'une fenêtre avec laquelle vous interagissez."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activer la fonctionnalité Explorer au toucher"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Empreinte numérique partiellement détectée. Veuillez réessayer."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Impossible de reconnaître l\'empreinte numérique. Veuillez réessayer."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Le capteur d\'empreintes numériques est sale. Veuillez le nettoyer, puis réessayer."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Vous avez retiré votre doigt trop rapidement. Veuillez réessayer."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Vous avez déplacé votre doigt trop lentement. Veuillez réessayer."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Impossible de reconnaître l\'empreinte numérique. Veuillez réessayer."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Matériel non disponible."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Impossible d\'enregistrer l\'empreinte numérique. Veuillez supprimer une empreinte."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Délai de détection de l\'empreinte numérique expiré. Veuillez réessayer."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Délai de détection de l\'empreinte numérique expiré. Veuillez réessayer."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"lire les paramètres de synchronisation"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permet à une application de modifier les paramètres de synchronisation d\'un compte. Cette autorisation peut, par exemple, être utilisée pour activer la synchronisation de l\'application Contacts avec un compte."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"Lecture des statistiques de synchronisation"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permet à une application d\'accéder aux statistiques de synchronisation d\'un compte, y compris l\'historique des événements de synchronisation et le volume de données synchronisées."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"écrire les flux auxquels vous êtes abonné"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Permet à l\'application de modifier les flux en cours de synchronisation. Des applications malveillantes peuvent exploiter cette fonctionnalité pour modifier vos flux synchronisés."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"voir les termes ajoutés au dictionnaire"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Permet à l\'application d\'accéder aux mots, noms et expressions que l\'utilisateur a pu enregistrer dans son dictionnaire personnel."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"ajouter des mots au dictionnaire personnel"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Appuyez sur \"Menu\" pour déverrouiller le téléphone ou appeler un numéro d\'urgence"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Appuyez sur \"Menu\" pour déverrouiller le téléphone."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Dessinez un schéma pour déverrouiller le téléphone"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Appel d\'urgence"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Retour à l\'appel"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Combinaison correcte !"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Veuillez réessayer."</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidats"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Préparation de la mémoire de stockage USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Préparation de la carte SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Recherche d\'erreurs"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Mémoire de stockage USB vide"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Carte SD vide"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"La mémoire de stockage USB est vide, ou son système de fichiers n\'est pas compatible."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"La carte SD est vide, ou son système de fichiers n\'est pas compatible."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Mémoire de stockage USB endommagée"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Carte SD endommagée"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"La mémoire de stockage USB est endommagée. Veuillez essayer de la reformater."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"La carte SD est endommagée. Veuillez tenter de la reformater."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Mémoire USB retirée inopinément"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Carte SD retirée inopinément"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Désinstaller la mémoire de stockage USB avant de la retirer pour éviter toute perte de données."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Désinstaller la carte SD avant de la retirer pour éviter toute perte de données."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Vous pouvez retirer la mémoire USB."</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"La carte SD peut être retirée en toute sécurité"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Vous pouvez retirer la mémoire de stockage USB en toute sécurité."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Vous pouvez retirer la carte SD en toute sécurité."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Mémoire de stockage USB retirée"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Carte SD retirée"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Mémoire de stockage USB retirée. Insérez un nouveau support."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"La carte SD a été retirée. Insérez-en une autre."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Recherche d\'erreurs"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Aucune activité correspondante trouvée."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Diriger la sortie multimédia"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Permet à une application de diriger la sortie multimédia vers d\'autres appareils externes."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposition n° <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g> : <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sécurisé"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Appel d\'urgence"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"J\'ai oublié le schéma"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Schéma incorrect."</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Mot de passe incorrect."</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Jusqu\'à <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Jusqu\'à la désactivation"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Réduire"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Bloquer les interruptions"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Temps d\'arrêt"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Soirs de semaine"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Week-ends"</string>
<string name="muted_by" msgid="6147073845094180001">"Son coupé par : <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Un problème interne lié à votre appareil est survenu. Ce dernier risque d\'être instable jusqu\'à ce que vous rétablissiez la configuration d\'usine."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Un problème interne lié à votre appareil est survenu. Veuillez contacter le fabricant pour en savoir plus."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"La requête SS a été remplacée par une requête DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"La requête SS a été remplacée par une requête USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"La requête SS a été remplacée par une autre requête SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Port du périphérique USB Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Port du périphérique USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Plus d\'options"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Fermer la barre d\'outils en superposition"</string>
</resources>
diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml
index 41c56d8..b015f9e 100644
--- a/core/res/res/values-gl-rES/strings.xml
+++ b/core/res/res/values-gl-rES/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Aplicacións persoais"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Traballo"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contactos"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"acceder e modificar os teus contactos"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Localización"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"acceder á túa localización"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"A túa información social"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acceso directo a información acerca dos teus contactos e as conexións sociais."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"acceder e modificar o teu calendario"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"acceder e modificar SMS"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dicionario de usuario"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Ler ou escribir palabras no dicionario de usuario."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Favoritos e historial"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acceso directo aos favoritos e ao historial do navegador."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Micrófono"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"usar o micrófono do dispositivo"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Cámara"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"usar a cámara do dispositivo"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Teléfono"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"usar a telefonía do dispositivo"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensores"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"acceder aos sensores e dispositivos que se poden levar postos"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperar contido da ventá"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecciona o contido dunha ventá coa que estás interactuando."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activar a exploración táctil"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Detectouse unha impresión dixital parcial. Téntao de novo."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Non se puido procesar a impresión dixital. Téntao de novo."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impresión dixital está sucio. Límpao e téntao de novo."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"O dedo moveuse demasiado rápido. Téntao de novo."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"O dedo moveuse demasiado lento. Téntao de novo."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Non se pode procesar. Téntao de novo."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware non dispoñible."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Non se pode almacenar a impresión dixital. Elimina unha impresión dixital existente."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Esgotouse o tempo de espera da impresión dixital. Téntao de novo."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Esgotouse o tempo de espera da impresión dixital. Téntao de novo."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"ler a configuración de sincronización"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite a unha aplicación modificar a configuración de sincronización dunha conta. Por exemplo, esta acción pode utilizarse para activar a sincronización da aplicación Contactos cunha conta."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"ler as estatísticas de sincronización"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite a unha aplicación ler as estatísticas de sincronización dunha conta, incluído o historial de eventos de sincronización e a cantidade de datos sincronizados."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"escribir feeds subscritos"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Permite á aplicación modificar os teus feeds sincronizados actualmente. É posible que aplicacións maliciosas cambien os teus feeds sincronizados."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"ler os termos engadidos ao dicionario"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Permite á aplicación ler todas as palabras, nomes e frases gardados polo usuario no dicionario do usuario."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"engadir palabras ao dicionario definido polo usuario"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Preme Menú para desbloquear ou realizar unha chamada de emerxencia."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Preme Menú para desbloquear."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Crea o padrón de desbloqueo"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Chamada de emerxencia"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Volver á chamada"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Téntao de novo"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidatos"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Preparando almacenamento USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Preparando a tarxeta SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Comprobando se hai erros."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Almacenamento USB en branco"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tarxeta SD en branco"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"O almacenamento USB está baleiro ou ten un sistema de ficheiros non compatible."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"A tarxeta SD está baleira ou ten un sistema de ficheiros non compatible."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Almacenamento USB danado"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"A tarxeta SD está danada"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"O almacenamento USB está danado. Proba a formatalo de novo."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"A tarxeta SD está danada. Proba a formatala de novo."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB extraído inesperadamente"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"A tarxeta SD extraeuse inesperadamente"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Desactiva o almacenamento USB antes de extraelo para evitar a perda de datos."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Desactiva a tarxeta SD antes de extraela para evitar a perda de datos."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"É seguro extraer o USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"A tarxeta SD xa se pode extraer de forma segura."</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Podes extraer o almacenamento USB de forma segura."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Podes extraer a tarxeta SD de forma segura."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Extraeuse o almacenamento USB"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Extraeuse a tarxeta SD"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Extraeuse o almacenamento USB. Insire un dispositivo novo."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Extraeuse a tarxeta SD. Insire unha nova."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Non se atoparon actividades que coincidan."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Dirixir saída multimedia"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Permite a unha aplicación dirixir a saída multimedia a outros dispositivos externos."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposición n.º <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> ppp"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", segura"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Chamada de emerxencia"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueciches o padrón"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Padrón incorrecto"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Contrasinal incorrecto"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Ata as <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Ata que desactives isto"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Contraer"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Bloquear interrupcións"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Tempo de inactividade"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Noites pola semana"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Fins de semana"</string>
<string name="muted_by" msgid="6147073845094180001">"Silenciado por <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Produciuse un erro interno no teu dispositivo e quizais funcione de maneira inestable ata o restablecemento dos datos de fábrica."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Produciuse un erro interno co teu dispositivo. Contacta co teu fabricante para obter máis información."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"A solicitude SS transformouse nunha solicitude DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"A solicitude SS transformouse nunha solicitude USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"A solicitude SS transformouse nunha nova solicitude SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Porto periférico USB de Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Porto periférico USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Máis opcións"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Pechar barra de ferramentas adicional"</string>
</resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 7f75425..0f35a35 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android सिस्‍टम"</string>
<string name="user_owner_label" msgid="6465364741001216388">"व्यक्तिगत ऐप्स"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"कार्यालय"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"संपर्क"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"अपने संपर्कों को ऐक्‍सेस करें और उनमें बदलाव करें"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"स्थान"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"अपना स्‍थान ऐक्‍सेस करें"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"आपकी सामाजिक जानकारी"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"अपने संपर्कों और सामाजिक कनेक्‍शन के बारे में जानकारी पर सीधी पहुंच."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"कैलेंडर"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"अपना कैलेंडर ऐक्‍सेस करें और उसमें बदलाव करें"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS ऐक्‍सेस करें और उसमें बदलाव करें"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"उपयोगकर्ता शब्दकोश"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"उपयोगकर्ता डिक्‍शनरी में शब्‍द पढ़ें या लिखें."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"बुकमार्क और इतिहास"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"बुकमार्क और ब्राउज़र इतिहास पर सीधी पहुंच."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"माइक्रोफ़ोन"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"डिवाइस के माइक्रोफ़ोन का उपयोग करें"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"कैमरा"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"डिवाइस के कैमरे का उपयोग करें"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"फ़ोन"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"डिवाइस टेलीफ़ोनी का उपयोग करें"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"संवेदक"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"संवेदक तथा पहने जाने योग्‍य डिवाइस ऐक्‍सेस करें"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"विंडो सामग्री प्राप्त करें"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"उस विंडो की सामग्री का निरीक्षण करें जिससे आप सहभागिता कर रहे हैं."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"स्पर्श द्वारा एक्सप्लोर करें को चालू करें"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"आंशिक फ़िंगरप्रिंट की पहचान की गई. कृपया पुनः प्रयास करें."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"फ़िंगरप्रिंट संसाधित नहीं हो सका. कृपया पुन: प्रयास करें."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"फ़िंगरप्रिंट संवेदक गंदा है. कृपया साफ़ करें और पुनः प्रयास करें."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"अंगुली को तेज़ी से चलाया गया. कृपया पुनः प्रयास करें."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"अंगुली को धीरे चलाया गया. कृपया पुनः प्रयास करें."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"संसाधित करने में असमर्थ. पुनः प्रयास करें."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"हार्डवेयर उपलब्ध नहीं है."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"फ़िंगरप्रिंट को संग्रहीत नहीं किया जा सका. कृपया कोई मौजूदा फ़िंगरप्रिंट निकालें."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"फ़िंगरप्रिंट का समय समाप्त हो गया. पुनः प्रयास करें."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"फ़िंगरप्रिंट का समय समाप्त हो गया. पुनः प्रयास करें."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"समन्वयन सेटिंग पढ़ें"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ऐप्स को किसी खाते की समन्वयन सेटिंग संशोधित करने देता है. उदाहरण के लिए, इसका उपयोग लोग ऐप्स का समन्‍वयन किसी खाते से सक्षम करने में हो सकता है."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"समन्वयन आंकड़े पढ़ें"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"ऐप्स को किसी खाते के समन्वयन आंकड़े, साथ ही समन्‍वयित ईवेंट का इतिहास और समन्‍वयित डेटा की मात्रा पढ़ने देता है."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"सदस्यता-प्राप्त फ़ीड लिखें"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"ऐप्स को आपके वर्तमान समन्वयित फ़ीड को संशोधित करने देता है. दुर्भावनापूर्ण ऐप्स आपके समन्वयित फ़ीड को बदल सकते है."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"शब्दकोश में आपके द्वारा जोड़े गए शब्‍दों को पढ़ें"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"ऐप्स को ऐसे सभी शब्‍दों, नामों और वाक्यांशों को पढ़ने देता है जो संभवत: उपयोगकर्ता द्वारा उपयोगकर्ता ‍शब्दकोश में संग्रहीत किए गए हों."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"उपयोगकर्ता द्वारा परिभाषित शब्दकोश में शब्द जोड़ें"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"अनलॉक करने के लिए मेनू दबाएं या आपातलकालीन कॉल करें."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"अनलॉक करने के लिए मेनू दबाएं."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"अनलॉक करने के लिए आकार आरेखित करें"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"आपातकालीन कॉल"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"कॉल पर वापस लौटें"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"सही!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"फिर से प्रयास करें"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"उम्‍मीदवार"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB मेमोरी तैयार किया जा रहा है"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD कार्ड तैयार कर रहा है"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"त्रुटियों की जांच कर रहा है."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"खाली USB मेमोरी"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"खाली SD कार्ड"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB मेमोरी खाली है या उसका फ़ाइल सिस्‍टम असमर्थित है."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD कार्ड खाली है या इसका फ़ाइल सिस्‍टम असमर्थित है."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"क्षतिग्रस्‍त USB मेमोरी"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"क्षतिग्रस्‍त SD कार्ड"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB मेमोरी क्षतिग्रस्‍त हो गया है. उसे पुन: प्रारूपित करने का प्रयास करें."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD कार्ड क्षतिग्रस्‍त हो गया है. उसे पुन: प्रारूपित करने का प्रयास करें."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB मेमोरी अप्रत्‍याशित रूप से निकाला गया"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD कार्ड को अनपेक्षित रूप से निकाल दिया गया"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"डेटा हानि से बचने के लिए निकालने से पहले USB मेमोरी अनमाउंट करें."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"डेटा हानि से बचने के लिए निकालने से पहले SD कार्ड अनमाउंट करें."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB मेमोरी निकालने के लिए सुरक्षित है"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD कार्ड निकालने के लिए सुरक्षित है"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"आप USB मेमोरी को सुरक्षित रूप से निकाल सकते हैं."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"आप SD कार्ड को सुरक्षित रूप से निकाल सकते हैं."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB मेमोरी निकाला गया"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD कार्ड निकाल दिया गया है"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB मेमोरी निकाला गया. नया मीडिया सम्‍मिलित करें."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD कार्ड निकाला गया. एक नया सम्‍मिलित करें."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"त्रुटियों की जांच कर रहा है"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"कोई मिलती-जुलती गतिविधि नहीं मिली."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"मीडिया आउटपुट को रूट करें"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"ऐप्स को मीडिया आउटपुट को अन्य बाहरी डिवाइस पर रूट करने देता है."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"ओवरले #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", सुरक्षित"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"आपातकालीन कॉल"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"आकार भूल गए"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"गलत आकार"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"गलत पासवर्ड"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> तक"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"जब तक आप इसे बंद नहीं कर देते"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"बाधाओं को रोकें"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"बंद रहने का समय"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"कार्यदिवसों की रात"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"सप्ताहांत"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> द्वारा म्यूट किया गया"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"आपके डिवाइस के साथ कोई आंतरिक त्रुटि हुई और यह तब तक अस्‍थिर रह सकता है, जब तक आप फ़ैक्‍टरी डेटा रीसेट नहीं करते हैं."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"आपके डिवाइस के साथ कोई आंतरिक त्रुटि हुई. विवरणों के लिए अपने निर्माता से संपर्क करें."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS अनुरोध को DIAL अनुरोध में बदल दिया गया है."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS अनुरोध को USSD अनुरोध में बदल दिया गया है."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS अनुरोध को नए SS अनुरोध में बदल दिया गया है."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB पेरिफ़ेरल पोर्ट"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB पेरिफ़ेरल पोर्ट"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"अधिक विकल्प"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"ओवरफ़्लो बंद करें"</string>
</resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 95d3863..fcc57cb 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -219,42 +219,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sustav Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Osobne aplikacije"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Posao"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontakti"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"pristup kontaktima i njihova izmjena"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Lokacija"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"pristup vašoj lokaciji"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informacije o vašoj društvenoj aktivnosti"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Izravan pristup informacijama o kontaktima i društvenim vezama."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendar"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"pristup kalendaru i njegova izmjena"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"pristup SMS-ovima i njihova izmjena"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Korisnički rječnik"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Čitanje ili pisanje riječi u korisničkom rječniku."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Oznake i povijest"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Izravan pristup oznakama i povijest preglednika."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"upotreba mikrofona uređaja"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparat"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"upotreba fotoaparata uređaja"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"upotreba telefonske veze na uređaju"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Senzori"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"pristup senzorima i nosivim uređajima"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Dohvaćanje sadržaja prozora"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Istražite sadržaj prozora koji upotrebljavate."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Uključivanje značajke Istraži dodirom"</string>
@@ -444,15 +430,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Otkriven je djelomični otisak prsta. Pokušajte ponovo."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Obrada otiska prsta nije uspjela. Pokušajte ponovo."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzor otiska prsta nije čist. Očistite ga i pokušajte ponovo."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Prebrzo pomicanje prsta. Pokušajte ponovo."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Presporo pomicanje prsta. Pokušajte ponovo."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Nije obrađeno. Pokušajte ponovo."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardver nije dostupan."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Otisak prsta nije pohranjen. Uklonite postojeći otisak prsta."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Isteklo je vrijeme čekanja za otisak prsta. Pokušajte ponovo."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Isteklo je vrijeme čekanja za otisak prsta. Pokušajte ponovo."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"čitanje postavki sinkronizacije"</string>
@@ -461,6 +453,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Aplikaciji omogućuje izmjenu postavki sinkronizacije za račun. Na primjer, to se može upotrijebiti za omogućavanje sinkronizacije aplikacije Osobe s računom."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"čitanje statistike o sinkronizaciji"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Aplikaciji omogućuje čitanje statistika sinkronizacije za račun, uključujući povijest sinkronizacije te količinu sinkroniziranih podataka."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"pisanje pretplaćenih feedova"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Omogućuje aplikaciji promjenu vaših trenutačno sinkroniziranih feedova. Zlonamjerne aplikacije mogu promijeniti vaše sinkronizirane feedove."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"čitanje pojmova koje ste dodali u rječnik"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Aplikaciji omogućuje čitanje svih riječi, imena i fraza koje je korisnik pohranio u korisničkom rječniku."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"dodavanje riječi u rječnik koji je izradio korisnik"</string>
@@ -635,7 +629,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Pritisnite Izbornik za otključavanje ili pozivanje hitnih službi."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Pritisnite Izbornik za otključavanje."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Iscrtajte uzorak za otključavanje"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Hitan poziv"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Uzvrati poziv"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Ispravno!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Pokušajte ponovo"</string>
@@ -1041,29 +1036,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidati"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Pripremanje memorije USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Priprema SD kartice"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Traženje pogrešaka."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Prazna memorija USB"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Prazna SD kartica"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB pohrana prazna je ili ima nepodržani datotečni sustav."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD kartica prazna je ili ima nepodržani datotečni sustav."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Oštećena USB memorija"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Oštećena SD kartica"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB pohrana oštećena je. Pokušajte ju ponovo formatirati."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD kartica oštećena je. Pokušajte ju ponovo formatirati."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Memorija USB nenadano uklonjena"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD kartica neočekivano je uklonjena"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Isključite USB memoriju na siguran način prije uklanjanja kako biste izbjegli gubitak podataka."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"SD karticu isključite na siguran način prije uklanjanja kako biste izbjegli gubitak podataka."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Sigurno uklanjanje memorije USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD kartica može se ukloniti na siguran način"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USB memoriju možete sigurno ukloniti."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Možete ukloniti SD karticu na siguran način."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Memorija USB uklonjena"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Uklonjena SD kartica"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Memorija USB uklonjena. Umetnite novi medij."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD kartica je uklonjena. Umetnite novu."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Nisu pronađene podudarne radnje."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Usmjeravanje medijskog izlaza"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Aplikaciji omogućuje usmjeravanje medijskog izlaza na druge vanjske uređaje."</string>
@@ -1259,7 +1261,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Preklapanje br. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sigurno"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Hitan poziv"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zaboravili ste obrazac"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Pogrešan obrazac"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Pogrešna zaporka"</string>
@@ -1460,17 +1461,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Dok ne isključite"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Sažmi"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blokiranje prekida"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Prekid rada"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Noći radnih dana"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Vikend"</string>
<string name="muted_by" msgid="6147073845094180001">"Zvuk je isklj. treća strana <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Na vašem uređaju postoji interni problem i možda neće biti stabilan dok ga ne vratite na tvorničko stanje."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Na vašem uređaju postoji interni problem. Obratite se proizvođaču za više pojedinosti."</string>
@@ -1480,11 +1476,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS zahtjev izmijenjen je u DIAL zahtjev."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS zahtjev izmijenjen je u USSD zahtjev."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS zahtjev izmijenjen je u novi SS zahtjev."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Androidov USB priključak za periferne uređaje"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB priključak za periferne uređaje"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Više opcija"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Zatvori dodatni izbornik"</string>
</resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 47693e3..1c1edea 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android rendszer"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Személyes alkalmazások"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Munkahelyi"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Névjegyek"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"névjegyek elérése és módosítása"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Helyadatok"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"hozzáférés a helyadatokhoz"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Az Ön közösségi adatai"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Közvetlen hozzáférés a névjegyekre és közösségi kapcsolatokra vonatkozó információkhoz"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Naptár"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"naptár elérése és módosítása"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS-ek elérése és módosítása"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Felhasználói szótár"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Szavak olvasása vagy írása a felhasználói szótárban."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Könyvjelzők és előzmények"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Közvetlen hozzáférés a könyvjelzőkhöz és a böngészési előzményekhez"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"az eszköz mikrofonjának használata"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Fényképezőgép"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"eszközkamera használata"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"eszköztelefon használata"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Érzékelők"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"hozzáférés az érzékelőkhöz és hordható eszközökhöz"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Ablaktartalom lekérdezése"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"A használt ablak tartalmának vizsgálata."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Felfedezés érintéssel bekapcsolása"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"A rendszer az ujjlenyomatnak csak egy részletét érzékelte. Próbálkozzon újra."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nem sikerült feldolgozni az ujjlenyomatot. Próbálkozzon újra."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Az ujjlenyomat-olvasó koszos. Tisztítsa meg, majd próbálkozzon újra."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Túl hamar vette el az ujját. Próbálkozzon újra."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Túl lassan vette el az ujját. Próbálkozzon újra."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"A feldolgozás sikertelen. Próbálkozzon újra."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"A hardver nem érhető el."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Az ujjlenyomat nem tárolható. Távolítson el egy meglévő ujjlenyomatot."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Az ujjlenyomat-beolvasási műveletkor időtúllépés történt. Próbálkozzon újra."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Az ujjlenyomat-beolvasási műveletkor időtúllépés történt. Próbálkozzon újra."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"szinkronizálási beállítások olvasása"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Lehetővé teszi az alkalmazás számára egy fiók szinkronizálási beállításainak módosítását. Például ezzel engedélyezni lehet a Személyek alkalmazás szinkronizálását egy fióknál."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"szinkronizálási statisztikák olvasása"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Lehetővé teszi az alkalmazás számára egy fiók szinkronizálási statisztikáinak a beolvasását, beleértve a szinkronizálási események előzményeit, valamint a szinkronizált adatok mennyiségét."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"feliratkozott hírcsatornák írása"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Lehetővé teszi az alkalmazás számára, hogy módosítsa a jelenleg szinkronizált hírcsatornákat. A rosszindulatú alkalmazások módosíthatják a szinkronizált hírcsatornákat."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"szótárhoz adott kifejezések olvasása"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Lehetővé teszi az alkalmazás számára, hogy beolvassa a felhasználói szótárban tárolt összes szót, nevet és kifejezést."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"szavak hozzáadása a felhasználó által definiált szótárhoz"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"A feloldáshoz vagy segélyhívás kezdeményezéséhez nyomja meg a Menü gombot."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"A feloldáshoz nyomja meg a Menü gombot."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Rajzolja le a mintát a feloldáshoz"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Segélyhívás"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Hívás folytatása"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Helyes!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Próbálja újra"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"jelöltek"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Az USB-tár előkészítése"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD-kártya előkészítése"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Hibakeresés."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Üres USB-tár"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Üres SD-kártya"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Az USB-háttértár üres, vagy a fájlrendszere nem támogatott."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Az SD-kártya üres vagy nem támogatott a fájlrendszere."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Sérült USB-tár"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Az SD-kártya sérült"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Az USB-tár sérült. Próbálja meg formázni."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Az SD-kártya sérült. Próbálja meg formázni."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-tár váratlanul eltávolítva"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Az SD-kártya váratlanul eltávolításra került"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Az adatvesztés elkerülése érdekében válassza le az USB-tárat, mielőtt kihúzná azt."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Az adatvesztés elkerülése érdekében az eltávolítás előtt előbb válassza le az SD-kártyát."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Az USB-tár biztonságosan eltávolítható"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Az SD-kártya biztonságosan eltávolítható"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Biztonságosan eltávolíthatja az USB-tárat."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Biztonságosan eltávolíthatja az SD-kártyát."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Hiányzó USB-tár"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD-kártya eltávolítva"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Az USB-tár eltávolítva. Helyezzen be új hordozóeszközt."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Az SD-kártya eltávolítva. Helyezzen be egy újat."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Nincs megfelelő tevékenység."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Médiafájlok kimenetének irányítása"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Lehetővé teszi az alkalmazás számára, hogy más külső eszközökre irányítsa a médiafájlok lejátszását."</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"<xliff:g id="ID">%1$d</xliff:g>. fedvény"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> képpont"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", biztonságos"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Segélyhívás"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Elfelejtett minta"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Helytelen minta"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Helytelen jelszó"</string>
@@ -1447,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Eddig: <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Amíg ki nem kapcsolja ezt"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Összecsukás"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Megszakítások tiltása"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Inaktivitás"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Hétköznap esténként"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Hétvégente"</string>
<string name="muted_by" msgid="6147073845094180001">"A(z) <xliff:g id="THIRD_PARTY">%1$s</xliff:g> elnémította"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Belső probléma van az eszközzel, és instabil lehet, amíg vissza nem állítja a gyári adatokat."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Belső probléma van az eszközzel. A részletekért vegye fel a kapcsolatot a gyártóval."</string>
@@ -1467,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Az SS-kérés módosítva DIAL-kérésre."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Az SS-kérés módosítva USSD-kérésre."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Az SS-kérés módosítva új SS-kérésre."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB-perifériaport"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB-perifériaport"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"További lehetőségek"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"További elemeket tartalmazó eszköztár bezárása"</string>
</resources>
diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml
index 27023cd..3d48452 100644
--- a/core/res/res/values-hy-rAM/strings.xml
+++ b/core/res/res/values-hy-rAM/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android համակարգ"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Անձնական ​​ծրագրեր"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Աշխատանքային"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Կոնտակտներ"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"օգտագործել և փոփոխել ձեր կոնտակտները"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Տեղադրություն"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"օգտագործել ձեր տեղադրությունը"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Ձեր սոցիալական տեղեկությունները"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Ուղղակի մուտք ձեր կոնտակտների մասին տեղեկություններ և սոցիալական կապեր:"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Օրացույց"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"օգտագործել և փոփոխել ձեր օրացույցը"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"Կարճ հաղորդագրություն"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"տեսնել և փոփոխել կարճ հաղորդագրությունները"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Օգտվողի բառարան"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Կարդալ կամ ավելացնել բառեր օգտվողի բառարանում:"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Էջանիշեր և պատմություն"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Ուղղակի մուտք դեպի էջանիշեր և դիտարկիչի պատմություն:"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Բարձրախոս"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"օգտագործել սարքի խոսափողը"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Ֆոտոխցիկ"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"օգտագործել սարքի խցիկը"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Հեռախոս"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"օգտագործել սարքի հեռախոսակապը"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Սենսորներ"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"օգտագործել սենսորներն ու կրելի սարքերը"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Առբերել պատուհանի բովանդակությունը"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Ստուգեք պատուհանի բովանդակությունը, որի հետ փոխգործակցում եք:"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Միացնել Հպման միջոցով հետազոտումը"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Մատնահետքը հայտնաբերվել է մասամբ: Փորձեք նորից:"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Չհաջողվեց մշակել մատնահետքը: Նորից փորձեք:"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Մատնահետքերի սենսորն աղտոտված է: Մաքրեք այն և փորձեք նորից:"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Մատը շարժեցիք շատ արագ: Փորձեք նորից:"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Մատը շարժեցիք շատ դանդաղ: Փորձեք նորից:"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Հնարավոր չէ շարունակել: Փորձեք նորից:"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Սարքն անհասանելի է:"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Հնարավոր չէ պահել մատնահետքը: Հեռացրեք առկա մատնահետքը:"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Մատնահետքի գրանցման ժամանակը սպառվել է: Փորձեք նորից:"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Մատնահետքի գրանցման ժամանակը սպառվել է: Փորձեք նորից:"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"կարդալ համաժամեցման կարգավորումները"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Թույլ է տալիս հավելվածին փոփոխել համաժամեցման կարգավորումները հաշվի համար: Օրինակ, այն կարող է օգտագործվել` միացնելու Մարդիկ հավելվածի համաժամեցումը հաշվի հետ:"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"կարդալ համաժամեցման վիճակագրությունը"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Թույլ է տալիս հավելվածին կարդալ հաշվի համաժամեցման վիճակագրությունը, այդ թվում` համաժամեցման իրադարձությունների պատմությունը և թե որքան տվյալ է համաժամեցված:"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"գրել բաժանորդագրված հոսքերը"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Թույլ է տալիս հավելվածին փոփոխել ձեր ներկայումս համաժամեցված հոսքերը: Վնասարար հավելվածները կարող են փոխել ձեր համաժամեցված հոսքերը:"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"կարդալ պայմանները, որ ավելացրել եք բառարանում"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Թույլ է տալիս հավելվածին կարդալ բոլոր բառերը, անունները և արտահայտությունները, որոնք օգտագործողը հնարավոր է պահել է օգտվողի բառարանում:"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"ավելացնել բառեր օգտվողի համար սահմանված բառարանում"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Սեղմեք Ցանկ` ապակողպելու համար, կամ կատարեք արտակարգ իրավիճակների զանգ:"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Ապակողպելու համար սեղմեք Ցանկը:"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Հավաքեք սխեման` ապակողպելու համար"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Արտակարգ իրավիճակների հեռախոսազանգ"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Վերադառնալ զանգին"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Ճիշտ է:"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Կրկին փորձեք"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՈՒՓՔԵւՕՖ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"թեկնածուները"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Պատրաստում է USB կրիչը"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Պատրաստվում է SD քարտը"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Սխալների ստուգում:"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB կրիչը դատարկ է"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Դատարկ SD քարտ"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB կրիչը դատարկ է կամ ունի չաջակցվող ֆայլային համակարգ:"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD քարտը դատարկ է կամ ունի չաջակցվող ֆայլային համակարգ:"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Վնասված USB կրիչ"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Վնասված SD քարտ"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB կրիչը վնասված է: Փորձեք վերաֆորմատավորել այն:"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD քարտը վնասված է: Փորձեք վերաֆորմատավորել այն:"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB կրիչն անսպասելիորեն հեռացվել է"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD քարտը անսպասելիորեն հեռացվել է"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Անջատել USB կրիչը հեռացնելուց առաջ` տվյալների կորստից խուսափելու համար:"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Անջատել SD քարտը հեռացնելուց առաջ` տվյալների կորստից խուսափելու համար:"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB կրիչը կարող է անվտանգ հեռացվել"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD քարտն անվտանգ է հեռացման համար"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Դուք կարող եք ապահով հեռացնել USB կրիչը:"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Դուք կարող եք անվտանգ հեռացնել SD քարտը:"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB կրիչը հեռացված է"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD քարտը հեռացված է"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB կրիչը հեռացված է: Մտցրեք նոր կրիչ:"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD քարտը հեռացված է: Տեղադրեք նորը:"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Համընկնող գործունեություններ չգտնվեցին:"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Երթուղել մեդիա արտածումը"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Թույլ է տալիս հավելվածին մեդիա արտածումը երթուղել այլ արտաքին սարքեր:"</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Վերածածկ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>. <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> կմվ"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", անվտանգ"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Արտակարգ իրավիճակի հեռախոսազանգ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Մոռացել եմ սխեման"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Սխալ սխեմա"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Սխալ գաղտնաբառ"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Մինչև <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Քանի դեռ չեք անջատել"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Արգելափակել ընդհատումները"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Անգործունության ժամանակը"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Երկուշաբթիից ուրբաթ"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Հանգստյան օրեր"</string>
<string name="muted_by" msgid="6147073845094180001">"Համրեցվել է <xliff:g id="THIRD_PARTY">%1$s</xliff:g>-ի կողմից"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Սարքում ներքին խնդիր է առաջացել և այն կարող է կրկնվել, մինչև չվերականգնեք գործարանային կարգավորումները:"</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Սարքում ներքին խնդիր է առաջացել: Մանրամասների համար կապվեք արտադրողի հետ:"</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS հարցումը փոխվել է DIAL հարցման:"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS հարցումը փոխվել է USSD հարցման:"</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS հարցումը փոխվել է նոր SS հարցման:"</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB արտաքին միացք"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB արտաքին միացք"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Այլ ընտրանքներ"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Փակել ավելորդ տեղեկությունները"</string>
</resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index fac966f..4bdadda 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistem Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Aplikasi pribadi"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Kantor"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontak"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"mengakses dan memodifikasi kontak"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Lokasi"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"mengakses lokasi Anda"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informasi sosial Anda"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Akses langsung ke informasi tentang kontak dan hubungan sosial Anda."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"mengakses dan memodifikasi kalender"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"mengakses dan memodifikasi SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Kamus Pengguna"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Membaca atau menulis kata dalam kamus pengguna."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bookmark dan Riwayat"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Akses langsung ke bookmark dan riwayat browser."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"menggunakan mikrofon perangkat"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"menggunakan kamera perangkat"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telepon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"menggunakan teleponi perangkat"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensor"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"mengakses sensor dan perangkat yang dapat dikenakan"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Mengambil konten jendela"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Memeriksa konten jendela tempat Anda berinteraksi."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Mengaktifkan Jelajahi dengan Sentuhan"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Sebagian sidik jari terdeteksi. Coba lagi."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Tidak dapat memproses sidik jari. Coba lagi."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Sensor sidik jari kotor. Bersihkan dan coba lagi."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Jari digerakkan terlalu cepat. Coba lagi."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Jari digerakkan terlalu lambat. Coba lagi."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Tidak dapat memproses. Coba lagi."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Perangkat keras tidak tersedia."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Sidik jari tidak dapat disimpan. Hapus sidik jari yang ada."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Waktu sidik jari habis. Coba lagi."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Waktu sidik jari habis. Coba lagi."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"baca setelan sinkron"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Memungkinkan aplikasi mengubah setelan sinkronisasi untuk sebuah akun. Misalnya, izin ini dapat digunakan untuk mengaktifkan sinkronisasi dari aplikasi Orang dengan sebuah akun."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"statistika baca sinkron"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Memungkinkan aplikasi membaca statistik sinkronisasi untuk sebuah akun, termasuk riwayat kejadian sinkronisasi dan berapa banyak data yang disinkronkan."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"tuliskan umpan langganan"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Mengizinkan apl memodifikasi umpan Anda yang disinkronkan saat ini. Apl berbahaya dapat mengubah umpan Anda yang disinkronkan."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"baca istilah yang Anda tambahkan ke kamus"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Memungkinkan aplikasi membaca semua kata, nama, dan frasa yang mungkin disimpan oleh pengguna di kamus pengguna."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"Menambahkan kata ke kamus yang ditentukan pengguna"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Tekan Menu untuk membuka atau melakukan panggilan darurat."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Tekan Menu untuk membuka."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Buat pola untuk membuka"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Panggilan darurat"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Kembali ke panggilan"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Perbaiki!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Coba lagi"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"calon"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Menyiapkan penyimpanan USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Menyiapkan kartu SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Memeriksa kesalahan."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Penyimpanan USB kosong"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Kartu SD kosong"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Penyimpanan USB kosong atau sistem berkasnya tidak didukung."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Kartu SD kosong atau memiliki sistem file yang tidak didukung."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Penyimpanan USB rusak"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Kartu SD rusak"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Penyimpanan USB rusak. Coba diformat ulang."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Kartu SD rusak. Coba diformat ulang."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Penyimpanan USB dilepas secara tidak sengaja"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Kartu SD tiba-tiba dicabut"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Lepas penyimpanan USB sebelum menghapus untuk menghindari kehilangan data."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Lepaskan kartu SD sebelum mencabutnya untuk mencegah hilangnya data."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Penyimpanan USB aman untuk dilepas"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Kartu SD aman dicabut"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Anda dapat melepas penyimpanan USB dengan aman."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Anda dapat melepaskan kartu SD dengan aman."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Penyimpanan USB dihapus"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Cabut kartu SD"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Penyimpanan USB dihapus. Masukkan media baru."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Kartu SD dicabut. Masukkan yang baru."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Tidak ditemukan aktivitas yang sesuai."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Menentukan rute keluaran media"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Memungkinkan aplikasi menentukan rute keluaran media ke perangkat eksternal lainnya."</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Hamparan #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", aman"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Panggilan darurat"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Lupa Pola?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Pola Salah"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Sandi Salah"</string>
diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml
index c551ca3..66bde2c 100644
--- a/core/res/res/values-is-rIS/strings.xml
+++ b/core/res/res/values-is-rIS/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android kerfið"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Persónuleg forrit"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Vinna"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Tengiliðir"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"opna og breyta tengiliðum"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Staðsetning"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"fá aðgang að staðsetningu þinni"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Samfélagsupplýsingarnar þínar"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Beinn aðgangur að upplýsingum um tengiliði og samfélagstengingar."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Dagatal"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"opna og breyta dagatalinu þínu"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"opna og breyta SMS-skilaboðum"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Orðabók notanda"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lesa eða skrifa orð í orðabók notanda."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bókamerki og ferill"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Beinn aðgangur að bókamerkjum og vafraferli."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Hljóðnemi"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"nota hljóðnema tækisins"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Myndavél"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"nota myndavél tækisins"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Sími"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"nota símtæki tækisins"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Skynjarar"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"fá aðgang að skynjurum og búnaði til að bera á sér"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Sækja innihald glugga"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Kanna innihald glugga sem þú ert að nota."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Kveikja á snertikönnun"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Hluti fingrafars greindist. Reyndu aftur."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Ekki var hægt að vinna úr fingrafarinu. Reyndu aftur."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingrafaraskynjarinn er óhreinn. Hreinsaðu hann og reyndu aftur."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Fingurinn hreyfðist of hratt. Reyndu aftur."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Fingurinn hreyfðist of hægt. Reyndu aftur."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Ekki var hægt að vinna úr þessu. Reyndu aftur."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Vélbúnaður er ekki tiltækur."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Ekki er hægt að vista fingrafarið. Fjarlægðu eitthvert af fingraförunum sem fyrir eru."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Tímamörk runnu út fyrir fingrafar. Reyndu aftur."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Tímamörk runnu út fyrir fingrafar. Reyndu aftur."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"lesa samstillingar"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Leyfir forriti að breyta kostum samstillingar fyrir reikning. Þetta er til dæmis hægt að nota til að kveikja á samstillingu forritsins Fólk við reikning."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"lesa talnagögn um samstillingu"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Leyfir forriti að lesa talnagögn samstillingar fyrir reikning, þ. á m. feril samstillingaratvika og samstillt gagnamagn."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"skrifa strauma í áskrift"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Leyfir forriti að breyta straumunum sem samstilltir eru á hverjum tíma. Spilliforrit geta breytt samstilltum straumum."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"lesa hugtök sem þú hefur bætt við orðabókina"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Leyfir forriti að lesa öll orð, nöfn og setningar sem notandinn kann að hafa vistað í orðabók notanda."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"bæta orðum við orðabók notanda"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Ýttu á valmyndartakkann til að taka úr lás eða hringja neyðarsímtal."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Ýttu á valmyndartakkann til að taka úr lás."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Teiknaðu mynstur til að taka úr lás"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Neyðarsímtal"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Aftur í símtal"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Rétt!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Reyndu aftur"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" AÁBCDÐEÉFGHIÍJKLMNOÓPQRSTUÚVWXYÝZÞÆÖ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789AÁBCDÐEÉFGHIÍJKLMNOÓPQRSTUÚVWXYÝZÞÆÖ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"möguleikar"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Undirbýr USB-geymslu"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Undirbýr SD-kort"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Leitar að villum."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Tóm USB-geymsla"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tómt SD-kort"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB-geymslan er tóm eða ekki er stuðningur við skráakerfi hennar."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD-kortið er tómt eða ekki er stuðningur við skráakerfi þess."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Skemmd USB-geymsla"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Skemmt SD-kort"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB-geymslan er skemmd. Prófaðu að forsníða hana."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD-kortið er skemmt. Prófaðu að forsníða það."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-geymsla fjarlægð óvænt"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD-kort var fjarlægt óvænt"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Aftengdu USB-geymsluna áður en þú fjarlægir hana til að koma í veg fyrir gagnatap."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Aftengdu SD-kortið áður en þú fjarlægir það til að koma í veg fyrir gagnatap."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Óhætt að fjarlægja USB-geymslu"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Fjarlægja má SD-kort."</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Nú máttu fjarlægja USB-geymsluna."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Nú máttu fjarlægja SD-kortið."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB-geymsla fjarlægð"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD-kort fjarlægt"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB-geymsla var fjarlægð. Tengdu nýjan geymslumiðil."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD-kort var fjarlægt. Settu nýtt í."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Engar aðgerðir með samsvörun fundust."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Beina margmiðlunarúttaki"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Leyfir forriti að beina margmiðlunarúttaki til annarra ytri tækja."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Yfirlögn #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", öruggur"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Neyðarsímtal"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Man ekki mynstrið"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Rangt mynstur"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Rangt aðgangsorð"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Til <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Þar til þú slekkur á þessu"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Minnka"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Loka á truflanir"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Hvíldartími"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Virk kvöld"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Helgar"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> tók hljóðið af"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Innra vandamál kom upp í tækinu og það kann að vera óstöðugt þangað til þú núllstillir það."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Innra vandamál kom upp í tækinu. Hafðu samband við framleiðanda til að fá nánari upplýsingar."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS-beiðni er breytt í DIAL-beiðni."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS-beiðni er breytt í USSD-beiðni."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS-beiðni er breytt í nýja SS-beiðni."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB-tengi fyrir jaðartæki"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB-tengi fyrir jaðartæki"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Fleiri valkostir"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Loka viðbótaratriðum"</string>
</resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 9e7d440..31e8f82 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"App personali"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Lavoro"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contatti"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"accesso e modifica ai contatti"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Posizione"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"accesso alla posizione"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Le tue informazioni social"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Accesso diretto alle informazioni sui tuoi contatti e sulle tue connessioni social."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"accesso e modifica al calendario"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"accesso e modifica agli SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dizionario utente"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lettura o scrittura delle parole contenute nel dizionario utente."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Segnalibri e cronologia"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Accesso diretto ai segnalibri e alla cronologia del browser."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Microfono"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"utilizzo del microfono del dispositivo"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Fotocamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"utilizzo della fotocamera del dispositivo"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefono"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"utilizzo del servizio di telefonia del dispositivo"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensori"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"accesso ai sensori e ai dispositivi indossabili"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperare contenuti finestra"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Esaminare i contenuti di una finestra con cui interagisci."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Attivare Esplora al tocco"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Rilevata impronta digitale parziale. Riprova."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Impossibile elaborare l\'impronta digitale. Riprova."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Il sensore di impronte digitali è sporco. Puliscilo e riprova."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Movimento del dito troppo rapido. Riprova."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Movimento del dito troppo lento. Riprova."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Impossibile elaborare l\'impronta. Riprova."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware non disponibile."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Impossibile memorizzare l\'impronta digitale. Rimuovi un\'impronta esistente."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Timeout impronta digitale. Riprova."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Timeout impronta digitale. Riprova."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"lettura impostazioni di sincronizz."</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Consente a un\'applicazione di modificare le impostazioni di sincronizzazione per un account. Ad esempio, può servire per attivare la sincronizzazione dell\'applicazione Persone con un account."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"lettura statistiche di sincronizz."</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Consente a un\'applicazione di leggere le statistiche di sincronizzazione per un account, incluse la cronologia degli eventi di sincronizzazione e la quantità di dati sincronizzati."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"scrittura feed sottoscritti"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Consente all\'applicazione di modificare i feed attualmente sincronizzati. Le applicazioni dannose potrebbero modificare i tuoi feed sincronizzati."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"lettura termini aggiunti al dizionario"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Consente all\'applicazione di leggere tutte le parole, le frasi e i nomi che l\'utente potrebbe aver memorizzato nel dizionario utente."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"aggiunta di parole al dizionario definito dall\'utente"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Premi Menu per sbloccare o effettuare chiamate di emergenza."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Premi Menu per sbloccare."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Traccia la sequenza di sblocco"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Chiamata di emergenza"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Torna a chiamata"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Corretta."</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Riprova"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidati"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Preparazione archivio USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Preparazione scheda SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Ricerca errori."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Archivio USB vuoto"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Scheda SD vuota"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Archivio USB vuoto o con filesystem non supportato."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Scheda SD vuota o con filesystem non supportato."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Archivio USB danneggiato"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Scheda SD danneggiata"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Archivio USB danneggiato. Prova a riformattarlo."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Scheda SD danneggiata. Prova a riformattarla."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Rimozione imprevista archivio USB"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Rimozione imprevista della scheda SD"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Smonta l\'archivio USB prima della rimozione per evitare la perdita di dati."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Smonta scheda SD prima della rimozione per evitare la perdita di dati."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Puoi rimuovere l\'archivio USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"È possibile rimuovere la scheda SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Puoi rimuovere l\'archivio USB in tutta sicurezza."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Puoi rimuovere la scheda SD in tutta sicurezza."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Archivio USB rimosso"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Scheda SD rimossa"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Archivio USB rimosso. Inserisci un nuovo supporto."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Scheda SD rimossa. Inseriscine un\'altra."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Ricerca errori"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Nessuna attività corrispondente trovata."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Indirizzamento uscita media"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Consente a un\'applicazione di indirizzare l\'uscita di media verso altri dispositivi esterni."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay n. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", opzione sicura"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Chiamata di emergenza"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Sequenza dimenticata"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Sequenza sbagliata"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Password sbagliata"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Fino alle ore <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Fino alla disattivazione"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Comprimi"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blocca interruzioni"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Tempo di inattività"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Sere giorni feriali"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Fine settimana"</string>
<string name="muted_by" msgid="6147073845094180001">"Audio disattivato da <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Si è verificato un problema interno con il dispositivo, che potrebbe essere instabile fino al ripristino dei dati di fabbrica."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Si è verificato un problema interno con il dispositivo. Per informazioni dettagliate, contatta il produttore."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"La richiesta SS è stata modificata in richiesta DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"La richiesta SS è stata modificata in richiesta USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"La richiesta SS è stata modificata in nuova richiesta SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Porta periferica USB Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Porta periferica USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Altre opzioni"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Chiudi overflow"</string>
</resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 2f411ae..4bfc804 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -220,42 +220,28 @@
<string name="android_system_label" msgid="6577375335728551336">"‏מערכת Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"אפליקציות אישיות"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"עבודה"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"אנשי קשר"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"גישה אל אנשי הקשר ושינוי שלהם"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"מיקום"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"גישה אל המיקום שלך"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"מידע על הקשרים החברתיים שלך"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"גישה ישירה למידע על אנשי קשר וקשרים חברתיים שלך."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"יומן"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"גישה אל היומן וביצוע שינויים בו"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"‏גישה אל הודעות SMS ושינוי שלהן"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"מילון משתמש"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"קריאה או כתיבה של מילים במילון המשתמש."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"סימניות והיסטוריה"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"גישה ישירה אל סימניות והיסטוריית דפדפן."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"מיקרופון"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"שימוש במיקרופון המכשיר"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"מצלמה"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"שימוש במצלמת המכשיר"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"טלפון"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"שימוש ביכולות הטלפוניה של המכשיר"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"חיישנים"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"גישה אל חיישנים וגאדג\'טים לבישים"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"אחזר תוכן של חלון"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"בדוק את התוכן של חלון שאיתו אתה מבצע אינטראקציה."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"הפעל את \'גילוי באמצעות מגע\'"</string>
@@ -445,15 +431,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"זוהתה טביעת אצבע חלקית. נסה שוב."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"לא ניתן היה לעבד את טביעת האצבע. נסה שוב."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"החיישן של טביעות האצבעות מלוכלך. נקה אותו ונסה שוב."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"האצבע זזה מהר מדי, נסה שוב."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"האצבע זזה לאט מדי, נסה שוב."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"אין אפשרות לעבד. נסה שוב."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"החומרה לא זמינה."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"לא ניתן לאחסן טביעת אצבע. הסר טביעת אצבע קיימת."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"חלף הזמן הקצוב לטביעת אצבע. נסה שוב."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"חלף הזמן הקצוב לטביעת אצבע. נסה שוב."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"קרא את הגדרות הסינכרון"</string>
@@ -462,6 +454,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"מאפשר לאפליקציה לשנות את הגדרות הסנכרון של חשבון. לדוגמה, ניתן להשתמש בכך על מנת להפעיל סנכרון של האפליקציה \'אנשים\' עם חשבון כלשהו."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"קרא את הנתונים הסטטיסטיים של הסינכרון"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"מאפשר לאפליקציה לקרוא את סטטיסטיקת הסנכרון של חשבון, כולל היסטוריית אירועי הסנכרון וכמות הנתונים שסונכרנה."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"כתוב עדכונים מנויים"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"מאפשר לאפליקציה לשנות את ההזנות הנוכחיות שלך שמסונכרנות. אפליקציות זדוניות עלולות לשמות את ההזנות המסונכרנות שלך."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"קריאת מונחים שהוספת למילון"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"מאפשר לאפליקציה לקרוא את כל המילים, השמות והביטויים שהמשתמש אחסן במילון המשתמש."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"הוספת מילים למילון מוגדר-משתמש"</string>
@@ -636,7 +630,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"לחץ על \'תפריט\' כדי לבטל את הנעילה או כדי לבצע שיחת חירום."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"לחץ על \'תפריט\' כדי לבטל את הנעילה."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"שרטט קו לביטול נעילת המסך"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"שיחת חירום"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"חזור לשיחה"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"נכון!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"נסה שוב"</string>
@@ -1048,29 +1043,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"מועמדים"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"‏מכין אחסון USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"‏מכין את כרטיס SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"בודק אם יש שגיאות."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"‏אמצעי אחסון ריק מסוג USB"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"‏כרטיס SD ריק"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"‏אחסון ה-USB ריק או שמערכת הקבצים שלו אינה נתמכת."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"‏כרטיס ה-SD ריק או שמערכת הקבצים שלו אינה נתמכת."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"‏אמצעי אחסון פגום מסוג USB"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"‏כרטיס SD פגום"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"‏אחסון ה-USB פגום. נסה לפרמט אותו מחדש."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"‏כרטיס ה-SD פגום. נסה לפרמט אותו מחדש."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"‏אחסון USB הוסר באופן בלתי צפוי"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"‏כרטיס SD הוסר באופן לא צפוי"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"‏בטל טעינה של אחסון USB לפני הסרתו כדי למנוע אובדן נתונים."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"‏בטל את טעינת כרטיס SD לפני הסרתו כדי למנוע אובדן נתונים."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"‏ניתן להסיר את אמצעי האחסון מסוג USB בבטחה"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"‏אפשר להסיר את כרטיס SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"‏אתה יכול להסיר בבטחה את אחסון ה-USB."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"‏ניתן להסיר בבטחה כרטיס SD."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"‏אחסון USB הוסר"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"‏כרטיס SD הוסר"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"‏אחסון USB הוסר. הכנס מדיה חדשה."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"‏כרטיס SD הוסר. הכנס כרטיס חדש."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"לא נמצאו פעילויות תואמות."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"ניתוב פלט מדיה"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"מאפשר לאפליקציה לנתב פלט מדיה למכשירים חיצוניים אחרים."</string>
@@ -1267,7 +1269,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"שכבת-על #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"‏<xliff:g id="NAME">%1$s</xliff:g>: ‎<xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>‎, ‏<xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", מאובטח"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"שיחת חירום"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"שכחת את הקו"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"קו ביטול נעילה שגוי"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"סיסמה שגויה"</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index b733ec1..98dc866 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Androidシステム"</string>
<string name="user_owner_label" msgid="6465364741001216388">"プライベートアプリ"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"職場"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"連絡先"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"連絡先へのアクセスと変更を行います"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"位置情報"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"位置情報にアクセスします"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ソーシャル情報"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"連絡先とソーシャルコネクションに関する情報に直接アクセスします。"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"カレンダー"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"カレンダーへのアクセスと変更を行います"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMSへのアクセスと変更を行います"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"単語リスト"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"単語リストの語句の読み取りまたは書き込みを行います"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ブックマークと履歴"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ブックマークとブラウザの履歴に直接アクセスします。"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"マイク"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"端末のマイクを使用します"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"カメラ"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"端末のカメラを使用します"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"電話"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"端末の電話機能を使用します"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"センサー"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"センサーとウェアラブルにアクセスします"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ウィンドウコンテンツの取得"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ユーザーがアクセスしているウィンドウのコンテンツを検査します。"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"タッチガイドの有効化"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"指紋を一部しか検出できませんでした。もう一度お試しください。"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"指紋を処理できませんでした。もう一度お試しください。"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指紋センサーに汚れがあります。汚れを落としてもう一度お試しください。"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"指の動きが速すぎました。もう一度お試しください。"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"指の動きが遅すぎました。もう一度お試しください。"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"処理できませんでした。もう一度お試しください。"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"ハードウェアを利用できません。"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"指紋を保存できません。既存の指紋を削除してください。"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"指紋の読み取りがタイムアウトになりました。もう一度お試しください。"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"指紋の読み取りがタイムアウトになりました。もう一度お試しください。"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"同期設定の読み取り"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"アカウントの同期設定の変更をアプリに許可します。たとえば、連絡帳アプリとアカウントの同期を有効にするために使用できます。"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"同期統計の読み取り"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"アカウントの同期ステータス(同期イベントの履歴、同期されたデータの量など)の読み取りをアプリに許可します。"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"登録したフィードの書き込み"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"現在同期されているフィードの変更をアプリに許可します。この許可を悪意のあるアプリに利用されると、同期されたフィードが変更される恐れがあります。"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"辞書に追加された語句の読み取り"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"単語リストに登録されているすべての語句や名前を読み取ることをアプリに許可します。"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"単語リストへの語句の追加"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"MENUキーでロック解除(または緊急通報)"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"MENUキーでロック解除"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"パターンを入力"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"緊急通報"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"緊急通報"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"通話に戻る"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"一致しました"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"もう一度お試しください"</string>
@@ -1034,29 +1028,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"候補"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USBストレージの準備中"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SDカードの準備中"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"エラーを確認しています。"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"空のUSBストレージ"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"空のSDカード"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USBストレージが空か、サポートされていないファイルシステムを使用しています。"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SDカードが空か、サポートされていないファイルシステムを使用しています。"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"破損したUSBストレージ"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"破損したSDカード"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USBストレージが破損しています。再フォーマットしてみてください。"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SDカードが破損しています。再フォーマットしてみてください。"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USBストレージが不適切に取り外されました"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SDカードが予期せず取り外されました"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"データの喪失を防ぐためUSBストレージを取り外す前にマウントを解除してください。"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"データの喪失を防ぐためSDカードを取り外す前にマウントを解除してください。"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USBストレージの安全な取り外し"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SDカードを安全に取り外しました"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USBストレージを安全に取り外せます。"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"SDカードは安全に取り外せます。"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USBストレージ取り外し済み"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SDカードが取り外されています"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USBストレージが取り外されています。新しいメディアを挿入してください。"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SDカードが取り外されました。新しいカードを挿入してください。"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"エラーを確認中"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"一致するアクティビティが見つかりません。"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"メディア出力のルーティング"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"メディア出力を他の外部デバイスにルーティングすることをアプリに許可します。"</string>
@@ -1251,7 +1251,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"オーバーレイ第<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>、<xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"、セキュア"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"緊急通報"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"パターンを忘れた場合"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"パターンが正しくありません"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"パスワードが正しくありません"</string>
@@ -1447,17 +1446,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>まで"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"ユーザーがOFFにするまで"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"通知のブロック"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"ダウンタイム"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"平日の夜間"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"週末"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g>によりミュートになっています"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"端末で内部的な問題が発生しました。データが初期化されるまで不安定になる可能性があります。"</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"端末で内部的な問題が発生しました。詳しくはメーカーにお問い合わせください。"</string>
@@ -1467,11 +1461,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SSリクエストはDIALリクエストに変更されました。"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SSリクエストはUSSDリクエストに変更されました。"</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SSリクエストは新しいSSリクエストに変更されました。"</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB周辺機器ポート"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB周辺機器ポート"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"その他のオプション"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"オーバーフローを閉じる"</string>
</resources>
diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml
index 11017dc..75564cc 100644
--- a/core/res/res/values-ka-rGE/strings.xml
+++ b/core/res/res/values-ka-rGE/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android-ის სისტემა"</string>
<string name="user_owner_label" msgid="6465364741001216388">"პერსონალური აპები"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"სამსახური"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"კონტაქტები"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"თქვენს კონტაქტებზე წვდომა და შეცვლა"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"მდებარეობა"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"თქვენს მდებარეობაზე წვდომა"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"თქვენი სოციალური ინფორმაცია"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"თქვენს კონტაქტებისა და სოციალურ კავშირების შესახებ ინფორმაციაზე პირდაპირი წვდომა."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"კალენდარი"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"თქვენს კალენდარზე წვდომა და შეცვლა"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS-ებზე წვდომა და შეცვლა"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"მომხმარებლის ლექსიკონი"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"მომხმარებლის ლექსიკონში სიტყვების წაკითხვა ან ჩაწერა."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"სანიშნეები და ისტორია"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"პირდაპირი წვდომა სანიშნეებსა და ბრაუზერის ისტორიაზე"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"მიკროფონი"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"მოწყობილობის მიკროფონის გამოყენება"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"კამერა"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"მოწყობილობის კამერის გამოყენება"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"ტელეფონი"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"მოწყობილობის ტელეფონიის გამოყენება"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"სენსორები"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"სენსორებსა და ტარებად მოწყობილობებზე წვდომა"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ფანჯრის კონტენტის მოძიება"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"შეამოწმეთ იმ ფანჯრის კონტექტი, რომელშიც მუშაობთ."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"„შეხებით აღმოჩენის“ ჩართვა"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"აღმოჩენილია თითის ნაწილობრივი ანაბეჭდი. გთხოვთ, სცადოთ ხელახლა."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"თითის ანაბეჭდი ვერ მუშავდება. გთხოვთ, სცადოთ ხელახლა."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"თითის ანაბეჭდის სენსორი დაბინძურებულია. გთხოვთ, გაასუფთაოთ და სცადოთ ხელახლა."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"თითის აღება მეტისმეტად სწრაფად მოხდა. გთხოვთ, სცადოთ ხელახლა."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"თითის აღება მეტისმეტად ნელა მოხდა. გთხოვთ, სცადოთ ხელახლა."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"დამუშავება შეუძლებელია. სცადეთ ხელახლა."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"აპარატურა არ არის ხელმისაწვდომი."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"თითის ანაბეჭდის შენახვა ვერ ხერხდება. გთხოვთ, ამოშალოთ არსებული თითის ანაბეჭდი."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"თითის ანაბეჭდის ლოდინის დრო ამოიწურა. სცადეთ ხელახლა."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"თითის ანაბეჭდის ლოდინის დრო ამოიწურა. სცადეთ ხელახლა."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"სინქრონიზაციის პარამეტრების წაკითხვა"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"აპს შეეძლება, შეცვალოს ანგარიშის სინქრონიზაციის პარამეტრები. მაგალითად, მისი გამოყენება შეიძლება ანგარიშის People აპთან სინქრონიზაციის ჩასართავად."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"სინქრონიზაციის სტატისტიკების წაკითხვა"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"აპს შეეძლება ანგარიშის სინქრონიზაციის სტატისტიკის, მათ შორის სინქრონიზაციის მოვლენების ისტორიისა და სინქრონიზაციისას გადაცემული მონაცემების რაოდენობის წაკითხვა."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"გამოწერილი არხების შეცვლა"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"აპს შეეძლება თქვენი ამჟამინდელი სინქრონიზებული არხების შეცვლა. მავნე აპებმა შესაძოა შეცვალონ თქვენი სინქრონიზებული არხები."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"ლექსიკონში თქვენი დამატებული ტერმინების ნახვა"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"აპს შეეძლება წაიკითხოს ყველა სიტყვა, სახელი და ფრაზა, რომელიც შეიძლება მომხმარებელმა შეიტანა მომხმარებლის ლექსიკონში."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"მომხმარებლისთვის განკუთვნილ ლექსიკონში სიტყვების დამატება."</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"განბლოკვისთვის ან გადაუდებელი ზარისთვის დააჭირეთ მენიუს."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"განბლოკვისთვის დააჭირეთ მენიუს."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"განსაბლოკად დახატეთ ნიმუში"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"გადაუდებელი ზარი"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"ზარზე დაბრუნება"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"სწორია!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"კიდევ სცადეთ"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"კანდიდატები"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB მეხსიერების მომზადება"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD ბარათის მომზადება"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"შეცდომების შემოწმება"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"ცარიელი USB მეხსიერება"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"ცარიელი SD ბარათი"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB მეხსიერება ცარიელია ან მხარდაუჭერელი ფაილური სისტემა აქვს."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD ბარათი ცარიელია ან ფაილური სისტემა მხარდაუჭერელია."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"დაზიანებული USB მეხსიერება"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"დაზიანებული SD ბარათი"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB მეხსიერება დაზიანებულია. სცადეთ მისი ხელახლა დაფორმატება."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD ბარათი დაზიანებულია. სცადეთ მისი ხელახლა დაფორმატება."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB მეხსიერება მოულოდნელად გამოირთო"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD ბარათი მოულოდნელად მოიხსნა"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"გამოერთებამდე გათიშეთ USB მეხსიერება, რათა თავიდან აიცილოთ მონაცემების დაკარგვა."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"გამოერთებამდე გათიშეთ SD ბარათი, რათა თავიდან აიცილოთ მონაცემების დაკარგვა."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB მეხსიერების გამორთვა უსაფრთხოა"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD ბარათის მოხსნა უსაფრთხოა"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"შეგიძლიათ უსაფრთხოდ გამოაერთოთ USB მეხსიერება."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"შეგიძლიათ უსაფრთხოდ გამოაერთოთ SD ბარათი."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"გამორთული USB მეხსიერება"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"გამოღებულია SD ბარათი."</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB მეხსიერება გამოერთებულია. მიუერთეთ ახალი მედია."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD ბარათი მოხსნილია. ჩასვით ახალი."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"შესატყვისი აქტივობები არ არის."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"მულტიმედია მონაცემების გადამისამართება"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"აპლიკაციას შეეძლება გადაამისამართოს მულტიმედია მონაცემები სხვა გარე მოწყობილობებისკენ."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"გადაფარვა #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", დაცული"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"გადაუდებელი დახმარების ზარი"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"დაგავიწყდათ ნიმუში"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"არასწორი ნიმუში"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"არასწორი პაროლი"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>-მდე"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"სანამ ამას გამორთავდეთ"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"შეფერხებების დაბლოკვა"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"ავარიული პაუზა"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"კვირის ღამეებისას"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"შაბათ-კვირას"</string>
<string name="muted_by" msgid="6147073845094180001">"დადუმებულია <xliff:g id="THIRD_PARTY">%1$s</xliff:g>-ის მიერ"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"ფიქსირდება თქვენი მ ოწყობილობის შიდა პრობლემა და შეიძლება არასტაბილური იყოს, სანამ ქარხნულ მონაცემების არ განაახლებთ."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"ფიქსირდება თქვენი მოწყობილობის შიდა პრობლემა. დეტალებისათვის, მიმართეთ თქვენს მწარმოებელს."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS მოთხოვნა შეიცვალა DIAL მოთხოვნით."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS მოთხოვნა შეიცვალა USSD მოთხოვნით."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS მოთხოვნა შეიცვალა ახალი SS მოთხოვნით."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android-ის პერიფერიული USB პორტი"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"პერიფერიული USB პორტი"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"სხვა ვარიანტები"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"გადავსების დახურვა"</string>
</resources>
diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml
index e76a9a5..200cba2 100644
--- a/core/res/res/values-kk-rKZ/strings.xml
+++ b/core/res/res/values-kk-rKZ/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android жүйесі"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Жеке қолданбалар"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Жұмыс"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Контактілер"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"Контактілеріңізге кіру және өзгерту"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Орын"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"орныңызға кіру"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Сіздің әлеуметтік ақпаратыңыз"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Байланыстарыңыз бен әлеуметтік контактілеріңіз туралы ақпаратқа тікелей қол жетімділік."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Күнтізбе"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"Күнтізбеңізге кіру және өзгерту"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS кіру және өзгерту"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Пайдаланушы сөздігі"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Пайдаланушы сөздігінде сөздерді оқыңыз не жазыңыз."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Бетбелгілер және Тарих"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Бетбелгілер мен браузерге тікелей қол жетімділік."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"құрылғы микрофонын пайдалану"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"құрылғы камерасын пайдалану"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Телефон"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"құрылғы телефониясын пайдалану"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Сенсорлар"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"сенсорлы және киілетін құрылғыларға кіру"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Терез мазмұнына қол жеткізу"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Сіз қатынасып отырған терезе мазмұнын тексеру."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Шарлауды Түрту арқылы қосыңыз"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Саусақ ізі ішінара анықталды. Әрекетті қайталаңыз."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Саусақ ізін өңдеу мүмкін емес. Әрекетті қайталаңыз."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Саусақ ізі сенсоры лас. Тазалап, әрекетті қайталаңыз."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Саусақ тым тез қозғалды. Әрекетті қайталаңыз."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Саусақ тым баяу қозғалды. Әрекетті қайталаңыз."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Өңдеу мүмкін емес. Әрекетті қайталаңыз."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Жабдық қол жетімді емес."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Саусақ ізін сақтау мүмкін емес. Бар саусақ ізін жойыңыз."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Саусақ ізін күту уақыты бітті. Әрекетті қайталаңыз."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Саусақ ізін күту уақыты бітті. Әрекетті қайталаңыз."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"синх параметрлерін оқу"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Қолданбаға есептік жазбаның синхрондау параметрлерін жөндеу мүмкіндігін береді. Мысалы, бұл People қолданбасын есептік жазбамен синхрондауды қосу үшін қолданылуы мүмкін."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"үйлестіру санақтық ақпаратын оқу"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Қолданбаға есептік жазбаның синхрондалу статистикаларын, оның ішінде синхрондау шараларының тарихы және қанша дерек синхрондалғаны жайлы, оқу мүмкіндігін береді."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"жазылма материалдарын жазу"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Қолданбаға қазіргі уақытта синхрондалған арналарды өзгертуге рұқсат береді. Зиянкес қолданбалар синхрондалған арналарды өзгертуі мүмкін."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"сөздікке сіз қосқан шарттарды оқу"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Қолданбаға пайдаланушы сөздігінде сақталған барлық сөздер, аттар және фразаларды оқу мүмкіндігін береді."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"пайдаланушы анықтаған сөздікке сөздер қосу"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Бекітпесін ашу үшін немесе төтенше қоңырауды табу үшін Мәзір тармағын басыңыз."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Ашу үшін Мәзір пернесін басыңыз."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Бекітпесін ашу үшін кескінді сызыңыз"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Төтенше қоңырау"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Қоңырауға оралу"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Дұрыс!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Әрекетті қайталау"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"үміткерлер"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB жадын әзірлеу"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD картаны әзірлеу"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Қателіктер мүмкіндігін тексеру."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Бос USB жады"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Бос SD картасы"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB жады бос немесе файл жүйесінің қолдауы жоқ."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD картасы бос немесе файл жүйесінің қолдауы жоқ."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Бүлінген USB жады"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Бүлінген SD картасы"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB жады бүлінген. Қайта форматтап көріңіз."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD картасы бүлінген. Қайта форматтап көріңіз."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB жады күтпеген жерден алынып тасталды"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD картасы күтпеген жерден алынды"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Аларда, деректер жоғалмас үшін, USB жадын шығарып алыңыз."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Аларда, деректер жоғалмас үшін, SD картасын шығарыңыз."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB жады қауіпсіз алуға әзір"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD шығаруға әзір"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USB жадын қауіпсіз шығарып алуыңызға болады."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"SD картасын қауіпсіз шығарып алуыңызға болады."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Алынып тасталған USB жады"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Шығарылған SD картасы"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB жады алынды. Жаңа медиа салыңыз."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD картасы алынды. Жаңасын салыңыз."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Сәйкес әрекеттер табылмады."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Медиа шығысын бағыттау"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Қолданбаға медиа шығысын басқа сыртқы құрылғыларға бағыттау мүмкіндігін береді."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"№<xliff:g id="ID">%1$d</xliff:g> қабаттама"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", қауіпсіз"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Төтенше қоңырау"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Кескінді ұмытып қалу"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Қате кескін"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Қате кілтсөз"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> дейін"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Сіз осыны өшіргенше"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Кедергілерді бұғаттау"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Бос тұру уақыты"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Жұмыс күндерінің түндері"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Демалыс күндері"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> үнін өшірген"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"There\'s an internal problem with your device, and it may be unstable until you factory data reset."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"There\'s an internal problem with your device. Contact your manufacturer for details."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS сұрауы DIAL сұрауына өзгертілді."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS сұрауы USSD сұрауына өзгертілді."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS сұрауы жаңа SS сұрауына өзгертілді."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB перифериялық порты"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB перифериялық порты"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Қосымша опциялар"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Артық толуды жабу"</string>
</resources>
diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml
index a206d1e..ef00ccd 100644
--- a/core/res/res/values-km-rKH/strings.xml
+++ b/core/res/res/values-km-rKH/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"ប្រព័ន្ធ​​ Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"កម្មវិធី​ផ្ទាល់​ខ្លួន"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"កន្លែង​ធ្វើ​ការ"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"ទំនាក់ទំនង"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"ចូលដំណើរការ និងកែប្រែទំនាក់ទំនងរបស់អ្នក"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"ទីតាំង"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"ចូលដំណើរការទីតាំងរបស់អ្នក"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ព័ត៌មាន​សង្គម​របស់​អ្នក"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ចូល​ដំណើរការ​ព័ត៌មាន​ដោយ​ផ្ទាល់​អំពី​ទំនាក់ទំនង និង​ការ​ភ្ជាប់​សង្គម​របស់​អ្នក។"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"ប្រតិទិន"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"ចូលដំណើរការ និងកែប្រែប្រតិទិនរបស់អ្នក"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"សារ SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"ចូលដំណើរការ និងកែប្រែសារ SMS"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"វចនានុក្រម​អ្នក​ប្រើ"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"អាន ឬសរសេរនៅក្នុងវចនានុក្រមអ្នកប្រើ។"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ចំណាំ​ និង​ប្រវត្តិ"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ចូល​​ដំណើរការ​ចំណាំ និង​ប្រវត្តិ​កម្មវិធី​អ៊ីនធឺណិត​ដោយ​ផ្ទាល់។"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"មីក្រូ​ហ្វូន"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"ប្រើមីក្រូហ្វូនរបស់ឧបករណ៍"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"ម៉ាស៊ីន​ថត"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"ប្រើកាមេរ៉ារបស់ឧបករណ៍"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"ទូរស័ព្ទ"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"ប្រើមុខងារទូរស័ព្ទរបស់ឧបករណ៍"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"ឧបករណ៍ចាប់សញ្ញា"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"ចួលដំណើរការឧបករណ៍ចាប់សញ្ញា និងនាឡិកាឆ្លាតវៃ"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ទៅ​យក​មាតិកា​បង្អួច"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ពិនិត្យ​មាតិកា​បង្អួច​ដែល​អ្នក​កំពុង​ទាក់ទង​ជា​មួយ។"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"បើក​ការ​រក​មើល​​ដោយ​ប៉ះ"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"បានផ្តិតយកស្នាមម្រាមដៃមិនពេញលក្ខណៈ។ សូមព្យាយាមម្តងទៀត។"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"មិនអាចដំណើរការស្នាមម្រាមដៃបានទេ។ សូមព្យាយាមម្តងទៀត។"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ឧបករណ៍ផ្តិតម្រាមដៃប្រលាក់ហើយ។ សូមសម្អាត ហើយព្យាយាមម្តងទៀត។"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"ម្រាមដៃមានចលនារហ័សពេក។ សូមព្យាយាមម្តងទៀត។"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"ម្រាមដៃមានចលនាយឺតពេក។ សូមព្យាយាមម្តងទៀត។"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"មិនអាចដំណើរការបានទេ។ សូមព្យាយាមម្តងទៀត។"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"មិនមានផ្នែករឹងទេ។"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"មិនអាចផ្ទុកស្នាមម្រាមដៃទេ។ សូមយកស្នាមម្រាមដៃដែលមានស្រាប់ចេញ។"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"ការផ្តិតម្រាមដៃបានអស់ពេល។ សូមព្យាយាមម្តងទៀត។"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"ការផ្តិតម្រាមដៃបានអស់ពេល។ សូមព្យាយាមម្តងទៀត។"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"អាន​ការ​កំណត់​ធ្វើ​សម​កាល​កម្ម"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ឲ្យ​កម្មវិធី​កែ​ការ​កំណត់​ធ្វើ​សម​កាល​កម្ម​សម្រាប់​គណនី។ ឧទាហរណ៍ វា​អាច​ត្រូវ​បាន​ប្រើ​ដើម្បី​បើក​ការ​ធ្វើ​សម​កាល​កម្ម​កម្មវិធី​របស់​មនុស្ស​ជា​មួយ​គណនី។"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"អាន​ស្ថិតិ​ធ្វើ​សម​កាល​កម្ម"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"ឲ្យ​កម្មវិធី​អាន​ស្ថានភាព​ធ្វើ​សម​កាល​កម្ម​សម្រាប់​គណនី រួមមាន​ព្រឹត្តិការណ៍​ប្រវត្តិ​ធ្វើ​សម​កាល​កម្ម ​និង​ទំហំ​ទិន្នន័យ​បាន​ធ្វើ​សម​កាល​កម្ម។"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"សរសេរ​​អត្ថបទ​ព័ត៌មាន​ដែល​​បាន​ជាវ"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"ឲ្យ​កម្មវិធី​កែ​អត្ថបទ​ព័ត៌មាន​បាន​ធ្វើ​សម​កាល​កម្ម​បច្ចុប្បន្ន​របស់​អ្នក។ កម្មវិធី​ព្យាបាទ​អាច​ប្ដូរ​អត្ថបទ​បាន​ធ្វើ​សម​កាល​កម្ម​របស់​អ្នក។"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"អាន​ពាក្យ​ដែល​អ្នក​បាន​បន្ថែម​ទៅ​វចនានុក្រម"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"ឲ្យ​កម្មវិធី​អាន​ពាក្យ ឈ្មោះ និង​ឃ្លា​ទាំងអស់​ដែល​អ្នកប្រើ​អាច​​រក្សាទុក​ក្នុង​វចនានុក្រម​​អ្នកប្រើ។"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"បន្ថែម​ពាក្យ​ទៅ​វចនានុក្រម​កំណត់​ដោយ​អ្នកប្រើ"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"ចុច​ម៉ឺនុយ ដើម្បី​ដោះ​សោ​ ឬ​ហៅ​ពេល​អាសន្ន។"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"ចុច​ម៉ឺនុយ ដើម្បី​ដោះ​សោ។"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"គូរ​លំនាំ ដើម្បី​ដោះ​សោ"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"ការ​ហៅ​​ពេល​អាសន្ន"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"ត្រឡប់​ទៅ​ការ​ហៅ"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ត្រឹមត្រូវ!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ព្យាយាម​ម្ដង​ទៀត"</string>
@@ -1037,29 +1031,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"បេក្ខជន"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"រៀបចំ​ឧបករណ៍​ផ្ទុក​យូអេសប៊ី"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"រៀបចំ​កាត​អេសឌី"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"ពិនិត្យ​រក​កំហុស។"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"ឧបករណ៍​ផ្ទុក​យូអេសប៊ី​ទទេ"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"ការ​​អេសឌី​ទទេ"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"ឧបករណ៍​ផ្ទុក​យូអេសប៊ី​ទទេ ឬ​មាន​ប្រព័ន្ធ​ឯកសារ​ដែល​មិន​បា​គាំទ្រ។"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"កាត​អេសឌី​ទទេ ឬ​មាន​ប្រព័ន្ធ​ឯកសារ​មិន​បាន​គាំទ្រ។"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"ឧបករណ៍​ផ្ទុក​យូអេសប៊ី​ខូច"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"កាត​អេសឌី​ខូច"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"ឧបករណ៍​ផ្ទុក​យូអេសប៊ី​ខូច។ ព្យាយាម​ធ្វើ​ទ្រង់ទ្រាយ​វា​ឡើងវិញ។"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"កាត​អេសឌី​ខូច។ ព្យាយាម​ធ្វើ​ទ្រង់ទ្រាយ​វា​ឡើងវិញ។"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"បាន​ដក​ឧបករណ៍​ផ្ទុក​យូអេសប៊ី​ដោយ​មិន​រំពឹង​ទុក"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"បាន​ដក​កាត​អេសឌី​ដោយ​មិន​រំពឹង​ទុក"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"ផ្ដាច់​ឧបករណ៍​ផ្ទុក​យូអេសប៊ី​មុន​នឹង​​លុប​​​ជៀសវាង​ការ​បាត់​ទិន្នន័យ។"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"ផ្ដាច់​កាត​អេសឌី​មុន​នឹង​ដក់​ចេញ ជៀសវាង​បាត់បង់​ទិន្នន័យ។"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"ឧបករណ៍​យូអេសប៊ី​មាន​សុវត្ថិភាព ដើម្បី​ដក"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"មាន​សុវត្ថិភាព​ក្នុង​ការ​ដក​កាត​អេសឌី"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"អ្នក​អាច​ដក​ឧបករណ៍​ផ្ទុក​យូអេសប៊ី​ដោយ​សុវត្ថិភាព។"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"អ្នក​អាច​ដក​កាត​អេសឌី​ដោយ​មាន​សុវត្ថិភាព។"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"បាន​លុប​ឧបករណ៍​ផ្ទុក​យូអេសប៊ី"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"បាន​ដក​កាត​អេសឌី"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"បាន​ដក​ឧបករណ៍​ផ្ទុក​យូអេសប៊ី។ បញ្ចូល​មេឌៀ​ថ្មី។"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"បាន​ដក​កាត​អេសឌី។ បញ្ចូល​ថ្មី​មួយ។"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"រក​មិន​ឃើញ​សកម្មភាព​ផ្គូផ្គង។"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"នាំ​ផ្លូវ​លទ្ធផល​មេឌៀ"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"ឲ្យ​កម្មវិធី​នាំ​ផ្លូវ​លទ្ធផល​មេឌៀ​ទៅ​ឧបករណ៍​​ខាង​ក្រៅ​ផ្សេង។"</string>
@@ -1254,7 +1255,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"#<xliff:g id="ID">%1$d</xliff:g> ត្រួត​គ្នា"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", សុវត្ថិភាព"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"ការ​ហៅ​ពេល​អាសន្ន"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ភ្លេច​​លំនាំ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"លំនាំ​មិន​ត្រឹមត្រូវ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"ពាក្យ​សម្ងាត់​មិន​ត្រឹមត្រូវ"</string>
@@ -1450,17 +1450,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"រហូត​ដល់ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"រហូត​ដល់ពេល​​អ្នក​បិទ​វា"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"រារាំងការរំខាន"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"ពេលមិនដំណើរការ"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"យប់ថ្ងៃធ្វើការ"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"ចុងសប្តាហ៍"</string>
<string name="muted_by" msgid="6147073845094180001">"បាន​បិទ​សំឡេង​ដោយ <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"មានបញ្ហាខាងក្នុងឧបករណ៍របស់អ្នក ហើយវាអ្នកមិនមានស្ថេរភាព រហូតទាល់តែអ្នកកំណត់ដូចដើមវិញទាំងស្រុង។"</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"មានបញ្ហាខាងក្នុងឧបករណ៍របស់អ្នក ទំនាក់ទំនងក្រុមហ៊ុនផលិតឧបករណ៍របស់អ្នកសម្រាប់ព័ត៌មានបន្ថែម។"</string>
@@ -1470,11 +1465,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"សំណើរ SS ត្រូវបានកែសម្រួលទៅតាមសំណើរការហៅទូរស័ព្ទ។"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"សំណើរ SS ត្រូវបានកែសម្រួលទៅតាមសំណើរ USSD។"</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"សំណើរ SS ត្រូវបានកែសម្រួលទៅតាមសំណើរ SS ថ្មី។"</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"ឧបករណ៍រន្ធ USB Android បន្ថែម"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"ឧបករណ៍រន្ធ USB បន្ថែម"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"ជម្រើសច្រើនទៀត"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"បិទលើសចំណុះ"</string>
</resources>
diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml
index 35d214c..78190ef 100644
--- a/core/res/res/values-kn-rIN/strings.xml
+++ b/core/res/res/values-kn-rIN/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android ಸಿಸ್ಟಂ"</string>
<string name="user_owner_label" msgid="6465364741001216388">"ವೈಯಕ್ತಿಕ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"ಕಚೇರಿ"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"ಸಂಪರ್ಕಗಳು"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಪ್ರವೇಶಿಸಿ ಮತ್ತು ಮಾರ್ಪಡಿಸಿ"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"ಸ್ಥಳ"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಿ"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ನಿಮ್ಮ ಸಾಮಾಜಿಕ ಮಾಹಿತಿ"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಸಾಮಾಜಿಕ ಸಂಪರ್ಕಗಳ ಕುರಿತ ಮಾಹಿತಿಗೆ ನೇರ ಪ್ರವೇಶ."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"ಕ್ಯಾಲೆಂಡರ್"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"ನಿಮ್ಮ ಕ್ಯಾಲೆಂಡರ್ ಪ್ರವೇಶಿಸಿ ಮತ್ತು ಮಾರ್ಪಡಿಸಿ"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS ಪ್ರವೇಶಿಸಿ ಮತ್ತು ಮಾರ್ಪಡಿಸಿ"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"ಬಳಕೆದಾರರ ನಿಘಂಟು"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"ಬಳಕೆದಾರರ ನಿಘಂಟಿನಲ್ಲಿನ ಪದಗಳನ್ನು ಓದಿ ಮತ್ತು ಬರೆಯಿರಿ."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ಬುಕ್‍ಮಾರ್ಕ್‌ಗಳು ಮತ್ತು ಇತಿಹಾಸ"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ಬುಕ್‍ಮಾರ್ಕ್‌ಗಳು ಮತ್ತು ಬ್ರೌಸರ್ ಇತಿಹಾಸಕ್ಕೆ ನೇರ ಪ್ರವೇಶ."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"ಮೈಕ್ರೋಫೋನ್‌"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"ಸಾಧನ ಮೈಕ್ರೊಫೋನ್ ಬಳಸಿ"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"ಕ್ಯಾಮರಾ"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"ಸಾಧನ ಕ್ಯಾಮರಾ ಬಳಸಿ"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"ಫೋನ್"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"ಸಾಧನ ದೂರವಾಣಿ ಬಳಸಿ"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"ಸಂವೇದಕಗಳು"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"ಸಂವೇದಕಗಳು ಮತ್ತು ವೇರಬಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ವಿಂಡೋ ವಿಷಯವನ್ನು ಹಿಂಪಡೆದುಕೊಳ್ಳಿ"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ನೀವು ಸಂವಹನ ನಡೆಸುತ್ತಿರುವ ವಿಂಡೋದ ವಿಷಯವನ್ನು ಪರೀಕ್ಷಿಸಿ."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"ಸ್ಪರ್ಶಿಸುವ ಮೂಲಕ ಎಕ್ಸ್‌ಪ್ಲೋರ್ ಆನ್ ಮಾಡಿ"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"ಭಾಗಶಃ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಪತ್ತೆಯಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಸೆನ್ಸಾರ್ ಕೊಳೆಯಾಗಿದೆ. ದಯವಿಟ್ಟು ಅದನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"ಬೆರಳನ್ನು ವೇಗವಾಗಿ ಸರಿಸಲಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"ಬೆರಳನ್ನು ನಿಧಾನವಾಗಿ ಸರಿಸಲಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"ಹಾರ್ಡ್‌ವೇರ್ ಲಭ್ಯವಿಲ್ಲ."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಸಂಗ್ರಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ತೆಗೆದುಹಾಕಿ."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅವಧಿ ಮೀರಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅವಧಿ ಮೀರಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"ಸಿಂಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ರೀಡ್‌ ಮಾಡು"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ಖಾತೆಗೆ ಸಿಂಕ್ ಸೆಟ್ಟಿಂಗ್‍‍ಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಅಪ್ಲಿಕೇಶನ್‍‍ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಖಾತೆಯನ್ನು ಹೊಂದಿರುವ ವ್ಯಕ್ತಿಗಳ ಸಿಂಕ್ ಸಕ್ರಿಯಗೊಳಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದಾಗಿದೆ."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"ಸಿಂಕ್ ಅಂಕಿಅಂಶಗಳನ್ನು ಓದಿರಿ"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"ಸಿಂಕ್ ಈವೆಂಟ್‍‍ಗಳ ಇತಿಹಾಸ ಮತ್ತು ಎಷ್ಟು ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ಸಿಂಕ್‍ ಮಾಡಲಾಗಿದೆ ಎಂಬುದು ಸೇರಿದಂತೆ, ಒಂದು ಖಾತೆಗಾಗಿ ಸಿಂಕ್ ಅಂಕಿಅಂಶಗಳನ್ನು ಓದಲು ಅಪ್ಲಿಕೇಶನ್‍‍ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"ಚಂದಾದಾರ ಫೀಡ್‌ಗಳನ್ನು ಬರೆಯಿರಿ"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"ನಿಮ್ಮ ಪ್ರಸ್ತುತವಾಗಿ ಸಿಂಕ್‌ ಮಾಡಲಾದ ಫಿಡ್‌ಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ದುರುದ್ದೇಶಪೂರಿತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ನಿಮ್ಮ ಸಿಂಕ್‌ ಮಾಡಲಾದ ಫೀಡ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಬಹುದು."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"ನೀವು ನಿಘಂಟಿಗೆ ಸೇರಿಸಿದ ಪದಗಳನ್ನು ಓದಿ"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"ಬಳಕೆದಾರರು ಬಳಕೆದಾರ ನಿಘಂಟಿನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿರಬಹುದಾದ ಎಲ್ಲಾ ಪದಗಳು, ಹೆಸರುಗಳು ಮತ್ತು ನುಡಿಗಟ್ಟುಗಳನ್ನು ರೀಡ್ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್‍‍ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"ಬಳಕೆದಾರ-ನಿರ್ಧರಿತ ನಿಘಂಟಿಗೆ ಪದಗಳನ್ನು ಸೇರಿಸಿ"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಮೆನು ಒತ್ತಿರಿ ಇಲ್ಲವೇ ತುರ್ತು ಕರೆಯನ್ನು ಮಾಡಿ."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಮೆನು ಒತ್ತಿರಿ."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನಮೂನೆ ಚಿತ್ರಿಸಿ"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"ತುರ್ತು ಕರೆ"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"ಕರೆಗೆ ಹಿಂತಿರುಗು"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ಸರಿಯಾಗಿದೆ!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ಮತ್ತೆ ಪ್ರಯತ್ನಿಸು"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"ಅಭ್ಯರ್ಥಿಗಳು"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB ಸಂಗ್ರಹಣೆ ಸಿದ್ದವಾಗುತ್ತಿದೆ"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD ಕಾರ್ಡ್ ಸಿದ್ದಪಡಿಸಲಾಗುತ್ತಿದೆ"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"ದೋಷಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"ಖಾಲಿ USB ಸಂಗ್ರಹಣೆ"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"ಖಾಲಿ SD ಕಾರ್ಡ್"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB ಸಂಗ್ರಹಣೆ ಖಾಲಿಯಿದೆ ಅಥವಾ ಬೆಂಬಲವಿಲ್ಲದ ಫೈಲ್ ವ್ಯವಸ್ಥೆಯನ್ನು ಹೊಂದಿದೆ."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD ಕಾರ್ಡ್ ಖಾಲಿಯಿದೆ ಅಥವಾ ಬೆಂಬಲಿಸದಿರುವ ಫೈಲ್ ವ್ಯವಸ್ಥೆಯನ್ನು ಹೊಂದಿದೆ."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"ಹಾನಿಗೊಳಗಾದ USB ಸಂಗ್ರಹಣೆ"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"ಹಾನಿಗೊಳಗಾದ SD ಕಾರ್ಡ್"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB ಸಂಗ್ರಹಣೆಯು ಹಾನಿಯಾಗಿದೆ. ಅದನ್ನು ಮರುಸ್ವರೂಪಿಸಲು ಪ್ರಯತ್ನಿಸಿ."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD ಕಾರ್ಡ್ ಹಾನಿಯಾಗಿದೆ. ಅದನ್ನು ಮರುಸ್ವರೂಪಿಸಲು ಪ್ರಯತ್ನಿಸಿ."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB ಸಂಗ್ರಹಣೆಯನ್ನು ಅನಿರೀಕ್ಷಿತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD ಕಾರ್ಡ್ ಅನ್ನು ಅನಿರೀಕ್ಷಿತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"ಡೇಟಾ ನಷ್ಟವನ್ನು ತಪ್ಪಿಸಲು ತೆಗೆದುಹಾಕುವುದಕ್ಕೂ ಮುನ್ನ USB ಸಂಗ್ರಹಣೆಯ ಅಳವಡಿಕೆಯನ್ನು ತೆಗೆದು ಹಾಕಿ."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"ಡೇಟಾ ನಷ್ಟವನ್ನು ತಪ್ಪಿಸಲು ತೆಗೆದುಹಾಕುವುದಕ್ಕೂ ಮುನ್ನ SD ಕಾರ್ಡ್‌‌ನ ಅಳವಡಿಕೆಯನ್ನು ತೆಗೆದುಹಾಕಿ."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB ಸಂಗ್ರಹಣೆ ತೆಗೆದುಹಾಕಲು ಸುರಕ್ಷಿತವಾಗಿದೆ"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD ಕಾರ್ಡ್ ತೆಗೆದುಹಾಕಲು ಸುರಕ್ಷಿತವಾಗಿದೆ"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"ನೀವು ಸುರಕ್ಷಿತವಾಗಿ USB ಸಂಗ್ರಹಣೆಯನ್ನು ತೆಗೆದುಹಾಕಬಹುದು."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"ನೀವು SD ಕಾರ್ಡ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ತೆಗೆದುಹಾಕಬಹುದು."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB ಸಂಗ್ರಹಣೆ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD ಕಾರ್ಡ್ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB ಸಂಗ್ರಹಣೆ ತೆಗೆದುಹಾಕಲಾಗಿದೆ. ಹೊಸ ಮಾಧ್ಯಮವನ್ನು ಸೇರಿಸಿ."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD ಕಾರ್ಡ್ ತೆಗೆದುಹಾಕಲಾಗಿದೆ. ಹೊಸ ಕಾರ್ಡ್ ಸೇರಿಸಿ."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"ಯಾವುದೇ ಹೊಂದಾಣಿಕೆಯ ಚಟುವಟಿಕೆಗಳು ಕಂಡುಬಂದಿಲ್ಲ."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"ಮೀಡಿಯಾ ಔಟ್‍ಪುಟ್ ಅನ್ನು ರೂಟ್ ಮಾಡಿ"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"ಇತರ ಬಾಹ್ಯ ಸಾಧನಗಳಿಗೆ ಮೀಡಿಯಾ ಔಟ್‍‍ಪುಟ್ ಅನ್ನು ರೂಟ್ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್‍‍ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"ಓವರ್‌ಲೇ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ಸುರಕ್ಷಿತ"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"ತುರ್ತು ಕರೆ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ಮರೆತಿರುವಿರಿ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ತಪ್ಪು ಪ್ಯಾಟರ್ನ್"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"ತಪ್ಪಾದ ಪಾಸ್‌ವರ್ಡ್"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> ವರೆಗೆ"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"ನೀವಿದನ್ನು ಆಫ್‌ ಮಾಡುವವರೆಗೆ"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"ಅಡಚಣೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"ಸ್ಥಗಿತಕಾಲ"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"ವಾರದ ರಾತ್ರಿಗಳು"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"ವಾರಾಂತ್ಯಗಳು"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> ಅವರಿಂದ ಮ್ಯೂಟ್‌ ಮಾಡಲಾಗಿದೆ"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಆಂತರಿಕ ಸಮಸ್ಯೆಯಿದೆ ಹಾಗೂ ನೀವು ಫ್ಯಾಕ್ಟರಿ ಡೇಟಾವನ್ನು ಮರುಹೊಂದಿಸುವರೆಗೂ ಅದು ಅಸ್ಥಿರವಾಗಬಹುದು."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಆಂತರಿಕ ಸಮಸ್ಯೆಯಿದೆ. ವಿವರಗಳಿಗಾಗಿ ನಿಮ್ಮ ತಯಾರಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS ವಿನಂತಿಯನ್ನು DIAL ವಿನಂತಿಗೆ ಮಾರ್ಪಡಿಸಲಾಗಿದೆ."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS ವಿನಂತಿಯನ್ನು USSD ವಿನಂತಿಗೆ ಮಾರ್ಪಡಿಸಲಾಗಿದೆ."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS ವಿನಂತಿಯನ್ನು ಹೊಸ SS ವಿನಂತಿಗೆ ಮಾರ್ಪಡಿಸಲಾಗಿದೆ."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB ಪೆರಿಪೆರಲ್ ಪೋರ್ಟ್"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB ಪೆರಿಪೆರಲ್ ಪೋರ್ಟ್"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"ಓವರ್‌ಫ್ಲೋ ಮುಚ್ಚು"</string>
</resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 5771080..e2d67d7 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android 시스템"</string>
<string name="user_owner_label" msgid="6465364741001216388">"개인 앱"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"직장"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"주소록"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"내 주소록 액세스 및 수정"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"위치"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"내 위치 액세스"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"소셜 정보"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"내 연락처 및 소셜 친구의 개인 정보에 직접 액세스합니다."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"캘린더"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"내 캘린더 액세스 및 수정"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS 액세스 및 수정"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"사용자 사전"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"사용자 사전의 단어를 읽거나 씁니다."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"북마크 및 기록"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"북마크 및 브라우저 기록에 직접 액세스합니다."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"마이크"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"기기 마이크 사용"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"카메라"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"기기 카메라 사용"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"전화"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"기기 전화 기능 사용"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"센서"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"센서 및 웨어러블 액세스"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"창 콘텐츠 가져오기"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"상호작용 중인 창의 콘텐츠를 검사합니다."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"터치하여 탐색 사용"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"지문이 일부만 인식되었습니다. 다시 시도해 주세요."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"지문을 인식할 수 없습니다. 다시 시도해 주세요."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"지문 센서를 깨끗이 닦고 다시 시도하세요."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"손가락을 너무 빨리 움직였습니다. 다시 시도해 주세요."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"손가락을 너무 느리게 움직였습니다. 다시 시도해 주세요."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"인식할 수 없습니다. 다시 시도하세요."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"하드웨어를 사용할 수 없습니다."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"지문을 저장할 수 없습니다. 기존 지문을 삭제하세요."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"지문 인식 시간이 초과되었습니다. 다시 시도하세요."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"지문 인식 시간이 초과되었습니다. 다시 시도하세요."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"동기화 설정 읽기"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"앱이 계정의 동기화 설정을 수정할 수 있도록 허용합니다. 예를 들어, 계정에서 주소록 앱을 동기화할 목적으로 앱이 사용될 수 있습니다."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"동기화 통계 읽기"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"앱이 동기화된 일정의 기록이나 동기화된 데이터의 양 등을 포함하여 계정의 동기화 통계를 읽을 수 있도록 허용합니다."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"가입 피드 작성"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"앱이 현재 동기화된 피드를 수정할 수 있도록 허용합니다. 이 경우 악성 앱이 동기화된 피드를 변경할 수 있습니다."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"사전에 추가한 단어 읽기"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"앱이 사용자 사전에 저장하고 있는 모든 단어, 이름, 문구 등을 읽을 수 있도록 허용합니다."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"사용자 정의 사전에 단어 추가"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"비상 전화를 걸거나 잠금해제하려면 메뉴를 누르세요."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"잠금해제하려면 메뉴를 누르세요."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"잠금해제를 위해 패턴 그리기"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"비상 전화"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"긴급 전화"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"통화로 돌아가기"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"맞습니다."</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"다시 시도"</string>
@@ -1034,29 +1028,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"가능한 원인"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB 저장소 준비 중"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD 카드 준비 중"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"오류 확인 중입니다."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB 저장소 비어 있음"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"빈 SD 카드"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB 저장소가 비어 있거나 지원되지 않는 파일 시스템을 사용합니다."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD 카드가 비어 있거나 지원되지 않는 파일 시스템을 사용합니다."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB 저장소 손상됨"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"손상된 SD 카드"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB 저장소가 손상되었습니다. 다시 포맷하시기 바랍니다."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD 카드가 손상되었습니다. 다시 포맷하시기 바랍니다."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB 저장소가 예기치 않게 제거됨"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD 카드가 예상치 않게 제거되었습니다."</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"데이터 손실을 피하려면 USB 저장소를 제거하기 전에 마운트 해제합니다."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"데이터 손실을 피하려면 SD 카드를 제거하기 전에 마운트 해제합니다."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB 저장소 안전하게 제거"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD 카드 제거 가능"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USB 저장소를 안전하게 제거할 수 있습니다."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"안전하게 SD 카드를 제거할 수 있습니다."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB 저장소 제거됨"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD 카드 없음"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB 저장소를 제거했습니다. 새 미디어를 삽입하세요."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD 카드가 없습니다. SD 카드를 넣으세요."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"오류 확인 중"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"일치하는 활동이 없습니다."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"미디어 출력 연결"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"앱이 미디어 출력을 기타 외부 기기에 연결할 수 있도록 허용합니다."</string>
@@ -1251,7 +1251,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"<xliff:g id="ID">%1$d</xliff:g>번째 오버레이"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", 보안"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"긴급 통화"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"패턴을 잊음"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"잘못된 패턴"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"잘못된 비밀번호"</string>
@@ -1447,17 +1446,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>까지"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"이 기능을 사용 중지할 때까지"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"알림 차단"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"다운타임"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"평일 밤"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"주말"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g>에서 알림음 음소거"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"사용 중인 기기 내부에 문제가 발생했습니다. 초기화할 때까지 불안정할 수 있습니다."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"사용 중인 기기 내부에 문제가 발생했습니다. 자세한 내용은 제조업체에 문의하세요."</string>
@@ -1467,11 +1461,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS 요청이 DIAL 요청으로 수정됩니다."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS 요청이 USSD 요청으로 수정됩니다."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS 요청이 새로운 SS 요청으로 수정됩니다."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB 주변기기 포트"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB 주변기기 포트"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"옵션 더보기"</string>
- <string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"더보기 닫기"</string>
+ <string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"오버플로우 닫기"</string>
</resources>
diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml
index 91408bc..e4ca5e9 100644
--- a/core/res/res/values-ky-rKG/strings.xml
+++ b/core/res/res/values-ky-rKG/strings.xml
@@ -326,43 +326,28 @@
<skip />
<string name="user_owner_label" msgid="6465364741001216388">"Жеке колдономолор"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Жумуш"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Байланыштар"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"байланыштарыңызга кирип, өзгөртүңүз"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Жайгашкан жер"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"жайгашкан жериңизге кирүү"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Сиздин социалдык маалыматыңыз"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Сиздин байланыштарыңыз жана социалдык байланыштарыңыз тууралуу маалыматтарга түз жетки алуу."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Күнбарак"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"жылнаамаңызга кирип, өзгөртүңүз"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS\'ке кирип, өзгөртүү"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Колдонуучунун сөздүгү"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Колдонуучунун сөздүгүндөгү сөздөрдү окуу же жазуу"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Бүктөмөлөр жана тарых"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Бүктөмөлөргө же серепчи тарыхына түз жетки алуу."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"түзмөктүн микрофонун колдонуу"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"түзмөктүн камерасын колдонуу"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Телефон"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"түзмөктүн телефониясын колдонуу"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Сенсорлор"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"сенсорлор менен тагынмаларга кирүү"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Терезе мазмунун алуу"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Сиз иштеп жаткан терезенин мазмунун изилдөө."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Сыйпалап изилдөөнү жандыруу"</string>
@@ -572,15 +557,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Манжа изи жарым-жартылай аныкталды. Кайра аракет кылыңыз."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Манжа изи иштелбей койду. Кайра аракет кылыңыз."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Манжа изинин сенсору кирдеп калган. Тазалап, кайра аракет кылыңыз."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Манжа өтө тез жылдырылды. Кайра аракет кылыңыз."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Манжа өтө жай жылдырылды. Кайра аракет кылыңыз."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Иштетилбей жатат. Кайра аракет кылыңыз."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Аппараттык камсыздоо жеткиликтүү эмес."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Манжа изин сактоо мүмкүн эмес. Учурдагы манжа изин алып салыңыз."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Манжа изин күтүү мөөнөтү бүттү. Кайра аракет кылыңыз."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Манжа изин күтүү мөөнөтү бүттү. Кайра аракет кылыңыз."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<!-- no translation found for permlab_readSyncSettings (6201810008230503052) -->
@@ -591,6 +582,9 @@
<!-- no translation found for permlab_readSyncStats (7396577451360202448) -->
<skip />
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Колдонмого эсептин статистикасын, синхрондоштуруу тарыхын, анын ичинде, канча берилиштер синхрондошкондугун окуганга уруксат берет."</string>
+ <!-- no translation found for permlab_subscribedFeedsWrite (9015246325408209296) -->
+ <skip />
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Колдонмого учурда шайкештештирилген каналдарыңызды өзгөртүү мүмкүнчүлүгүн берет. Кесепеттүү колдонмолор шайкештештирилген каналдарыңызды өзгөртүп салышы мүмкүн."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"сөздүккө кошкон терминдериңизди окуу"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Колдонмого колдонуучу сөздүгүндө сакталган бардык сөздөрдү, аттарды жана фразаларды окуганга уруксат берет."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"колдонуучунун сөздүгүнө сөздөрдү кошуу"</string>
@@ -836,7 +830,7 @@
<skip />
<!-- no translation found for lockscreen_pattern_instructions (7478703254964810302) -->
<skip />
- <!-- no translation found for lockscreen_emergency_call (5347633784401285225) -->
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
<skip />
<!-- no translation found for lockscreen_return_to_call (5244259785500040021) -->
<skip />
@@ -1384,47 +1378,35 @@
<skip />
<!-- no translation found for candidates_style (4333913089637062257) -->
<skip />
- <!-- no translation found for ext_media_checking_notification_title (3449816005351468560) -->
- <skip />
- <!-- no translation found for ext_media_checking_notification_title (5457603418970994050) -->
- <skip />
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
- <!-- no translation found for ext_media_nofs_notification_title (7788040745686229307) -->
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
<skip />
- <!-- no translation found for ext_media_nofs_notification_title (780477838241212997) -->
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
<skip />
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB сактагыч актай бош же анын файл системасы колдоого алынбайт."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD-карта актай же анын файл системасы колдоого алынбайт."</string>
- <!-- no translation found for ext_media_unmountable_notification_title (2090046769532713563) -->
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
<skip />
- <!-- no translation found for ext_media_unmountable_notification_title (6410723906019100189) -->
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
<skip />
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB сактагыч бүлүнгөн. Аны кайра форматтап көрүңүз."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD-карта бүлүнгөн. Аны кайра форматтап көрүңүз."</string>
- <!-- no translation found for ext_media_badremoval_notification_title (1661683031330951073) -->
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
<skip />
- <!-- no translation found for ext_media_badremoval_notification_title (6872152882604407837) -->
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
<skip />
- <!-- no translation found for ext_media_badremoval_notification_message (4329848819865594241) -->
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
<skip />
- <!-- no translation found for ext_media_badremoval_notification_message (7260183293747448241) -->
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
<skip />
- <!-- no translation found for ext_media_safe_unmount_notification_title (3967973893270360230) -->
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
<skip />
- <!-- no translation found for ext_media_safe_unmount_notification_title (6729801130790616200) -->
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
<skip />
- <!-- no translation found for ext_media_safe_unmount_notification_message (6142195361606493530) -->
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
<skip />
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
<skip />
- <!-- no translation found for ext_media_nomedia_notification_title (4486377230140227651) -->
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
<skip />
- <!-- no translation found for ext_media_nomedia_notification_title (8902518030404381318) -->
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
<skip />
- <!-- no translation found for ext_media_nomedia_notification_message (6921126162580574143) -->
- <skip />
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
<skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Туура келген аракеттер табылбады."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Медиа чыгарылышын багыттоо"</string>
@@ -1685,7 +1667,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Катмар №<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", корголгон"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Куткаруучуларга чалуу"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Үлгү унутулду"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Үлгү туура эмес"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Сырсөз туура эмес"</string>
@@ -1881,17 +1862,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> чейин"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Бул өчүрүлгөнгө чейин"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Үзгүлтүккө учуратууларды бөгөттөө"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Аракетсиз убакыт"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Иш түндөрү"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Дем алыш күндөрү"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> тарабынан үнсүздөлдү"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Түзмөгүңүздө ички көйгөй бар жана ал баштапкы абалга кайтарылмайынча туруктуу иштебей коюшу мүмкүн."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Түзмөгүңүздө ички көйгөй бар. Анын чоо-жайын билүү үчүн өндүрүүчүңүзгө кайрылыңыз."</string>
@@ -1901,11 +1877,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS сурамы DIAL сурамына өзгөртүлдү."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS сурамы USSD сурамына өзгөртүлдү."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS сурамы жаңы SS сурамына өзгөртүлдү."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB Сырткы оюкча"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB Сырткы оюкча"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Дагы параметрлер"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Ашып-ташууну жабуу"</string>
</resources>
diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml
index 3332de1..3417493 100644
--- a/core/res/res/values-lo-rLA/strings.xml
+++ b/core/res/res/values-lo-rLA/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"ລະບົບ Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"​ແອັບຯ​ສ່ວນ​ໂຕ"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"​ບ່ອນ​ເຮັດ​ວຽກ"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"ລາຍຊື່"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"ເຂົ້າ​ຫາ ແລະ​ແກ້​ໄຂ​ລາຍ​ຊື່​ຂອງ​ທ່ານ"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"ສະ​ຖານ​ທີ່"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"ເຂົ້າ​ຫາ​ທີ່​ຕັ້ງ​ຂອງ​ທ່ານ"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ຂໍ້ມູນສັງຄົມຂອງທ່ານ"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ເຂົ້າເຖິງຂໍ້ມູນກ່ຽວກັບລາຍຊື່ຜູ່ຕິດຕໍ່ ແລະການເຊື່ອມຕໍ່ທາງສັງຄົມຂອງທ່ານໂດຍກົງ."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"ປະຕິທິນ"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"ເຂົ້າ​ຫາ ແລະ​ແກ້​ໄຂ​ປະ​ຕິ​ທິນ​ຂອງ​ທ່ານ"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"ເຂົ້າ​ຫາ ແລະ​ແກ້​ໄຂ SMS"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"ວັດ​ຈະນາ​ນຸກົມ​ຜູ່ໃຊ້"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"ອ່ານ ຫຼື​ຂຽນຄຳສັບໃນວັດຈະນານຸກົມຜູ້ໃຊ້."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ບຸກມາກ ແລະປະຫວັດເວັບໄຊ"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ເຂົ້ານຳໃຊ້ບຸກແລະປະຫວັດການທ່ອງເວັບໂດຍກົງ."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"ໄມໂຄຣໂຟນ"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"ໃຊ້​ໄມ​ໂຄ​ຣ​ໂຟນ​ຂອງ​ອຸ​ປະ​ກອນ"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"ກ້ອງ"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"ໃຊ້​ກ້ອງ​ຖ່າຍ​ຮູບ​ຂອງ​ອຸ​ປະ​ກອນ"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"ໂທລະສັບ"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"ໃຊ້​ລະ​ບົບ​ໂທ​ລະ​ສັບ​ຂອງ​ອຸ​ປະ​ກອນ"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"ເຊັນເຊີ"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"ເຂົ້າ​ຫາ​ເຊັນ​ເຊີ ແລະ​ສິ່ງ​ທີ່​ສາ​ມາດ​ສວມ​ໃສ່​ໄດ້"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ດຶງຂໍ້ມູນເນື້ອຫາໃນໜ້າຈໍ"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ກວດກາເນື້ອຫາຂອງໜ້າຈໍທີ່ທ່ານກຳລັງມີປະຕິສຳພັນນຳ."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"ເປີດໃຊ້ \"ການສຳຫຼວດໂດຍສຳພັດ\""</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"ກວດ​ພົບ​ລາຍ​ນີ້ວ​ມື​ບາງ​ສ່ວນ​ແລ້ວ. ກະ​ລຸ​ນາ​ລອງ​ໃໝ່​ອີກ."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ບໍ່​ສາ​ມາດ​ດຳ​ເນີນ​ການ​ລາຍ​ນີ້ວ​ມື​ໄດ້. ກະ​ລຸ​ນາ​ລອງ​ໃໝ່​ອີກ."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ເຊັນ​ເຊີ​ລາຍ​ນີ້ວ​ມື​ເປື້ອນ. ກະ​ລຸ​ນາ​ທຳ​ຄວາມ​ສະ​ອາດ ແລະ​ລອງ​ໃໝ່​ອີກ."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"ຍ້າຍ​ນີ້ວ​ມື​ໄປ​ໄວ​ເກີນ​ໄປ. ກະ​ລຸ​ນາ​ລອງ​ໃໝ່​ອີກ."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"ຍ້າຍ​ນີ້ວ​ມື​ໄປ​ຊ້ເກີນ​ໄປ. ກະ​ລຸ​ນາ​ລອງ​ໃໝ່​ອີກ."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"ບໍ່​ສາ​ມາດ​ປະ​ມວນ​ຜົນ​ໄດ້. ລອງ​ໃໝ່​ອີກ."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"ບໍ່​ມີ​ຮາດ​ແວ​ໃຫ້​ຢູ່."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"ບໍ່​ສາ​ມາດ​ເກັບ​ຮັກ​ສາ​ລາຍ​ນີ້ວ​ມື​ໄວ້​ໄດ້. ກະ​ລຸ​ນາ​ເອົາ​ລາຍ​ນີ້ວ​ມື​ທີ່​ມີ​ຢູ່​ອອກ​ໄປ."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"ເວ​ລາ​ລາຍ​ນີ້ວ​ມື​ບໍ່​ເຂົ້າ​ເຖິງ​ໄດ້. ລອງ​ໃໝ່​ອີກ."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"ເວ​ລາ​ລາຍ​ນີ້ວ​ມື​ບໍ່​ເຂົ້າ​ເຖິງ​ໄດ້. ລອງ​ໃໝ່​ອີກ."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"ອ່ານການຕັ້ງຄ່າຊິ້ງຂໍ້ມູນ"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ອະນຸຍາດໃຫ້ແອັບຯແກ້ໄຂການຕັ້ງຄ່າການຊິ້ງຂໍ້ມູນສຳລັບບັນຊີ. ຍົກຕົວຢ່າງ: ມັນສາມາດໃຊ້ເພື່ອເປີດນຳໃຊ້ການຊິ້ງຂໍ້ມູນຂອງ People ແອັບຯກັບບັນຊີໃດນຶ່ງໄດ້."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"ອ່ານສະຖິຕິການຊິ້ງຂໍ້ມູນ"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"ອະນຸຍາດໃຫ້ແອັບຯ ອ່ານສະຖິຕິການຊິ້ງຂໍ້ມູນຂອງບັນຊີໃດນຶ່ງ ຮວມທັງປະຫວັດການຊິ້ງຂໍ້ມູນ ແລະຈຳນວນຂໍ້ມູນທີ່ຖືກຊິ້ງ."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"ຂຽນຂໍ້ມູນຟີດທີ່ສະໝັກໄວ້"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"ອະນຸຍາດໃຫ້ແອັບຯ ແກ້ໄຂຟີດທີ່ຖືກຊິ້ງຂໍ້ມູນເມື່ອໄວໆນີ້ຂອງທ່ານ. ແອັບຯທີ່ເປັນອັນຕະລາຍ ອາດປ່ຽນແປງຟີດຂອງທ່ານທີ່ຊິ້ງມາ."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"ອ່ານຄຳສັບທີ່ທ່ານເພີ່ມໃສ່ວັດຈະນານຸກົມ"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"ອະນຸຍາດແອັບຯອ່ານຄຳສັບ, ຊື່ ແລະປະໂຫຍກທັງໝົດທີ່ຜູ່ໃຊ້ອາດບັນທຶກໄວ້ໃນວັດຈະນານຸກົມຜູ່ໃຊ້."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"ເພີ່ມຄຳສັບໃສ່ວັດຈະນານຸກົມທີ່ຜູ່ໃຊ້ກຳນົດເອງ"</string>
@@ -635,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"ກົດ ເມນູ ເພື່ອປົດລັອກ ຫຼື ໂທອອກຫາເບີສຸກເສີນ."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"ກົດ \"ເມນູ\" ເພື່ອປົດລັອກ."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"ແຕ້ມຮູບແບບເພື່ອປົດລັອກ"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"ໂທສຸກເສີນ"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"ສຸກ​ເສີນ"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"ກັບໄປຫາການໂທ"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ຖືກຕ້ອງ!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ລອງໃໝ່ອີກຄັ້ງ"</string>
@@ -1035,29 +1028,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"ຕົວເລືອກ"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"ກຳລັງກຽມບ່ອນຈັດເກັບຂໍ້ມູນ USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"ກຳລັງກະກຽມ SD card"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"ກຳລັງກວດຫາຂໍ້ຜິດພາດ."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"ບ່ອນຈັດເກັບຂໍ້ມູນ USB ເປົ່າຫວ່າງ"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"SD card ຫວ່າງເປົ່າ"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"ບ່ອນຈັດເກັບຂໍ້ມູນ USB ຫວ່າງເປົ່າ ຫຼືມີໄຟລ໌ລະບົບທີ່ບໍ່ຮອງຮັບ."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD card ຫວ່າງເປົ່າ ຫຼືມີລະບົບໄຟລ໌ທີ່ບໍ່ຮອງຮັບ."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"ບ່ອນຈັດເກັບຂໍ້ມູນ USB ທີ່ເສຍຫາຍ."</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"SD card ທີ່ເສຍຫາຍ."</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"ບ່ອນຈັດເກັບຂໍ້ມູນ USB ເສຍຫາຍ. ລອງຟໍແມັດມັນອີກຄັ້ງເບິ່ງ."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD card ເສຍຫາຍ. ລອງຟໍແມັດມັນອີກຄັ້ງເບິ່ງ."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"ບ່ອນຈັດເກັບຂໍ້ມູນ USB ຖືກຖອດອອກແບບບໍ່ປອດໄພ"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD card ຖືກຖອດອອກໂດຍບໍ່ຄາດຄິດ"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"ຖອດການເຊື່ອມຕໍ່ບ່ອນຈັດເກັບຂໍ້ມູນ USB ກ່ອນທີ່ຈະຖອດອອກ ເພື່ອປ້ອງກັນການສູນເສຍຂໍ້ມູນ."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"ຖອນການເຊື່ອມຕໍ່ SD card ກ່ອນຈະຖອດອອກເພື່ອປ້ອງກັນການສູນເສຍຂໍ້ມູນ."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"ບ່ອນຈັດເກັບຂໍ້ມູນ USB ສາມາດຖອດອອກໄດ້ຢ່າງປອດໄພ"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"ສາມາດຖອດ SD card ອອກໄດ້ປອດໄພແລ້ວ"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"ທ່ານສາມາດຖອດບ່ອນຈັດເກັບຂໍ້ມູນ USB ອອກໄດ້ຢ່າງປອດໄພ."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"ທ່ານສາມາດຖອດ SD card ອອກໄດ້ຢ່າງປອດໄພ."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"ບ່ອນຈັດເກັບຂໍ້ມູນ USB ຖືກຖອດອອກແລ້ວ"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD card ຖືກຖອດອອກ"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"ບ່ອນຈັດເກບັຂໍ້ມູນ USB ຖືກຖອດອອກແລ້ວ. ໃຫ້ໃສ່ອັນໃໝ່ເຂົ້າໄປ."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD card ຖືກຖອດອອກແລ້ວ. ກະລຸນາໃສ່ອັນໃໝ່."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"ບໍ່ພົບກິດຈະກຳທີ່ກົງກັນ."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"ກຳນົດເສັ້ນທາງເອົ້າພຸດຂອງສື່"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນ ກຳນົດເສັ້ນທາງເອົ້າພຸດຂອງສື່ໄປຫາອຸປະກອນພາຍນອກອື່ນໆ."</string>
@@ -1252,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"ການວາງຊ້ອນ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ປອດໄພ"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"ການໂທສຸກເສີນ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ລືມຮູບແບບປົດລັອກ?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ຮູບແບບຜິດ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ"</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 34fe86c..d756805 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -220,42 +220,28 @@
<string name="android_system_label" msgid="6577375335728551336">"„Android“ sistema"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Asmeninės programos"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Darbo"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktai"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"pasiekti ir keisti kontaktus"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Vietovė"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"pasiekti vietovę"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Socialinė informacija"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Tiesioginė prieiga prie kontaktų ir socialinių ryšių informacijos."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendorius"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"pasiekti ir keisti kalendorių"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"pasiekti ir keisti SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Naudotojo žodynas"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Skaityti arba rašyti žodžius naudotojo žodyne."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Žymės ir istorija"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Tiesioginė prieiga prie žymių ir naršyklės istorijos."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofonas"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"naudoti įrenginio mikrofoną"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparatas"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"naudoti įrenginio fotoaparatą"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefonas"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"naudoti įrenginio telefonijos funkcijas"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Jutikliai"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"pasiekti jutiklius ir nešiojamuosius"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Gauti lango turinį"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Tikrinti lango, su kuriuo sąveikaujate, turinį."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Įjungti „Naršyti paliečiant“"</string>
@@ -445,15 +431,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Aptiktas dalinis kontrolinis kodas. Bandykite dar kartą."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nepavyko apdoroti kontrolinio kodo. Bandykite dar kartą."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Kontrolinio kodo jutiklis purvinas. Nuvalykite ir bandykite dar kartą."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Per greitai judinate pirštą. Bandykite dar kartą."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Per lėtai judinate pirštą. Bandykite dar kartą."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Nepavyko apdoroti. Bandykite dar kartą."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Aparatinė įranga negalima."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Negalima išsaugoti kontrolinio kodo. Pašalinkite esamą kontrolinį kodą."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Baigėsi kontrolinio kodo nustatymo skirtasis laikas. Bandykite dar kartą."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Baigėsi kontrolinio kodo nustatymo skirtasis laikas. Bandykite dar kartą."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"skaityti sinchronizavimo nustatymus"</string>
@@ -462,6 +454,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Leidžiama programai keisti sinchronizuotus paskyros nustatymus. Pvz., tai gali būti naudojama norint įgalinti Žmonių programos sinchronizavimą su paskyra."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"skaityti sinchronizavimo statistiką"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Leidžiama programai skaityti sinchronizuotą paskyros statistiką, įskaitant sinchronizuotų įvykių istoriją ir informaciją, kiek duomenų sinchronizuota."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"rašyti prenumeruojamus kanalus"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Leidžiama programai keisti šiuo metu sinchronizuojamus sklaidos kanalus. Kenkėjiškos programos gali pakeisti sinchronizuojamus sklaidos kanalus."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"skaityti terminus, kuriuos pridėjote į žodyną"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Leidžiama programai skaityti visus žodžius, vardus ir frazes, kuriuos naudotojas išsaugojo naudotojo žodyne."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"pridėti žodžių prie naudotojo apibrėžto žodyno"</string>
@@ -636,7 +630,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Paspauskite „Meniu“, kad atrakintumėte ar skambintumėte pagalbos numeriu."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Paspauskite „Meniu“, jei norite atrakinti."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Nustatyti modelį, kad atrakintų"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Skambutis pagalbos numeriu"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"Skambutis pagalbos numeriu"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"grįžti prie skambučio"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Teisingai!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Bandykite dar kartą"</string>
@@ -1048,29 +1042,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" AĄBCČDEĘĖFGHIĮYJKLMNOPRSŠTUŲŪVZŽ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789AĄBCČDEĘĖFGHIĮYJKLMNOPRSŠTUŲŪVZŽ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidatai"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Ruošiama USB atmintinė"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Ruošiama SD kortelė"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Tikrinama, ar nėra klaidų."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Tuščia USB atmintinė"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tuščia SD kortelė"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB atmintis tuščia arba jos failų sistema nepalaikoma."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"USB atmintis tuščia arba jos failų sistema nepalaikoma."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Sugadinta USB atmintinė"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Pažeista SD kortelė"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB atmintis pažeista. Pabandykite formatuoti ją iš naujo."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD kortelė pažeista. Pabandykite formatuoti ją iš naujo."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB atmintinė netikėtai pašal."</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD kortelė netikėtai pašalinta"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Kad neprarastumėte duomenų, prieš pašalindami atjunkite USB atmintinę."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Išimti SD kortelę prieš pašalinant, kad nebūtų prarasti duomenys."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Galima pašalinti USB atmintinę"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Saugu pašalinti SD kortelę"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Galite saugiau pašalinti USB atmintinę."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Galite saugiai pašalinti SD kortelę."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Pašalinta USB atmintinė"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Pašalinta SD kortelė"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB atmintinė pašalinta. Įdėti naują mediją."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD kortelė pašalinta. Įdėkite naują."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Nerasta atitinkančios veiklos."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Medijos išvesties nukreipimas"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Leidžiama programai nukreipti medijos išvestį į kitus išorinius įrenginius."</string>
@@ -1267,7 +1268,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Perdanga nr. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"„<xliff:g id="NAME">%1$s</xliff:g>“: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> tašk. colyje"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", saugu"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Skambutis pagalbos numeriu"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Pamiršau atrakinimo piešinį"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Netinkamas atrakinimo piešinys"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Netinkamas slaptažodis"</string>
@@ -1473,17 +1473,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Iki <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Kol išjungsite"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Sutraukti"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Netrukdyti"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Prastova"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Savaitgalių naktimis"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Savaitgaliais"</string>
<string name="muted_by" msgid="6147073845094180001">"Nutildė <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Iškilo vidinė su jūsų įrenginiu susijusi problema, todėl įrenginys gali veikti nestabiliai, kol neatkursite gamyklinių duomenų."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Iškilo vidinė su jūsų įrenginiu susijusi problema. Jei reikia išsamios informacijos, susisiekite su gamintoju."</string>
@@ -1493,11 +1488,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS užklausa pakeista į DIAL užklausą."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS užklausa pakeista į USSD užklausą."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS užklausa pakeista į naują SS užklausą."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"„Android“ USB išorinis prievadas"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB išorinis prievadas"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Daugiau parinkčių"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Uždaryti perpildymo sritį"</string>
</resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 63aa295..b0f83da 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -219,42 +219,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android sistēma"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Personīgās lietotnes"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Darba"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktpersonas"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"piekļūt jūsu kontaktpersonām un tās mainīt"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Atrašanās vieta"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"piekļūt jūsu atrašanās vietas informācijai"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Jūsu sociālo tīklu informācija"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Tieša piekļuve informācijai par jūsu kontaktpersonām un sociālajiem savienojumiem."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendārs"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"piekļūt jūsu kalendāram un to mainīt"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"Īsziņas"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"piekļūt īsziņām un tās mainīt"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Lietotāja vārdnīca"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Lasīt vai rakstīt vārdus lietotāja vārdnīcā."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Grāmatzīmes un vēsture"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Tieša piekļuve grāmatzīmēm un pārlūkprogrammas vēsturei."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofons"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"izmantot ierīces mikrofonu"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"izmantot ierīces kameru"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Tālrunis"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"izmantot ierīces tālruņa funkcijas"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensori"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"piekļūt sensoriem un valkājamām ierīcēm"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Izgūt loga saturu."</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Skatīt tā loga saturu, ar kuru mijiedarbojaties."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Aktivizēt funkciju “Pārlūkot pieskaroties”."</string>
@@ -444,15 +430,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Noteikts daļējs pirksta nospiedums. Lūdzu, mēģiniet vēlreiz."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nevarēja apstrādāt pirksta nospiedumu. Lūdzu, mēģiniet vēlreiz."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Pirkstu nospiedumu sensors ir netīrs. Lūdzu, notīriet to un mēģiniet vēlreiz."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Pārāk ātra pirksta kustība. Lūdzu, mēģiniet vēlreiz."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Pārāk lēna pirksta kustība. Lūdzu, mēģiniet vēlreiz."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Nevar apstrādāt pirksta nospiedumu. Mēģiniet vēlreiz."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Aparatūra nav pieejama."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Pirkstu nospiedumu nevar saglabāt. Lūdzu, noņemiet esošu pirksta nospiedumu."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Pirkstu nospiedumu nolasīšanas aparatūras noildze. Mēģiniet vēlreiz."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Pirkstu nospiedumu nolasīšanas aparatūras noildze. Mēģiniet vēlreiz."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"lasīt sinhronizācijas iestatījumus"</string>
@@ -461,6 +453,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Ļauj lietotnei pārveidot konta sinhronizācijas iestatījumus. Piemēram, to var izmantot, lai iespējotu lietotnes Personas sinhronizēšanu ar kontu."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"lasīt sinhronizācijas statistiku"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Ļauj lietotnei lasīt konta sinhronizācijas statistiku, tostarp sinhronizācijas notikumu vēsturi un sinhronizēto datu apjomu."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"rakstīt abonētās plūsmas"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Ļauj lietotnei modificēt pašreizējās sinhronizētās plūsmas. Ļaunprātīgas lietotnes var mainīt jūsu sinhronizētās plūsmas."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"lasīt vārdnīcai pievienotos vārdus"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Ļauj lietotnei lasīt visus vārdus, nosaukumus un frāzes, ko lietotājs ir saglabājis lietotāja vārdnīcā."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"vārdu pievienošana lietotāja noteiktai vārdnīcai"</string>
@@ -635,7 +629,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Nospiediet Izvēlne, lai atbloķētu, vai veiciet ārkārtas zvanu."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Lai atbloķētu, nospiediet vienumu Izvēlne."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Zīmējiet kombināciju, lai atbloķētu."</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Ārkārtas zvans"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Atpakaļ pie zvana"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Pareizi!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Mēģināt vēlreiz"</string>
@@ -1041,29 +1036,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" AĀBCČDEĒFGĢHIĪJKĶLĻMNŅOPRSŠTUŪVZŽ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789AĀBCČDEĒFGĢHIĪJKĶLĻMNŅOPRSŠTUŪVZŽ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidāti"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Notiek USB kr. sagatavošana"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD kartes sagatavošana"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Notiek kļūdu meklēšana."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Tukša USB krātuve"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tukša SD karte"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB atmiņa ir tukša, vai arī tajā ir neatbalstīta failu sistēma."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD karte ir tukša, vai arī tajā ir neatbalstīta failu sistēma."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Bojāta USB krātuve"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Bojāta SD karte"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB atmiņa ir bojāta. Mēģiniet to atkārtoti formatēt."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD karte ir bojāta. Mēģiniet to atkārtoti formatēt."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB kr. tika negaidīti noņemta"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD karte tika negaidīti izņemta."</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Pirms noņemšanas atvienojiet USB krātuvi, lai nezaudētu datus."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Demontēt SD karti pirms tās izņemšanas, lai netiktu zaudēti dati."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB krātuvi var droši noņemt"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD karti var droši noņemt."</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Varat droši noņemt USB krātuvi."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Varat droši noņemt SD karti."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Noņemta USB krātuve"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Izņemta SD karte"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB krātuve ir noņemta. Ievietojiet jaunu datu nesēju."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD karte ir izņemta. Ievietojiet citu karti."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Nav atrasta neviena atbilstoša darbība."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Multivides datu izejas maršrutēšana"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Ļauj lietojumprogrammai maršrutēt multivides datu izeju uz citām ārējām ierīcēm."</string>
@@ -1259,7 +1261,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Pārklājums Nr. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", drošs"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Ārkārtas izsaukums"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Aizmirsu kombināciju"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nepareiza kombinācija"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Nepareiza parole"</string>
@@ -1460,17 +1461,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Līdz <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Līdz brīdim, kad izslēgsiet"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Sakļaut"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Bloķēt pārtraukumus"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Dīkstāve"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Darbadienu naktīs"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Brīvdienās"</string>
<string name="muted_by" msgid="6147073845094180001">"Skaņu izslēdza <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Jūsu ierīcē ir radusies iekšēja problēma, un ierīce var darboties nestabili. Lai to labotu, veiciet rūpnīcas datu atiestatīšanu."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Jūsu ierīcē ir radusies iekšēja problēma. Lai iegūtu plašāku informāciju, lūdzu, sazinieties ar ražotāju."</string>
@@ -1480,11 +1476,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS pieprasījums ir mainīts uz DIAL pieprasījumu."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS pieprasījums ir mainīts uz USSD pieprasījumu."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS pieprasījums ir mainīts uz jaunu SS pieprasījumu."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB perifērijas ports"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB perifērijas ports"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Citas opcijas"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Aizvērt pārpildes izvēlni"</string>
</resources>
diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml
index 202c1f5..f3eeca4 100644
--- a/core/res/res/values-mk-rMK/strings.xml
+++ b/core/res/res/values-mk-rMK/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Систем Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Лични апликации"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Работа"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Контакти"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"пристапи до и менувај ги контактите"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Локација"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"пристапи до локацијата"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Тво социјални информации"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Директен пристап до информации за вашите контакти и социјални врски."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"пристапи до и менувај го календарот"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"СМС"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"пристапи до и менувај СМС"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Кориснички речник"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Читајте или пишувајте зборови во корисничкиот речник."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Обележувачи и историја"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Директен пристап до обележувачи и историја на прелистувач."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"користи го микрофонот на уредот"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Фотоапарат"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"користи го фотоапаратот на уредот"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Телефон"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"користи ја телефонијата на уредот"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Сензори"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"пристапи до сензорите и уредите за носење"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Врати содржина на прозорец"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Провери ја содржината на прозорецот со кој се комуницира."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Вклучи „Истражувај со допир“"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Откриен е делумен отпечаток. Обидете се повторно."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Отпечатокот не можеше да се обработи. Обидете се повторно."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Сензорот за отпечатоци е валкан. Исчистете го и обидете се повторно."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Прстот се движеше премногу брзо. Обидете се повторно."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Прстот се движеше премногу бавно. Обидете се повторно."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Не може да се обработи. Обидете се повторно."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Хардвер не е достапен."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Отпечатокот не може да се складира. Отстранете го постоечкиот отпечаток."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Се достигна времето на истекување на отпечатокот. Обидете се повторно."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Се достигна времето на истекување на отпечатокот. Обидете се повторно."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"прочитај синхронизирани подесувања"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Овозможува апликацијата да ги менува подесувањата за синхронизирање на сметка. На пример, ова може да се употреби да овозможи синхронизација на апликацијата „Луѓе“ со сметка."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"читај статистика за синхронизација"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Овозможува апликацијата да ја чита статистиката за синхронизација на сметка, вклучувајќи ја и историјата на синхронизирани настани и колку податоци се синхронизирани."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"пишувај претплатени навестувања на содржина"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Дозволува апликацијата да ги изменува тековно синхронизираните навестувања. Злонамерните апликации може да ги променат вашите синхронизирани навестувања."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"прочитај ги термините кои ги додаде во речникот"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Овозможува апликацијата да ги чита сите зборови, имиња и фрази кои корисникот можеби ги зачувал во речникот на корисникот."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"додај зборови во речник дефиниран од корисникот"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Притисни „Мени“ да се отклучи или да направи итен повик."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Притиснете „Мени“ за да се отклучи."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Употребете ја шемата за да се отклучи"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Повик за итни случаи"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Врати се на повик"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Точно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Обидете се повторно"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"кандидати"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"УСБ меморијата се подготвува"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"СД картичката се подготвува."</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Се проверува за грешки."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Празна УСБ меморија"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Празна СД картичка"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"УСБ меморијата е празна или има неподдржан систем на датотеки."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"СД картичката е празна или има неподдржан систем на датотеки."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Оштетена УСБ меморија"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Оштетена СД картичка"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"УСБ меморијата е оштетена. Обидете се да ја преформатирате."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"СД картичката е оштетена. Обидете се да ја преформатирате."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"УСБ меморијата е неочекувано отстранета"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"СД картичката беше неочекувано отстранета"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Одмонтирајте ја УСБ меморијата пред да ја отстраните за да не дојде до губење на податоци."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Одмонтирајте ја СД картичка пред да ја отстраните за да не дојде до губење на податоци."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Безбедено е да се отстрани УСБ меморијата"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Безбедно е да ја отстраните СД картичката"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Може безбедно да ја отстраните УСБ меморијата."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Може безбедно да ја отстраните СД картичката."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"УСБ меморијата е отстранета"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Отстранета СД картичка"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"УСБ меморијата е отстранета. Вметнете нов медиум."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"СД картичката е отстранета. Вметнете нова."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Не се пронајдени соодветни активности."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Насочи излез за медиуми"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Овозможува апликацијата да насочува излез за медиуми кон други надворешни уреди."</string>
@@ -1254,7 +1255,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Прекривка #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g> : <xliff:g id="WIDTH">%2$d</xliff:g>х<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", безбедно"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Итен повик"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Заборавив шема"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Погрешна шема"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Погрешна лозинка"</string>
@@ -1450,17 +1450,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"До <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Додека не го исклучите"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Блокирај прекини"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Пауза"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Ноќите во неделата"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Викенди"</string>
<string name="muted_by" msgid="6147073845094180001">"Звукот го исклучи <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Настана внатрешен проблем со уредот и може да биде нестабилен сè додека не ресетирате на фабричките податоци."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Настана внатрешен проблем со уредот. Контактирајте го производителот за детали."</string>
@@ -1470,13 +1465,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Барањето SS е изменето во барање DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Барањето SS е изменето во барање USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Барањето SS е изменето во ново барање SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Надворешна порта на УСБ за Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
- <!-- no translation found for floating_toolbar_open_overflow_description (4797287862999444631) -->
- <skip />
- <!-- no translation found for floating_toolbar_close_overflow_description (559796923090723804) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Надворешна порта на УСБ"</string>
+ <string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Повеќе опции"</string>
+ <string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Затвори прелевање"</string>
</resources>
diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml
index 8945ae5..224353b 100644
--- a/core/res/res/values-ml-rIN/strings.xml
+++ b/core/res/res/values-ml-rIN/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android സിസ്റ്റം"</string>
<string name="user_owner_label" msgid="6465364741001216388">"വ്യക്തിഗത അപ്ലിക്കേഷനുകൾ"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"ഔദ്യോഗിക പ്രൊഫൈൽ"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"കോൺടാക്റ്റുകൾ"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ ആക്‌സസ്സ് ചെയ്‌ത് പരിഷ്‌ക്കരിക്കുക"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"ലൊക്കേഷൻ"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"നിങ്ങളുടെ ലൊക്കേഷൻ ആക്‌സസ്സ് ചെയ്യുക"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"നിങ്ങളുടെ സോഷ്യൽ വിവരം"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"നിങ്ങളുടെ കോൺടാക്റ്റുകളേയും സോഷ്യൽ കണക്ഷനുകളേയും സംബന്ധിച്ച വിവരങ്ങളിലേക്കുള്ള നേരിട്ടുള്ള ആക്‌സസ്സ്."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"കലണ്ടർ"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"നിങ്ങളുടെ കലണ്ടർ ആക്‌സസ്സ് ചെയ്‌ത് പരിഷ്‌ക്കരിക്കുക"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS ആക്‌സസ്സുചെയ്‌ത് പരിഷ്‌ക്കരിക്കുക"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"ഉപയോക്തൃ നിഘണ്ടു"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"ഉപയോക്തൃ നിഘണ്ടുവിലെ പദങ്ങൾ വായിക്കുകയോ എഴുതുകയോ ചെയ്യുക."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"ബുക്ക്‌മാർക്കുകളും ചരിത്രവും"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ബുക്ക്‌മാർക്കുകളിലേക്കും ബ്രൗസർ ചരിത്രത്തിലേക്കുമുള്ള നേരിട്ടുള്ള ആക്‌സസ്സ്."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"മൈക്രോഫോണ്‍"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"ഉപകരണ മൈക്രോഫോൺ ഉപയോഗിക്കുക"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"ക്യാമറ"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"ഉപകരണ ക്യാമറ ഉപയോഗിക്കുക"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"ഫോണ്‍"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"ഉപകരണ ടെലിഫോണി ഉപയോഗിക്കുക"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"സെൻസറുകൾ"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"സെൻസറുകളും ധരിക്കാനാകുന്നവയും ആക്‌സസ്സ് ചെയ്യുക"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"വിൻഡോ ഉള്ളടക്കം വീണ്ടെടുക്കുക"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"നിങ്ങൾ സംവദിക്കുന്ന ഒരു വിൻഡോയുടെ ഉള്ളടക്കം പരിശോധിക്കുക."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"സ്‌പർശനം വഴി പര്യവേക്ഷണം ചെയ്യുക ഓൺ ചെയ്യുക"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"വിരലടയാളം ഭാഗികമായി തിരിച്ചറിഞ്ഞു. വീണ്ടും ശ്രമിക്കുക."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"വിരലടയാളം പ്രോസസ്സ് ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുക."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"വിരലടയാള സെൻസറിന് വൃത്തിയില്ല. അത് ശുചിയാക്കി വീണ്ടും ശ്രമിക്കുക."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"വിരൽ വേഗത്തിൽ നീക്കി. വീണ്ടും ശ്രമിക്കുക."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"വിരൽ പതുക്കെ നീക്കി. വീണ്ടും ശ്രമിക്കുക."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"പ്രോസസ്സ് ചെയ്യാനാവുന്നില്ല. വീണ്ടും ശ്രമിക്കുക."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"ഹാർഡ്‌വെയർ ലഭ്യമല്ല."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"വിരലടയാളം സംഭരിക്കാനാവില്ല. നിലവിലുള്ള വിരലടയാളം നീക്കംചെയ്യുക."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"വിരലടയാളം നൽകേണ്ട സമയം കഴിഞ്ഞു. വീണ്ടും ശ്രമിക്കുക."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"വിരലടയാളം നൽകേണ്ട സമയം കഴിഞ്ഞു. വീണ്ടും ശ്രമിക്കുക."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"സമന്വയ ക്രമീകരണങ്ങൾ റീഡുചെയ്യുക"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ഒരു അക്കൗണ്ടിനായി സമന്വയ ക്രമീകരണങ്ങൾ പരിഷ്‌ക്കരിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്, ആളുകൾ അപ്ലിക്കേഷൻ ഒരു അക്കൗണ്ടിൽ സമന്വയിപ്പിക്കുന്നത് പ്രവർത്തനക്ഷമമാക്കാൻ ഇത് ഉപയോഗിക്കാം."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"സമന്വയ സ്ഥിതിവിവരണക്കണക്കുകൾ വായിക്കുക"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"സമന്വയ ഇവന്റുകളുടെ ചരിത്രവും ഡാറ്റ എത്രത്തോളം സമന്വയിപ്പിച്ചുവെന്നതും ഉൾപ്പെടെ, ഒരു അക്കൗണ്ടിനായി സമന്വയ സ്ഥിതിവിവരക്കണക്കുകൾ റീഡുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"സബ്‌സ്ക്രൈബ് ചെയ്‌ത ഫീഡുകൾ എഴുതുക"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"നിലവിൽ സമന്വയിപ്പിച്ച ഫീഡുകളെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ നേടുന്നതിന് അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ദോഷകരമായ അപ്ലിക്കേഷനുകൾ, നിങ്ങളുടെ സമന്വയിപ്പിച്ച ഫീഡുകളെ മാറ്റിയേക്കാം."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"നിഘണ്ടുവിൽ നിങ്ങൾ ചേർത്ത പദങ്ങൾ വായിക്കുക"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"ഉപയോക്തൃ നിഘണ്ടുവിൽ ഉപയോക്താവ് സംഭരിച്ചിരിക്കാനിടയുള്ള എല്ലാ പദങ്ങളും പേരുകളും വാക്യങ്ങളും വായിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"ഉപയോക്തൃ നിർവചിത നിഘണ്ടുവിൽ പദങ്ങൾ ചേർക്കുക"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"അൺലോക്ക് ചെയ്യുന്നതിനായി മെനു അമർത്തുക അല്ലെങ്കിൽ അടിയന്തര കോൾ വിളിക്കുക."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"അൺലോക്കുചെയ്യാൻ മെനു അമർത്തുക."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"അൺലോക്ക് ചെയ്യാൻ പാറ്റേൺ വരയ്‌ക്കുക"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"അടിയന്തര കോൾ"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"കോളിലേക്ക് മടങ്ങുക"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ശരി!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"വീണ്ടും ശ്രമിക്കുക"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"കാൻഡിഡേറ്റുകൾ"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB സംഭരണം തയ്യാറാക്കുന്നു"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD കാർഡ് തയ്യാറാക്കുന്നു"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"പിശകുകൾക്കായി പരിശോധിക്കുന്നു."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB സംഭരണം ശൂന്യമാണ്"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"SD കാർഡ് ശൂന്യമാണ്"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB സംഭരണം ശൂന്യമാണ് അല്ലെങ്കിൽ അതിന് പിന്തുണയ്‌ക്കാത്ത ഫയൽ സിസ്റ്റമുണ്ട്."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD കാർഡ് ശൂന്യമാണ് അല്ലെങ്കിൽ അതിന് പിന്തുണയ്‌ക്കാത്ത ഫയൽ സിസ്റ്റമുണ്ട്."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"കേടായ USB സംഭരണം"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"കേടായ SD കാർഡ്"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB സംഭരണം കേടായതാണ്. അത് വീണ്ടും ഫോർമാറ്റുചെയ്യുന്നത് പരീക്ഷിക്കുക."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD കാർഡ് കേടായതാണ്. അത് വീണ്ടും ഫോർമാറ്റുചെയ്യുന്നത് പരീക്ഷിക്കുക."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB സംഭരണം അപ്രതീക്ഷിതമായി നീക്കംചെയ്‌തു"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD കാർഡ് അപ്രതീക്ഷിതമായി നീക്കംചെയ്‌തു"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"ഡാറ്റാ നഷ്‌ടം ഒഴിവാക്കുന്നതിനായി നീക്കംചെയ്യുന്നതിനുമുമ്പ് USB സംഭരണം അൺമൗണ്ടുചെയ്യുക."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"ഡാറ്റാ നഷ്‌ടം ഒഴിവാക്കുന്നതിനായി നീക്കംചെയ്യുന്നതിനുമുമ്പ് SD കാർഡ് അൺമൗണ്ടുചെയ്യുക."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB സംഭരണം സുരക്ഷിതമായി നീക്കംചെയ്യാം"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD കാർഡ് സുരക്ഷിതമായി നീക്കംചെയ്യാം"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"നിങ്ങൾക്ക് സുരക്ഷിതമായി USB സംഭരണം നീക്കംചെയ്യാം."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"നിങ്ങൾക്ക് സുരക്ഷിതമായി SD കാർഡ് നീക്കംചെയ്യാം."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB സംഭരണം നീക്കംചെയ്‌തു"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD കാർഡ് നീക്കംചെയ്‌തു"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB സംഭരണം നീക്കംചെയ്‌തു. പുതിയ മീഡിയ ചേർക്കുക."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD കാർഡ് നീക്കംചെയ്‌തു. പുതിയതൊന്ന് ചേർക്കുക."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"പൊരുത്തമുള്ള പ്രവർത്തനങ്ങളൊന്നും കണ്ടെത്തിയില്ല."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"മീഡിയ ഔട്ട്പുട്ട് റൂട്ടുചെയ്യുക"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"മീഡിയ ഔട്ട്‌പുട്ടിനെ മറ്റ് ബാഹ്യ ഉപകരണങ്ങളിലേക്ക് റൂട്ടുചെയ്യാൻ ഒരു അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"ഓവർലേ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", സുരക്ഷിതമാക്കുക"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"അടിയന്തര കോൾ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"പാറ്റേൺ മറന്നു"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"പാറ്റേൺ തെറ്റാണ്"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"പാസ്‌വേഡ് തെറ്റാണ്"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> വരെ"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"നിങ്ങൾ ഇത് ഓ‌ഫാക്കും വരെ"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"തടസ്സങ്ങൾ തടയുക"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"പ്രവർത്തനരഹിതമായ സമയം"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"ശനിയാഴ്‌ചയും ഞായറാഴ്‌ചയും അല്ലാത്ത ദിവസങ്ങളിലെ രാത്രികൾ"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"വാരാന്ത്യങ്ങൾ"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g>, മ്യൂട്ടുചെയ്‌തു"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"നിങ്ങളുടെ ഉപകരണത്തിൽ ഒരു ആന്തരിക പ്രശ്‌നമുണ്ട്, ഫാക്‌ടറി വിവര പുനഃസജ്ജീകരണം ചെയ്യുന്നതുവരെ ഇതു അസ്ഥിരമായിരിക്കാനിടയുണ്ട്."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"നിങ്ങളുടെ ഉപകരണത്തിൽ ഒരു ആന്തരിക പ്രശ്‌നമുണ്ട്. വിശദാംശങ്ങൾക്കായി നിർമ്മാതാവിനെ ബന്ധപ്പെടുക."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS അഭ്യർത്ഥന, DIAL അഭ്യർത്ഥനയായി പരിഷ്‌ക്കരിച്ചു."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS അഭ്യർത്ഥന, USSD അഭ്യർത്ഥനയായി പരിഷ്‌ക്കരിച്ചു."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS അഭ്യർത്ഥന, പുതിയ SS അഭ്യർത്ഥനയായി പരിഷ്‌ക്കരിച്ചു."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB പെരിഫറൽ പോർട്ട്"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB പെരിഫറൽ പോർട്ട്"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"കൂടുതല്‍ ഓപ്ഷനുകള്‍"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"ഓവർഫ്ലോ അടയ്‌ക്കുക"</string>
</resources>
diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml
index 3341381..c27de35 100644
--- a/core/res/res/values-mn-rMN/strings.xml
+++ b/core/res/res/values-mn-rMN/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Андройд систем"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Хувийн апп-ууд"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Ажил"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Харилцагчдын хаяг"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"өөрийн харилцагчийн хаягт хандах, өөрчлөх"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Байршил"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"Байршилдаа хандах"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Таны нийтийн мэдээлэл"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Таны харилцагчид болон нийтийн холбооны тухай мэдээлэлд шууд хандах."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Календарь"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"өөрийн хуанлид хандах, өөрчлөх"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"Мессеж"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"Мессеждээ хандах,өөрчлөх"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Хэрэглэгчийн толь бичиг"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Хэрэглэгчийн толь бичигт үг унших,бичих"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Хавчуурга болон түүх"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Хавчуурга болон хөтчийн түүхрүү шууд хандах."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"төхөөрөмжийн микрофонийг ашиглах"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Камер"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"төхөөрөмжийн камерыг ашиглах"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Утас"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"төхөөрөмжийн телефоныг ашиглах"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Мэдрэгчүүд"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"мэдрэгч болон wearables-д хандах"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Цонхны контентыг авах"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Таны харилцан үйлчлэх цонхны контентоос шалгах."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Хүрч танихыг асаах"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Хурууны хээг дутуу уншуулсан байна. Дахин оролдоно уу."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Хурууны хээ боловсруулж чадахгүй байна. Дахин оролдоно уу."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Хурууны хээ мэдрэгч бохирдсон байна. Та цэвэрлэсний дараагаар дахин оролдоно уу."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Хурууг уншиж дуусаагүй байхад авсан байна. Та дахин уншуулна уу."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Хурууг хэт удаан уншуулсан байна. Та дахин уншуулна уу."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Мэдээллийг оруулах боломжгүй байна. Дахин оролдоно уу."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Техник хангамж бэлэн бус байна"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Хурууны хээг хадгалах боломжгүй байна. Одоо байгаа хурууны хээг арилгана уу."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Хурууны хээ оруулах хугацаа өнгөрсөн байна. Дахин оруулна уу."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Хурууны хээ оруулах хугацаа өнгөрсөн байна. Дахин оруулна уу."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"синк тохиргоог унших"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Апп нь акаунтын синк тохиргоог өөрчлөх боломжтой. Жишээ нь энэ нь Хүмүүс апп акаунттай синк хийхийг идэвхжүүлэх боломжтой."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"синк статистикийг унших"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Апп нь синк үйлдэлийн түүх болон хэр их дата синк хийгдсэн зэрэг акаунтын синк статусыг унших боломжтой."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"бүртгүүлсэн хангамжруу бичих"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Апп нь таны одоогийн синк хийгдсэн хангамжийг өөрчлөх боломжтой. Хортой апп нь таны синк хийгдсэн хангамжийг өөрчлөх боломжтой."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"таны толь бичигт нэмсэн нөхцөлийг унших"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Апп нь хэрэглэгч хэрэглэгчийн толь бичигт хадгалсан бүх үгс, нэрс болон хэлцийг унших боломжтой."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"хэрэглэгчийн толь бичигт үгс нэмэх"</string>
@@ -635,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Яаралтай дуудлага хийх буюу эсвэл түгжээг тайлах бол цэсийг дарна уу."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Тайлах бол цэсийг дарна уу."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Тайлах хээгээ зурна уу"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Яаралтай дуудлага"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"Яаралтай тусламж"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Дуудлагаруу буцах"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Зөв!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Дахин оролдох"</string>
@@ -1035,29 +1028,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"нэр дэвшигч"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB санг бэлдэж байна"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD карт бэлдэж байна"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Алдааг шалгаж байна."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Хоосон USB сан"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Хоосон SD карт"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB сан хоосон эсвэл дэмжигдэхгүй файл системтэй."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD карт хоосон эсвэл дэмжигдэхгүй файл систем."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Гэмтсэн USB сан"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Гэмтсэн SD карт"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB сан гэмтсэн байна. Дахин форматлаж үзнэ үү."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD карт гэмтсэн байна. Дахин форматлаж үзнэ үү."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB санг санамсаргүй хасагдав"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD карт санамсаргүй хасагдав"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Дата хохирлоос сэргийлж USB санг сугалахаасаа өмнө салгаж байна уу."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Дата хохирлоос сэргийлж SD картыг хасахаасаа өмнө салгаж байна уу."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB санг салгаж авахад аюулгүй."</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD картыг хасахад аюулгүй"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USB санг сугалахад аюулгүй."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"SD картаа салгаж авах аюулгүй."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Хасагдсан USB сан"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Сугалсан SD карт"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB сан сугалагдав. Шинэ медиаг хийнэ үү."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD карт хасагдав. Шинийг хийнэ үү."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Таарах активити олдсонгүй."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Медиа гаралтыг чиглүүлэх"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Аппликешн нь медиа гаралтыг бусад гадаад төхөөрөмжрүү чиглүүлэх боломжтой."</string>
@@ -1252,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Давхарга #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", найдвартай"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Яаралтай дуудлага"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Хээг мартсан"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Буруу хээ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Нууц үг буруу"</string>
@@ -1446,17 +1445,12 @@
<!-- no translation found for zen_mode_duration_hours (3938821308277433854) -->
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> хүртэл"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Таныг унтраах хүртэл"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Тасалдуулахгүй байх"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Сул зогсолт"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Ажлын өдрүүдэд орой"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Амралтын өдрүүд"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g>-с хаасан"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Таны төхөөрөмжид дотоод алдаа байна.Та төхөөрөмжөө үйлдвэрээс гарсан төлөвт шилжүүлэх хүртэл таны төхөөрөмж чинь тогтворгүй байж болох юм."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Таны төхөөрөмжид дотоод алдаа байна. Дэлгэрэнгүй мэдээлэл авахыг хүсвэл үйлдвэрлэгчтэйгээ холбоо барина уу."</string>
@@ -1466,11 +1460,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS хүсэлтийг DIAL хүсэлт болгон өөрчилсөн байна"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS хүсэлтийг USSD хүсэлт болгон өөрчилсөн байна."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS хүсэлтийг шинэ SS хүсэлт болгон өөрчилсөн байна."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Андройд USB Peripheral Port"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB Peripheral Port"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Нэмэлт сонголтууд"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Илүү цонхнуудыг хаах"</string>
</resources>
diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml
index db9a4b8..589feb6 100644
--- a/core/res/res/values-mr-rIN/strings.xml
+++ b/core/res/res/values-mr-rIN/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android सिस्‍टम"</string>
<string name="user_owner_label" msgid="6465364741001216388">"वैयक्तिक अॅप्स"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"कार्य"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"संपर्क"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"आपल्‍या संपर्कांमध्‍ये प्रवेश करा आणि सुधारित करा"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"स्थान"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"आपल्‍या स्थानामध्‍ये प्रवेश करा"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"आपली सामाजिक माहिती"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"आपले संपर्क आणि सामाजिक कनेक्शनविषयीच्या माहितीवर प्रत्यक्ष प्रवेश करेल."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"कॅलेंडर"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"आपल्‍या कॅलेंडरमध्‍ये प्रवेश करा आणि सुधारित करा"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS मध्‍ये प्रवेश करा आणि सुधारित करा"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"वापरकर्ता शब्दकोश"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"वापरकर्ता शब्दकोशामध्‍ये शब्द वाचा किंवा लिहा."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"बुकमार्क आणि इतिहास"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"बुकमार्कवर आणि ब्राउझर इतिहासावर प्रत्यक्ष प्रवेश करेल."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"मायक्रोफोन"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"डिव्‍हाइस मायक्रोफोनचा वापर करा"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"कॅमेरा"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"डिव्‍हाइस कॅमेरा वापरा"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"फोन"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"डिव्हाइस टेलिफोनी वापरा"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"सेन्सर"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"सेन्सर आणि घालण्‍यायोग्यमध्ये प्रवेश करा"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"विंडो सामग्री पुनर्प्राप्त करा"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"आपण परस्‍परसंवाद करीत असलेल्‍या विंडोची सामग्री तपासा."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"स्पर्श करून अन्वेषण चालू करा"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"आंशिक फिंगरप्रिंट आढळली. कृपया पुन्हा प्रयत्न करा."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"फिंगरप्रिंटवर प्रक्रिया करणे शक्य झाले नाही. कृपया पुन्हा प्रयत्न करा."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"फिंगरप्रिंट सेन्सर खराब आहे. कृपया साफ करा आणि पुन्हा प्रयत्न करा."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"बोट लवकर हलविले. कृपया पुन्हा प्रयत्न करा."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"बोट हळू हलविले. कृपया पुन्हा प्रयत्न करा."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"प्रक्रिया करण्यात अयशस्वी. पुन्हा प्रयत्न करा."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"हार्डवेअर उपलब्ध नाही."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"फिंगरप्रिंट संचयित केले जाऊ शकत नाही. कृपया विद्यमान फिंगरप्रिंट काढा."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"फिंगरप्रिंट कालबाह्य झाले. पुन्हा प्रयत्न करा."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"फिंगरप्रिंट कालबाह्य झाले. पुन्हा प्रयत्न करा."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"संकालन सेटिंग्‍ज वाचा"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"खात्यासाठी संकालन सेटिंग्ज सुधारित करण्यासाठी अॅप ला अनुमती देते. उदाहरणार्थ, हे खात्यासह लोकांच्या अॅप चे संकालन सक्षम करण्यासाठी वापरले जाऊ शकते."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"संकालन आकडेवारी वाचा"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"संकालन इव्हेंटचा इतिहास आणि किती डेटाचे संकालन केले आहे यासह, खात्याची संकालन स्थिती वाचण्यासाठी अॅप ला अनुमती देते."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"सदस्यता घेतलेली फीड लिहा"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"आपली सध्याची संकालित केलेली फीड सुधारित करण्यासाठी अॅप ला अनुमती देते. दुर्भावनापूर्ण अॅप्स आपली संकालित केलेली फीड बदलू शकतात."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"आपण शब्दकोशात जोडलेल्या अटी वाचा"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"वापरकर्ता शब्दकोशात वापरकर्ता संचयित करू शकतो असे सर्व शब्द, नावे आणि वाक्यांश वाचण्यासाठी अॅप ला अनुमती देते."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"वापरकर्ता-परिभाषित शब्दकोशामध्ये शब्द जोडा"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"अनलॉक करण्‍यासाठी मेनू दाबा किंवा आणीबाणीचा कॉल करा."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"अनलॉक करण्यासाठी मेनू दाबा."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"अनलॉक करण्यासाठी नमुना काढा"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"आणीबाणीचा कॉल"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"कॉलवर परत या"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"अचूक!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"पुन्हा प्रयत्न करा"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"उमेदवार"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB संचयन तयार करीत आहे"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD कार्ड तयार करीत आहे"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"त्रुटींसाठी तपासत आहे"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"रिक्त USB संचयन"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"रिक्त SD कार्ड"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB संचयन रिक्त आहे किंवा त्यात असमर्थित फाइलसिस्टम आहे."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD कार्ड रिक्त आहे किंवा त्यात असमर्थित फाइलसिस्टम आहे."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"हानी झालेले USB संचयन"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"हानी झालेले SD कार्ड"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB संचयन बिघडला आहे. त्याला पुन्हा फॉर्मेट करून पहा."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD कार्ड बिघडला आहे. त्याला पुन्हा फॉर्मेट करून पहा."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB संचयन अनपेक्षितरित्‍या काढले"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD कार्ड अनपेक्षितरित्या काढले"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"डेटा गमावणे टाळण्‍यासाठी काढण्‍यापूर्वी USB संचयन अनमाउंट करा."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"डेटा गमावणे टाळण्‍यासाठी काढण्‍यापूर्वी SD कार्ड अनमाउंट करा."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB संचयन काढण्‍यासाठी सुरक्षित"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD कार्ड काढण्यासाठी सुरक्षित आहे"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"आपण सुरक्षितपणे USB संचयन काढू शकता."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"आपण सुरक्षितपणे SD कार्ड काढू शकता."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB संचयन काढले"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD कार्ड काढले"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB संचयन काढले. नवीन मीडिया घाला."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD कार्ड काढले. एक नवीन घाला."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"कोणतेही जुळणारे क्रियाकलाप आढळले नाहीत."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"मीडिया आउटपुट मार्गस्थ करा"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"अन्य बाह्य डिव्हाइसेसवरील रूट मीडिया आउटपुट वर अनुप्रयोगास अनुमती देते."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"आच्छादन #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", सुरक्षित"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"आणीबाणीचा कॉल"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"नमुना विसरलात"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"चुकीचा नमुना"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"चुकीचा संकेतशब्द"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> पर्यंत"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"आपण हे बंद करेपर्यंत"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"व्यत्यय अवरोधित करा"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"कार्य न करण्याचा कालावधी"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"आठवड्याच्या रात्री"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"सप्‍ताह अखेर"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> द्वारे नि:शब्द केले"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"आपल्‍या डिव्‍हाइसमध्‍ये अंतर्गत समस्‍या आहे आणि आपला फॅक्‍टरी डेटा रीसेट होईपर्यंत ती अस्‍थिर असू शकते."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"आपल्‍या डिव्‍हाइसमध्‍ये अंतर्गत समस्‍या आहे. तपशीलांसाठी आपल्‍या निर्मात्याशी संपर्क साधा."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS विनंती डायल विनंतीवर सुधारित केली आहे."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS विनंती USSD विनंतीवर सुधारित केली आहे."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS विनंती नवीन SS विनंतीवर सुधारित केली आहे."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB परिधीय पोर्ट"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB परिधीय पोर्ट"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"अधिक पर्याय"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"ओव्हरफ्लो बंद करा"</string>
</resources>
diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml
index e9f2047..d92107e 100644
--- a/core/res/res/values-ms-rMY/strings.xml
+++ b/core/res/res/values-ms-rMY/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistem Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Apl peribadi"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Tempat Kerja"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kenalan"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"akses dan ubah suai kenalan anda"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Lokasi"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"akses lokasi anda"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Maklumat sosial anda"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Akses langsung ke maklumat tentang kenalan anda dan sambungan sosial."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendar"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"akses dan ubah suai kalendar anda"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"akses dan ubah suai SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Kamus Pengguna"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Baca atau tulis perkataan dalam kamus pengguna."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Penanda halaman dan Sejarah"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Akses langsung ke penanda halaman dan sejarah penyemak imbas."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"gunakan mikrofon peranti"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"gunakan kamera peranti"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"gunakan telefoni peranti"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Penderia"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"akses penderia dan item boleh dipakai"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Dapatkan kembali kandungan tetingkap"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Periksa kandungan tetingkap yang berinteraksi dengan anda."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Hidupkan Jelajah melalui Sentuhan"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Cap jari separa dikesan. Sila cuba lagi."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Tidak dapat memproses cap jari. Sila cuba lagi."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Penderia cap jari kotor. Sila bersihkan dan cuba lagi."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Jari digerakkan terlalu cepat. Sila cuba lagi."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Jari digerakkan terlalu perlahan. Sila cuba lagi."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Tidak dapat memproses. Cuba lagi."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Perkakasan tidak tersedia."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Cap jari tidak dapat disimpan. Sila alih keluar cap jari sedia ada."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Tamat masa cap jari dicapai. Cuba lagi."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Tamat masa cap jari dicapai. Cuba lagi."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"membaca tetapan penyegerakan"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Membenarkan apl mengubah suai tetapan segerak untuk akaun. Sebagai contoh, ini boleh digunakan untuk mendayakan penyegerakan apl Orang dengan akaun."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"baca statistik penyegerakan"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Membenarkan apl untuk membaca statistik segerak untuk akaun, termasuk sejarah acara segerak dan berapa banyak data disegerakkan."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"tulis suapan yang dilanggan"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Membenarkan apl untuk mengubah suai suapan segerakan semasa anda. Apl hasad boleh menukar suapan anda yang disegerakkan."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"baca istilah yang anda tambahkan kepada kamus"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Membenarkan apl membaca semua perkataan, nama dan frasa yang mungkin telah disimpan oleh pengguna dalam kamus pengguna."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"tambah perkataan ke kamus ditakrifkan pengguna"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Tekan Menu untuk menyahsekat atau membuat panggilan kecemasan."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Tekan Menu untuk membuka kunci."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Lukiskan corak untuk membuka kunci"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Panggilan kecemasan"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Kembali ke panggilan"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Betul!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Cuba lagi"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"calon"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Menyediakan storan USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Menyediakan kad SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Menyemak untuk mengesan ralat."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Storan USB kosong"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Kad SD kosong"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Storan USB kosong atau mempunyai sistem fail yang tidak disokong."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Kad SD kosong atau mempunyai sistem fail yang tidak disokong."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Storan USB rosak"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Kad SD rosak"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Storan USB rosak. Cuba formatkannya semula."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Kad SD rosak. Cuba formatkannya semula."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Strn USB dialh klr tnpa dijgka"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Kad SD dikeluarkan tanpa dijangka"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Nyahlekap storan USB sebelum mengeluarkannya untuk mengelakkan kehilangan data."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Nyahlekap kad SD sebelum mengeluarkannya untuk mengelakkan kehilangan data."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Strn USB slamat utk dikluarkan"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"selamat untuk mengeluarkan kad SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Anda boleh mengeluarkan storan USB dengan selamat."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Anda boleh mengeluarkan kad SD dengan selamat."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Storan USB dialih keluar"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Kad SD dikeluarkan"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Storan USB dikeluarkan. Sisipkan media baru."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Kad SD telah dikeluarkan. Masukkan yang baru."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Tiada aktiviti yang sepadan ditemui."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Buat laluan output media"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Membenarkan apl untuk membuat laluan output media ke peranti luaran lain."</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Tindih #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", selamat"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Panggilan kecemasan"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Lupa Corak"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Corak Salah"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Kata Laluan Salah"</string>
@@ -1447,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Sehingga <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Sehingga anda matikan"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Runtuhkan"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Halang gangguan"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Waktu gendala"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Malam hari bekerja"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Hujung minggu"</string>
<string name="muted_by" msgid="6147073845094180001">"Diredam oleh <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Terdapat masalah dalaman dengan peranti anda. Peranti mungkin tidak stabil sehingga anda membuat tetapan semula data kilang."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Terdapat masalah dalaman dengan peranti anda. Hubungi pengilang untuk mengetahui butirannya."</string>
@@ -1467,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Permintaan SS diubah kepada permintaan DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Permintaan SS diubah kepada permintaan USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Permintaan SS diubah kepada permintaan SS baharu."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Port Persisian USB Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Port Persisian USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Lagi pilihan"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Tutup limpahan"</string>
</resources>
diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml
index 7a05b6a..803109e 100644
--- a/core/res/res/values-my-rMM/strings.xml
+++ b/core/res/res/values-my-rMM/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android စနစ်"</string>
<string name="user_owner_label" msgid="6465364741001216388">"ကိုယ်ပိုင် appများ"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"အလုပ်"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"အဆက်အသွယ်များ"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"သင့် အဆက်အသွယ်များအား ဝင်ရောက်သုံးရန်နှင့် ပြင်ဆင်ရန်"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"တည်နေရာ"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"သင်၏ တည်နေရာအား ဝင်ရောက်သုံးရန်"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"သင်၏ ဆိုရှယ် သတင်းအချက်အလက်"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"သင်၏ အဆက်အသွယ်များနှင့် ဆိုရှယ်လ် အဆက်အသွယ်များအား၏ သတင်းအချက်အလက်များအား တိုက်ရိုက်အသုံးပြုခွင့် ရယူရန်"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"ပြက္ခဒိန်"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"သင်၏ ပြက္ခဒိန်သို့ ဝင်ရောက်သုံးရန်နှင့် ပြင်ဆင်ရန်"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"စာတိုစနစ်"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS အား ဝင်ရောက်သုံးရန်နှင့် ပြင်ဆင်ရန်"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"သုံးစွဲသူ အဘိဓာန်"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"သုံးစွဲသူ အဘိဓာန်တွင် စာလုံးများ ဖတ်ရန် သို့မဟုတ် ရေးရန်"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"မှတ်တမ်း နှင့် အမှတ်အသား နေရာများ"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"ဘရောင်ဇာ မှတ်တမ်း နှင့် အမှတ်နေရာများအား တိုက်ရိုက် ရယူရန်"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"မိုက်ခရိုဖုန်း"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"စက်ကိရိယာ၏ မိုက်ကရိုဖုန်းအား သုံးရန်"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"ကင်မရာ"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"စက်ကိရိယာ၏ ကင်မရာအား သုံးရန်"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"ဖုန်း"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"စက်ကိရိယာ၏ ဖုန်းခေါ်မှုဆိုင်ရာများအား သုံးရန်"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"အာရုံခံကိရိယာများ"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"အာရုံခံကိရိယာများနှင့် wearable များအား ဝင်ရောက်သုံးရန်"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ဝင်းဒိုးမှာပါရှိသည်များကို ထုတ်ယူခြင်း"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"သင် အပြန်အလှန်လုပ်နေသော ဝင်းဒိုးမှာပါရှိသည်များကို သေချာစွာ ကြည့်ရှုစစ်ဆေးပါ"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"ထိတို့ခြင်းဖြင့် ရှာဖွေပေးနိုင်တာကို ဖွင့်လိုက်ပါ"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"လက်ဗွေရဦ တစ်ပိုင်းတစ်စ တွေ့ရှိသည်။ ကျေးဇူးပြု၍ ထပ်မံကြိုးစားပါ။"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"လက်ဗွေရာယူခြင်း မဆောင်ရွက်နိုင်ပါ။ ထပ်မံကြိုးစားပါ။"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"လက်ဗွေရာဖတ်ကိရိယာ ညစ်ပေနေသည်။ ကျေးဇူးပြု၍ ရှင်းလင်းကာ ထပ်မံကြိုးစားပါ။"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"လက်ရွှေ့လျားခြင်း အလွန်မြန်သည်။ ကျေးဇူးပြု၍ ထပ်မံကြိုးစားပါ။"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"လက်ရွှေ့လျားခြင်း အလွန်နှေးသည်။ ကျေးဇူးပြု၍ ထပ်မံကြိုးစားပါ။"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"လုပ်ဆောင်၍မရပါ။ ထပ်မံကြိုးစားပါ။"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"ပစ္စည်းမရနိုင်ပါ။"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"လက်ဗွေရာ သိုလှောင်၍မရပါ။ ကျေးဇူးပြု၍ ရှိပြီးလက်ဗွေရာအား ဖယ်ရှားပါ။"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"လက်ဗွေရာအချိန်ကုန် သွားပါသည်။ ထပ်မံကြိုးစားပါ။"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"လက်ဗွေရာအချိန်ကုန် သွားပါသည်။ ထပ်မံကြိုးစားပါ။"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"ထပ်တူပြုအဆင်အပြင်အားဖတ်ခြင်း"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"အကောင့်တစ်ခုအတွက် ထပ်တူညီအောင်လုပ်သော ဆက်တင်များကို ပြင်ရန် အပလီကေးရှင်းကို ခွင့်ပြုရန်။ ဥပမာ People အပလီကေးရှင်း က အကောင့်တစ်ခုနှင့် ထပ်တူညီအောင် လုပ်ဆောင်ခြင်းအား ဖွင့်ရန် သုံးနိုင်သည်။"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"ထပ်တူကူးခြင်း ကိန်းဂဏန်းအချက်အလက်များကို ဖတ်ခြင်း"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"အပလီကေးရှင်းအား အကောင့်တစ်ခု၏ ထပ်တူညီအောင် လုပ်ဆောင်မှု အခြေအနေ (ပြီးခဲ့သော အဖြစ်အပျက်၊ ဒေတာ ပမာဏ ပါဝင်မှု များအပါအဝင်)ကို ဖတ်ရှုခွင့် ပြုပါ။"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"အမည်သွင်းထားသောဖိဖ့်များကို ရေးခြင်း"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"appအား လောလောဆယ် စင့်က် လုပ်ပြီးသား ထည့်သွင်းမှုများကို မွမ်းမံခွင့် ပြုသည်။ ကြံဖန် appများက သင်၏ စင့်က် လုပ်ပြီးသား ထည့်သွင်းမှုများကို ပြောင်းပစ်နိုင်သည်။"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"အဘိဓာန်သို့ သင့် ထည့်ထားသည်များအား ဖတ်ခြင်း"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"အပလီကေးရှင်းအား အဘိဓာန်တွင် သိမ်းဆည်းထားသော စာလုံးအားလုံး၊ နာမည်များနှင့် စာစုများ ဖတ်ရှုခွင့် ပြုရန်"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"သုံးစွဲသူ၏ အဘိဓာန် ထဲသို့ စာလုံးများ ထည့်ခြင်း"</string>
@@ -635,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"ဖွင့်ရန်သို့မဟုတ်အရေးပေါ်ခေါ်ဆိုခြင်းပြုလုပ်ရန် မီနူးကိုနှိပ်ပါ"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"မီးနူးကို နှိပ်ခြင်းဖြင့် သော့ဖွင့်ပါ"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"ဖွင့်ရန်ပုံစံဆွဲပါ"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"အရေးပေါ်ခေါ်ဆိုရန်"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"အရေးပေါ်"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"ခေါ်ဆိုမှုထံပြန်သွားရန်"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"မှန်ပါသည်"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ထပ် စမ်းပါ"</string>
@@ -1035,29 +1028,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"ရွေးချယ်ခံမည့်သူ"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USBသိမ်းဆည်းသည့်အရာအားအဆင်သင့်စေရန်ပြုလုပ်ခြင်း"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SDကဒ်အအဆင်သင့်စေရန်ပြုလုပ်ခြင်း"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"မှားယွင်းမှုရှိမရှိစစ်ခြင်း"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USBသိမ်းဆည်းမှု၌ ဘာမှမရှိပါ"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"SDကဒ်ထဲ၌ဘာမှမရှိပါ"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB ဖြင့် သိုလှောင်မှု ထဲမှာ ဘာမှ မရှိ သို့မဟုတ် ဖိုင် စနစ်က လက်ခံနိုင်သော စနစ်မဟုတ်ပါ"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD ကဒ်ထဲမှာ ဘာမှ မရှိ သို့မဟုတ် ဖိုင် စနစ်က လက်ခံနိုင်သော စနစ်မဟုတ်ပါ"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USBသိမ်းဆည်းမှုပျက်စီးနေသည်"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"SDကဒ်ပျက်စီးနေသည်"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USBစိုလှောင်ရာ ပျက်စီးနေပါသည်။ ပြန်လည် ဖောမက် ချကြည့်ပါ"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD ကဒ် ပျက်စီးနေပါသည်။ ပြန်လည် ဖောမက် ချကြည့်ပါ"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"မရည်ရွယ်ပဲ USBသိုလှောင်ကိရိယာဖယ်ရှားသည်"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"မထင်မှတ်ပဲSDကဒ်ဖြုတ်သည်"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"ဒေတာမဆုံးရှုံးစေရန် မပြုတ်ခင် USB သိမ်းဆည်းခြင်းအား မဖြုတ်ပါနှင့်"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"ဒေတာမဆုံးရှုံးစေရန် မပြုတ်ခင် SDကဒ်အားမတပ်ရန်"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB ကိရိယာအား ဖြုတ်နိုင်သည်"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"အန္တရာယ်ကင်းစွာSDကဒ်အား ဖယ်နိုင်ပါပြီ"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USBသိမ်းဆည်းသည့်အရာအား အန္တရာယ်ကင်းစွာဖယ်နိုင်ပါပြီ"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"SDကဒ်အား အန္တရာယ်ကင်းစွာဖယ်နိုင်ပါပြီ"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USBသိုလှောင်ကိရိယာအား ဖြုတ်သည်"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SDကဒ်ဖယ်ထားသည်"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USBသိမ်းဆည်းသည့်အရာ ဖယ်ရှားလိုက်သည်။ နောက်မီဒီယာအသစ်တခုအားထည့်ပါ။"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SDကဒ်အားဖယ်ရှားလိုက်သည်။ နောက်အသစ်တခုအားထည့်ပါ။"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"တိုက်ဆိုင်သော ပြုလုပ်ချက် ရှာမတွေ့ပါ"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"မီဒီယာထွက်ပေါက်အား လမ်းလွှဲပြောင်းခြင်း"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"အပလီကေးရှင်းအား မီဒီယာ ထုတ်လွှတ်မှုကို အခြားပြင်ပ စက်ပစ္စည်းများသို့ လွှဲပြောင်းခွင့်ပြုပါ"</string>
@@ -1252,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"အပေါ်မှ ထပ်သောအရာ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", လုံခြုံသော"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"အရေးပေါ် ခေါ်ဆိုမှု"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ပုံဖော်မှုအား မေ့လျော့ခြင်း"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ပုံဆွဲအမှား"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"စကားဝှက်အမှား"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index e98b888..41045c4 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android-system"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Personlige apper"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Jobb"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontakter"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"få tilgang til og endre kontakene dine"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Posisjon"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"få tilgang til posisjonen din"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Den sosiale informasjonen din"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direkte tilgang til informasjon om kontaktene og de sosiale forbindelsene dine."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalenderen"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"få tilgang til og endre kalenderen din"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"få tilgang til og endre SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Brukerordlisten"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Les eller skriv inn ord i brukerordlisten."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bokmerkene og loggen"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direkte tilgang til bokmerker og nettleserloggen."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofonen"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"bruke mikrofonen på enheten"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kameraet"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"bruke kameraet på enheten"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"bruke enhetstelefoni"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensorer"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"få tilgang til sensorer og hapå-teknologi"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Hent innholdet i vinduet"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspiser innholdet i et vindu du samhandler med."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Slå på for Berøringsutforsking"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Deler av fingeravtrykket er registrert. Prøv på nytt."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Kunne ikke registrere fingeravtrykket. Prøv på nytt."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingeravtrykksensoren er skitten. Rengjør den og prøv på nytt."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Fingeren ble fjernet for raskt. Prøv på nytt."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Fingeren ble fjernet for sakte. Prøv på nytt."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Kunne ikke behandle fingeravtrykket. Prøv på nytt."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Maskinvaren er ikke tilgjengelig."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Fingeravtrykket kan ikke lagres. Fjern et eksisterende fingeravtrykk."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Tidsavbrudd for fingeravtrykk er nådd. Prøv på nytt."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Tidsavbrudd for fingeravtrykk er nådd. Prøv på nytt."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"lese synkroniseringsinnstillinger"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Lar appen endre synkroniseringsinnstillingene for en konto. For eksempel kan dette brukes til å synkronisere Personer-appen med en konto."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"lese synkroniseringsstatistikk"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Lar appen lese synkroniseringsstatistikk for en konto, inkludert loggen over synkroniseringsaktiviteter og hvor mye data som er synkronisert."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"endre abonnement på nyhetskilder"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Lar appen endre strømmer som er synkronisert for øyeblikket. Ondsinnede apper kan endre de synkroniserte strømmene dine."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"lese ord du har lagt til i ordboken"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Lar appen lese alle ord, navn og uttrykk som brukeren har lagret i brukerordlisten."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"legge til ord i brukerdefinert ordliste"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Trykk på menyknappen for å låse opp eller ringe et nødnummer."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Trykk på menyknappen for å låse opp."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Tegn mønster for å låse opp"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Nødanrop"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Tilbake til samtale"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Riktig!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Prøv på nytt"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"</string>
<string name="candidates_style" msgid="4333913089637062257">"TAG_FONT"<u>"kandidater"</u>"CLOSE_FONT"</string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Forbereder USB-lagring"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Forbereder minnekort"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Sjekker for feil."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB-lagring er tom"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tomt minnekort"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB-lagringen er tom eller har et filsystem som ikke støttes."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD-kortet er tomt eller har et filsystem som ikke støttes."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB-lagring skadet"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Skadet minnekort"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB-lagringen er skadet. Prøv å formatere den på nytt."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD-kortet er skadet. Prøv å formatere det på nytt."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-enhet fjernet uventet"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Minnekortet ble tatt ut uventet"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Koble fra USB-enheten før du tar den ut for å unngå tap av data."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Avmonter minnekortet før det tas ut, for å unngå datatap."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB-enheten kan trygt fjernes"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Trygt å ta ut minnekort"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Det er trygt å ta ut enheten for USB-lagring."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Det er trygt å ta ut minnekortet."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB-lagring fjernet"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Minnekortet ble tatt ut"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB-lagring fjernet. Sett inn et nytt medium."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Minnekortet ble fjernet. Sett inn et nytt."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Sjekker for feil"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Finner ingen samsvarende aktiviteter."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Videresending av medieutdata"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Lar en app videresende medieutdata til andre eksterne enheter."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlegg #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", sikker"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Nødnummer"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Har du glemt mønsteret?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Feil mønster"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Feil passord"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Til <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Inntil du slår av funksjonen"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Skjul"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blokkér forstyrrelser"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Nedetid"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Kvelder på ukedager"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Helgedager"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> har kuttet lyden"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Det har oppstått et internt problem på enheten din, og den kan være ustabil til du tilbakestiller den til fabrikkdata."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Det har oppstått et internt problem på enheten din. Ta kontakt med produsenten for mer informasjon."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS-forespørselen er endret til en RINGE-forespørsel."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS-forespørselen er endret til en USSD-forespørsel."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS-forespørselen er endret til en ny SS-forespørsel."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Port for USB-tilleggsutstyr for Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Port for USB-tilleggsutstyr"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Flere alternativer"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Lukk overflytsmenyen"</string>
</resources>
diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml
index aa8d6e8..c947168 100644
--- a/core/res/res/values-ne-rNP/strings.xml
+++ b/core/res/res/values-ne-rNP/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"एन्ड्रोइड प्रणाली"</string>
<string name="user_owner_label" msgid="6465364741001216388">"व्यक्तिगत अनुप्रयोगहरू"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"काम"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"सम्पर्कहरू"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"तपाईँको सम्पर्कहरू पहुँच र परिमार्जन गर्नुहोस्"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"स्थान"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"तपाईँको स्थान पहुँच गर्नुहोस्"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"तपाईँको सामाजिक सूचना"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"तपाईँको सम्पर्कहरू र सामाजिक जडानहरूको बारेको जानकारीमा सिधा पहुँच पुर्‍याउनुहोस्।"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"पात्रो"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"तपाईँको पात्रो पहुँच र परिमार्जन गर्नुहोस्"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS पहुँच र परिमार्जन गर्नुहोस्"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"प्रयोगकर्ता शब्दकोश"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"प्रयोगकर्ता शब्दकोशमा शब्दहरू पढ्नुहोस् वा लेख्नुहोस्।"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"बुकमार्कहरू र इतिहास"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"बुकमार्कहरू र ब्राउजर इतिहासमा सिधा पहुँच।"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"माइक्रोफोन"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"यन्त्र माइक्रोफोन प्रयोग गर्नुहोस्"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"क्यामेरा"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"यन्त्र क्यामेरा प्रयोग गर्नुहोस्"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"फोन"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"यन्त्र टेलिफोनी प्रयोग गर्नुहोस्"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"सेन्सरहरू"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"सेन्सर र पहिरनयोग्यहरू पहुँच गर्नुहोस्"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"विन्डो सामग्रीको पुनःबहाली गर्नुहोस्।"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"तपाईँको अन्तरक्रिया भइरहेको विन्डोको सामग्रीको निरीक्षण गर्नुहोस्।"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"छोएर गरिने खोजलाई सुचारु गर्नुहोस्"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"आंशिक औठाछाप पत्ता लाग्यो। कृपया फेरि प्रयास गर्नुहोस्।"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"औठाछाप प्रशोधन गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"औँठाछाप सेन्सर फोहोर छ। कृपया सफा गरेर फेरि प्रयास गर्नुहोस्।"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"औंला निकै छिटो सारियो। कृपया फेरि प्रयास गर्नुहोस्।"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"औंला निकै ढिला सारियो। कृपया फेरि प्रयास गर्नुहोस्।"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"प्रसोधन गर्न असमर्थ। फेरि प्रयास गर्नुहोस्।"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"हार्डवेयर उपलब्ध छैन।"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"औँठाछाप भण्डारण गर्न सकिँदैन। कृपया अवस्थित औठाछाप हटाउनुहोस्।"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"औँठाछापको समय सकिएको छ। फेरि प्रयास गर्नुहोस्।"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"औँठाछापको समय सकिएको छ। फेरि प्रयास गर्नुहोस्।"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"समीकरण सेटिङहरू पढ्नुहोस्"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"अनुप्रयोगहरूलाई खाताको लागि सिङ्क सेटिङहरू परिमार्जन गर्न अनुमति दिन्छ। उदाहरणको लागि, यो खातासँग व्यक्ति अनुप्रयोगको सिङ्क सक्षम गर्न प्रयोग गर्न सकिन्छ।"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"सिङ्क तथ्याङ्कहरू पढ्नुहोस्"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"अनुप्रयोगलाई खाताको लागि समीकरणको आँकडा समीकरण घटनाहरूको इतिहास र समीकरण गरिएको डेटाको मापन समेत, पढ्न अनुमति दिन्छ।"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"सदस्य बनाइका फिडहरू लेख्नुहोस्"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"तपाईँका भर्खरै सिङ्क फिडहरूलाई परिमार्जन गर्नको लागि अनुप्रयोगलाई अनुमति दिन्छ। तपाईँको सिङ्क फिडहरूलाई परिवर्तन गर्नको लागि यसले खराब अनुप्रयोगलाई अनुमति दिन सक्छ।"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"तपाईँले शब्दकोशमा थपेका शब्दहरू पढ्नुहोस्"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"अनुप्रयोगलाई प्रयोगकर्ताले प्रयोगकर्ता शब्दकोशमा भण्डारण गरेका हुन सक्ने सबै शब्दहरू, नामहरू र पदावलीहरू पढ्न अनुमति दिन्छ।"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"प्रयोगकर्ता-परिभाषित शब्दकोशमा शब्दहरू थप्नुहोस्।"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"अनलक वा आपतकालीन कल गर्न मेनु थिच्नुहोस्।"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"अनलक गर्न मेनु थिच्नुहोस्।"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"अनलक गर्नु ढाँचा खिच्नुहोस्"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"आपतकालीन कलहरू"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"कलमा फर्किनुहोस्"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"सही!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"फेरि प्रयास गर्नुहोस्"</string>
@@ -1041,29 +1035,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"उम्मेदवार"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB भण्डारणको तयारी हुँदै"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD कार्ड तयार गर्दै"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"त्रुटिहरूको लागि जाँच गर्दै।"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"रिक्त USB भण्डारण"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"खाली SD कार्ड"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB भण्डारण खाली वा असमर्थित फाइल प्रणाली छ।"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD कार्ड खाली छ अथवा समर्थन नगरिएको फाइल प्रणाली छ।"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"बिग्रिएको USB भण्डारण"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"बिग्रिएको SD कार्ड"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB भण्डारण बिग्रिएको छ। यसलाई पुनःफर्म्याट गर्न प्रयास गर्नुहोस।"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD कार्ड बिग्रिएको छ। यसलाई पुनःफर्म्याट गर्न प्रयास गर्नुहोस।"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB भण्डारण अप्रत्याशित रूपमा हटाइएको छ"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD कार्ड अनपेक्षित रूपमा हटाइयो"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"डेटा गुम्नबाट रोक्नको लागि USB भण्डारण हटाउनुअघि अनमाउन्ट गर्नुहोस्।"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"डेटा नाश हुनबाट बच्न SD कार्डलाई निकाल्नुभन्दा पहिला अनमाउन्ट गर्नुहोस्।"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB भण्डारण हटाउनको लागि सुरक्षित छ"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD कार्ड हटाउन सुरक्षित छ।"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"तपाईं सुरक्षित रूपमा USB भण्डारण हटाउन सक्नुहुने छ।"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"तपाईँ SD कार्ड सुरक्षित रूपमा हटाउन सक्नु हुन्छ।"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB भण्डारण हटाइयो"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"हटाइएको SD कार्ड"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USD भण्डारण हटाइयो। नयाँ मिडिया घुसाउनुहोस्।"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD कार्ड हटाइयो। एउटा नयाँ छिराउनुहोस्।"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"कुनै मिल्ने गतिविधि पाइएन।"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"मिडिया परिणाम दिशानिर्देश गर्नुहोस्"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"मिडिया परिणामलाई अन्य बाहिरी उपकरणहरूसँग लैजानको लागि अनुप्रयोगलाई अनुमति दिन्छ।"</string>
@@ -1258,7 +1259,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"आवरण #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", सुरक्षित"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"आपतकालीन कल"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ढाँचा बिर्सनु भयो"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"गलत ढाँचा"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"गलत पासवर्ड"</string>
@@ -1433,7 +1433,7 @@
<string name="lock_to_app_unlock_pin" msgid="2552556656504331634">"पिन निकाल्नुअघि PIN सोध्नुहोस्"</string>
<string name="lock_to_app_unlock_pattern" msgid="4182192144797225137">"पिन निकाल्नुअघि खोल्ने रूपरेखा सोध्नुहोस्"</string>
<string name="lock_to_app_unlock_password" msgid="6380979775916974414">"पिन निकाल्नुअघि पासवर्ड सोध्नुहोस्"</string>
- <string name="package_installed_device_owner" msgid="8420696545959087545">"तपाईँको प्रशासकले स्थापना गरिएको"</string>
+ <string name="package_installed_device_owner" msgid="8420696545959087545">"तपाईँको प्रशासकद्वारा स्थापना गरिएको"</string>
<string name="package_deleted_device_owner" msgid="7650577387493101353">"तपाईँको प्रशासकद्वारा हटाइएको"</string>
<string name="battery_saver_description" msgid="1960431123816253034">"ब्याट्रीको आयु सुधार्न, ब्याट्री रक्षकले तपाईँको यन्त्रको कार्यसम्पादन घटाउँछ र भाइब्रेसन, स्थान सेवा र बहुसंख्यक पृष्ठभूमि डेटा सीमित गर्दछ। इमेल, सन्देश, र अन्य अनुप्रयोगहरू जुन सिङ्कमा भर पर्छन् अद्यावधिक नहुन सक्छन् जबसम्म तपाईँ तिनीहरूलाई खोल्नुहुन्न\n\n ब्याट्री रक्षक स्वत: निस्कृय हुन्छ जब तपाईँको यन्त्र चार्ज हुँदै हुन्छ।"</string>
<plurals name="zen_mode_duration_minutes_summary" formatted="false" msgid="4367877408072000848">
@@ -1473,5 +1473,5 @@
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
<string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB परिधीय पोर्ट"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"थप विकल्पहरू"</string>
- <string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"अतिप्रवाह बन्द गर्नुहोस्"</string>
+ <string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"ओभरफ्लो बन्द गर्नुहोस्"</string>
</resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 221b918..9e876a0 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android-systeem"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Persoonlijke apps"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Werk"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contacten"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"toegang krijgen tot uw contacten en wijzigingen aanbrengen"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Locatie"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"toegang krijgen tot uw locatie"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Uw sociale informatie"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Rechtstreeks toegang krijgen tot informatie over uw contacten en sociale connecties."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"toegang krijgen tot uw agenda en wijzigingen aanbrengen"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"Sms"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"toegang krijgen tot sms en wijzigingen aanbrengen"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Gebruikerswoordenboek"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Woorden lezen of schrijven in gebruikerswoordenboek."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bladwijzers en geschiedenis"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Rechtstreeks toegang krijgen tot bladwijzers en browsergeschiedenis."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Microfoon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"microfoon van apparaat gebruiken"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Camera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"camera van apparaat gebruiken"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefoon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"telefoonfuncties van apparaat gebruiken"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensoren"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"toegang krijgen tot sensoren en wearables"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Inhoud van vensters ophalen"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"De inhoud inspecteren van een venster waarmee u interactie heeft."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Verkennen via aanraking inschakelen"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Gedeeltelijke vingerafdruk gedetecteerd. Probeer het opnieuw."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Kan vingerafdruk niet verwerken. Probeer het opnieuw."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"De vingerafdruksensor moet worden schoongemaakt. Probeer het daarna opnieuw."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Vinger te snel bewogen. Probeer het opnieuw."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Vinger te langzaam bewogen. Probeer het opnieuw."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Kan niet verwerken. Probeer het opnieuw."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware niet beschikbaar."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Vingerafdruk kan niet worden opgeslagen. Verwijder een bestaande vingerafdruk."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Time-out bereikt voor vingerafdruk. Probeer het opnieuw."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Time-out bereikt voor vingerafdruk. Probeer het opnieuw."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"synchronisatie-instellingen lezen"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Hiermee kan een app de synchronisatie-instellingen aanpassen voor een account. Deze toestemming kan bijvoorbeeld worden gebruikt om synchronisatie van de app Personen in te schakelen voor een account."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"synchronisatiestatistieken lezen"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Hiermee kan een app de synchronisatiestatistieken voor een account lezen, inclusief de geschiedenis van synchronisatie-activiteiten en hoeveel gegevens zijn gesynchroniseerd."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"geabonneerde feeds schrijven"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Hiermee kan de app uw momenteel gesynchroniseerde feeds aanpassen. Schadelijke apps kunnen uw gesynchroniseerde feeds wijzigen."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"termen lezen die u heeft toegevoegd aan het woordenboek"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Hiermee kan de app alle woorden, namen en woordcombinaties lezen die de gebruiker heeft opgeslagen in het gebruikerswoordenboek."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"woorden toevoegen aan het gebruikerswoordenboek"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Druk op \'Menu\' om te ontgrendelen of noodoproep te plaatsen."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Druk op \'Menu\' om te ontgrendelen."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Patroon tekenen om te ontgrendelen"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Noodoproep"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Terug naar gesprek"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Juist!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Opnieuw proberen"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidaten"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB-opslag voorbereiden"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD-kaart voorbereiden"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Controleren op fouten."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Lege USB-opslag"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Lege SD-kaart"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB-opslag is leeg of heeft een niet-ondersteund bestandssysteem."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD-kaart is leeg of heeft een niet-ondersteund bestandssysteem."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB-opslag beschadigd"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Beschadigde SD-kaart"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB-opslag is beschadigd. Probeer deze opnieuw te formatteren."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD-kaart is beschadigd. Probeer deze opnieuw te formatteren."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-opslag onverwachts verwijderd"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD-kaart onverwachts verwijderd"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Ontkoppel de USB-opslag voordat u deze verwijdert om gegevensverlies te voorkomen."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Ontkoppel de SD-kaart voordat u deze verwijdert om gegevensverlies te voorkomen."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB-opslag veilig verwijderen"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"De SD-kaart kan veilig worden verwijderd"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"U kunt de USB-opslag veilig verwijderen."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"U kunt de SD-kaart veilig verwijderen."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB-opslag verwijderd"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD-kaart is verwijderd"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB-opslag verwijderd. Plaats nieuw medium."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD-kaart verwijderd. Plaats een nieuwe."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Controleren op fouten"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Geen overeenkomende activiteiten gevonden."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Media-uitvoer aansturen"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Hiermee kan een app media-uitvoer naar andere externe apparaten doorsturen."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", beveiligd"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Noodoproep"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Patroon vergeten"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Onjuist patroon"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Onjuist wachtwoord"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Tot <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Totdat u dit uitschakelt"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Samenvouwen"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Onderbrekingen blokkeren"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Downtime"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Doordeweekse avonden"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Weekends"</string>
<string name="muted_by" msgid="6147073845094180001">"Gedempt door <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Er is een intern probleem met uw apparaat. Het apparaat kan instabiel zijn totdat u het apparaat terugzet naar de fabrieksinstellingen."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Er is een intern probleem met uw apparaat. Neem contact op met de fabrikant voor meer informatie."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS-verzoek is gewijzigd in DIAL-verzoek."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS-verzoek is gewijzigd in USSD-verzoek."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS-verzoek is gewijzigd in nieuw SS-verzoek."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Poort voor Android-USB-randapparatuur"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Poort voor USB-randapparatuur"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Meer opties"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Overloop sluiten"</string>
</resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 8c6805e..7a13e98 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -220,42 +220,28 @@
<string name="android_system_label" msgid="6577375335728551336">"System Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Aplikacje osobiste"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Praca"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontakty"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"dostęp do kontaktów i ich modyfikowanie"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Lokalizacja"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"dostęp do informacji o Twojej lokalizacji"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Twoje informacje społecznościowe"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Bezpośredni dostęp do informacji o Twoich kontaktach i powiązaniach społecznościowych."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendarz"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"otwieranie i modyfikowanie Twojego kalendarza"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"dostęp do SMS-ów i ich modyfikowanie"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Słownik użytkownika"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Odczytywanie lub zapisywanie słów w słowniku użytkownika."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Zakładki i historia"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Bezpośredni dostęp do zakładek i historii przeglądarki."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"używanie mikrofonu urządzenia"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Aparat"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"używanie aparatu fotograficznego urządzenia"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"korzystanie z funkcji telefonu urządzenia"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Czujniki"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"dostęp do czujników i akcesoriów do noszenia"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Pobieranie zawartości okna"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Sprawdzanie zawartości okna, z którego korzystasz."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Włączenie czytania dotykiem"</string>
@@ -445,15 +431,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Odcisk palca został odczytany tylko częściowo. Spróbuj ponownie."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Nie udało się przetworzyć linii papilarnych. Spróbuj ponownie."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Czytnik linii papilarnych jest zabrudzony. Wyczyść go i spróbuj ponownie."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Palec został uniesiony zbyt szybko. Spróbuj ponownie."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Palec został przesunięty zbyt wolno. Spróbuj ponownie."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Nie można przetworzyć. Spróbuj ponownie."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Czytnik jest niedostępny."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Nie można zapisać odcisku palca. Usuń istniejący odcisk palca."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Osiągnięto limit czasu odczytu linii papilarnych. Spróbuj ponownie."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Osiągnięto limit czasu odczytu linii papilarnych. Spróbuj ponownie."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"czytanie ustawień synchronizacji"</string>
@@ -462,6 +454,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Pozwala aplikacji na modyfikowanie ustawień synchronizacji z kontem. Tego uprawnienia można użyć np. do włączenia synchronizacji z kontem aplikacji Ludzie."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"czytanie statystyk dotyczących synchronizowania"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Pozwala aplikacji na czytanie statystyk synchronizacji konta, w tym historii zdarzeń synchronizacji oraz ilości zsynchronizowanych danych."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"zapisywanie subskrybowanych źródeł"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Pozwala aplikacji na zmianę obecnie zsynchronizowanych kanałów. Złośliwe aplikacje mogą zmienić zsynchronizowane kanały."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"odczytywanie terminów dodanych do słownika"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Pozwala aplikacji na odczytywanie wszelkich słów, nazw i wyrażeń zapisanych w słowniku użytkownika."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"dodawanie wyrazów do słownika zdefiniowanego przez użytkownika"</string>
@@ -636,7 +630,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Naciśnij Menu, aby odblokować lub wykonać połączenie alarmowe."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Naciśnij Menu, aby odblokować."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Narysuj wzór, aby odblokować"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Połączenie alarmowe"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Powrót do połączenia"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Poprawnie!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Spróbuj ponownie."</string>
@@ -1048,29 +1043,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" AĄBCĆDEĘFGHIJKLŁMNŃOÓPQRSŚTUVWXYZŹŻ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandydaci"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Przygotowywanie nośnika USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Przygotowywanie karty SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Sprawdzanie w poszukiwaniu błędów."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Pusty nośnik USB"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Pusta karta SD"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Nośnik USB jest pusty lub zawiera nieobsługiwany system plików."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Karta SD jest pusta lub zawiera nieobsługiwany system plików."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Uszkodzony nośnik USB"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Uszkodzona karta SD"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Nośnik USB jest uszkodzony. Spróbuj go sformatować."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Karta SD jest uszkodzona. Spróbuj ją sformatować."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Nośnik USB został nagle wyjęty"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Karta SD została nieoczekiwanie wyjęta"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Odłącz nośnik USB przed jego wyjęciem, aby uniknąć utraty danych."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Odłącz kartę SD przed jej wyjęciem, aby uniknąć utraty danych."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Można wyjąć nośnik USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Można bezpiecznie usunąć kartę SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Możesz bezpiecznie wyjąć nośnik USB."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Możesz bezpiecznie wyjąć kartę SD."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Wyjęto nośnik USB"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Usunięta karta SD"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Nośnik USB został wyjęty. Włóż nowy nośnik."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Karta SD została wyjęta. Włóż nową kartę."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Sprawdzanie w poszukiwaniu błędów"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Nie znaleziono pasujących działań."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Kierowanie wyjścia multimediów"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Pozwala aplikacji na kierowanie wyjściowych danych multimedialnych do innych urządzeń zewnętrznych."</string>
@@ -1267,7 +1268,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Nakładka nr <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", bezpieczny"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Połączenie alarmowe"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nie pamiętam wzoru"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nieprawidłowy wzór"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Nieprawidłowe hasło"</string>
@@ -1473,17 +1473,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Dopóki nie wyłączysz"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Zwiń"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blokuj powiadomienia"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Powiadomienia wyłączone"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Noce poza weekendem"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Weekendy"</string>
<string name="muted_by" msgid="6147073845094180001">"Ściszone przez: <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"W Twoim urządzeniu wystąpił problem wewnętrzny. Może być ono niestabilne, dopóki nie przywrócisz danych fabrycznych."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"W Twoim urządzeniu wystąpił problem wewnętrzny. Skontaktuj się z jego producentem, by otrzymać szczegółowe informacje."</string>
@@ -1493,13 +1488,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Żądanie SS zostało zmienione na żądanie DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Żądanie SS zostało zmienione na żądanie USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Żądanie SS zostało zmienione na nowe żądanie SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Port peryferyjny USB na urządzeniu z Androidem"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
- <!-- no translation found for floating_toolbar_open_overflow_description (4797287862999444631) -->
- <skip />
- <!-- no translation found for floating_toolbar_close_overflow_description (559796923090723804) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Port peryferyjny USB"</string>
+ <string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Więcej opcji"</string>
+ <string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Zamknij rozszerzony pasek"</string>
</resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 221364f..7579ee9 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Aplicações pessoais"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Trabalho"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contactos"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"aceder e modificar os contactos"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Localização"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"aceder à sua localização"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"As suas informações sociais"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acesso direto às informações sobre os seus contactos e ligações sociais."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendário"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"aceder e modificar o calendário"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"aceder e modificar SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dicionário do Utilizador"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Ler ou escrever palavras no dicionário do utilizador."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Marcadores e Histórico"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acesso direto aos marcadores e histórico do navegador."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Microfone"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"utilizar o microfone do dispositivo"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Câmara"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"utilizar a câmara do dispositivo"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telemóvel"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"utilizar a telefonia do dispositivo"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensores"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"aceder a sensores e a dispositivos de vestir"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Obter conteúdo da janela"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecionar o conteúdo de uma janela com a qual está a interagir."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Ativar Explorar Através do Toque"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Impressão digital detetada. Tente novamente."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Não foi possível processar a impressão digital. Tente novamente."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impressões digitais está sujo. Limpe-o e tente novamente."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"O dedo moveu-se demasiado rápido. Tente novamente."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"O dedo moveu-se demasiado devagar. Tente novamente."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Não é possível processar. Tente novamente."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware não disponível."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Não é possível armazenar a impressão digital. Remova uma impressão digital existente."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Foi atingido o limite de tempo da impressão digital. Tente novamente."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Foi atingido o limite de tempo da impressão digital. Tente novamente."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"ler definições de sincronização"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite que uma aplicação modifique as definições de sincronização de uma conta. Por exemplo, pode ser utilizada para ativar a sincronização da aplicação Pessoas com uma conta."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"ler estatísticas de sincronização"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite que uma aplicação leia o estado de sincronização de uma conta, incluindo o histórico de eventos de sincronização e a quantidade de dados sincronizados."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"escrever feeds subscritos"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Permite à aplicação modificar os feeds atualmente sincronizados. Isto pode permitir a uma aplicação maliciosa alterar os seus feeds sincronizados."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"ler os termos adicionados ao dicionário"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Permite que a aplicação leia todas as palavras, nomes e expressões que o utilizador possa ter guardado no dicionário do utilizador."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"adicionar palavras ao dicionário definido pelo utilizador"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Prima Menu para desbloquear ou efectuar uma chamada de emergência."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Prima Menu para desbloquear."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Desenhar padrão para desbloquear"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Chamada de emergência"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Regressar à chamada"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tentar novamente"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidatos"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Preparar armazenamento USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"A preparar cartão SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"A verificar a presença de erros."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Armazenamento USB vazio"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Cartão SD vazio"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"A memória de armazenamento USB está vazia ou tem um sistema de ficheiros não suportado."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"O cartão SD está vazio ou tem um sistema de ficheiros não suportado."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Armazenamento USB danificado"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Cartão SD danificado"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"A memória de armazenamento USB está danificada. Tente reformatá-la."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"O cartão SD está danificado. Tente reformatá-lo."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Armaz. USB removido inesperad."</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Cartão SD removido de forma inesperada"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Desmonte o armazenamento USB antes de removê-lo para evitar a perda de dados."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Desmonte o cartão SD antes de retirá-lo para evitar a perda de dados."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Seguro remover armaz. USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"É seguro retirar o cartão SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Pode remover o armazenamento USB com segurança."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Pode remover o cartão SD com segurança."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Armazenamento USB removido"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Cartão SD removido"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"O armazenamento USB foi removido. Insira um novo suporte de dados."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Cartão SD removido. Insira um novo cartão."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"A verificar a presença de erros"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Não foi encontrada nenhuma atividade correspondente."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Encaminhar saída de som multimédia"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Permite que a aplicação encaminhe a saída de som multimédia para outros dispositivos externos."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Sobreposição #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> ppp"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", protegido"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Chamada de emergência"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueceu-se da Sequência"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Sequência Incorreta"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Palavra-passe Incorreta"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Até às <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Até que o utilizador desative"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Reduzir"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Bloquear interrupções"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Período de inatividade"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Noites de dias úteis"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Fins de semana"</string>
<string name="muted_by" msgid="6147073845094180001">"Som desativado por <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Existe um problema interno no seu dispositivo e pode ficar instável até efetuar uma reposição de dados de fábrica."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Existe um problema interno no seu dispositivo. Contacte o fabricante para obter mais informações."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"O pedido SS foi modificado para um pedido DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"O pedido SS foi modificado para um pedido USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"O pedido SS foi modificado para um novo pedido SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Porta periférica USB para Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Porta periférica USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Mais opções"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Fechar excesso"</string>
</resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 0f0965b..f23de25 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistema Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Apps pessoais"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Trabalho"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Contatos"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"acessar e modificar seus contatos"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Local"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"acessar seu local"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Suas informações sociais"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acesso direto às informações de seus contatos e conexões sociais."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Agenda"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"acessar e modificar sua agenda"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"acessar e modificar SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dicionário do usuário"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Ler ou escrever as palavras do dicionário do usuário."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Favoritos e histórico"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acesso direto aos favoritos e histórico do navegador."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Microfone"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"usar o microfone do dispositivo"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Câmera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"usar a câmera do dispositivo"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefone"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"usar a telefonia do dispositivo"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensores"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"acessar sensores e wearables"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperar cont. da janela"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspecionar o conteúdo da janela com que você está interagindo."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Ativar Explorar por toque"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Impressão digital parcial detectada. Tente novamente."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Não foi possível processar a impressão digital. Tente novamente."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"O sensor de impressão digital está sujo. Limpe-o e tente novamente."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"O dedo foi retirado rápido demais. Tente novamente."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"O movimento do dedo está muito lento. Tente novamente."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Não foi possível concluir o processo. Tente novamente."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware indisponível."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Não foi possível armazenar a impressão digital. Remova uma impressão digital já existente."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Tempo máximo para captura da impressão digital atingido. Tente novamente."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Tempo máximo para captura da impressão digital atingido. Tente novamente."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"ler as configurações de sincronização"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite que o app modifique as configurações de sincronização de uma conta. Por exemplo, pode ser usado para ativar a sincronização do app People com uma conta."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"ler estatísticas de sincronização"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite que um app acesse as estatísticas de sincronização de uma conta, incluindo a história dos eventos de sincronização e a quantidade de dados sincronizados."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"gravar feeds inscritos"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Permite que o app modifique seus feeds sincronizados no momento. Apps maliciosos podem alterar seus feeds sincronizados."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"ler termos adicionados ao dicionário"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Permite que o app leia palavras, nomes e frases armazenados pelo usuário no dicionário do usuário."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"adicionar palavras ao dicionário do usuário"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Pressione Menu para desbloquear ou fazer uma chamada de emergência."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Pressione Menu para desbloquear."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Desenhe o padrão para desbloquear"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Chamada de emergência"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Retornar à chamada"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correto!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tente novamente"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidatos"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Preparando armazenamento USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Preparando o cartão SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Procurando erros."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Armazenamento USB vazio"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Cartão SD em branco"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"O armazenamento USB está vazio ou possui sistema de arquivos incompatível."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"O cartão SD está vazio ou possui sistema de arquivos incompatível."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Armazenamento USB danificado"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Cartão SD danificado"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"O armazenamento USB está danificado. Tente reformatá-lo."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"O cartão SD está danificado. Tente reformatá-lo."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Armaz. USB remov. inesperad."</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Cartão SD removido inesperadamente."</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Desconecte o armazenamento USB antes da remoção para evitar a perda de dados."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Desmonte o cartão SD antes da remoção para evitar a perda de dados."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"É seguro remover armaz. USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"O cartão SD já pode ser removido com segurança."</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Você pode remover com segurança o armazenamento USB."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Você pode remover o cartão SD com segurança."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Armazenamento USB removido"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Cartão SD removido"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Armazenamento USB removido. Insira nova mídia."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Cartão SD removido. Insira um novo."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Procurando erros"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Nenhum atividade correspondente foi encontrada."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Rotear saída de mídia"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Permite que um app faça o roteamento de saída de mídia para outros dispositivos externos."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Sobreposição nº <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", seguro"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Chamada de emergência"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueci o padrão"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Padrão incorreto"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Senha incorreta"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Até às <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Até você desativar"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Recolher"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Bloquear interrupções"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Tempo de inatividade"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Noites em dias úteis"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Finais de semana"</string>
<string name="muted_by" msgid="6147073845094180001">"Som desativado por <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Há um problema interno com seu dispositivo. Ele pode ficar instável até que você faça a redefinição para configuração original."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Há um problema interno com seu dispositivo. Entre em contato com o fabricante para saber mais detalhes."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"A solicitação SS foi modificada para a solicitação DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"A solicitação SS foi modificada para a solicitação USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"A solicitação SS foi modificada para a nova solicitação SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Porta USB periférica Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Porta USB periférica"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Mais opções"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Fechar barra flutuante"</string>
</resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 41ab078..2fee857 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -219,42 +219,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistemul Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Aplicații personale"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Serviciu"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Persoane de contact"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"accesează și modifică persoanele de contact"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Locație"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"accesează locația dvs."</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Informaţiile dvs. sociale"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Acces direct la informaţii despre persoanele de contact și conexiunile dvs. sociale."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendarul"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"accesează și modifică calendarul"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"accesează și modifică mesajele SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Dicţionarul utilizatorului"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Citește sau scrie cuvinte în dicționarul utilizatorului."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Marcajele și Istoricul"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Acces direct la marcaje și la istoricul navigării."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Microfonul"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"folosește microfonul dispozitivului"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Camera foto"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"folosește camera foto a dispozitivului"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"folosește serviciul de telefonie al dispozitivului"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Senzori"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"accesează senzorii și accesoriile inteligente"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Recuperează conținutul ferestrei"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Inspectează conținutul unei ferestre cu care interacționați."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Activează funcția Explorați prin atingere"</string>
@@ -444,15 +430,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"S-a detectat parțial amprenta. Încercați din nou."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Amprenta nu a putut fi procesată. Încercați din nou."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Senzorul pentru amprente este murdar. Curățați-l și încercați din nou."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Ați mișcat degetul prea repede. Încercați din nou."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Ați mișcat degetul prea încet. Încercați din nou."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Nu se poate procesa. Încercați din nou."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardware-ul nu este disponibil."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Amprenta nu poate fi stocată. Eliminați o amprentă existentă."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Timpul pentru amprentare a expirat. Încercați din nou."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Timpul pentru amprentare a expirat. Încercați din nou."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"citire setări sincronizare"</string>
@@ -461,6 +453,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Permite unei aplicații să modifice setările de sincronizare ale unui cont. De exemplu, cu această permisiune aplicația poate activa sincronizarea aplicației Persoane cu un anumit cont."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"citire statistici privind sincronizarea"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Permite unei aplicații să citească statisticile de sincronizare ale unui cont, inclusiv istoricul evenimentelor de sincronizare și volumul datelor sincronizate."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"scriere feeduri abonat"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Permite aplicației să modifice fluxurile sincronizate curent. Aplicaţiile rău intenţionate pot să modifice fluxurile sincronizate."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"citeşte termenii adăugaţi în dicţionar"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Permite aplicației să citească toate cuvintele, numele și expresiile stocate în dicţionarul utilizatorului."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"adaugă cuvinte în dicţionarul definit de utilizator"</string>
@@ -635,7 +629,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Apăsaţi Meniu pentru a debloca sau pentru a efectua apeluri de urgenţă."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Apăsaţi Meniu pentru deblocare."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Desenaţi modelul pentru a debloca"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Apel de urgenţă"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Reveniţi la apel"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Corect!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Încercaţi din nou"</string>
@@ -1041,29 +1036,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidaţi"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Se pregăteşte stocarea USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Se pregăteşte cardul SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Se verifică erorile."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Stocare USB goală"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Card SD gol"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Stocarea USB este goală sau are un sistem de fişiere neacceptat."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Cardul SD este gol sau are un sistem de fişiere neacceptat."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Stocare USB deteriorată"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Card SD deteriorat"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Stocarea USB este deteriorată. Încercaţi să o reformataţi."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Cardul SD este deteriorat. Încercaţi să îl reformataţi."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Stoc. USB elim. în mod neaşt."</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Card SD eliminat în mod neaşteptat"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Demontaţi stocarea USB înaintea eliminării, pentru a evita pierderea datelor."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Pentru a evita pierderea datelor, demontaţi cardul SD înainte de a-l extrage."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Puteţi elim. în sig. stoc. USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Se poate extrage cardul SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Puteţi elimina în siguranţă stocarea USB."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Puteţi extrage cardul SD în siguranţă."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Stocarea USB a fost eliminată"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Card SD extras"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Stocarea USB a fost eliminată. Inseraţi mediu de stocare nou."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Card SD extras. Inseraţi un card nou."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Nu s-a găsit nicio activitate potrivită."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Direcţionează rezultatele media"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Permite unei aplicații să direcţioneze rezultate media către alte dispozitive externe."</string>
@@ -1259,7 +1261,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Suprapunerea <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", securizat"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Apel de urgenţă"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Model uitat"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Model greşit"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Parolă greşită"</string>
@@ -1460,17 +1461,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Până la <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Până la dezactivare"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Restrângeți"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blocați întreruperile"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Inactivitate"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Serile zilelor lucrătoare"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Weekenduri"</string>
<string name="muted_by" msgid="6147073845094180001">"Dezactivate de <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"A apărut o problemă internă pe dispozitiv, iar acesta poate fi instabil până la revenirea la setările din fabrică."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"A apărut o problemă internă pe dispozitiv. Pentru detalii, contactați producătorul."</string>
@@ -1480,11 +1476,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Solicitarea SS este modificată într-o solicitare DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Solicitarea SS este modificată într-o solicitare USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Solicitarea SS este modificată într-o nouă solicitare SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Port USB Android periferic"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Port USB periferic"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Mai multe opțiuni"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Închideți meniul suplimentar"</string>
</resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 0a86298..9bafb16 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -220,42 +220,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Система Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Персональные приложения"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Работа"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Контакты"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"доступ к контактам и внесение в них изменений"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Местоположение"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"доступ к данным о местоположении"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Информация о моих контактах"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Прямой доступ к информации о моих контактах и социальных связях."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Календарь"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"доступ к календарю и внесение в него изменений"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"доступ к SMS и внесение в них изменений"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Пользовательский словарь"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Чтение слов в пользовательском словаре или их запись."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Закладки и история"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Прямой доступ к закладкам и истории браузера."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"доступ к микрофону устройства"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"доступ к камере устройства"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Телефон"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"доступ к телефонной сети"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Датчики"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"доступ к датчикам и носимым устройствам"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Читать содержимое окна."</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Распознавать содержимое окна, в котором вы находитесь."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Включать аудиоподсказки."</string>
@@ -445,15 +431,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Отсканирована только часть пальца. Повторите попытку."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Не удалось распознать отпечаток. Повторите попытку."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Очистите сканер и повторите попытку."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Вы слишком быстро убрали палец. Повторите попытку."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Вы слишком долго удерживали палец. Повторите попытку."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Не удалось распознать отпечаток. Повторите попытку."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Сканер недоступен."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Чтобы сохранить новый отпечаток, удалите существующий."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Превышено время ожидания. Повторите попытку."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Превышено время ожидания. Повторите попытку."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"Просмотр настроек синхронизации"</string>
@@ -462,6 +454,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Приложение сможет изменять настройки синхронизации аккаунта. Например, с помощью этого разрешения можно включить в аккаунте синхронизацию контактов."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"Просмотр статистики синхронизации"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Приложение сможет просматривать статистику синхронизации аккаунта, в том числе историю событий и объем синхронизированных данных."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"Изменение данных о фидах пользователя"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Приложение сможет изменять фиды, синхронизируемые в настоящее время. Вредоносные программы смогут изменять синхронизированные фиды."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"Просмотр добавленных в словарь слов"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Приложение получит доступ ко всем словам и фразам, которые хранятся в пользовательском словаре."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"Добавление слов в словарь пользователя"</string>
@@ -636,7 +630,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Нажмите \"Меню\", чтобы разблокировать экран или вызвать службу экстренной помощи."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Для разблокировки нажмите \"Меню\"."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Введите графический ключ"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Экстренный вызов"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Вернуться к вызову"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правильно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Повторите попытку"</string>
@@ -1048,29 +1043,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"варианты"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Подготовка USB-накопителя"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Подготовка карты SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Проверка ошибок."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Пустой USB-накопитель"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Пустая карта SD"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"На USB-накопителе нет данных, или его файловая система не поддерживается."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"На SD-карте нет данных, или ее файловая система не поддерживается."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB-накопитель поврежден"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Поврежденная карта SD"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB-накопитель поврежден. Попробуйте отформатировать его."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD-карта повреждена. Попробуйте отформатировать ее."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Накопитель неожиданно отключен"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Карта SD неожиданно извлечена"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Перед извлечением USB-накопителя отключите его во избежание потери данных."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Перед извлечением карты SD отключите ее во избежание потери данных."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB-накопитель можно отключить"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Безопасное удаление карты SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Теперь USB-накопитель может быть безопасно отключен."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Можно безопасно извлечь SD-карту."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB-накопитель отключен"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Отсутствует карта SD"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB-накопитель отключен. Вставьте другой накопитель."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD-карта извлечена. Вставьте новую карту."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Поиск ошибок"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Подходящих действий не найдено."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Перенаправление мультимедийных данных"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Приложение сможет направлять поток мультимедиа на другие внешние устройства."</string>
@@ -1267,7 +1268,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Наложение № <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> х <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> тчк/дюйм"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", безопасный"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Экстренный вызов"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Забыли графический ключ?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Неправильный графический ключ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Неправильный пароль"</string>
@@ -1473,17 +1473,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"До <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Пока я не отключу"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Блокировать уведомления"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Режим уведомления"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Будние вечера"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Выходные дни"</string>
<string name="muted_by" msgid="6147073845094180001">"Звук отключен приложением \"<xliff:g id="THIRD_PARTY">%1$s</xliff:g>\""</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Произошла внутренняя ошибка, и устройство может работать нестабильно, пока вы не выполните сброс настроек."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Произошла внутренняя ошибка. Обратитесь к производителю устройства за подробными сведениями."</string>
@@ -1493,13 +1488,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS-запрос преобразован в DIAL-запрос."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS-запрос преобразован в USSD-запрос."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS-запрос преобразован в новый SS-запрос."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Внешний USB-порт Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
- <!-- no translation found for floating_toolbar_open_overflow_description (4797287862999444631) -->
- <skip />
- <!-- no translation found for floating_toolbar_close_overflow_description (559796923090723804) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Внешний USB-порт"</string>
+ <string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Ещё"</string>
+ <string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Закрыть дополнительное меню"</string>
</resources>
diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml
index 04cc98c..2f0181c 100644
--- a/core/res/res/values-si-rLK/strings.xml
+++ b/core/res/res/values-si-rLK/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android පද්ධතිය"</string>
<string name="user_owner_label" msgid="6465364741001216388">"පුද්ගලික යෙදුම්"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"කාර්යාලය"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"සම්බන්ධතා"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"ඔබේ සම්බන්ධතා ප්‍රවේශ කරන්න සහ වෙනස් කරන්න"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"ස්ථානය"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"ඔබගේ ස්ථානය ප්‍රවේශ කිරීම"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ඔබගේ සමාජයීය තොරතුරු"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"ඔබගේ සම්බන්ධතා සහ සාමාජ සම්බන්ධයන් ගැන තොරතුරු වෙත ඍජු ප්‍රවේශය."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"දින දර්ශනය"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"ඔබේ දින දර්ශනය ප්‍රවේශ කරන්න සහ වෙනස් කරන්න"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"කෙටි පණිවිඩ"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"කෙටි පණිවුඩ ප්‍රවේශ කිරීම සහ වෙනස් කිරීම"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"පරිශීලක ශබ්ද කෝෂය"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"පරිශීලක ශබ්ද කෝෂයේ වචන කියවීම සහ ලිවිම."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"පිටුසන් සහ ඉතිහාසය"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"පිටුසන් සහ බ්‍රව්සර ඉතිහාසය වෙත ඍජු ප්‍රවේශය."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"මයික්‍රොෆෝනය"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"උපාංග මයික්‍රෝෆෝනය භාවිතය"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"කැමරාව"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"උපාංග කැමරා භාවිතය"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"දුරකථනය"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"උපාංග දුරකථන භාවිතය"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"සංවේදක"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"සංවේදක සහ පැළඳිය හැකි උපාංග ප්‍රවේශ කරන්න"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"කවුළු අන්න්තර්ගතය ලබාගන්න"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ඔබ අන්තර්ක්‍රියාකාරී වන කවුළුවේ අන්තර්ගතය පරීක්ෂා කරන්න."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"ස්පර්ශයෙන් ගවේෂණය සක්‍රිය කරන්න"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"ඇඟිලි සලකුණ අඩ වශයෙන් අනාවරණය කර ගැනිණි. කරුණාකර නැවත උත්සාහ කරන්න."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ඇඟිලි සලකුණ පිරිසැකසීමට නොහැකි විය. කරුණාකර නැවත උත්සාහ කරන්න."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"ඇඟිලි සලකුණු සංවේදකය අපිරිසිදුයි. කරුණාකර පිරිසිදු කර නැවත උත්සාහ කරන්න."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"ඇඟිල්ල වේගයෙන් ගෙනයන ලදි. කරුණාකර නැවත උත්සාහ කරන්න."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"ඇඟිල්ල සෙමින් ගෙන යන ලදී. කරුණාකර නැවත උත්සාහ කරන්න."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"ක්‍රියාවලිය සම්පූර්ණ කිරීමට නොහැක. නැවත උත්සාහ කරන්න."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"දෘඪාංගය ලද නොහැකිය."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"ඇඟිලි සලකුණ ගබඩා කළ නොහැක. දැනට පවතින ඇඟිලි සලකුණක් ඉවත් කරන්න."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"ඇඟිලි සලකුණු කාල නිමාව ළඟා විය. නැවත උත්සාහ කරන්න."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"ඇඟිලි සලකුණු කාල නිමාව ළඟා විය. නැවත උත්සාහ කරන්න."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"සමමුහුර්ත සැකසීම් කියවන්න"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ගිණුම සඳහා සමමුහුර්ත සැකසීම් වෙනස් කිරීමට යෙදුමට අවසර දෙන්න. උදාහරණයක් ලෙස, ගිණුම සමඟ පුද්ගල යෙදුම සමමුහුර්ත කිරීම සක්‍රිය කිරීමට භාවිත කල හැක."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"සමමුහුර්ත කිරීමේ සංඛ්‍යාන කියවීම"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"සමමුහුර්ත කිරීමේ සිදුවීම් ඉතිහාසය සහ කෙතරම් දත්ත සමමුහුර්ත වී ඇතිදැයි ඇතුලත් ගිණුම සඳහා සමමුහුර්ත කිරීමේ සංඛ්‍යාන කියවීමට යෙදුමට අවසර දෙන්න."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"දායක වූ සංග්‍රහ ලිවීම"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"ඔබගේ වර්තමාන සමමුහුර්ත සංග්‍රහ වෙනස් කිරීමට යෙදුමට අවසර දෙන්න. ඔබගේ සමමුහුර්ත සංග්‍රහ අනිෂ්ට යෙදුම්වලින් වෙනස් කල හැක."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"ඔබ විසින් ශබ්දකෝෂයට ඇතුළත්කොට ඇති කොන්දේසි කියවීම"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"පරිශීලක ශබ්ද කෝෂයේ පරිශීලකයන් විසින් ගබඩා කර තිබිය හැකි වචන, නම්, වාක්‍යංශ කියවීමට යෙදුමට අවසර දෙන්න."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"පරිශීලකයින් අර්ථ දැක්වූ ශබ්ද කෝෂයට වචන එකතු කිරීම"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"අගුළු හැරීමට මෙනුව ඔබන්න හෝ හදිසි ඇමතුම ලබාගන්න."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"අගුළු හැරීමට මෙනු ඔබන්න."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"අගුළු ඇරීමට රටාව අඳින්න"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"හදිසි ඇමතුම්"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"ඇමතුම වෙත නැවත යන්න"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"නිවැරදියි!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"නැවත උත්සාහ කරන්න"</string>
@@ -1037,29 +1031,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"අපේක්ෂකයන්"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB ආචයනය සකසමින්"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD පත සුදානම් කරමින්"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"වැරදි සඳහා පරීක්ෂා කරමින්."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"හිස් USB ආචයනය"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"හිස් SD පත"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"SD පත හිස් හෝ සහාය නොදක්වන ගොනු පද්ධතියක් ඇත."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD පත හිස් හෝ සහය නොදක්වන ගොනු පද්ධතියක් ඇත"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"හානි වූ USB ආචයනය"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"හානි වූ SD පත"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB ආචයනයට හානි වී ඇත. එය නැවත ෆෝමැට් ගැන්වීමට උත්සහ කරන්න."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD පතට හානි වී ඇත. එය නැවත ෆෝමැට් ගැන්වීමට උත්සහ කරන්න."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"බලාපොරොත්තු නොවූ ලෙස USB ආචයනය ඉවත් කෙරිණි"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD පත බලාපොරොත්තු රහිතව ඉවත් කරන ලදි"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"දත්ත නැතිවීම වැළක්වීමට USB ආචයනය ඉවත්කිරීමට පෙර ගලවන්න."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"දත්ත නැතිවීම වැළක්වීමට ගැලවීමට කලින් SD පත ඉවත් කරන්න."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"ඉවත් කිරීමට USB ආචයනය ආරක්ෂිතයි"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD පත ඉවත් කිරීමට සුරක්ෂිතයි"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"ඔබට USB ආචයනය ආරක්ෂිතව ඉවත් කිරීමට පුළුවනි."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"ඔබට ආරක්ෂිතව SD පත ඉවත් කළ හැක"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB ආචයනය ඉවත් කරන ලදි"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD පත ඉවත් කර ඇත"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB ආචයනය ඉවත්කොට ඇත. අලුත් මාධ්‍යයක් ඇතුළත් කරන්න."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD පත ඉවත් කරන ලදි. අලුත් එකක් ඇතුළත් කරන්න."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"ගැලපෙන ක්‍රියාකාරකම් හමු නොවුණි."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"මාධ්‍ය ප්‍රතිදානයේ මාර්ගගත කිරීම"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"වෙනත් බාහිර උපාංග වෙත මාධ්‍ය ප්‍රතිදානය යැවීමට යෙදුමට අවසර දෙන්න."</string>
@@ -1254,7 +1255,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"උඩැතිරිය #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ආරක්‍ෂිත"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"හදිසි ඇමතුම"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"රටාව අමතකයි"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"වැරදි රටාවකි"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"වැරදි මුරපදය"</string>
@@ -1450,17 +1450,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> තෙක්"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"ඔබ මෙය අක්‍රිය කරන තුරු"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"බාධා අවහිර කරන්න"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"බිඳවැටුම් කාලය"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"සතියේ රාත්‍රි වල"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"සති අන්ත"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> විසින් නිශ්ශබ්ද කරන ලදි"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"ඔබේ උපාංගය සමගින් ගැටලුවක් ඇති අතර, ඔබේ කර්මාන්තශාලා දත්ත යළි සකසන තෙක් එය අස්ථායි විය හැකිය."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"ඔබේ උපාංගය සමගින් අභ්‍යන්තර ගැටලුවක් ඇත. විස්තර සඳහා ඔබේ නිෂ්පාදක අමතන්න."</string>
@@ -1470,11 +1465,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS ඉල්ලීම DIAL ඉල්ලීම වෙත විකරණය කරන ලදී."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS ඉල්ලීම USSD ඉල්ලීම වෙත විකරණය කරන ලදී."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS ඉල්ලීම නව DIAL ඉල්ලීම වෙත විකරණය කරන ලදී."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB පර්යන්ත තොට"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB පර්යන්ත තොට"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"තවත් විකල්ප"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"ඉතිරී යාම වසන්න"</string>
</resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 8eb0f40..0442115 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -220,42 +220,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Systém Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Osobné aplikácie"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Práca"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontakty"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"prístup ku kontaktom a ich úprava"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Poloha"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"prístup k polohe"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Vaše sociálne informácie"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Priamy prístup k informáciám o vašich kontaktoch a sociálnych prepojeniach."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendár"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"prístup ku kalendáru a jeho úprava"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"prístup k správam SMS a ich úprava"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Používateľský slovník"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Čítanie a zadávanie slov v používateľskom slovníku."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Záložky a história"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Priamy prístup k záložkám a histórii prehliadača."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofón"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"používanie mikrofónu zariadenia"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparát"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"používanie fotoaparátu zariadenia"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefón"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"používanie telefonických služieb zariadenia"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Senzory"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"prístup k senzorom a nositeľným zariadeniam"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Načítať obsah okna"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Preskúmať obsah okna s ktorým interagujete."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Zapnúť funkciu Preskúmanie dotykom"</string>
@@ -445,15 +431,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Podarilo sa rozpoznať iba časť odtlačku prsta. Skúste to znova."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Odtlačok prsta sa nepodarilo spracovať. Skúste to znova."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Snímač odtlačkov je špinavý. Vyčistite ho a skúste to znova."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Pohli ste prstom príliš rýchlo. Skúste to znova."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Pohli ste prstom príliš pomaly. Skúste to znova."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Došlo k chybe spracovania. Skúste to znova."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hardvér nie je k dispozícii"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Odtlačok prsta nie je možné uložiť. Odstráňte existujúci odtlačok."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Časový limit rozpoznania odtlačku vypršal. Skúste to znova."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Časový limit rozpoznania odtlačku vypršal. Skúste to znova."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"čítať nastavenia synchronizácie"</string>
@@ -462,6 +454,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Umožňuje aplikácii upraviť nastavenia synchronizácie v účte. Pomocou tohto povolenia je možné napríklad povoliť synchronizáciu aplikácie Ľudia s účtom."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"čítať štatistické údaje o synchronizácii"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Umožňuje aplikácii čítať štatistické informácie o synchronizácii v účte vrátane histórie uskutočnených synchronizácií a informácií o množstve synchronizovaných údajov."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"zapisovať odoberané informačné kanály"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Umožňuje aplikácii upraviť vaše aktuálne synchronizované informačné kanály. Škodlivé aplikácie môžu synchronizované informačné kanály zmeniť."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"čítať výrazy pridané do slovníka"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Umožňuje aplikácii čítať všetky slová, názvy a frázy, ktoré mohol používateľ uložiť do svojho slovníka."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"pridať slová do slovníka definovaného používateľom"</string>
@@ -636,7 +630,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Ak chcete odomknúť telefón alebo uskutočniť tiesňové volanie, stlačte Menu."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Telefón odomknete stlačením tlačidla Menu."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Odomknite nakreslením vzoru"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Tiesňové volanie"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Zavolať späť"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Správne!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Skúsiť znova"</string>
@@ -1048,29 +1043,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" AÁÄBCČDĎDZDŽEÉFGHCHIÍJKLĽMNŇOÓÔPRŔSŠTŤUÚVWXYÝZŽ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidáti"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Príprava uklad. priestoru USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Príprava karty SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Kontrola chýb."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Prázdny ukladací priestor USB"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Prázdna karta SD"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Ukladací priestor USB je prázdny alebo obsahuje nepodporovaný systém súborov."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Karta SD je prázdna alebo obsahuje nepodporovaný systém súborov."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Ukl. priestor USB je poškodený"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Poškodená karta SD"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Ukladací priestor USB je poškodený. Skúste ho preformátovať."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Karta SD je poškodená. Skúste ju preformátovať."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Ukl. priestor USB nečakane odstránený"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Karta SD bola neočakávane odobraná"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Ak chcete zabrániť strate údajov, ukladací priestor USB pred odobratím odpojte."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Ak chcete zabrániť strate údajov, kartu SD pred odobratím odpojte."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Ukl. priestor USB môžete odobrať"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Kartu SD je možné bezpečne odobrať"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Ukladací priestor USB môžete bezpečne odstrániť."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Kartu SD je možné bezpečne odobrať."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Ukl. priestor USB odstránený"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Karta SD bola odobraná"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Ukladací priestor USB odstránený. Vložte nové médium."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Karta SD bola odobraná. Vložte novú kartu."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Nenašli sa žiadne zodpovedajúce aktivity."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Smerovanie výstupu médií"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Umožňuje aplikácii smerovať výstup médií do ďalších externých zariadení."</string>
@@ -1267,7 +1269,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Prekrytie č. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", zabezpečené"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Tiesňové volanie"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nepamätám si vzor"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nesprávny vzor"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Nesprávne heslo"</string>
@@ -1473,17 +1474,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Dokým túto funkciu nevypnete"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Zbaliť"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blokovanie prerušení"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Odstávka"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Noci cez týždeň"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Víkendy"</string>
<string name="muted_by" msgid="6147073845094180001">"Stlmené aplikáciou <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Vo vašom zariadení došlo k internému problému. Môže byť nestabilné, kým neobnovíte jeho továrenské nastavenia."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Vo vašom zariadení došlo k internému problému. Ak chcete získať podrobné informácie, obráťte sa na jeho výrobcu."</string>
@@ -1493,11 +1489,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Žiadosť SS bola upravená na žiadosť DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Žiadosť SS bola upravená na žiadosť USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Žiadosť SS bola upravená na novú žiadosť SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Port USB pre periférne zariadenia s Androidom"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Port USB pre periférne zariadenia"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Ďalšie možnosti"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Zatvoriť rozbaľovaciu ponuku"</string>
</resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index cffc58d..da65244 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -220,42 +220,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Sistem Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Osebne aplikacije"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Služba"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Stiki"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"dostop do stikov in njihovo spreminjanje"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Lokacija"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"dostop do vaše lokacije"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Podatki v družabnih omrežjih"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Neposreden dostop do podatkov o stikih in družabnih povezav."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Google Koledar"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"dostop do koledarja in njegovo spreminjanje"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"dostop do SMS-jev in njihovo spreminjanje"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Uporabniški slovar"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Branje besed iz uporabniškega slovarja ali pisanje besed vanj."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Zaznamki in zgodovina"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Neposreden dostop do zaznamkov in zgodovine brskalnika."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"uporaba mikrofona naprave"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparat"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"uporaba fotoaparata naprave"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"uporaba telefonije naprave"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Tipala"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"dostop do tipal in nosljivih naprav"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Pridobivanje vsebine okna"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Preverite vsebino okna, ki ga uporabljate."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Vklop raziskovanja z dotikom"</string>
@@ -445,15 +431,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Zaznan delni prstni odtis. Poskusite znova."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Prstnega odtisa ni bilo mogoče obdelati. Poskusite znova."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Tipalo prstnih odtisov je umazano. Očistite ga in poskusite znova."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Prehiter premik prsta. Poskusite znova."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Prepočasen premik prsta. Poskusite znova."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Obdelava ni mogoča. Poskusite znova."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Strojna oprema ni na voljo."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Prstnega odtisa ni mogoče shraniti. Odstranite obstoječi prstni odtis."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Dosežena časovna omejitev za prstni odtis. Poskusite znova."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Dosežena časovna omejitev za prstni odtis. Poskusite znova."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"branje nastavitev sinhronizacije"</string>
@@ -462,6 +454,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Aplikaciji omogoča spreminjanje nastavitev sinhronizacije za račun. S tem se lahko na primer omogoči sinhronizacijo aplikacije Ljudje z računom."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"branje statističnih podatkov sinhronizacije"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Aplikaciji omogoča branje statističnih podatkov o sinhronizaciji za račun, vključno z zgodovino dogodkov sinhronizacije in količino sinhroniziranih podatkov."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"pisanje naročenih virov"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Aplikaciji omogoča spreminjanje trenutno sinhroniziranih virov. Zlonamerne aplikacije lahko s tem spremenijo sinhronizirane vire."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"branje izrazov, ki ste jih dodali v slovar"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Aplikaciji omogoča, da prebere vse besede, imena in besedne zveze, ki jih je uporabnik morda shranil v uporabniški slovar."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"dodajanje besed v uporabniški slovar"</string>
@@ -636,7 +630,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Če želite odkleniti napravo ali opraviti klic v sili, pritisnite meni."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Če želite odkleniti, pritisnite meni."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Če želite odkleniti, narišite vzorec"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Klic v sili"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Nazaj na klic"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Pravilno."</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Poskusi znova"</string>
@@ -1048,29 +1043,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidati"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Pripravljanje pomnilnika USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Priprava kartice SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Iskanje napak."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Prazen pomnilnik USB"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Prazna kartica SD"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Pomnilnik USB je prazen ali ima nepodprt datotečni sistem."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Kartica SD je prazna ali ima nepodprt datotečni sistem."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Pomnilnik USB je poškodovan"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Poškodovana kartica SD"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Pomnilnik USB je poškodovan. Poskusite ga znova formatirati."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Kartica SD je poškodovana. Poskusite jo znova formatirati."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Pomnilnik USB je bil nepričakovano odstranjen"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Kartica SD je bila nepričakovano odstranjena"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Pomnilnik USB najprej izpnite in šele nato odstranite, da ne pride do izgube podatkov."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Če se želite izogniti izgubi podatkov, pred odstranjevanjem izpnite kartico SD."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Zdaj lahko varno odstranite pomnilnik USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Kartico SD lahko varno odstranite"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Zdaj lahko varno odstranite pomnilnik USB."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Kartico SD lahko varno odstranite."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Ni pomnilnika USB"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Kartica SD je odstranjena"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Pomnilnik USB je odstranjen. Vstavite drug nosilec podatkov."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Kartica SD je odstranjena. Vstavite novo."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Ni ustreznih dejavnosti."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Preusmeritev predstavnosti"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Aplikaciji omogoča preusmerjanje predstavnosti v druge zunanje naprave."</string>
@@ -1267,7 +1269,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Prekrivanje #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> pik na palec"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", varen"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Klic v sili"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Pozabljen vzorec"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Napačen vzorec"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Napačno geslo"</string>
@@ -1473,17 +1474,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Dokler tega ne izklopite"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Strni"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blokiranje motenj"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Čas nedelovanja"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Noči med tednom"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Vikendi"</string>
<string name="muted_by" msgid="6147073845094180001">"Izklop zvoka: <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Vaša naprava ima notranjo napako in bo morda nestabilna, dokler je ne ponastavite na tovarniške nastavitve."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Vaša naprava ima notranjo napako. Če želite več informacij, se obrnite na proizvajalca."</string>
@@ -1493,11 +1489,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Zahteva SS je spremenjena v zahtevo DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Zahteva SS je spremenjena v zahtevo USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Zahteva SS je spremenjena v novo zahtevo SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Vrata USB za dodatno opremo za Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Vvrata USB za dodatno opremo"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Več možnosti"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Zapri presežni element"</string>
</resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index e495afa..1dad5c5 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -219,42 +219,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android систем"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Личне апликације"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Посао"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Контакти"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"приступ контактима и њихова измена"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Локација"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"приступ вашој локацији"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Информације са друштвених мрежа"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Директан приступ информацијама о контактима и друштвеним везама."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"приступ календару и његова измена"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"приступ SMS-овима и њихова измена"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Кориснички речник"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Читање или писање речи у корисничком речнику."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Обележивачи и историја"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Директан приступ обележивачима и историји прегледача."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"коришћење микрофона уређаја"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"коришћење камере уређаја"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Телефон"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"коришћење телефоније уређаја"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Сензори"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"приступ сензорима и уређајима за ношење"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Преузимање садржаја прозора"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Проверава садржај прозора са којим остварујете интеракцију."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Укључивање Истраживања додиром"</string>
@@ -444,15 +430,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Откривен је делимични отисак прста. Покушајте поново."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Није успела обрада отиска прста. Покушајте поново."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Сензор за отиске прстију је прљав. Очистите га и покушајте поново."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Превише брзо сте померили прст. Покушајте поново."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Превише споро сте померили прст. Покушајте поново."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Обрада није могућа. Покушајте поново."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Хардвер није доступан."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Није могуће сачувати отисак прста. Уклоните неки од постојећих отисака прстију."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Временско ограничење за отисак прста је истекло. Покушајте поново."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Временско ограничење за отисак прста је истекло. Покушајте поново."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"читање подешавања синхронизације"</string>
@@ -461,6 +453,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Дозвољава апликацији да мења подешавања синхронизације за налог. На пример, овако може да се омогући синхронизација апликације Људи са налогом."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"читање статистике о синхронизацији"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Дозвољава апликацији да чита статистику синхронизације за налог, укључујући историју синхронизованих догађаја и количину података који се синхронизују."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"уписивање пријављених фидова"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Дозвољава апликацији да измени тренутно синхронизоване фидове. Злонамерне апликације могу да промене синхронизоване фидове."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"читање термина које сте додали у речник"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Дозвољава апликацији да чита све речи, називе и фразе које је корисник можда сачувао у корисничком речнику."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"додавање речи у речник корисника"</string>
@@ -635,7 +629,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Притисните „Мени“ да бисте откључали телефон или упутите хитан позив."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Притисните „Мени“ за откључавање."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Унесите шаблон за откључавање"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Хитан позив"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Назад на позив"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Тачно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Покушајте поново"</string>
@@ -1041,29 +1036,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"кандидати"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Припрема USB меморије"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Припрема SD картице"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Проверавање да ли постоје грешке."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Празна USB меморија"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Празна SD картица"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB меморија је празна или садржи неподржани систем датотека."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD картица је празна или садржи систем датотека који није подржан."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Оштећена USB меморија"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Оштећена SD картица"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB меморија је оштећена. Покушајте поново да је форматирате."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD картица је оштећена. Покушајте поново да је форматирате."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB мем. неочекивано уклоњена"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD је неочекивано уклоњена"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Искључите USB меморију пре него што је уклоните да не бисте изгубили податке."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Искључите SD картицу пре него што је уклоните како не би дошло до губитка података."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Безбедно уклањање USB меморије"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD картица се може безбедно уклонити"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Можете безбедно да уклоните USB меморију."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Можете безбедно да уклоните SD картицу."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB меморија је уклоњена"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD картица је уклоњена"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB меморија је уклоњена. Уметните нови медијум."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD картица је уклоњена. Уметните нову картицу."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Није пронађена ниједна подударна активност."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Усмеравање излаза медија"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Дозвољава апликацији да усмерава излаз медија на друге спољне уређаје."</string>
@@ -1259,7 +1261,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Постављени елемент бр. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>×<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", безбедно"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Хитан позив"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Заборављени шаблон"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Погрешан шаблон"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Погрешна лозинка"</string>
@@ -1460,17 +1461,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"До <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Док не искључите"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Блокирање прекида"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Време неактивности"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Радним данима увече"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Викендима"</string>
<string name="muted_by" msgid="6147073845094180001">"Звук је искључио/ла <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Дошло је до интерног проблема у вези са уређајем и можда ће бити нестабилан док не обавите ресетовање на фабричка подешавања."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Дошло је до интерног проблема у вези са уређајем. Потражите детаље од произвођача."</string>
@@ -1480,11 +1476,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS захтев је промењен у DIAL захтев."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS захтев је промењен у USSD захтев."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS захтев је промењен у нови SS захтев."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB порт за периферијске уређаје"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB порт за периферијске уређаје"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Још опција"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Затвори преклопни мени"</string>
</resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 95087ac..3aa4da5 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android-system"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Personliga appar"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Arbetet"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontakter"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"få åtkomst till och ändra dina kontakter"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Plats"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"få åtkomst till din plats"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Dina sociala uppgifter"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direktåtkomst till information om dina kontakter och sociala kontakter."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalender"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"få åtkomst till och ändra kalendern"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"Sms"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"få åtkomst till och ändra sms"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Egen ordlista"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Läsa eller skriva ord i användarordlistan."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Bokmärken och historik"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direktåtkomst till bokmärken och webbläsarhistorik."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"använda enhetens mikrofon"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"använda enhetens kamera"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Mobil"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"använda enhetens telefonfunktion"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensorer"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"få åtkomst till sensorer och smarta accessoarer"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Hämta fönsterinnehåll"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Granska innehållet i ett fönster som du interagerar med."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Aktivera Explore by Touch"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Ofullständigt fingeravtryck. Försök igen."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Det gick inte att bearbeta fingeravtrycket. Försök igen."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Fingeravtryckssensorn är smutsig. Rengör den och försök igen."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Du flyttade fingret för snabbt. Försök igen."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Du flyttade fingret för långsamt. Försök igen."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Det går inte att bearbeta fingeravtrycket. Försök igen."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Maskinvaran är inte tillgänglig."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Fingeravtrycket kan inte lagras. Ta bort ett befintligt fingeravtryck."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Tidsgränsen för fingeravtrycket har uppnåtts. Försök igen."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Tidsgränsen för fingeravtrycket har uppnåtts. Försök igen."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"läsa synkroniseringsinställningar"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Tillåter att appen ändrar synkroniseringsinställningarna för ett konto. Detta kan användas till exempel för att synkronisera appen Personer med ett konto."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"läsa synkroniseringsstatistik"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Tillåter att appen läser synkroniseringsstatistik för ett konto, inklusive historiken för synkroniseringshändelser och mängden data som synkroniseras."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"skriva flöden som du prenumererar på"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Tillåter att appen ändrar dina aktuella synkroniserade flöden. Skadliga appar kan ändra dina synkroniserade flöden."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"läsa termer som du har lagt till i ordlistan"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Tillåter att appen läser alla ord, namn och fraser som användaren har sparat i ordlistan."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"lägga till ord i den användardefinierade ordlistan"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Tryck på Menu om du vill låsa upp eller ringa nödsamtal."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Tryck på Menu om du vill låsa upp."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Rita grafiskt lösenord för att låsa upp"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Nödsamtal"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Tillbaka till samtal"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Korrekt!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Försök igen"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidater"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Förbereder USB-lagring"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Förbereder SD-kort"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Söker efter fel."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Tom USB-lagringsenhet"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Tomt SD-kort"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB-lagringsenheten är tom eller så har den ett filsystem som inte stöds."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD-kortet är tomt eller så har det ett filsystem som inte stöds."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Skadad USB-lagringsenhet"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Skadat SD-kort"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB-lagringsenheten är skadad. Prova att formatera om den."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD-kortet är skadat. Prova att formatera om det."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB-enheten togs oväntat bort"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD-kort togs oväntat bort"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Demontera USB-lagringsenheten före borttagning för att undvika dataförlust."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Demontera SD-kort innan borttagning för att undvika dataförlust."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Säkert att ta bort USB-enhet"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Säkert att ta bort SD-kort"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Det är nu säkert att ta bort USB-lagringsenheten."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Det är nu säkert att ta bort SD-kortet."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB-lagringsenheten togs bort"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Borttaget SD-kort"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB-lagringsenheten har tagits bort. Sätt i en ny."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD-kortet har tagits bort. Sätt i ett nytt."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Söker efter fel"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Det gick inte att hitta några matchande aktiviteter."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Omdirigera medieuppspelning"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Tillåter att appen omdirigerar medieuppspelningar till andra externa enheter."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Överlagring #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", säker"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Nödsamtal"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Har du glömt ditt grafiska lösenord?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Fel grafiskt lösenord"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Fel lösenord"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Till kl. <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Tills du inaktiverar detta"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Komprimera"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Blockera avbrott"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Avbrottstid"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Veckodagskvällar"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Helger"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> har stängt av ljudet"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Ett internt problem har uppstått i enheten, och det kan hända att problemet kvarstår tills du återställer standardinställningarna."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Ett internt problem har uppstått i enheten. Kontakta tillverkaren om du vill veta mer."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS-begäran har ändrats till en DIAL-begäran."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS-begäran har ändrats till en USSD-begäran."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS-begäran har ändrats till en ny SS-begäran."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"USB-port för Android-kringutrustning"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB-port för kringutrustning"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Fler alternativ"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Dölj utökat verktygsfält"</string>
</resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index b4a60ec..cb99ff0 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Mfumo wa Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Programu binafsi"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Kazini"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Anwani"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"kufikia na kurekebisha anwani zako"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Mahali"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"kufikia mahali ulipo"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Taarifa yako ya kijamii"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Kufikia moja kwa moja taarifa kuhusu anwani zako na miunganisho ya kijamii."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalenda"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"kufikia na kurekebisha kalenda yako"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"kufikia na kurekebisha SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Kamusi ya Mtumiaji"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Kusoma au kuandika maneno katika kamusi ya mtumiaji."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Alamisho na Historia"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Kufikia, moja kwa moja, alamisho na historia ya kivinjari."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Kipokea sauti"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"kutumia maikrofoni ya kifaa"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"kutumia kamera ya kifaa"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Simu"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"kutumia simu ya kifaa"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Vihisi"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"kufikia vihisi na vifaa vya kuvaliwa"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Rejesha maudhui ya dirisha"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Chunguza maudhui ya dirisha unaloingiliana nalo."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Washa Chunguza kwa Mguso"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Kihisi kimegundua sehemu ya kitambulisho. Tafadhali jaribu tena."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Haikuweza kuchakata kitambulisho. Tafadhali jaribu tena."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Kihisi kitambulisho ni kichafu. Tafadhali kisafishe na ujaribu tena."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Ulisogeza kidole kwa kasi mno. Tafadhali jaribu tena."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Ulisogeza kidole pole pole mno. Tafadhali jaribu tena."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Haikuweza kuchakata. Jaribu tena."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Maunzi hayapatikani."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Kitambulisho hakiwezi kuhifadhiwa. Tafadhali ondoa kitambulisho kilichopo."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Muda wa kitambulisho umekwisha. Jaribu tena."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Muda wa kitambulisho umekwisha. Jaribu tena."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"kusoma mipangilio ya usawazishaji"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Inaruhusu programu kurekebisha mipangalio ya upatanishi wa akaunti. Kwa mfano, hii inaweza kuwezesha programu ya upatanishi wa Watu na akaunti."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"kusoma takwimu za usawazishaji"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Inaruhusu programu kusoma takwimu za upatanishi za akaunti, ikiwa ni pamoja na historia ya matukio ya upatanishi na kiasi cha data kimepatanishwa."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"kuandika mipasho kutoka vyanzo unavyofuatilia"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Inaruhusu programu kurekebisha milisho yako iliyolandanishwa kwa sasa. Programu hasidi zinaweza kubadilisha milisho yako iliyolandanishwa."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"soma maneno uliyoongeza kwenye kamusi"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Inaruhusu programu kusoma maneno, majina na misemo yote ambayo mtumiaji alihifadhi katika kamusi ya mtumiaji."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"ongeza maneno katika kamusi ya mtumiaji iliyofafanuliwa"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Bonyeza Menyu ili kufungua au kupiga simu ya dharura."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Bonyeza Menyu ili kufungua."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Chora ruwaza ili kufungua"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Simu ya dharura"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Rudi kwa kupiga simu"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Sahihi!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Jaribu tena"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"wagombeaji"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Inaandaa hifadhi ya USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Inaandaa kadi ya SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Inakagua hitilafu."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Hifadhi tupu ya USB"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Kadi tupu ya SD"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Hifadhi ya USB ni tupu au ina mfumo wa faili usiohimiliwa."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Kadi ya SD iko tupu au ina mfumo wa faili usiohimiliwa."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Hifadhi ya USB iliyoharibika"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Kadi ya SD iliyoharibika"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Kadi ya SD imeharibiwa. Jaribu kuifomati tena."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Kadi ya SD imeharibiwa. Jaribu kuifomati tena."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Hifadhi ya USB imeondolewa bila kutarajiwa"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Kadi ya SD imeondolewa bila kutarajiwa"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Ondoa hifadhi ya USB kabla ya kuondoa ili kuepuka kupoteza data."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Toa kadi ya SD kabla ya kuondoa ili kuepuka upotezaji data."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Hifadhi ya USB ni salama kuondoa"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Ni salama kuondoa kadi ya SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Unaweza kuondoa hifadhi ya USB kwa usalama."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Unaweza kuondoa kadi ya SD kwa usalama."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Imeondoa hifadhi ya USB"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Kadi ya SD iliyotolewa"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Hifadhi ya USB imeondolewa. Ingiza media mpya."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Kadi ya SD imeondolewa. Ingiza mpya."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Hakuna shughuli zinazolingana zilizopatikana."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Fuatalia utoaji wa habari"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Inaruhusu programu kufuatilia utoaji wa habari kwa vifaa vingine vya nje."</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Uwekeleaji #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", salama"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Simu ya dharura"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Umesahau Ruwaza"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Mchoro huo si sahihi"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Nenosiri Lisilo sahihi"</string>
@@ -1447,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Hadi <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Hadi utakapozima hili"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Kunja"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Zuia ukatizaji"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Wakati wa hali tuli"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Usiku wa siku za wiki"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Wikiendi"</string>
<string name="muted_by" msgid="6147073845094180001">"Sauti imezimwa na <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Kuna hitilafu ya ndani ya kifaa chako, na huenda kisiwe thabiti mpaka urejeshe mipangilio ya kiwandani."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Kuna hitilafu ya ndani ya kifaa chako. Wasiliana na mtengenezaji wa kifaa chako kwa maelezo."</string>
@@ -1467,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Ombi la SS limerekebishwa na kuwa ombi la DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Ombi la SS limerekebishwa na kuwa ombi la USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Ombi la SS limerekebishwa na kuwa ombi jipya la SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Mlango wa USB wa Pembeni wa Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Mlango wa USB wa Pembeni"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Chaguo zaidi"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Funga vipengee vya ziada"</string>
</resources>
diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml
index 39fedec..eee78df 100644
--- a/core/res/res/values-ta-rIN/strings.xml
+++ b/core/res/res/values-ta-rIN/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android அமைப்பு"</string>
<string name="user_owner_label" msgid="6465364741001216388">"தனிப்பட்ட பயன்பாடுகள்"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"பணியிடம்"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"தொடர்புகள்"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"தொடர்புகளை அணுகும், மாற்றும்"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"இருப்பிடம்"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"இருப்பிடத்தை அணுகும்"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"உங்கள் சமூகத் தகவல்"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"உங்கள் தொடர்புகள் மற்றும் சமூக இணைப்புகள் குறித்த தகவலுக்கான நேரடி அணுகல்."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"கேலெண்டர்"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"கேலெண்டரை அணுகும், மாற்றும்"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMSஐ அணுகும், மாற்றும்"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"பயனர் அகராதி"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"பயனர் அகராதியில் வார்த்தைகளைப் படிக்கும் அல்லது எழுதும்."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"புத்தகக்குறிகள் மற்றும் வரலாறு"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"புத்தகக்குறிகள் மற்றும் உலாவியின் வரலாற்றுக்கான நேரடி அணுகல்."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"மைக்ரோஃபோன்"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"சாதனத்தின் மைக்ரோஃபோனை அணுகும்"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"கேமரா"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"சாதனத்தின் கேமராவைப் பயன்படுத்தும்"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"ஃபோன்"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"சாதனத்தின் டெலிஃபோனியைப் பயன்படுத்தும்"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"உணர்விகள்"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"உணர்விகளையும் அணியக்கூடிய சாதனங்களையும் அணுகும்"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"சாளர உள்ளடக்கத்தைப் பெறவும்"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"நீங்கள் ஊடாடிக்கொண்டிருக்கும் சாளரத்தின் உள்ளடக்கத்தைப் பார்க்கலாம்."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"தொடுவதன் மூலம் அறிவதை இயக்கவும்"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"கைரேகையை ஓரளவுதான் கண்டறிய முடிந்தது. மீண்டும் முயலவும்."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"கைரேகையைச் செயலாக்க முடியவில்லை. மீண்டும் முயலவும்."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"கைரேகை உணர்வியில் தூசி உள்ளது. சுத்தம் செய்து, முயலவும்."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"விரலை வேகமாக எடுத்துவிட்டீர்கள். மீண்டும் முயலவும்."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"விரலை மெதுவாக எடுத்துவிட்டீர்கள். மீண்டும் முயலவும்."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"செயல்படுத்த முடியவில்லை. மீண்டும் முயலவும்."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"வன்பொருள் இல்லை."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"கைரேகையைச் சேமிக்க முடியவில்லை. ஏற்கனவே உள்ள கைரேகையை அகற்றவும்."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"கைரேகைக்கான நேரம் முடிந்தது. மீண்டும் முயலவும்."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"கைரேகைக்கான நேரம் முடிந்தது. மீண்டும் முயலவும்."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"ஒத்திசைவு அமைப்புகளைப் படித்தல்"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"கணக்கிற்கான ஒத்திசைவு அமைப்புகளைத் திருத்த பயன்பாட்டை அனுமதிக்கிறது. எடுத்துக்காட்டாக, பீப்பிள் பயன்பாட்டைக் கணக்குடன் ஒத்திசைவை இயக்குவதற்கு இது பயன்படுத்தப்படலாம்."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"ஒத்திசைவு புள்ளிவிவரங்களைப் படித்தல்"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"நிகழ்வுகள் ஒத்திசைவின் வரலாறு மற்றும் ஒத்திசைக்கப்பட்ட தரவு எவ்வளவு ஆகியன உட்பட, கணக்கிற்கான ஒத்திசைவு புள்ளிவிவரங்களைப் படிக்க பயன்பாட்டை அனுமதிக்கிறது."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"குழுசேர்ந்த ஊட்டங்களை எழுதுதல்"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"தற்போது ஒத்திசைந்த ஊட்டங்களைப் பற்றிய விவரங்களைப் பெற பயன்பாட்டை அனுமதிக்கிறது. தீங்கிழைக்கும் பயன்பாடுகள் உங்கள் ஒத்திசைவு ஊட்டங்களை மாற்றலாம்."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"அகராதியில் நீங்கள் சேர்த்த சொற்களைப் படித்தல்"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"பயனர் அகராதியில் பயனர் சேமித்திருக்கக்கூடிய எல்லா வார்த்தைகள், பெயர்கள் மற்றும் சொற்றொடர்களைப் படிக்க பயன்பாட்டை அனுமதிக்கிறது."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"பயனர் வரையறுத்த அகராதியில் வார்த்தைகளைச் சேர்த்தல்"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"தடைநீக்க மெனுவை அழுத்தவும் அல்லது அவசர அழைப்பை மேற்கொள்ளவும்."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"திறக்க, மெனுவை அழுத்தவும்."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"திறக்க வடிவத்தை வரையவும்"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"அவசர அழைப்பு"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"அழைப்பிற்குத் திரும்பு"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"சரி!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"மீண்டும் முயற்சிக்கவும்"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"கேன்டிடேட்ஸ்"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB சேமிப்பிடம் தயாராகிறது"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD கார்டைத் தயார் செய்கிறது"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"பிழைகளுக்காகச் சரிபார்கிறது."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"வெற்று USB சேமிப்பிடம்"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"வெற்று SD கார்டு"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB சேமிப்பிடம் காலியாக உள்ளது அல்லது ஆதரிக்கப்படாத கோப்பு அமைப்பைக் கொண்டுள்ளது."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD கார்டு காலியாக உள்ளது அல்லது ஆதரிக்கப்படாத கோப்பு அமைப்பைக் கொண்டுள்ளது."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"சேதமடைந்த USB சேமிப்பிடம்"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"சேதமடைந்த SD கார்டு"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB சேமிப்பிடம் சேதமடைந்துள்ளது. அதை மறுவடிவமைக்க முயற்சிக்கவும்."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD கார்டு சேதமடைந்துள்ளது. அதை மறுவடிவமைக்க முயற்சிக்கவும்."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB சேமிப்பிடம் அகற்றப்பட்டது"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD கார்டு எதிர்பாராதவிதமாக அகற்றப்பட்டது"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"தரவு இழப்பைத் தவிர்பதற்கு USB சேமிப்பிடத்தை அகற்றுவதற்கு முன் அதை இனைப்பு நீக்கவும்."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"தரவு இழப்பைத் தவிர்பதற்கு SD கார்டை அகற்றுவதற்கு முன் அதை இனைப்பு நீக்கவும்."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB ஐ இப்போது அகற்றலாம்"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD கார்டு அகற்றுவது பாதுகாப்பானது"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"நீங்கள் USB சேமிப்பிடத்தைப் பாதுகாப்பாக அகற்றலாம்."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"நீங்கள் SD கார்டைப் பாதுகாப்பாக அகற்றலாம்."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"அகற்றப்பட்ட USB சேமிப்பிடம்"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"அகற்றப்பட்ட SD கார்டு"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB சேமிப்பிடம் அகற்றப்பட்டது. புதிய மீடியாவைச் செருகவும்."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD கார்டு அகற்றப்பட்டது. புதிய ஒன்றைச் செருகவும்."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"பொருந்தும் செயல்பாடுகள் கண்டறியப்படவில்லை."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"மீடியா அவுட்புட்டை வழிசெலுத்துதல்"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"மீடியாவைப் பிற வெளிப்புறச் சாதனங்களுக்கு வெளியீடாக வழிகாட்ட பயன்பாட்டை அனுமதிக்கிறது."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"மேலோட்ட #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", பாதுகாப்பானது"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"அவசரகால அழைப்பு"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"வடிவத்தை மறந்துவிட்டீர்களா"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"தவறான வடிவம்"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"தவறான கடவுச்சொல்"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> வரை"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"இதை முடக்கும்வரை"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"குறுக்கீடுகளைத் தடு"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"செயலற்ற நேரம்"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"வார நாட்களின் இரவுகள்"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"வார இறுதி நாட்கள்"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> ஒலியடக்கினார்"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"சாதனத்தில் அகச் சிக்கல் இருக்கிறது, அதனை ஆரம்பநிலைக்கு மீட்டமைக்கும் வரை நிலையற்று இயங்கலாம்."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"சாதனத்தில் அகச் சிக்கல் இருக்கிறது. விவரங்களுக்கு சாதன தயாரிப்பாளரைத் தொடர்புகொள்ளவும்."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS கோரிக்கையானது DIAL கோரிக்கைக்கு மாற்றப்பட்டது."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS கோரிக்கையானது USSD கோரிக்கைக்கு மாற்றப்பட்டது."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS கோரிக்கையானது புதிய SS கோரிக்கைக்கு மாற்றப்பட்டது."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB பெரிபெரல் போர்ட்"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB பெரிபெரல் போர்ட்"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"கூடுதல் விருப்பங்கள்"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"மேல்தோன்றலை மூடு"</string>
</resources>
diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml
index f4e0c3c..ec3107d 100644
--- a/core/res/res/values-te-rIN/strings.xml
+++ b/core/res/res/values-te-rIN/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android సిస్టమ్"</string>
<string name="user_owner_label" msgid="6465364741001216388">"వ్యక్తిగత అనువర్తనాలు"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"కార్యాలయం"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"పరిచయాలు"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"మీ పరిచయాలను ప్రాప్యత చేస్తుంది మరియు సవరిస్తుంది"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"స్థానం"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"మీ స్థానాన్ని ప్రాప్యత చేస్తుంది"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"మీ సామాజిక సమాచారం"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"మీ పరిచయాలు మరియు సామాజిక బాంధవ్యాలకు సంబంధించిన సమాచారానికి ప్రత్యక్ష ప్రాప్యత."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"క్యాలెండర్"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"మీ క్యాలెండర్‌ను ప్రాప్యత చేస్తుంది మరియు సవరిస్తుంది"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMSను ప్రాప్యత చేస్తుంది మరియు సవరిస్తుంది"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"వినియోగదారు నిఘంటువు"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"వినియోగదారు నిఘంటువులో పదాలు చదువుతుంది లేదా వ్రాస్తుంది."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"బుక్‌మార్క్‌లు మరియు చరిత్ర"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"బుక్‌మార్క్‌లు మరియు బ్రౌజర్ చరిత్రకు ప్రత్యక్ష ప్రాప్యత."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"మైక్రోఫోన్"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"పరికర మైక్రోఫోన్‌ను ఉపయోగిస్తుంది"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"కెమెరా"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"పరికర కెమెరాను ఉపయోగిస్తుంది"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"ఫోన్"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"పరికర టెలిఫోనీ సాంకేతికతను ఉపయోగిస్తుంది"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"సెన్సార్‌లు"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"సెన్సార్‌లను మరియు ధరింపదగిన వాటిని ప్రాప్యత చేస్తుంది"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"విండో కంటెంట్‍ను మరలా పొందండి"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"మీరు పరస్పర చర్య చేస్తున్న విండో కంటెంట్‌‍ను పరిశీలించండి."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"తాకడం ద్వారా విశ్లేషణను ప్రారంభించండి"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"పాక్షిక వేలిముద్ర గుర్తించబడింది. దయచేసి మళ్లీ ప్రయత్నించండి."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"వేలిముద్రను ప్రాసెస్ చేయడం సాధ్యపడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"వేలిముద్ర సెన్సార్ మురికిగా ఉంది. దయచేసి శుభ్రపరిచి, మళ్లీ ప్రయత్నించండి."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"వేలిని చాలా తొందరగా కదిలించారు. దయచేసి మళ్లీ ప్రయత్నించండి."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"వేలిని చాలా నిదానంగా కదిలించారు. దయచేసి మళ్లీ ప్రయత్నించండి."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"ప్రాసెస్ చేయడం సాధ్యపడలేదు. మళ్లీ ప్రయత్నించండి."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"హార్డ్‌వేర్ అందుబాటులో లేదు."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"వేలిముద్రను నిల్వ చేయడం సాధ్యపడదు. దయచేసి ఇప్పటికే ఉన్న వేలిముద్రను తీసివేయండి."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"వేలిముద్ర గడువు సమయం చేరుకుంది. మళ్లీ ప్రయత్నించండి."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"వేలిముద్ర గడువు సమయం చేరుకుంది. మళ్లీ ప్రయత్నించండి."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"సమకాలీకరణ సెట్టింగ్‌లను చదవడం"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"ఖాతా యొక్క సమకాలీకరణ సెట్టింగ్‌లను సవరించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. ఉదాహరణకు, ఇది ఒక ఖాతాతో వ్యక్తుల అనువర్తనం యొక్క సమకాలీకరణను ప్రారంభించడానికి ఉపయోగించబడవచ్చు."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"సమకాలీకరణ గణాంకాలను చదవడం"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"ఖాతా యొక్క సమకాలీకరణ గణాంకాలను అలాగే సమకాలీకరణ ఈవెంట్‌ల చరిత్రను మరియు ఎంత డేటా సమకాలీకరించబడింది అనేవాటిని చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"చందా చేయబడిన ఫీడ్‌లను వ్రాయడం"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"మీ ప్రస్తుతం సమకాలీకరించిన ఫీడ్‌లను సవరించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. హానికరమైన అనువర్తనాలు మీ సమకాలీకరణ ఫీడ్‌లను మార్చవచ్చు."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"మీరు నిఘంటువుకు జోడించిన పదాలను చదవడం"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"వినియోగదారు నిఘంటువులో వినియోగదారు నిల్వ చేసిన అన్ని పదాలు, పేర్లు మరియు పదబంధాలను చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"వినియోగదారు-నిర్వచిత నిఘంటువుకు పదాలను జోడించడం"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"అన్‌లాక్ చేయడానికి లేదా అత్యవసర కాల్ చేయడానికి మెను నొక్కండి."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"అన్‌లాక్ చేయడానికి మెను నొక్కండి."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"అన్‌లాక్ చేయడానికి నమూనాను గీయండి"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"అత్యవసర కాల్"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"కాల్‌కు తిరిగి వెళ్లు"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"సరైనది!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"మళ్లీ ప్రయత్నించండి"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"క్యాండిడేట్‌లు"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB నిల్వను సిద్ధం చేస్తోంది"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD కార్డు‌ను సిద్ధం చేస్తోంది"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"లోపాల కోసం తనిఖీ చేస్తోంది."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"ఖాళీ USB నిల్వ"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"ఖాళీ SD కార్డు"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB నిల్వ ఖాళీగా ఉంది లేదా మద్దతు లేని ఫైల్ సిస్టమ్‌ను కలిగి ఉంది."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD కార్డు ఖాళీగా ఉంది లేదా మద్దతు లేని ఫైల్ సిస్టమ్‌ను కలిగి ఉంది."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB నిల్వ పాడైంది"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"SD కార్డు పాడైంది"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB నిల్వ పాడైంది. దాన్ని మళ్లీ ఫార్మాట్ చేయడానికి ప్రయత్నించండి."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD కార్డు పాడైంది. దాన్ని మళ్లీ ఫార్మాట్ చేయడానికి ప్రయత్నించండి."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB నిల్వ ఆకస్మికంగా తీసివేయబడింది"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD కార్డు ఆకస్మికంగా తీసివేయబడింది"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"డేటాను కోల్పోవడాన్ని నివారించడానికి USB నిల్వను తీసివేయడానికి ముందు అన్‌మౌంట్ చేయండి."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"డేటాను కోల్పోవడాన్ని నివారించడానికి SD కార్డు‌ను తీసివేయడానికి ముందు అన్‌మౌంట్ చేయండి."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB నిల్వను తీసివేయడం సురక్షితం"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD కార్డు‌ను తీసివేయడం సురక్షితం"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"మీరు USB నిల్వను సురక్షితంగా తీసివేయవచ్చు."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"మీరు SD కార్డు‌ను సురక్షితంగా తీసివేయవచ్చు."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB నిల్వ తీసివేయబడింది"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD కార్డు తీసివేయబడింది"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB నిల్వ తీసివేయబడింది. కొత్త మీడియాను చొప్పించండి."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD కార్డు తీసివేయబడింది. కొత్తదాన్ని చొప్పించండి."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"సరిపోలే కార్యాచరణలు కనుగొనబడలేదు."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"ప్రసార మాధ్యమ అవుట్‌పుట్‌ను మళ్లించడం"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"మీడియా అవుట్‌పుట్‌ను ఇతర బాహ్య పరికరాలకు మళ్లించడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"అతివ్యాప్తి #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", సురక్షితం"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"అత్యవసర కాల్"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"నమూనాను మర్చిపోయాను"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"నమూనా తప్పు"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"పాస్‌వర్డ్ తప్పు"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> వరకు"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"మీరు దీన్ని ఆఫ్ చేసే వరకు"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"అంతరాయాలకు అడ్డుకట్ట వేయండి"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"ముఖ్యమైన పనిలో ఉన్నప్పుడు"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"వారపురాత్రులు"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"వారాంతాలు"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> ద్వారా మ్యూట్ చేయబడింది"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"మీ పరికరంతో అంతర్గత సమస్య ఏర్పడింది మరియు మీరు ఫ్యాక్టరీ డేటా రీసెట్ చేసే వరకు అస్థిరంగా ఉంటుంది."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"మీ పరికరంతో అంతర్గత సమస్య ఏర్పడింది. వివరాల కోసం మీ తయారీదారుని సంప్రదించండి."</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS అభ్యర్థన డయల్ అభ్యర్థనగా సవరించబడింది."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS అభ్యర్థన USSD అభ్యర్థనగా సవరించబడింది."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS అభ్యర్థన కొత్త SS అభ్యర్థనగా సవరించబడింది."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB పెరిఫెరల్ పోర్ట్"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB పెరిఫెరల్ పోర్ట్"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"మరిన్ని ఎంపికలు"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"అతివ్యాప్తిని మూసివేస్తుంది"</string>
</resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 44b07e3..a4daf01 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"ระบบ Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"แอปส่วนตัว"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"ที่ทำงาน"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"รายชื่อติดต่อ"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"เข้าถึงและปรับเปลี่ยนรายชื่อติดต่อของคุณ"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"ตำแหน่ง"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"เข้าถึงตำแหน่งของคุณ"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"ข้อมูลทางสังคมของคุณ"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"เข้าถึงข้อมูลเกี่ยวกับผู้ติดต่อและเครือข่ายสังคมของคุณโดยตรง"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"ปฏิทิน"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"เข้าถึงและปรับเปลี่ยนปฏิทินของคุณ"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"เข้าถึงและปรับเปลี่ยน SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"พจนานุกรมผู้ใช้"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"อ่านหรือเขียนคำในพจนานุกรมผู้ใช้"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"บุ๊กมาร์กและประวัติ"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"เข้าถึงบุ๊กมาร์กและประวัติของเบราว์เซอร์โดยตรง"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"ไมโครโฟน"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"ใช้ไมโครโฟนของอุปกรณ์"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"กล้องถ่ายรูป"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"ใช้กล้องของอุปกรณ์"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"โทรศัพท์"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"ใช้โทรศัพท์ของอุปกรณ์"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"เซ็นเซอร์"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"เข้าถึงเซ็นเซอร์และอุปกรณ์ที่สวมใส่ได้"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"เรียกข้อมูลเนื้อหาของหน้าต่าง"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"ตรวจสอบเนื้อหาของหน้าต่างที่คุณกำลังโต้ตอบอยู่"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"เปิด \"แตะเพื่อสำรวจ\""</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"ตรวจพบลายนิ้วมือเพียงบางส่วน โปรดลองอีกครั้ง"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"ไม่สามารถประมวลผลลายนิ้วมือได้ โปรดลองอีกครั้ง"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"เซ็นเซอร์ลายนิ้วมือไม่สะอาด โปรดทำความสะอาดและลองอีกครั้ง"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"เคลื่อนนิ้วเร็วเกินไป โปรดลองอีกครั้ง"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"เคลื่อนนิ้วช้าเกินไป โปรดลองอีกครั้ง"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"ไม่สามารถดำเนินการได้ โปรดลองอีกครั้ง"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"ฮาร์ดแวร์ไม่พร้อมใช้งาน"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"ไม่สามารถเก็บลายนิ้วมือได้ โปรดนำลายนิ้วมือที่มีอยู่ออก"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"หมดเวลาใช้ลายนิ้วมือแล้ว โปรดลองอีกครั้ง"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"หมดเวลาใช้ลายนิ้วมือแล้ว โปรดลองอีกครั้ง"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"อ่านการตั้งค่าการซิงค์แล้ว"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"อนุญาตให้แอปพลิเคชันเปลี่ยนแปลงการตั้งค่าการซิงค์ของบัญชี ตัวอย่างเช่น สามารถใช้การอนุญาตเปิดใช้งานการซิงค์แอปพลิเคชัน People กับบัญชี"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"อ่านสถิติการซิงค์"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"อนุญาตให้แอปพลิเคชันอ่านสถานะการซิงค์ของบัญชี ซึ่งรวมถึงประวัติกิจกรรมการซิงค์และปริมาณข้อมูลที่ซิงค์"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"เขียนฟีดข้อมูลที่สมัครไว้"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"อนุญาตให้แอปพลิเคชันแก้ไขฟีดที่ซิงค์ในปัจจุบันของคุณ แอปพลิเคชันที่เป็นอันตรายอาจเปลี่ยนแปลงฟีดที่ซิงค์ของคุณ"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"อ่านคำที่คุณเพิ่มลงในพจนานุกรม"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"อนุญาตให้แอปพลิเคชันอ่านคำ ชื่อ และวลีทั้งหมดที่ผู้ใช้ได้จัดเก็บไว้ในพจนานุกรมผู้ใช้"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"เพิ่มคำลงในพจนานุกรมที่ผู้ใช้กำหนด"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"กด เมนู เพื่อปลดล็อกหรือโทรฉุกเฉิน"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"กด เมนู เพื่อปลดล็อก"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"วาดรูปแบบเพื่อปลดล็อก"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"หมายเลขฉุกเฉิน"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"เหตุฉุกเฉิน"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"กลับสู่การโทร"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ถูกต้อง!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ลองอีกครั้ง"</string>
@@ -1034,29 +1028,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรลวศษสหฬอฮ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรลวศษสหฬอฮ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"ตัวเลือก"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"กำลังเตรียมที่เก็บข้อมูล USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"กำลังเตรียมการ์ด SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"กำลังตรวจสอบหาข้อผิดพลาด"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"ที่เก็บข้อมูล USB ว่างเปล่า"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"การ์ด SD ว่างเปล่า"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"ที่จัดเก็บข้อมูล USB ว่างเปล่าหรือมีระบบไฟล์ที่ไม่ได้รับการสนับสนุน"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"การ์ด SD ว่างเปล่าหรือมีระบบไฟล์ที่ไม่ได้รับการสนับสนุน"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"ที่เก็บข้อมูล USB เสียหาย"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"การ์ด SD เสียหาย"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"ที่จัดเก็บข้อมูล USB เสียหาย ลองฟอร์แมตอีกครั้ง"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"การ์ด SD เสียหาย ลองฟอร์แมตอีกครั้ง"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"ที่เก็บข้อมูล USB ถูกลบโดยไม่คาดคิด"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"การ์ด SD ถูกลบโดยไม่คาดหมาย"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"ยกเลิกการต่อเชื่อมที่เก็บข้อมูล USB ก่อนลบเพื่อป้องกันข้อมูลสูญหาย"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"ยกเลิกการต่อเชื่อมการ์ด SD ก่อนลบเพื่อหลีกเลี่ยงข้อมูลสูญหาย"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"นำที่เก็บข้อมูล USB ออกอย่างปลอดภัย"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"นำการ์ด SD ออกได้อย่างปลอดภัย"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"คุณสามารถนำที่เก็บข้อมูล USB ออกได้อย่างปลอดภัย"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"คุณสามารถนำการ์ด SD ออกได้อย่างปลอดภัย"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"นำที่เก็บข้อมูล USB ออกแล้ว"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"นำการ์ด SD ออกแล้ว"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"ที่เก็บข้อมูล USB ถูกลบแล้ว ใส่สื่อใหม่"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"การ์ด SD ถูกลบ ใส่การ์ดใหม่"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"ไม่พบกิจกรรมที่ตรงกัน"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"กำหนดเส้นทางเอาต์พุตของสื่อ"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"อนุญาตให้แอปพลิเคชันกำหนดเส้นทางเอาต์พุตของสื่อไปยังอุปกรณ์ภายนอกอื่นๆ"</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"การวางซ้อน #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", ปลอดภัย"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"หมายเลขฉุกเฉิน"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ลืมรูปแบบใช่หรือไม่"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"รูปแบบไม่ถูกต้อง"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"รหัสผ่านไม่ถูกต้อง"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"จนถึงเวลา <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"จนกว่าคุณจะปิดฟังก์ชันนี้"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"บล็อกเสียงรบกวน"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"ช่วงเวลาเครื่องไม่ทำงาน"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"คืนวันจันทร์-ศุกร์"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"วันหยุดสุดสัปดาห์"</string>
<string name="muted_by" msgid="6147073845094180001">"ปิดเสียงโดย <xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"อุปกรณ์ของคุณเกิดปัญหาภายในเครื่อง อุปกรณ์อาจทำงานไม่เสถียรจนกว่าคุณจะรีเซ็ตข้อมูลเป็นค่าเริ่มต้น"</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"อุปกรณ์ของคุณเกิดปัญหาภายในเครื่อง โปรดติดต่อผู้ผลิตเพื่อขอรายละเอียดเพิ่มเติม"</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"คำขอ SS ได้รับการแก้ไขให้เป็นคำขอ DIAL"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"คำขอ SS ได้รับการแก้ไขให้เป็นคำขอ USSD"</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"คำขอ SS ได้รับการแก้ไขให้เป็นคำขอ SS ใหม่"</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"อุปกรณ์สำหรับต่อพอร์ต USB ของ Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"อุปกรณ์สำหรับต่อพอร์ต USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"ตัวเลือกเพิ่มเติม"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"ปิดรายการเพิ่มเติม"</string>
</resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 4630e76..4a4d852 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android System"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Mga personal na app"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Trabaho"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Mga Contact"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"i-access at baguhin ang iyong mga contact"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Lokasyon"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"i-access ang iyong lokasyon"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Ang iyong social na impormasyon"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Direktang access sa impormasyon tungkol sa iyong mga contact at social na koneksyon."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendaryo"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"i-access at baguhin ang iyong kalendaryo"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"i-access at baguhin ang SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Diksyunaryo ng User"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Magbasa o magsulat ng mga salita sa diksyunaryo ng user"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Mga Bookmark at Kasaysayan"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Direktang access sa mga bookmark at kasaysayan ng browser."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikropono"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"gumamit ng mikropono sa device"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Camera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"gumamit ng camera sa device"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telepono"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"gumamit ng telephony sa device"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Mga Sensor"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"i-access ang mga sensor at nasusuot"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Kunin ang nilalaman ng window"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Siyasatin ang nilalaman ng isang window kung saan ka nakikipag-ugnayan."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"I-on ang Explore by Touch"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Hindi buo ang natukoy na fingerprint. Pakisubukang muli."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Hindi maproseso ang fingerprint. Pakisubukang muli."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Marumi ang sensor ng fingerprint. Pakilinis at subukang muli."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Masyadong mabilis ang paggalaw ng daliri. Pakisubukang muli."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Masyadong mabagal ang paggalaw ng daliri. Pakisubukang muli."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Hindi maproseso. Subukang muli."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Hindi available ang hardware."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Hindi maiimbak ang fingerprint. Mangyaring mag-alis ng umiiral nang fingerprint."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Nag-time out ang fingerprint. Subukang muli."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Nag-time out ang fingerprint. Subukang muli."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"basahin ang mga setting ng sync"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Pinapayagan ang isang app na baguhin ang mga setting ng pag-sync para sa isang account. Halimbawa, magagamit ito upang paganahin ang pag-sync ng app na Mga Tao sa isang account."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"basahin ang mga istatistika ng sync"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Pinapayagan ang app na basahin ang mga istatistika ng pag-sync para sa isang account, kabilang ang kasaysayan ng mga kaganapan sa pag-sync at kung ilang data ang naka-sync."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"sumulat ng mga naka-subscribe na feed"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Pinapayagan ang app na baguhin ang iyong kasalukuyang na-sync na mga feed. Maaaring baguhin ng nakakahamak na apps ang iyong na-sync na mga feed."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"basahin ang mga terminong idinagdag mo sa diksyunaryo"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Pinapayagan ang app na basahin ang lahat ng salita, pangalan at parirala na maaaring inimbak ng user sa diksyunaryo ng user."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"magdagdag ng mga salita sa diksyunaryong tinukoy ng user"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Pindutin ang Menu upang i-unlock o magsagawa ng pang-emergency na tawag."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Pindutin ang Menu upang i-unlock."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Iguhit ang pattern upang i-unlock"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Pang-emergency na tawag"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"Emergency"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Bumalik sa tawag"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Tama!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Subukang muli"</string>
@@ -1034,29 +1028,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"mga kandidato"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Ihinahanda ang imbakan na USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Hinahanda ang SD card"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Sinusuri para sa mga error."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Blangkong imbakan na USB"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Blangkong SD card"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Blangko ang USB storage o may hindi sinusuportahang filesystem."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Blangko ang SD card o may hindi sinusuportahang filesystem."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Nasirang imbakan na USB"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Sirang SD card"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Sira ang USB storage. Subukan itong i-reformat."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Sira ang SD card. Subukan itong i-reformat."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Di inasahan naalis USB storage"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Hindi inaasahang inalis ang SD card"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"I-unmount ang imbakan na USB bago alisin upang maiwasan ang pagkawala ng data."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"I-unmount ang SD card bago alisin upang maiwasan ang pagkawala ng data."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Ligtas na alisin imbakan na USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"ligtas na alisin ang SD card"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Maaari mong ligtas na alisin ang imbakan na USB."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Ligtas mo nang maaalis ang SD card."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Inalis na imbakan na USB"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Naalis na SD card"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Inalis ang imbakan na USB. Magpasok ng bagong media."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Inalis ang SD card. Magpasok ng bago."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Walang nahanap na mga tumutugmang aktibidad."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"I-route ang output ng media"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Pinapayagan ang application na mag-route ng output ng media sa iba pang mga panlabas na device."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Overlay #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", secure"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Emergency na tawag"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nakalimutan ang Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Maling Pattern"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Maling Password"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index c162151..e91d1cb 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android Sistemi"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Kişisel uygulamalar"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"İş"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kişiler"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"kişilerinize erişme ve değişiklik yapma"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Konum"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"konumunuza erişme"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Sosyal bilgileriniz"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Kişileriniz ve sosyal bağlantılarınızla ilgili bilgilere doğrudan erişim."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Takvim"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"takviminize erişme ve değişiklik yapma"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS\'e erişme ve değişiklik yapma"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Kullanıcı Sözlüğü"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Kullanıcı sözlüğündeki kelimeleri okuma veya yazma"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Yer İşaretleri ve Geçmiş"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Yer işaretlerine ve tarayıcı geçmişine doğrudan erişim."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"cihaz mikrofonunu kullanma"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"cihaz kamerasını kullanma"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"cihaz telefonunu kullanma"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensörler"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"sensörlere ve giyilebilir cihazlara erişme"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Pencere içeriğini alma"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Etkileşim kurduğunuz pencerenin içeriğini inceler."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Dokunarak Keşfet\'i açma"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Parmak izinin tümü algılanamadı. Lütfen tekrar deneyin."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Parmak izi işlenemedi. Lütfen tekrar deneyin."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Parmak izi sensörü kirli. Lütfen temizleyin ve tekrar deneyin."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Parmak hareketi çok hızlıydı. Lütfen tekrar deneyin."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Parmak hareketi çok yavaştı. Lütfen tekrar deneyin."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"İşlenemedi. Tekrar deneyin."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Donanım yok."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Parmak izi depolanamıyor. Lütfen mevcut parmak izlerinden birini kaldırın."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Parmak izi için zaman aşımı oluştu. Tekrar deneyin."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Parmak izi için zaman aşımı oluştu. Tekrar deneyin."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"senk. ayarlarını okuma"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Uygulamaya bir hesaba ait senkronizasyon ayarlarını değiştirme izni verir. Örneğin, bu izne sahip bir uygulama Kişiler uygulamasının bir hesapla senkronize edilmesini etkinleştirebilir."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"senk. istatistiklerini okuma"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Uygulamaya bir hesaba ait senkronizasyon istatistiklerini okuma izni verir. Buna senkronizasyon etkinlikleri geçmişi ve senkronize edilen veri miktarı bilgileri de dahildir."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"abone olunan yayınları yazma"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Uygulamaya, o anda senkronize edilmiş özet akışlarını değiştirme izni verir. Kötü amaçlı uygulamalar senkronize edilmiş özet akışlarını değiştirebilir."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"sözlüğe eklediğiniz terimleri okuma"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Uygulamaya, kullanıcının kullanıcı sözlüğünde depolamış olabileceği kelimeleri, adları ve kelime öbeklerini okuma izni verir."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"kullanıcı tanımlı sözlüğe kelime ekleme"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Kilidi açmak veya acil çağrı yapmak için Menü\'ye basın."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Kilidi açmak için Menü\'ye basın."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Kilit açmak için deseni çizin"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Acil durum çağrısı"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Çağrıya dön"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Doğru!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tekrar deneyin"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"adaylar"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB bellek hazırlanıyor"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD kart hazırlanıyor"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Hata kontrolü yapılıyor"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Boş USB bellek"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Boş SD kart"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB bellek boş veya desteklenmeyen bir dosya sistemine sahip."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD kart boş veya desteklenmeyen dosya sistemi içeriyor."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB bellek zarar görmüş"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Hasarlı SD kart"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB bellek bozuk. Yeniden biçimlendirmeyi deneyin."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD kart bozuk. Yeniden biçimlendirmeyi deneyin."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB bellek bklnmd şekl çıkarld"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD kart beklenmedik biçimde çıkarıldı"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Veri kaybı olmaması için çıkarmadan önce USB belleğin bağlantısını kesin."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Veri kaybından kaçınmak için SD kartı çıkarmadan önce bağlantısını kesin."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB bellek güvenle çıkarılablr"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD kart güvenle çıkarılabilir"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USB belleği güvenli bir şekilde çıkarabilirsiniz."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"SD kartı güvenle kaldırabilirsiniz."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB bellek çıkarıldı"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD kart çıkarılmış"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB bellek çıkarıldı. Yeni medyayı takın."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD kart çıkarıldı. Yeni bir SD kart takın."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"Hatalar denetleniyor"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Eşleşen hiçbir etkinlik bulunamadı."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Medya çıktısını yönlendir"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Uygulamaya medya çıktısını başka harici cihazlara yönlendirme izni verir."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Yer Paylaşımı No. <xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", güvenli"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Acil durum çağrısı"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Deseni Unuttunuz mu?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Yanlış Desen"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Yanlış Şifre"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Şu saate kadar: <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Siz bunu kapatana kadar"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Daralt"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Kesintileri engelle"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Bildirim istenmeyen zaman"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Hafta içi her gece"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Hafta sonu"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> tarafından kapatıldı"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Cihazınızla ilgili dahili bir sorun oluştu ve fabrika verilerine sıfırlama işlemi gerçekleştirilene kadar kararsız çalışabilir."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Cihazınızla ilgili dahili bir sorun oluştu. Ayrıntılı bilgi için üreticinizle iletişim kurun."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS isteği DIAL isteği olarak değiştirildi."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS isteği USSD isteği olarak değiştirildi."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS isteği yeni SS isteği olarak değiştirildi."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB Çevre Birimi Bağlantı Noktası"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB Çevre Birimi Bağlantı Noktası"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Diğer seçenekler"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Taşan araç çubuğunu kapat"</string>
</resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index bccec41..382d235 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -220,42 +220,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Система Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Особисті додатки"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Службовий профіль"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Контактні дані"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"відкривати та змінювати контактні дані"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Геодані"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"використовувати геодані"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Соціальна інформація"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Безпосередній доступ до інформації про ваші контакти та соціальні зв’язки."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Календар"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"відкривати та змінювати календар"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"відкривати та змінювати SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Словник користувача"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Переглядати або додавати слова в словнику користувача."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Закладки й історія"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Безпосередній доступ до закладок та історії веб-переглядача."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Мікрофон"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"використовувати мікрофон пристрою"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Камера"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"використовувати камеру пристрою"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Телефон"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"використовувати телефонний зв’язок пристрою"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Датчики"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"отримувати доступ до датчиків і пристроїв Wear"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Отримувати вміст вікна"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Перевіряти вміст вікна, з яким ви взаємодієте."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Увімкнути функцію дослідження дотиком"</string>
@@ -445,15 +431,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Відбиток розпізнано частково. Повторіть спробу."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Не вдалось обробити відбиток. Повторіть спробу."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Датчик відбитків забруднився. Очистьте його та повторіть спробу."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Ви забрали палець надто швидко. Повторіть спробу."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Ви забрали палець надто повільно. Повторіть спробу."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Не вдалось обробити. Повторіть спробу."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Апаратне забезпечення недоступне."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Не вдалося зберегти відбиток. Видаліть наявний відбиток."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Час очікування відбитка минув. Повторіть спробу."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Час очікування відбитка минув. Повторіть спробу."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"читати налаштування синхронізації"</string>
@@ -462,6 +454,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Дозволяє програмі змінювати налаштування синхронізації для облікового запису, наприклад, вмикати синхронізацію програми Люди з обліковим записом."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"Перегляд статистики синхронізації"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Дозволяє програмі читати статистику синхронізації облікового запису, зокрема історію синхронізацій і обсяг синхронізованих даних."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"запис. підписані канали"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Дозволяє програмі змінювати поточно синхронізовані канали. Шкідливі програми можуть змінювати ваші синхронізовані канали."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"читати додані в словник терміни"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Дозволяє програмі читати всі слова, назви та фрази, які користувач міг зберегти у своєму словнику."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"додавати слова у вказаний користувачем словник"</string>
@@ -636,7 +630,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Натис. меню, щоб розбл. чи зробити авар. виклик."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Натисн. меню, щоб розбл."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Намал. ключ, щоб розбл."</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Аварійний виклик"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Поверн. до дзвін."</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правильно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Повторіть спробу"</string>
@@ -1048,29 +1043,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"кандидати"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Підготовка носія USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Пригот-ня карти SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Перевір. наявн. помил."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Порожній носій USB"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Порожня карта SD"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Носій USB порожній або має непідтримувану файлову систему."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Карта SD порожня або має непідтримувану файлову систему."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Пошкоджений носій USB"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Пошкодж. карта SD"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Носій USB пошкоджено. Спробуйте його переформатувати."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Карту SD пошкоджено. Спробуйте її переформатувати."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Носій USB несподівано вилучено"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Карту SD несподівано вилучено"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Відключити носій USB перед його вилученням, щоб не втратити дані."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Відключ. карту SD перед її вилуч., щоб не втрат. дані."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Носій USB можна вилучити"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Карту SD можна вилучити"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Можна безпечно вилучити носій USB."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Можна безпечно вилучити карту SD."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Вилучений носій USB"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Вилучена карта SD"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Носій USB вилучено. Вставте новий носій."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Карту SD вилучено. Вставте нову."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Відповідні дії не знайдено."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Скеровувати вивід медіа-даних"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Дозволяє програмі скеровувати вивід медіа-даних на інші зовнішні пристрої."</string>
@@ -1267,7 +1269,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Накладання №<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>х<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", безпечний"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Екстрений виклик"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Не пам’ятаю ключ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Неправильний ключ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Неправильний пароль"</string>
@@ -1473,17 +1474,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"До <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Доки ви не вимкнете"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Блокування сповіщень"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Простій"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Увечері в робочі дні"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"У вихідні"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> вимикає звук"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Через внутрішню помилку ваш пристрій може працювати нестабільно. Відновіть заводські налаштування."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"На пристрої сталася внутрішня помилка. Зв’яжіться з виробником пристрою, щоб дізнатися більше."</string>
@@ -1493,11 +1489,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Запит SS перетворено на запит DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Запит SS перетворено на запит USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Запит SS перетворено на новий запит SS."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Периферійний USB-порт Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Периферійний USB-порт"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Більше опцій"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Закрити розширені інструменти"</string>
</resources>
diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml
index 9505d4d..c25a9ab 100644
--- a/core/res/res/values-ur-rPK/strings.xml
+++ b/core/res/res/values-ur-rPK/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"‏Android سسٹم"</string>
<string name="user_owner_label" msgid="6465364741001216388">"ذاتی ایپس"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"دفتر"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"رابطے"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"اپنے رابطوں تک رسائی حاصل کریں اور ان میں ترمیم کریں"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"مقام"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"اپنے مقام تک رسائی حاصل کریں"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"آپ کی سوشل معلومات"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"اپنے رابطوں اور سوشل کنکشنز کے بارے میں معلومات تک براہ راست رسائی۔"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"کیلنڈر"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"اپنے کیلنڈر تک رسائی حاصل کریں اور اس میں ترمیم کریں"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"‏SMS تک رسائی حاصل کریں اور اس میں ترمیم کریں"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"صارف کی لغت"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"صارف کی لغت میں الفاظ پڑھیں یا لکھیں۔"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"بُک مارکس اور سرگزشت"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"بک مارکس اور براؤزر کی سرگزشت تک براہ راست رسائی۔"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"مائکروفون"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"آلہ کا مائیکروفون استعمال کریں"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"کیمرا"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"آلہ کا کیمرہ استعمال کریں"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"فون"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"آلہ کا ٹیلیفونی استعمال کریں"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"سینسرز"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"سینسرز اور ویئرایبلز تک رسائی حاصل کریں"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"ونڈو مواد کی بازیافت کریں"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"کسی ایسے ونڈو کے مواد کا معائنہ کریں جس کے ساتھ آپ تعامل کر رہے ہیں۔"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"ٹچ کے ذریعے دریافت کریں کو آن کریں"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"جزوی فنگر پرنٹ کی شناخت ہوئی۔ براہ کرم دوبارہ کوشش کریں۔"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"فنگر پرنٹ پر کارروائی نہیں کی جا سکی۔ براہ کرم دوبارہ کوشش کریں۔"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"فنگر پرنٹ سینسر گندا ہے۔ براہ کرم صاف کریں اور دوبارہ کوشش کریں۔"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"انگلی کو کافی تیزی سے ہٹا لیا گیا۔ براہ کرم دوبارہ کوشش کریں۔"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"انگلی کو بہت آہستہ ہٹا لیا گیا۔ براہ کرم دوبارہ کوشش کریں۔"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"کارروائی کرنے سے قاصر ہے۔ دوبارہ کوشش کریں۔"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"ہارڈ ویئر دستیاب نہیں ہے۔"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"فنگر پرنٹ اسٹور نہیں کیا جا سکتا ہے۔ براہ کرم ایک موجودہ فنگر پرنٹ ہٹائیں۔"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"فنگر پرنٹ کی میعاد ختم ہوگئی۔ دوبارہ کوشش کریں۔"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"فنگر پرنٹ کی میعاد ختم ہوگئی۔ دوبارہ کوشش کریں۔"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"مطابقت پذیری کی ترتیبات پڑھیں"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"‏ایپ کو کسی اکاؤنٹ کیلئے مطابقت پذیری کی ترتیبات میں ترمیم کرنے کی اجازت دیتا ہے۔ مثلا، کسی اکاؤنٹ کے ساتھ People ایپ کی مطابقت پذیری فعال کرنے کیلئے اسے استعمال کیا جاسکتا ہے۔"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"مطابقت پذیری کے اعداد و شمار پڑھیں"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"ایپ کو کسی اکاؤنٹ کیلئے مطابقت پذیری کے اعداد و شمار، بشمول مطابقت پذیری کے ایونٹس اور جس قدر ڈیٹا مطابقت پذیر ہے اس کی سرگزشت کو پڑھنے کی اجازت دیتا ہے۔"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"سبسکرائب کردہ فیڈز لکھیں"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"ایپ کو فی الحال مطابقت پذیر کیے ہوئے آپ کے فیڈز میں ترمیم کرنے کی اجازت دیتا ہے۔ نقصان دہ ایپس مطابقت پذیر کیے ہوئے آپ کے فیڈز کو تبدیل کر سکتی ہیں۔"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"لغت میں اپنے ذریعہ شامل کردہ اصطلاحات کو پڑھیں"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"ایپ کو وہ سبھی الفاظ، نام اور فقرے پڑھنے کی اجازت دیتا ہے جو صارف نے صارف کی لغت میں محفوظ کیے ہو سکتے ہیں۔"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"صارف کے ذریعہ متعین کردہ لغت میں الفاظ شامل کریں"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"غیر مقفل کرنے کیلئے مینو دبائیں یا ہنگامی کال کریں۔"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"غیر مقفل کرنے کیلئے مینو دبائیں۔"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"غیر مقفل کرنے کیلئے پیٹرن کو ڈرا کریں"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"ہنگامی کال"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"کال پر واپس جائیں"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"صحیح!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"دوبارہ کوشش کریں"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"امیدواران"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"‏USB اسٹوریج تیار ہو رہا ہے"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"‏SD کارڈ تیار ہو رہا ہے"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"خرابیاں چیک کر رہا ہے۔"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"‏خالی USB اسٹوریج"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"‏خالی SD کارڈ"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"‏USB اسٹوریج خالی ہے یا اس میں غیر تعاون یافتہ فائل سسٹم ہے۔"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"‏SD کارڈ خالی ہے یا اس میں غیر تعاون یافتہ فائل سسٹم ہے۔"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"‏خراب USB اسٹوریج"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"‏خراب SD کارڈ"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"‏USB اسٹوریج خراب ہوگیا ہے۔ اسے دوبارہ فارمیٹ کرنے کی کوشش کریں۔"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"‏SD کارڈ خراب ہو گیا ہے۔ اسے دوبارہ فارمیٹ کرنے کی کوشش کریں۔"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"‏USB اسٹوریج اچانک ہٹا دیا گیا"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"‏SD کارڈ غیر متوقع طور پر ہٹا دیا گیا"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"‏ڈیٹا ضائع ہونے سے بچانے کیلئے ہٹانے سے پہلے USB اسٹوریج کو اَن ماؤنٹ کریں۔"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"‏ڈیٹا ضائع ہونے سے بچانے کیلئے ہٹانے سے پہلے SD کارڈ کو اَن ماؤنٹ کریں۔"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"‏USB اسٹوریج کو ہٹانا محفوظ ہے"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"‏SD کارڈ ہٹانا محفوظ ہے"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"‏آپ محفوظ طریقے سے USB اسٹوریج ہٹا سکتے ہیں۔"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"‏آپ محفوظ طریقے سے SD کارڈ ہٹا سکتے ہیں۔"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"‏USB اسٹوریج کو ہٹا دیا گیا"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"‏SD کارڈ ہٹا دیا گیا"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"‏USB اسٹوریج کو ہٹا دیا گیا۔ نئے میڈیا داخل کریں۔"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"‏SD کارڈ ہٹا دیا گیا۔ ایک نیا کارڈ داخل کریں۔"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"کوئی مماثل سرگرمیاں نہیں ملیں۔"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"میڈیا آؤٹ پٹ کی سمت طے کریں"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"کسی ایپلیکیشن کو دوسرے خارجی آلات تک میڈیا آؤٹ پٹ کا راستہ بنانے کی اجازت دیتا ہے۔"</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"‏اوور لے ‎#<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"، محفوظ"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"ہنگامی کال"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"پیٹرن بھول گئے"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"غلط پیٹرن"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"غلط پاس ورڈ"</string>
@@ -1448,17 +1448,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> تک"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"جب تک آپ اسے آف نہ کر دیں"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"مداخلتیں مسدود کریں"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"ڈاؤن ٹائم"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"ہفتہ کی راتوں کو"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"ویک اینڈز کو"</string>
<string name="muted_by" msgid="6147073845094180001">"<xliff:g id="THIRD_PARTY">%1$s</xliff:g> کے ذریعے خاموش کردہ"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"آپ کے آلہ میں ایک داخلی مسئلہ ہے اور جب تک آپ فیکٹری ڈیٹا کو دوبارہ ترتیب نہیں دے دیتے ہیں، ہوسکتا ہے کہ یہ غیر مستحکم رہے۔"</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"آپ کے آلہ میں ایک داخلی مسئلہ ہے۔ تفصیلات کیلئے اپنے مینوفیکچرر سے رابطہ کریں۔"</string>
@@ -1468,11 +1463,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"‏SS درخواست میں ترمیم کر کے DIAL درخواست بنا دی گئی ہے۔"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"‏SS درخواست میں ترمیم کر کے USSD درخواست بنا دی گئی ہے۔"</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"‏SS درخواست میں ترمیم کر کے نئی SS درخواست بنا دی گئی ہے۔"</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"‏Android USB پیرفرل پورٹ"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"‏USB پیرفرل پورٹ"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"مزید اختیارات"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"اوورفلو بند کریں"</string>
</resources>
diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml
index efefa03..2cd0b5f 100644
--- a/core/res/res/values-uz-rUZ/strings.xml
+++ b/core/res/res/values-uz-rUZ/strings.xml
@@ -218,43 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android tizimi"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Shaxsiy ilovalar"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Ish"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktlar"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"kontaktlaringizni ko‘rish va o‘zgartirish"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Joylashuv"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"joylashuvingizni ko‘rish"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Ijtimoiy ma’lumotingiz"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Kontaktlaringiz va ijtimoiy aloqalaringiz haqidagi ma’lumotga to‘g‘ridan to‘g‘ri o‘tadi."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Taqvim"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
- <!-- no translation found for permgrouplab_dictionary (8114410334955871144) -->
- <skip />
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"taqvimingizni ko‘rish va o‘zgartirish"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"SMS xabarlarni ko‘rish va o‘zgartirish"</string>
+ <string name="permgrouplab_dictionary" msgid="8114410334955871144">"Foydalanuvchi lug‘ati"</string>
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Foydalanuvchi lug‘atida so‘zlarni o‘qish yoki yozish"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Xatcho‘plar va tarix"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Xatcho‘plar va brauzer tarixiga to‘g‘ridan to‘g‘ri kirishga ruxsat."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"qurilma mikrofonidan foydalanish"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"qurilma kamerasidan foydalanish"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Telefon"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"qurilma telefon xizmatidan foydalanish"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Sensorlar"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"taqiladigan qurilmalar va sensorlarni ko‘rish"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Oynadagi kontentni ajratib olish"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Joriy oynadagi kontent ma’lumotlarini o‘rganib chiqish."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Tegib o‘rganish xizmatini yoqish"</string>
@@ -444,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Barmoq izi qisman aniqlandi. Qayta urinib ko‘ring."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Barmoq izi aniqlanmadi. Qayta urinib ko‘ring."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Barmoq izi sensori kirlangan. Uni tozalab, keyin qayta urinib ko‘ring."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Barmoq juda tez harakatlandi. Qayta urinib ko‘ring."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Barmoq juda sekin harakatlandi. Qayta urinib ko‘ring."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Barmoq izini aniqlab bo‘lmadi. Qayta urinib ko‘ring."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Barmoq izi sensoridan foydalanib bo‘lmaydi."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Barmoq izini saqlab bo‘lmadi. Mavjud barmoq izlaridan birini o‘chirib tashlang."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Barmoq izini aniqlash vaqti tugab qoldi. Qayta urinib ko‘ring."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Barmoq izini aniqlash vaqti tugab qoldi. Qayta urinib ko‘ring."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"sinx-sh sozlamalarini o‘qish"</string>
@@ -461,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Ilovaga hisobning sinxronlash sozlamalarini o‘zgartirish uchun ruxsat beradi. Masalan, bundan \"Odamlar\" ilovasini hisob bilan sinxronlanlash uchun foydalanish mumkin."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"sinxronlash statistikasini o‘qish"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Ilovaga hisobning sinxronlash statistikasini, shu jumladan, sinxronlangan hodisalar tarixi va qancha ma’lumot sinxronlanganligi haqidagi ma’lumotni o‘qishga ruxsat beradi."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"obunalarga yozish"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Ilova hozirgi vaqtda sinxronlanayotgan elementlarni o‘zgartirishi mumkin. Zararli dasturlar uning yordamida sinxronlangan elementlarni o‘zgartirishi mumkin"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"lug‘atga qo‘shgan atamalaringizni o‘qish"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Ilovaga foydalanuvchi lug‘atga zaxiralagan barcha so‘zlar, nomlar va so‘z birikmalarini o‘qish uchun ruxsat beradi."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"foydalanuvchi lug‘atiga so‘zlar qo‘shish"</string>
@@ -635,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Qulfdan chiqarish yoki favqulodda qo‘ng‘iroqni amalga oshirish uchun \"Menyu\"ni bosing."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Qulfni ochish uchun \"Menyu\"ga bosing."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Qulfni ochish uchun namuna ustiga chizing"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Favqulodda chaqiruv"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Qo‘ng‘iroqni qaytarish"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"To‘g‘ri!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Qaytadan urining"</string>
@@ -1035,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"nomzodlar"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB xotira tayyorlanmoqda"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD karta tayyorlanmoqda"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Xatolar tekshirilmoqda."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB xotira bo‘sh"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"SD karta bo‘sh"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB xotirasi bo‘sh yoki mos kelmaydigan fayl tizimiga ega."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD xotira kartasi bo‘sh yoki mos kelmaydigan fayl tizimiga ega."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB xotira buzilgan"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"SD karta buzilgan"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB xotirasi buzilgan. Formatlashga urinib ko‘ring."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD xotira kartasi buzilgan. Formatlashga urinib ko‘ring."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB xotira kutilmaganda olib tashlandi"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD karta kutilmaganda olib tashlandi"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Ma’lumotlar yo‘qolishining oldini olish uchun USB xotirani olishdan oldin uni uzing."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Ma’lumotlar yo‘qolishining oldini olish uchun SD kartani olishdan oldin uni uzing."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB xotira xavfsiz va chiqarib olishga tayyor"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD kartani xavfsiz olish mumkin"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USB xotirani xavfsiz olishingiz mumkin."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"SD xotirani xavfsiz olishingiz mumkin."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB xotira olib tashlandi"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD karta olindi"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB xotira olindi. Yangi xotira qurilmasini kiriting."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD karta olindi. Yangisini kiriting."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Hech qanday mos faoliyat topilmadi."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Media chiqishni yo‘naltirish"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Ilovaga media chiqish ovozini boshqa tashqi qurilmalarga yo‘naltirish uchun ruxsat beradi."</string>
@@ -1252,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Tasvir uzatish #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", xavfsiz"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Favqulodda qo‘ng‘iroq"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Chizmali parol unutilgan"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Xato chizma paroli"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Xato parol"</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 2d41304..c5b67d6 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Hệ thống Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Ứng dụng cá nhân"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Cơ quan"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Danh bạ"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"truy cập và sửa đổi danh bạ của bạn"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Vị trí"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"truy cập vị trí của bạn"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Thông tin xã hội của bạn"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Truy cập trực tiếp vào thông tin về các địa chỉ liên hệ và các kết nối xã hội của bạn."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Lịch"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"truy cập và sửa đổi lịch của bạn"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"Tin nhắn SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"truy cập và sửa đổi tin nhắn SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Từ điển người dùng"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Đọc hoặc viết các từ trong từ điển người dùng."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Dấu trang và lịch sử"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Truy cập trực tiếp vào dấu trang và lịch sử trình duyệt."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Micrô"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"sử dụng micrô của thiết bị"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Máy ảnh"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"sử dụng máy ảnh của thiết bị"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Điện thoại"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"sử dụng điện thoại của thiết bị"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Cảm biến"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"truy cập cảm biến và thiết bị đeo được"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Truy xuất nội dung cửa sổ"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Kiểm tra nội dung của cửa sổ bạn đang tương tác."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Bật Khám phá bằng cách chạm"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Đã phát hiện được một phần vân tay. Vui lòng thử lại."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Không thể xử lý vân tay. Vui lòng thử lại."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Cảm biến vân tay bị bẩn. Hãy làm sạch và thử lại."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Ngón tay đã di chuyển quá nhanh. Vui lòng thử lại."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Ngón tay đã di chuyển quá chậm. Vui lòng thử lại."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Không thể xử lý. Hãy thử lại."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Phần cứng không có sẵn."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Không thể lưu vân tay. Vui lòng xóa vân tay hiện có."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Đã hết thời gian chờ vân tay. Hãy thử lại."</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Đã hết thời gian chờ vân tay. Hãy thử lại."</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"đọc cài đặt đồng bộ hóa"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Cho phép ứng dụng sửa đổi cài đặt đồng bộ hóa cho tài khoản. Ví dụ: ứng dụng có thể được sử dụng để cho phép đồng bộ hóa ứng dụng Mọi người với tài khoản."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"đọc thống kê đồng bộ hóa"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Cho phép ứng dụng đọc thống kê đồng bộ hóa cho tài khoản, bao gồm lịch sử của các sự kiện đồng bộ hóa và lượng dữ liệu được đồng bộ hóa."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"ghi nguồn cấp dữ liệu đã đăng ký"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Cho phép ứng dụng sửa đổi nguồn cấp dữ liệu hiện đã được đồng bộ hóa của bạn. Ứng dụng độc hại có thể thay đổi nguồn cấp dữ liệu đã đồng bộ hóa của bạn."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"đọc cụm từ bạn đã thêm vào từ điển"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Cho phép ứng dụng đọc tất cả các từ, tên và cụm từ mà người dùng có thể đã lưu trữ trong từ điển của người dùng."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"thêm từ vào từ điển do người dùng xác định"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Nhấn vào Menu để mở khóa hoặc thực hiện cuộc gọi khẩn cấp."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Nhấn vào Menu để mở khóa."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Vẽ hình để mở khóa"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Cuộc gọi khẩn cấp"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"Khẩn cấp"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Quay lại cuộc gọi"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Chính xác!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Thử lại"</string>
@@ -1034,29 +1028,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"ứng viên"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Đang chuẩn bị bộ nhớ USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Đang chuẩn bị thẻ SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Đang kiểm tra lỗi."</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Bộ nhớ USB trống"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Thẻ SD trống"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Bộ lưu trữ USB trống hoặc có hệ thống tệp không được hỗ trợ."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Thẻ SD trống hoặc có hệ thống tệp không được hỗ trợ."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Bộ nhớ USB bị hỏng"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Thẻ SD đã bị hỏng"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Bộ lưu trữ USB bị hỏng. Hãy thử định dạng lại."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"Thẻ SD bị hỏng. Hãy thử định dạng lại."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Bộ nhớ USB bị tháo đột ngột"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Thẻ SD bị tháo đột ngột"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Ngắt kết nối USB trước khi tháo nhằm tránh mất dữ liệu."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Tháo thẻ SD trước khi gỡ nhằm tránh mất dữ liệu."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Bộ nhớ USB an toàn để tháo"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"An toàn để tháo thẻ SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Bạn có thể tháo an toàn bộ nhớ USB."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Bạn có thể tháo an toàn thẻ SD."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Bộ nhớ USB đã tháo"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Thẻ SD đã bị tháo"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Bộ nhớ USB bị tháo. Hãy lắp phương tiện mới."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Thẻ SD đã được tháo. Hãy lắp một thẻ mới."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Không tìm thấy hoạt động nào phù hợp."</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Định tuyến thiết bị ra phương tiện"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Cho phép ứng dụng định tuyến thiết bị ra phương tiện đến các thiết bị bên ngoài khác."</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Lớp phủ #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", an toàn"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Cuộc gọi khẩn cấp"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Đã quên hình"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Hình sai"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Mật khẩu sai"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"Cho đến <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"Cho đến khi bạn tắt tính năng này"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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">"Thu gọn"</string>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"Chặn gián đoạn"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"Thời gian ngừng hoạt động"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"Đêm trong tuần"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"Ngày cuối tuần"</string>
<string name="muted_by" msgid="6147073845094180001">"Do <xliff:g id="THIRD_PARTY">%1$s</xliff:g> tắt tiếng"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"Đã xảy ra sự cố nội bộ với thiết bị của bạn và thiết bị có thể sẽ không ổn định cho tới khi bạn thiết lập lại dữ liệu ban đầu."</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"Đã xảy ra sự cố nội bộ với thiết bị. Hãy liên hệ với nhà sản xuất của bạn để biết chi tiết."</string>
@@ -1467,11 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"Yêu cầu SS được sửa đổi thành yêu cầu DIAL."</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"Yêu cầu SS được sửa đổi thành yêu cầu USSD."</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"Yêu cầu SS được sửa đổi thành yêu cầu SS mới."</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Cổng ngoại vi USB Android"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"Cổng ngoại vi USB"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"Tùy chọn khác"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"Đóng tràn"</string>
</resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 39b5101..020d1bd 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android系统"</string>
<string name="user_owner_label" msgid="6465364741001216388">"个人应用"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"工作"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"通讯录"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"存取和修改您的通讯录"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"位置信息"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"存取您的位置信息"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"您的社交信息"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"直接访问与您的联系人和社交人脉相关的信息。"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"日历"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"存取和修改您的日历"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"短信"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"存取和修改短信"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"用户字典"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"读取用户字典中的字词或写入新字词。"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"书签和历史记录"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"直接访问书签和浏览器历史记录。"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"麦克风"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"使用设备的麦克风"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"相机"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"使用设备的摄像头"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"电话"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"使用设备的电话服务"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"传感器"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"存取传感器和穿戴式设备的数据"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"检索窗口内容"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"检查您正与其进行互动的窗口的内容。"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"启用触摸浏览"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"仅检测到部分指纹,请重试。"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"无法处理指纹,请重试。"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指纹传感器有脏污。请擦拭干净,然后重试。"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"手指移动太快,请重试。"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"手指移动太慢,请重试。"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"无法处理指纹,请重试。"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"硬件无法使用。"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"无法存储指纹。请移除一个现有的指纹。"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"指纹录入操作超时,请重试。"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"指纹录入操作超时,请重试。"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"读取同步设置"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"允许该应用修改某个帐户的同步设置。例如,此权限可用于在“联系人”应用与某个帐户之间启用同步。"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"读取同步统计信息"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"允许该应用读取某个帐户的同步统计信息,包括同步活动历史记录和同步数据量。"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"写入订阅的供稿"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"允许应用修改您当前同步的 Feed。恶意应用可能会更改您的同步 Feed。"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"读取您添加到字典的字词"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"允许该应用读取用户可能已在用户字典中存储的所有字词、名称和词组。"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"向用户定义的字典添加字词"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"按 Menu 解锁或进行紧急呼救。"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"按 MENU 解锁。"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"绘制解锁图案"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"紧急呼救"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"返回通话"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"正确!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"重试"</string>
@@ -1034,29 +1029,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"候选"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"正在准备USB存储设备"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"正在准备SD卡"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"正在检查是否有错误。"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB存储设备中无文件"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"空SD卡"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB存储设备中没有任何文件或使用了不支持的文件系统。"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD卡中没有任何文件或使用了不支持的文件系统。"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB存储设备已损坏"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"SD卡受损"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB存储设备已损坏,请尝试重新格式化。"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD卡已损坏,请尝试重新格式化。"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB存储设备已意外移除"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD卡未正常移除"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"请先卸载USB存储设备,再将其移除,以防数据丢失。"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"请先卸载SD卡,再将其移除,以防数据丢失。"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB存储设备已安全移除"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD卡已安全移除"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"您可以安全地移除USB存储设备。"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"您现在可以安全移除SD卡。"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB存储设备已移除"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"已移除SD卡"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB存储设备已移除。请插入新媒体。"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD卡已移除。请插入新的SD卡。"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"检查是否有错误"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"未找到匹配的活动。"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"更改媒体输出线路"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"允许该应用将媒体输出线路更改到其他外部设备。"</string>
@@ -1251,7 +1252,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"叠加视图 #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>:<xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>,<xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">",安全"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"紧急呼救"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘记了图案"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"图案错误"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"密码错误"</string>
@@ -1447,17 +1447,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"到<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"直到您将其关闭"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"屏蔽打扰内容"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"休息时间"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"工作日夜间"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"周末"</string>
<string name="muted_by" msgid="6147073845094180001">"已被<xliff:g id="THIRD_PARTY">%1$s</xliff:g>设为静音"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"您的设备内部出现了问题。如果不将设备恢复出厂设置,设备运行可能会不稳定。"</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"您的设备内部出现了问题。请联系您的设备制造商了解详情。"</string>
@@ -1467,13 +1462,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS 请求已修改为 DIAL 请求。"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS 请求已修改为 USSD 请求。"</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS 请求已修改为新的 SS 请求。"</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB 外设端口"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
- <!-- no translation found for floating_toolbar_open_overflow_description (4797287862999444631) -->
- <skip />
- <!-- no translation found for floating_toolbar_close_overflow_description (559796923090723804) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB 外设端口"</string>
+ <string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"更多选项"</string>
+ <string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"关闭工具栏溢出"</string>
</resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 22025ab..037076b 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android 系統"</string>
<string name="user_owner_label" msgid="6465364741001216388">"個人應用程式"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"公司"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"通訊錄"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"存取和修改您的聯絡人"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"位置"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"存取您的位置"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"您的社交資訊"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"直接存取您的聯絡人資訊和社交網站資訊。"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"日曆"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"存取和修改您的日曆"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"短訊"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"存取和修改短訊"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"使用者字典"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"讀取或寫入使用者字典中的字詞。"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"書籤和記錄"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"直接存取書籤和瀏覽器紀錄。"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"麥克風"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"使用裝置上的麥克風"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"相機"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"使用裝置上的相機"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"電話"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"使用裝置上的電話"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"感應器"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"存取感應器和穿戴式裝置"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"擷取視窗內容"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"檢查您使用中的視窗內容。"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"開啟「輕觸探索」功能"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"只偵測到部分指紋。請再試一次。"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"無法處理指紋。請再試一次。"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指紋感應器不乾淨。請清潔後再試一次。"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"手指移動太快。請再試一次。"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"手指移動太慢。請再試一次。"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"無法處理。請再試一次。"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"硬件無法使用。"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"指紋無法儲存。請移除現有指紋。"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"指紋已逾時。請再試一次。"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"指紋已逾時。請再試一次。"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"讀取同步處理設定"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"允許應用程式修改帳戶的同步設定,例如讓「通訊錄」應用程式與某個帳戶保持同步。"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"讀取同步處理統計資料"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"允許應用程式讀取帳戶的同步統計資料,包括同步活動記錄,以及保持同步的資料量。"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"寫入訂閱的資訊提供"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"允許應用程式修改目前已同步的資訊提供。惡意應用程式可能會更改已同步的資訊提供。"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"讀取加入字典中的字詞"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"允許應用程式讀取使用者儲存在使用者字典中的所有字詞、名稱和詞組。"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"將字詞加入使用者定義字典"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"按選單鍵解鎖或撥打緊急電話。"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"按選單鍵解鎖。"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"畫出解鎖圖形以解除鎖定螢幕"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"緊急電話"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"緊急撥號"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"返回通話"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"正確!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"再試一次"</string>
@@ -1034,29 +1028,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"待選項目"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"正在準備 USB 儲存裝置"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"正在準備 SD 卡"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"正在檢查錯誤。"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB 儲存裝置無內容"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"SD 卡為空白"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB 儲存裝置空白,或使用不受支援的檔案系統。"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD 記憶卡空白,或使用不受支援的檔案系統。"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB 儲存裝置已損壞"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"SD 卡已損壞"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB 儲存裝置已損壞。請嘗試將儲存裝置重新格式化。"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD 記憶卡已損壞。請嘗試將記憶卡重新格式化。"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB 儲存裝置未正常移除"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD 卡突然遭移除"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"請先卸載 USB 儲存裝置,再將其移除,以免資料遺失。"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"請先卸載 SD 卡,再將其移除,以免資料遺失。"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"現在可安全移除 USB 儲存裝置"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"可安全移除 SD 卡"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"您現在可以安全移除 USB 儲存裝置。"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"您現在可以安全地移除 SD 卡。"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB 儲存裝置已移除"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"已移除 SD 卡"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB 儲存裝置已移除,請插入新媒體。"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD 卡已移除,請插入新的 SD 卡。"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"正在檢查錯誤"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"找不到相符的活動。"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"轉送媒體輸出"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"允許應用程式將媒體輸出轉送至其他外部裝置。"</string>
@@ -1251,7 +1251,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"重疊效果 #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>:<xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>,<xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"(安全)"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"緊急電話"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘記圖案"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"圖案錯誤"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"密碼錯誤"</string>
@@ -1447,17 +1446,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"完成時間:<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"直至您關閉這項設定"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"封鎖干擾"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"停機時間"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"星期一至星期五晚"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"週末"</string>
<string name="muted_by" msgid="6147073845094180001">"靜音設定者:<xliff:g id="THIRD_PARTY">%1$s</xliff:g>"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"您裝置的系統發生問題,回復原廠設定後即可解決該問題。"</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"您裝置的系統發生問題,請聯絡您的製造商瞭解詳情。"</string>
@@ -1467,11 +1461,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS 要求已修改為 DIAL 要求。"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS 要求已修改為 USSD 要求。"</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS 要求已修改為新的 SS 要求。"</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB 外端連接埠"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB 外端連接埠"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"更多選項"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"關閉工具列溢位功能"</string>
</resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 0ef676a..a0b0fc2 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Android 系統"</string>
<string name="user_owner_label" msgid="6465364741001216388">"個人應用程式"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"公司"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"聯絡人"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"存取及修改您的聯絡人資料"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"位置"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"存取您的位置資訊"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"您的社交資訊"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"直接存取您的聯絡人資訊與社交網站資訊。"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"日曆"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"存取及修改您的日曆資料"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"簡訊"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"存取及修改簡訊"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"使用者字典"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"讀取使用者字典中的字詞或寫入新字詞"</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"書籤與紀錄"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"直接存取書籤和瀏覽器紀錄。"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"麥克風"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"使用裝置麥克風"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"相機"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"使用裝置相機"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"電話"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"使用裝置電話通訊系統"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"感應器"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"存取感應器和穿戴式裝置"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"擷取視窗內容"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"檢查您存取的視窗內容。"</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"啟用輕觸探索功能"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"僅偵測到部分指紋,請再試一次。"</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"無法處理指紋,請再試一次。"</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"指紋感應器有髒汙。請清潔感應器,然後再試一次。"</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"手指移動速度過快,請再試一次。"</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"手指移動速度過慢,請再試一次。"</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"無法辨識指紋,請再試一次。"</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"硬體無法使用。"</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"無法儲存指紋,請先移除現有指紋。"</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"指紋處理作業逾時,請再試一次。"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"指紋處理作業逾時,請再試一次。"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"讀取同步處理設定"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"允許應用程式修改帳戶的同步處理設定,例如讓「使用者」應用程式與某個帳戶進行同步處理。"</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"讀取同步處理狀態"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"允許應用程式讀取帳戶的同步處理統計資料,包括同步處理活動紀錄,以及同步處理的資料量。"</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"寫入訂閱資訊提供"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"允許應用程式修改目前已同步處理的資訊提供。請注意,惡意應用程式可能利用此功能變更已同步處理的資訊提供。"</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"讀取您加入字典的字詞"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"允許應用程式讀取使用者儲存在使用者字典內的所有字詞、名稱和詞組。"</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"將字詞加入使用者定義的字典"</string>
@@ -634,7 +628,7 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"按下 [Menu] 解鎖或撥打緊急電話。"</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"按下 Menu 鍵解鎖。"</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"畫出解鎖圖形"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"緊急電話"</string>
+ <string name="lockscreen_emergency_call" msgid="5298642613417801888">"緊急撥號"</string>
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"返回通話"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"正確!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"再試一次"</string>
@@ -1034,29 +1028,35 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"待選項目"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"正在準備 USB 儲存裝置"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"正在準備 SD 卡"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"正在檢查錯誤。"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"USB 儲存裝置無內容"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"SD 卡為空白"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB 儲存裝置無內容,或使用不受支援的檔案系統。"</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD 卡無內容,或使用不受支援的檔案系統。"</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"USB 儲存裝置已毀損"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"SD 卡已損壞"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB 儲存裝置已損壞。請嘗試將儲存裝置重新格式化。"</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD 記憶卡已損壞。請嘗試將記憶卡重新格式化。"</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB 儲存裝置未正常移除"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD 卡未正常移除"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"請先卸載 USB 儲存裝置,再將其移除,以免資料遺失。"</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"請先卸載 SD 卡,再將其移除,以免資料遺失。"</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB 儲存裝置已可安全移除"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"可安全移除 SD 卡"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"您現在可以安全地移除 USB 儲存裝置。"</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"您現在可以安全地移除 SD 卡。"</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"USB 儲存裝置已移除"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"已移除 SD 卡"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB 儲存裝置已移除,請插入新媒體。"</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD 卡已移除,請插入新的 SD 卡。"</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <string name="ext_media_checking_notification_message" msgid="4747432538578886744">"正在檢查錯誤"</string>
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"找不到相符的活動。"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"轉送媒體輸出"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"允許應用程式將媒體輸出轉送至其他外部裝置。"</string>
@@ -1251,7 +1251,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"第 <xliff:g id="ID">%1$d</xliff:g> 個重疊效果"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>:<xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>,<xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"(安全)"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"緊急電話"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘記圖形"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"圖形錯誤"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"密碼錯誤"</string>
@@ -1447,17 +1446,12 @@
</plurals>
<string name="zen_mode_until" msgid="7336308492289875088">"結束時間:<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_forever" msgid="7420011936770086993">"手動關閉這項設定前一律啟用"</string>
- <!-- no translation found for zen_mode_rule_name_combination (191109939968076477) -->
- <skip />
+ <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>
- <!-- no translation found for zen_mode_feature_name (289097150786114338) -->
- <skip />
- <!-- no translation found for zen_mode_downtime_feature_name (2626974636779860146) -->
- <skip />
- <!-- no translation found for zen_mode_default_weeknights_name (2069189413656431610) -->
- <skip />
- <!-- no translation found for zen_mode_default_weekends_name (2377398437072017011) -->
- <skip />
+ <string name="zen_mode_feature_name" msgid="289097150786114338">"封鎖干擾"</string>
+ <string name="zen_mode_downtime_feature_name" msgid="2626974636779860146">"停機"</string>
+ <string name="zen_mode_default_weeknights_name" msgid="2069189413656431610">"週一至週五夜間"</string>
+ <string name="zen_mode_default_weekends_name" msgid="2377398437072017011">"週末"</string>
<string name="muted_by" msgid="6147073845094180001">"由 <xliff:g id="THIRD_PARTY">%1$s</xliff:g> 設為靜音"</string>
<string name="system_error_wipe_data" msgid="6608165524785354962">"您的裝置發生內部問題,必須將裝置恢復原廠設定才能解除不穩定狀態。"</string>
<string name="system_error_manufacturer" msgid="8086872414744210668">"您的裝置發生內部問題,詳情請洽裝置製造商。"</string>
@@ -1467,11 +1461,9 @@
<string name="stk_cc_ss_to_dial" msgid="2151304435775557162">"SS 要求已改為 DIAL 要求。"</string>
<string name="stk_cc_ss_to_ussd" msgid="3951862188105305589">"SS 要求已改為 USSD 要求。"</string>
<string name="stk_cc_ss_to_ss" msgid="5470768854991452695">"SS 要求已改為新的 SS 要求。"</string>
- <!-- no translation found for usb_midi_peripheral_name (7221113987741003817) -->
- <skip />
+ <string name="usb_midi_peripheral_name" msgid="7221113987741003817">"Android USB 週邊連接埠"</string>
<string name="usb_midi_peripheral_manufacturer_name" msgid="7176526170008970168">"Android"</string>
- <!-- no translation found for usb_midi_peripheral_product_name (4971827859165280403) -->
- <skip />
+ <string name="usb_midi_peripheral_product_name" msgid="4971827859165280403">"USB 週邊連接埠"</string>
<string name="floating_toolbar_open_overflow_description" msgid="4797287862999444631">"更多選項"</string>
<string name="floating_toolbar_close_overflow_description" msgid="559796923090723804">"關閉溢出模式"</string>
</resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 007ff53..6ea4375 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -218,42 +218,28 @@
<string name="android_system_label" msgid="6577375335728551336">"Uhlelo lwe-Android"</string>
<string name="user_owner_label" msgid="6465364741001216388">"Izinhlelo zokusebenza zomuntu siqu"</string>
<string name="managed_profile_label" msgid="6260850669674791528">"Umsebenzi"</string>
- <!-- no translation found for permgrouplab_contacts (3657758145679177612) -->
- <skip />
- <!-- no translation found for permgroupdesc_contacts (1437393511338346185) -->
- <skip />
- <!-- no translation found for permgrouplab_location (7275582855722310164) -->
- <skip />
- <!-- no translation found for permgroupdesc_location (536889867433972794) -->
- <skip />
+ <string name="permgrouplab_contacts" msgid="3657758145679177612">"Oxhumana nabo"</string>
+ <string name="permgroupdesc_contacts" msgid="1437393511338346185">"finyelela uphinde ulungise oxhumana nabo"</string>
+ <string name="permgrouplab_location" msgid="7275582855722310164">"Indawo"</string>
+ <string name="permgroupdesc_location" msgid="536889867433972794">"finyelela kundawo yakho"</string>
<string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Ulwazi lakho lomphakathi"</string>
<string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Ukufinyelela okuqondile kulwazi mayelana noxhumana nabo bomphakathi."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Ikhalenda"</string>
- <!-- no translation found for permgroupdesc_calendar (2116049656685591803) -->
- <skip />
- <!-- no translation found for permgrouplab_sms (228308803364967808) -->
- <skip />
- <!-- no translation found for permgroupdesc_sms (3695085582674524761) -->
- <skip />
+ <string name="permgroupdesc_calendar" msgid="2116049656685591803">"finyelela uphinde ulungise ikhalenda yakho"</string>
+ <string name="permgrouplab_sms" msgid="228308803364967808">"I-SMS"</string>
+ <string name="permgroupdesc_sms" msgid="3695085582674524761">"finyelela uphinde ulungise i-SMS"</string>
<string name="permgrouplab_dictionary" msgid="8114410334955871144">"Isichazamazwi somsebenzisi"</string>
- <!-- no translation found for permgroupdesc_dictionary (7586787746354378335) -->
- <skip />
+ <string name="permgroupdesc_dictionary" msgid="7586787746354378335">"Funda noma bhala amagama kusichazamazwi somsebenzisi."</string>
<string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Amabhukhimakhi nomlando"</string>
<string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Ukufinyelela okuqondile kumlando wamabhukimakhi nesiphequluli."</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"I-Microphone"</string>
- <!-- no translation found for permgroupdesc_microphone (1296196977187629181) -->
- <skip />
+ <string name="permgroupdesc_microphone" msgid="1296196977187629181">"sebenzisa imakrofoni yedivayisi"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Ikhamela"</string>
- <!-- no translation found for permgroupdesc_camera (2429930670410559293) -->
- <skip />
- <!-- no translation found for permgrouplab_phone (5229115638567440675) -->
- <skip />
- <!-- no translation found for permgroupdesc_phone (2016641188146068700) -->
- <skip />
- <!-- no translation found for permgrouplab_sensors (7416703484233940260) -->
- <skip />
- <!-- no translation found for permgroupdesc_sensors (2987451839455524494) -->
- <skip />
+ <string name="permgroupdesc_camera" msgid="2429930670410559293">"sebenzisa ikhamela yedivayisi"</string>
+ <string name="permgrouplab_phone" msgid="5229115638567440675">"Ifoni"</string>
+ <string name="permgroupdesc_phone" msgid="2016641188146068700">"sebenzisa ifoni yedivayisi"</string>
+ <string name="permgrouplab_sensors" msgid="7416703484233940260">"Izinzwa"</string>
+ <string name="permgroupdesc_sensors" msgid="2987451839455524494">"finyelela izinzwa nokugqokwayo"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Thola okuqukethwe kwewindi"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Hlola okuqukethwe kwewindi ohlanganyela nalo."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Vula ukuhlola ngokuthinta"</string>
@@ -443,15 +429,21 @@
<string name="fingerprint_acquired_partial" msgid="735082772341716043">"Izigxivizo zeminwe ezincane zitholiwe. Sicela uzame futhi."</string>
<string name="fingerprint_acquired_insufficient" msgid="4596546021310923214">"Ayikwazanga ukucubungula izigxivizo zeminwe. Sicela uzame futhi."</string>
<string name="fingerprint_acquired_imager_dirty" msgid="1087209702421076105">"Inzwa yezigxivizo zeminwe ingcolile. Sicela uyihlanze uphinde uzame futhi."</string>
- <string name="fingerprint_acquired_too_fast" msgid="5303368850245663580">"Umunwe uhanjiswe ngokushesha kakhulu. Sicela uzame futhi."</string>
+ <!-- no translation found for fingerprint_acquired_too_fast (6470642383109155969) -->
+ <skip />
<string name="fingerprint_acquired_too_slow" msgid="7381891107120721078">"Umunwe uhanjiswe kancane kakhulu. Sicela uzame futhi."</string>
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <string name="fingerprint_error_unable_to_process" msgid="4232401562838100026">"Ayikwazi ukucubungula. Zama futhi."</string>
- <string name="fingerprint_error_hw_not_available" msgid="6162709753784993771">"Izingxenyekazi zekhompuyutha azitholakali."</string>
+ <!-- no translation found for fingerprint_error_hw_not_available (7955921658939936596) -->
+ <skip />
<string name="fingerprint_error_no_space" msgid="1055819001126053318">"Izigxivizo zeminwe azikwazi ukugcinwa. Sicela ususe izigxivizo zeminwe ezikhona."</string>
<string name="fingerprint_error_timeout" msgid="3927186043737732875">"Kufinyelelwe isikhathi sokuvala sezigxivizo zeminwe. Zama futhi"</string>
- <string name="fingerprint_error_vendor" msgid="3175724710791609491">"Kufinyelelwe isikhathi sokuvala sezigxivizo zeminwe. Zama futhi"</string>
+ <!-- no translation found for fingerprint_error_canceled (4402024612660774395) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_lockout (5536934748136933450) -->
+ <skip />
+ <!-- no translation found for fingerprint_error_unable_to_process (6107816084103552441) -->
+ <skip />
<string-array name="fingerprint_error_vendor">
</string-array>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"funda izilungiselelo zokuvumelanisa"</string>
@@ -460,6 +452,8 @@
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Ivumela uhlelo lokusebenza ukushintsha izilungiselelo zokuvumelanisa ze-akhawunti. Isibonelo, lokhu kungasetshenziswa ukunika amandla ukuvumelanisa kohlelo lokusebenza le-People ne-akhawunti."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"funda izibalo zokuvumelanisa"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Ivumela uhlelo lokusebenza ukufunda izibalo zokuvumelanisa ze-akhawunti, kufaka phakathi umlando wezehlakalo ezivumelanisiwe nokuthi ingakanani idatha evumelanisiwe."</string>
+ <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"bhala izifunzo ezikhokhelwayo"</string>
+ <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Ivumela uhlelo lokusebenza ukuthi iguqule amafidi akho avumelanisiwe njengamanje. Izuhlelo lokusebenza ezinobungozi zingaguqula amafidi akho avumelanisiwe."</string>
<string name="permlab_readDictionary" msgid="4107101525746035718">"funda imibandela oyengezile esichazimazwini"</string>
<string name="permdesc_readDictionary" msgid="659614600338904243">"Ivumela uhlelo lokusebenza ukufunda onke amabizo, amagama, namatemu umsebenzisi awalondolozile kusichazamazwi somsebenzisi."</string>
<string name="permlab_writeDictionary" msgid="2183110402314441106">"engeza amagama kusichazamazwi ezichazwe umsebenzisi"</string>
@@ -634,7 +628,8 @@
<string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Chofoza Menyu ukuvula noma ukwenza ikholi ephuthumayo."</string>
<string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Chofoza Menyu ukuvula."</string>
<string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Dweba iphathini ukuvula"</string>
- <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Ikholi ephuthumayo"</string>
+ <!-- no translation found for lockscreen_emergency_call (5298642613417801888) -->
+ <skip />
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Buyela ekholini"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Lungile!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Zama futhi"</string>
@@ -1034,29 +1029,36 @@
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"abahlanganyeli"</u></string>
- <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"Ilungiselela isitoreji se-USB"</string>
- <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"Ilungisa ikhadi le-SD"</string>
- <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Ihlola amaphutha"</string>
- <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Isitoreji se-USB esingenalutho"</string>
- <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Ikhadi le-SD elingenalutho"</string>
- <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"Ukulondoloza kwe-USB akunalutho noma kunamafayela angasekiwe."</string>
- <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"Ikhadi le-SD alinalutho noma linohlelo lwesistimu olungasekelwa."</string>
- <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Isitoreji se-USB esonakele"</string>
- <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Ikhadi le-SD elonakele"</string>
- <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"Okokulondoloza nge-USB kulimele. Zama ukukubika."</string>
- <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"khadi le-SD lilimele. Zama ukulibika."</string>
- <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"Isitoreji se-USB sikhishwe ngokungalindelekile"</string>
- <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"Ikhadi le-SD likhishwe ngokungalindelekile"</string>
- <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Yehlisa ikhadi le-SD ngaphambi kokukhipha isitoreji se-USB ukugwema ukulahleka kwedatha."</string>
- <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Yehlisa ikhadi le-SD ngaphambi kokukhipha ukugwema ukulahleka kwedatha."</string>
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"Sekuphephile ukukhipha isitoreji se-USB"</string>
- <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"Kuphephile ukukhipha ikhadi le-SD"</string>
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Ungakhipha ngokuvikelekile isitoreji se-USB."</string>
- <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Ungakhipha ngokuphephile ikhadi le-SD."</string>
- <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Isitoreji se-USB sikhishiwe"</string>
- <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Ikhadi le-SD elikhishiwe"</string>
- <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"Isitoreji se-USB sikhishiwe. Faka imidiya entsha."</string>
- <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"Ikhadi le-SD likhishiwe. Faka elisha."</string>
+ <!-- no translation found for ext_media_checking_notification_title (5734005953288045806) -->
+ <skip />
+ <!-- no translation found for ext_media_checking_notification_message (4747432538578886744) -->
+ <skip />
+ <!-- no translation found for ext_media_new_notification_message (7589986898808506239) -->
+ <skip />
+ <!-- no translation found for ext_media_ready_notification_message (4083398150380114462) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_title (4863279349863279603) -->
+ <skip />
+ <!-- no translation found for ext_media_unmountable_notification_message (7391672496565685690) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_title (3206248947375505416) -->
+ <skip />
+ <!-- no translation found for ext_media_badremoval_notification_message (380176703346946313) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_title (1704840188641749091) -->
+ <skip />
+ <!-- no translation found for ext_media_nomedia_notification_message (6471542972147056586) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_title (640674168454809372) -->
+ <skip />
+ <!-- no translation found for ext_media_unmounting_notification_message (4182843895023357756) -->
+ <skip />
+ <!-- no translation found for ext_media_init_action (8317198948634872507) -->
+ <skip />
+ <!-- no translation found for ext_media_unmount_action (1121883233103278199) -->
+ <skip />
+ <!-- no translation found for ext_media_browse_action (8322172381028546087) -->
+ <skip />
<string name="activity_list_empty" msgid="1675388330786841066">"Ayikho imisebenzi efanayo etholakele"</string>
<string name="permlab_route_media_output" msgid="1642024455750414694">"Yenza umzila wemidiya wokukhiphayo"</string>
<string name="permdesc_route_media_output" msgid="4932818749547244346">"Ivumela uhlelo lokusebenza ukwenza umzila wokukhiphayo wemidiya kuya kumadivayisi angaphandle."</string>
@@ -1251,7 +1253,6 @@
<string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Isendlalelo #<xliff:g id="ID">%1$d</xliff:g>"</string>
<string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
<string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", kuphephile"</string>
- <string name="kg_emergency_call_label" msgid="684946192523830531">"Ucingo lwezimo eziphuthumayo"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Ukhohlwe iphethini?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Iphatheni engalungile"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Iphasiwedi engalungile"</string>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index a623d0c..674c695 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -4322,6 +4322,10 @@
<!-- Line breaking stratgegy balances line lengths. -->
<enum name="balanced" value="2" />
</attr>
+ <!-- Array of indents, one dimension value per line, left side. -->
+ <attr name="leftIndents" format="reference" />
+ <!-- Array of indents, one dimension value per line, right side. -->
+ <attr name="rightIndents" format="reference" />
</declare-styleable>
<declare-styleable name="TextViewAppearance">
<!-- Base text color, typeface, size, and style. -->
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 5ffe57e..0ac366d 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -907,10 +907,11 @@
what gets persisted. -->
<attr name="persistableMode">
<!-- The default. If this activity forms the root of a task then that task will be
- persisted across reboots but only the launching intent will be used. All
- activities above this activity in the task will not be persisted. In addition
- this activity will not be passed a PersistableBundle into which it could have
- stored its state. -->
+ persisted across reboots but only the launching intent will be used. If the task
+ relinquishes its identity then the intent used is that of the topmost inherited
+ identity. All activities above this activity in the task will not be persisted.
+ In addition this activity will not be passed a PersistableBundle into which it
+ could have stored its state. -->
<enum name="persistRootOnly" value="0" />
<!-- If this activity forms the root of a task then that task will not be persisted
across reboots -->
@@ -1038,6 +1039,47 @@
activity. -->
<attr name="resizeableActivity" format="boolean" />
+ <!-- This value indicates how tasks rooted at this activity will behave in lockTask mode.
+ While in lockTask mode the system will not launch non-permitted tasks until
+ lockTask mode is disabled.
+ <p>While in lockTask mode with multiple permitted tasks running, each launched task is
+ permitted to finish, transitioning to the previous locked task, until there is only one
+ task remaining. At that point the last task running is not permitted to finish. -->
+ <attr name="lockTaskMode">
+ <!-- This is the default value. Tasks will not launch into lockTask mode but can be
+ placed there by calling {@link android.app.Activity#startLockTask}. If a task with
+ this mode has been whitelisted using {@link
+ android.app.admin.DevicePolicyManager#setLockTaskPackages} then calling startLockTask
+ will enter lockTask mode immediately, otherwise the user will be presented with a
+ dialog to approve entering lockTask mode.
+ <p>If the system is already in lockTask mode when a new task rooted at this activity
+ is launched that task will or will not start depending on whether the package of this
+ activity has been whitelisted.
+ <p>Tasks rooted at this activity can only exit lockTask mode using stopLockTask(). -->
+ <enum name="lockTaskModeDefault" value="0"/>
+ <!-- Tasks will not launch into lockTask mode and cannot be placed there using
+ {@link android.app.Activity#startLockTask} or be pinned from the Overview screen.
+ If the system is already in lockTask mode when a new task rooted at this activity is
+ launched that task will not be started.
+ <p>Note: This mode is only available to system and privileged applications.
+ Non-privileged apps with this value will be treated as lockTaskModeDefault.
+ -->
+ <enum name="lockTaskModeNever" value="1"/>
+ <!-- Tasks rooted at this activity will always launch into lockTask mode. If the system is
+ already in lockTask mode when this task is launched then the new task will be launched
+ on top of the current task. Tasks launched in this mode are capable of exiting
+ lockTask mode using finish(), whereas tasks entering lockTask mode using
+ startLockTask() must use stopLockTask() to exit.
+ <p>Note: This mode is only available to system and privileged applications.
+ Non-privileged apps with this value will be treated as lockTaskModeDefault.
+ -->
+ <enum name="lockTaskModeAlways" value="2"/>
+ <!-- If the DevicePolicyManager (DPM) authorizes this package ({@link
+ android.app.admin.DevicePolicyManager#setLockTaskPackages}) then this mode is
+ identical to lockTaskModeAlways. If the DPM does not authorize this package then this
+ mode is identical to lockTaskModeDefault. -->
+ <enum name="lockTaskModeIfWhitelisted" value="3"/>
+ </attr>
<!-- When set installer will extract native libraries. If set to false
libraries in the apk must be stored and page-aligned. -->
<attr name="extractNativeLibs" format="boolean"/>
@@ -1684,7 +1726,7 @@
{@link android.app.Activity} class that is available
as part of the package's application components, implementing
a part of the application's user interface.
-
+
<p>Zero or more {@link #AndroidManifestIntentFilter intent-filter}
tags can be included inside of an activity, to specify the Intents
that it can handle. If none are specified, the activity can
@@ -1746,12 +1788,13 @@
<attr name="relinquishTaskIdentity" />
<attr name="resumeWhilePausing" />
<attr name="resizeableActivity" />
+ <attr name="lockTaskMode" />
</declare-styleable>
-
+
<!-- The <code>activity-alias</code> tag declares a new
name for an existing {@link #AndroidManifestActivity activity}
tag.
-
+
<p>Zero or more {@link #AndroidManifestIntentFilter intent-filter}
tags can be included inside of an activity-alias, to specify the Intents
that it can handle. If none are specified, the activity can
@@ -1769,7 +1812,7 @@
must be in the same manifest as the alias, and have been defined
in that manifest before the alias here. This must use a Java-style
naming convention to ensure the name is unique, for example
- "com.mycompany.MyName". -->
+ "com.mycompany.MyName". -->
<attr name="targetActivity" format="string" />
<attr name="label" />
<attr name="description" />
@@ -1785,7 +1828,7 @@
<attr name="exported" />
<attr name="parentActivityName" />
</declare-styleable>
-
+
<!-- The <code>meta-data</code> tag is used to attach additional
arbitrary data to an application component. The data can later
be retrieved programmatically from the
diff --git a/core/res/res/values/dimens_material.xml b/core/res/res/values/dimens_material.xml
index 937e92ad..92d5aa1 100644
--- a/core/res/res/values/dimens_material.xml
+++ b/core/res/res/values/dimens_material.xml
@@ -139,7 +139,7 @@
<dimen name="timepicker_selector_radius">20dp</dimen>
<dimen name="timepicker_selector_stroke">2dp</dimen>
<dimen name="timepicker_center_dot_radius">3dp</dimen>
- <dimen name="timepicker_selector_dot_radius">3dp</dimen>
+ <dimen name="timepicker_selector_dot_radius">2dp</dimen>
<dimen name="timepicker_text_inset_normal">22dp</dimen>
<dimen name="timepicker_text_inset_inner">58dp</dimen>
<dimen name="timepicker_text_size_normal">16sp</dimen>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index c2f2c6d..282c80b 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2663,4 +2663,9 @@
<!-- Animation -->
<public type="attr" name="durationScaleHint" />
+
+ <public type="attr" name="lockTaskMode" />
+
+ <public type="attr" name="leftIndents" />
+ <public type="attr" name="rightIndents" />
</resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 87c50e8..3d1fd7c 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1242,23 +1242,26 @@
<!-- Message shown during fingerprint acquisision when the fingerprint sensor needs cleaning -->
<string name="fingerprint_acquired_imager_dirty">Fingerprint sensor is dirty. Please clean and try again.</string>
<!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly -->
- <string name="fingerprint_acquired_too_fast">Finger moved to fast. Please try again.</string>
+ <string name="fingerprint_acquired_too_fast">Finger moved too fast. Please try again.</string>
<!-- Message shown during fingerprint acquisision when the user moves their finger too slowly -->
<string name="fingerprint_acquired_too_slow">Finger moved to slow. Please try again.</string>
<!-- Array containing custom messages shown during fingerprint acquisision from vendor. Vendor is expected to add and translate these strings -->
<string-array name="fingerprint_acquired_vendor">
</string-array>
- <!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
- <string name="fingerprint_error_unable_to_process">Unable to process. Try again.</string>
<!-- Error message shown when the fingerprint hardware can't be accessed -->
- <string name="fingerprint_error_hw_not_available">Hardware not available.</string>
+ <string name="fingerprint_error_hw_not_available">Fingerprint hardware not available.</string>
<!-- Error message shown when the fingerprint hardware has run out of room for storing fingerprints -->
<string name="fingerprint_error_no_space">Fingerprint can\'t be stored. Please remove an existing fingerprint.</string>
<!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
<string name="fingerprint_error_timeout">Fingerprint time out reached. Try again.</string>
- <!-- Error message shown when the fingerprint hardware timer has expired and the user needs to restart the operation. -->
- <string name="fingerprint_error_vendor">Fingerprint time out reached. Try again.</string>
+ <!-- Generic error message shown when the fingerprint operation (e.g. enrollment or authentication) is canceled. Generally not shown to the user-->
+ <string name="fingerprint_error_canceled">Fingerprint operation canceled.</string>
+ <!-- Generic error message shown when the fingerprint operation fails because too many attempts have been made. -->
+ <string name="fingerprint_error_lockout">Too many attempts. Try again later.</string>
+ <!-- Generic error message shown when the fingerprint hardware can't recognize the fingerprint -->
+ <string name="fingerprint_error_unable_to_process">Try again.</string>
+
<!-- Array containing custom error messages from vendor. Vendor is expected to add and translate these strings -->
<string-array name="fingerprint_error_vendor">
</string-array>
@@ -2878,51 +2881,44 @@
<string name="candidates_style"><u>candidates</u></string>
<!-- External media notification strings -->
- <!-- Shown when external media is being checked [CHAR LIMIT=30] -->
- <string name="ext_media_checking_notification_title" product="nosdcard">Preparing USB storage</string>
- <!-- Shown when external media is being checked -->
- <string name="ext_media_checking_notification_title" product="default">Preparing SD card</string>
- <string name="ext_media_checking_notification_message">Checking for errors.</string>
-
- <!-- Shown when external media is blank (or unsupported filesystem) [CHAR LIMIT=30] -->
- <string name="ext_media_nofs_notification_title" product="nosdcard">Blank USB storage</string>
- <!-- Shown when external media is blank (or unsupported filesystem) -->
- <string name="ext_media_nofs_notification_title" product="default">Blank SD card</string>
- <!-- Shown when USB storage cannot be read. [CHAR LIMIT=NONE] -->
- <string name="ext_media_nofs_notification_message" product="nosdcard">USB storage is blank or has unsupported filesystem.</string>
- <string name="ext_media_nofs_notification_message" product="default">SD card is blank or has unsupported filesystem.</string>
-
- <!-- Shown when external media is unmountable (corrupt)) [CHAR LIMIT=30] -->
- <string name="ext_media_unmountable_notification_title" product="nosdcard">Damaged USB storage</string>
- <!-- Shown when external media is unmountable (corrupt)) -->
- <string name="ext_media_unmountable_notification_title" product="default">Damaged SD card</string>
- <!-- Shown when USB storage cannot be read. [CHAR LIMIT=NONE] -->
- <string name="ext_media_unmountable_notification_message" product="nosdcard">USB storage is damaged. Try reformatting it.</string>
- <string name="ext_media_unmountable_notification_message" product="default">SD card is damaged. Try reformatting it.</string>
-
- <!-- Shown when external media is unsafely removed [CHAR LIMIT=30] -->
- <string name="ext_media_badremoval_notification_title" product="nosdcard">USB storage unexpectedly removed</string>
- <!-- Shown when external media is unsafely removed -->
- <string name="ext_media_badremoval_notification_title" product="default">SD card unexpectedly removed</string>
- <!-- Shown when external media is unsafely removed. [CHAR LIMIT=NONE] -->
- <string name="ext_media_badremoval_notification_message" product="nosdcard">Unmount USB storage before removing to avoid data loss.</string>
- <string name="ext_media_badremoval_notification_message" product="default">Unmount SD card before removing to avoid data loss.</string>
-
- <!-- Shown when external media has been safely removed [CHAR LIMIT=30] -->
- <string name="ext_media_safe_unmount_notification_title" product="nosdcard">USB storage safe to remove</string>
- <!-- Shown when external media has been safely removed -->
- <string name="ext_media_safe_unmount_notification_title" product="default">SD card safe to remove</string>
- <!-- Shown when external media has been safely removed. [CHAR LIMIT=NONE] -->
- <string name="ext_media_safe_unmount_notification_message" product="nosdcard">You can safely remove USB storage.</string>
- <string name="ext_media_safe_unmount_notification_message" product="default">You can safely remove SD card.</string>
-
- <!-- Shown when external media is missing [CHAR LIMIT=30] -->
- <string name="ext_media_nomedia_notification_title" product="nosdcard">Removed USB storage</string>
- <!-- Shown when external media is missing -->
- <string name="ext_media_nomedia_notification_title" product="default">Removed SD card</string>
- <!-- Shown when external media is missing. [CHAR LIMIT=NONE] -->
- <string name="ext_media_nomedia_notification_message" product="nosdcard">USB storage removed. Insert new media.</string>
- <string name="ext_media_nomedia_notification_message" product="default">SD card removed. Insert a new one.</string>
+ <skip />
+
+ <!-- Notification title when external media is being checked [CHAR LIMIT=30] -->
+ <string name="ext_media_checking_notification_title">Preparing <xliff:g id="name" example="SD card">%s</xliff:g></string>
+ <!-- Notification body when external media is being checked [CHAR LIMIT=NONE] -->
+ <string name="ext_media_checking_notification_message">Checking for errors</string>
+
+ <!-- Notification body when new external media is detected [CHAR LIMIT=NONE] -->
+ <string name="ext_media_new_notification_message">New <xliff:g id="name" example="SD card">%s</xliff:g> detected</string>
+ <!-- Notification body when external media is ready for use [CHAR LIMIT=NONE] -->
+ <string name="ext_media_ready_notification_message">For transferring photos and media</string>
+
+ <!-- Notification title when external media is unmountable (corrupt) [CHAR LIMIT=30] -->
+ <string name="ext_media_unmountable_notification_title">Damaged <xliff:g id="name" example="SD card">%s</xliff:g></string>
+ <!-- Notification body when external media is unmountable (corrupt) [CHAR LIMIT=NONE] -->
+ <string name="ext_media_unmountable_notification_message"><xliff:g id="name" example="SD card">%s</xliff:g> is damaged; try reformatting it</string>
+
+ <!-- Notification title when external media is unsafely removed [CHAR LIMIT=30] -->
+ <string name="ext_media_badremoval_notification_title"><xliff:g id="name" example="SD card">%s</xliff:g> unexpectedly removed</string>
+ <!-- Notification body when external media is unsafely removed [CHAR LIMIT=NONE] -->
+ <string name="ext_media_badremoval_notification_message">Unmount <xliff:g id="name" example="SD card">%s</xliff:g> before removing to avoid data loss</string>
+
+ <!-- Notification title when external media is missing [CHAR LIMIT=30] -->
+ <string name="ext_media_nomedia_notification_title">Removed <xliff:g id="name" example="SD card">%s</xliff:g></string>
+ <!-- Notification body when external media is missing [CHAR LIMIT=NONE] -->
+ <string name="ext_media_nomedia_notification_message"><xliff:g id="name" example="SD card">%s</xliff:g> removed; insert a new one</string>
+
+ <!-- Notification title when external media is unmounting [CHAR LIMIT=30] -->
+ <string name="ext_media_unmounting_notification_title">Still ejecting <xliff:g id="name" example="SD card">%s</xliff:g>\u2026</string>
+ <!-- Notification body when external media is unmounting [CHAR LIMIT=NONE] -->
+ <string name="ext_media_unmounting_notification_message">Don\'t remove</string>
+
+ <!-- Notification action to setup external media [CHAR LIMIT=20] -->
+ <string name="ext_media_init_action">Setup</string>
+ <!-- Notification action to unmount external media [CHAR LIMIT=20] -->
+ <string name="ext_media_unmount_action">Eject</string>
+ <!-- Notification action to browse external media [CHAR LIMIT=20] -->
+ <string name="ext_media_browse_action">Explore</string>
<!-- Shown in LauncherActivity when the requested target Intent didn't return any matching Activities, leaving the list empty. -->
<string name="activity_list_empty">No matching activities found.</string>
@@ -3943,7 +3939,7 @@
<string name="toolbar_collapse_description">Collapse</string>
<!-- Zen mode - feature name. [CHAR LIMIT=40] -->
- <string name="zen_mode_feature_name">Block interruptions</string>
+ <string name="zen_mode_feature_name">Do not disturb</string>
<!-- Zen mode - downtime legacy feature name. [CHAR LIMIT=40] -->
<string name="zen_mode_downtime_feature_name">Downtime</string>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 36a736a..e5b1cb5 100755
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1886,14 +1886,17 @@
<java-symbol type="string" name="ext_media_badremoval_notification_title" />
<java-symbol type="string" name="ext_media_checking_notification_message" />
<java-symbol type="string" name="ext_media_checking_notification_title" />
- <java-symbol type="string" name="ext_media_nofs_notification_message" />
- <java-symbol type="string" name="ext_media_nofs_notification_title" />
<java-symbol type="string" name="ext_media_nomedia_notification_message" />
<java-symbol type="string" name="ext_media_nomedia_notification_title" />
- <java-symbol type="string" name="ext_media_safe_unmount_notification_message" />
- <java-symbol type="string" name="ext_media_safe_unmount_notification_title" />
<java-symbol type="string" name="ext_media_unmountable_notification_message" />
<java-symbol type="string" name="ext_media_unmountable_notification_title" />
+ <java-symbol type="string" name="ext_media_unmounting_notification_message" />
+ <java-symbol type="string" name="ext_media_unmounting_notification_title" />
+ <java-symbol type="string" name="ext_media_new_notification_message" />
+ <java-symbol type="string" name="ext_media_ready_notification_message" />
+ <java-symbol type="string" name="ext_media_init_action" />
+ <java-symbol type="string" name="ext_media_unmount_action" />
+ <java-symbol type="string" name="ext_media_browse_action" />
<java-symbol type="string" name="usb_storage_error_message" />
<java-symbol type="string" name="usb_storage_message" />
<java-symbol type="string" name="usb_storage_notification_message" />
@@ -2088,6 +2091,8 @@
<java-symbol type="string" name="fingerprint_acquired_too_slow" />
<java-symbol type="string" name="fingerprint_acquired_too_fast" />
<java-symbol type="array" name="fingerprint_acquired_vendor" />
+ <java-symbol type="string" name="fingerprint_error_canceled" />
+ <java-symbol type="string" name="fingerprint_error_lockout" />
<!-- From various Material changes -->
<java-symbol type="attr" name="titleTextAppearance" />
diff --git a/data/keyboards/AVRCP.idc b/data/keyboards/AVRCP.idc
new file mode 100644
index 0000000..610b7f9
--- /dev/null
+++ b/data/keyboards/AVRCP.idc
@@ -0,0 +1,19 @@
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# AVRCP
+#
+
+device.internal = 1
diff --git a/docs/html/design/building-blocks/buttons.jd b/docs/html/design/building-blocks/buttons.jd
index 3a34601..e698f38 100644
--- a/docs/html/design/building-blocks/buttons.jd
+++ b/docs/html/design/building-blocks/buttons.jd
@@ -2,6 +2,14 @@ page.title=Buttons
page.tags=button,input
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/buttons.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Buttons<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}guide/topics/ui/controls/button.html">
<div>
<h3>Developer Docs</h3>
diff --git a/docs/html/design/building-blocks/dialogs.jd b/docs/html/design/building-blocks/dialogs.jd
index 53d99b8..9c91abf 100644
--- a/docs/html/design/building-blocks/dialogs.jd
+++ b/docs/html/design/building-blocks/dialogs.jd
@@ -2,6 +2,14 @@ page.title=Dialogs
page.tags=dialog,alert,popup,toast
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/dialogs.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Dialogs<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}guide/topics/ui/dialogs.html">
<div>
<h3>Developer Docs</h3>
@@ -35,7 +43,7 @@ user to adjust settings or enter text.</p>
<h4>Action buttons</h4>
<p>Action buttons are typically Cancel and/or OK, with OK indicating the preferred or most likely action. However, if the options consist of specific actions such as Close or Wait rather than a confirmation or cancellation of the action described in the content, then all the buttons should be active verbs. Order actions following these rules:</p>
<ul>
-
+
<li>The dismissive action of a dialog is always on the left. Dismissive actions return to the user to the previous state.</li>
<li>The affirmative actions are on the right. Affirmative actions continue progress toward the user goal that triggered the dialog.</li>
</ul>
@@ -152,6 +160,15 @@ advances the workflow, and simply touching outside the popup dismisses it.</p>
away from an email before you send it triggers a "Draft saved" toast to let you know that you can
continue editing later. Toasts automatically disappear after a timeout.</p>
+<a class="notice-designers-material left"
+ href="http://www.google.com/design/spec/components/snackbars-toasts.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Toasts<p>
+ </div>
+</a>
+
+
<a class="notice-developers left" href="{@docRoot}guide/topics/ui/notifiers/toasts.html">
<div>
<h3>Developer Docs</h3>
diff --git a/docs/html/design/building-blocks/grid-lists.jd b/docs/html/design/building-blocks/grid-lists.jd
index d98637c..ac3a3eb 100644
--- a/docs/html/design/building-blocks/grid-lists.jd
+++ b/docs/html/design/building-blocks/grid-lists.jd
@@ -4,6 +4,15 @@ page.tags=gridview,layout,listview
<img src="{@docRoot}design/media/gridview_overview.png">
+
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/grid-lists.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Grid lists<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}guide/topics/ui/layout/gridview.html">
<div>
<h3>Developer Docs</h3>
diff --git a/docs/html/design/building-blocks/lists.jd b/docs/html/design/building-blocks/lists.jd
index 4949d00..6f69feb 100644
--- a/docs/html/design/building-blocks/lists.jd
+++ b/docs/html/design/building-blocks/lists.jd
@@ -2,10 +2,11 @@ page.title=Lists
page.tags=listview,layout
@jd:body
-<a class="notice-developers" href="{@docRoot}guide/topics/ui/layout/listview.html">
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/lists.html">
<div>
- <h3>Developer Docs</h3>
- <p>List View</p>
+ <h3>Material Design</h3>
+ <p>Lists<p>
</div>
</a>
@@ -22,7 +23,7 @@ well as drilldown navigation.</p>
</div>
<div class="layout-content-col span-4 with-callouts">
-<ol>
+<ol style="margin-bottom: 60px;">
<li>
<h4>Section Divider</h4>
<p>Use section dividers to organize the content of your list into groups and facilitate scanning.</p>
@@ -35,5 +36,21 @@ well as drilldown navigation.</p>
</li>
</ol>
+<a class="notice-developers" href="{@docRoot}guide/topics/ui/layout/listview.html">
+ <div>
+ <h3>Developer Docs</h3>
+ <p>List View</p>
+ </div>
+</a>
+
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/lists-controls.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Lists: Controls<p>
+ </div>
+</a>
+
+
</div>
</div>
diff --git a/docs/html/design/building-blocks/progress.jd b/docs/html/design/building-blocks/progress.jd
index 6946a75..2de75dc 100644
--- a/docs/html/design/building-blocks/progress.jd
+++ b/docs/html/design/building-blocks/progress.jd
@@ -2,6 +2,14 @@ page.title=Progress &amp; Activity
page.tags=progressbar,download,network
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/progress-activity.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Progress and Activity<p>
+ </div>
+</a>
+
<p>Progress bars and activity indicators signal to users that something is happening that will take a moment.</p>
<h2 id="progress">Progress bars</h2>
diff --git a/docs/html/design/building-blocks/scrolling.jd b/docs/html/design/building-blocks/scrolling.jd
index 41e7cec..04b1e4a 100644
--- a/docs/html/design/building-blocks/scrolling.jd
+++ b/docs/html/design/building-blocks/scrolling.jd
@@ -2,6 +2,7 @@ page.title=Scrolling
page.tags=scrollview,listview
@jd:body
+
<p>Scrolling allows the user to navigate to content in the overflow using a swipe gesture. The
scrolling speed is proportional to the speed of the gesture.</p>
<h2 id="indicator">Scroll Indicator</h2>
diff --git a/docs/html/design/building-blocks/seek-bars.jd b/docs/html/design/building-blocks/seek-bars.jd
index 1465688..5c42102 100644
--- a/docs/html/design/building-blocks/seek-bars.jd
+++ b/docs/html/design/building-blocks/seek-bars.jd
@@ -2,6 +2,14 @@ page.title=Seek Bars and Sliders
page.tags=seekbar,progressbar
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/sliders.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Sliders<p>
+ </div>
+</a>
+
<p>Interactive sliders make it possible to select a value from a continuous or discrete range of values
by moving the slider thumb. The smallest value is to the left, the largest to the right. The
interactive nature of the slider makes it a great choice for settings that reflect intensity levels,
diff --git a/docs/html/design/building-blocks/spinners.jd b/docs/html/design/building-blocks/spinners.jd
index f7d80e7..3a74ccf 100644
--- a/docs/html/design/building-blocks/spinners.jd
+++ b/docs/html/design/building-blocks/spinners.jd
@@ -2,6 +2,14 @@ page.title=Spinners
page.tags=spinner,dropdown
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/menus.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Menus<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}guide/topics/ui/controls/spinner.html">
<div>
<h3>Developer Docs</h3>
diff --git a/docs/html/design/building-blocks/switches.jd b/docs/html/design/building-blocks/switches.jd
index d435657..9dd09ca 100644
--- a/docs/html/design/building-blocks/switches.jd
+++ b/docs/html/design/building-blocks/switches.jd
@@ -2,6 +2,14 @@ page.title=Switches
page.tags=switch,checkbox,radiobutton,button
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/selection-controls.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Selection Controls<p>
+ </div>
+</a>
+
<p>Switches allow the user to select options. There are three kinds of switches: checkboxes, radio
buttons, and on/off switches.</p>
diff --git a/docs/html/design/building-blocks/tabs.jd b/docs/html/design/building-blocks/tabs.jd
index 93818c3..078de92 100644
--- a/docs/html/design/building-blocks/tabs.jd
+++ b/docs/html/design/building-blocks/tabs.jd
@@ -4,10 +4,18 @@ page.tags=tabs,actionbar,navigation,viewpager
<img src="{@docRoot}design/media/tabs_overview.png">
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/tabs.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Tabs<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}training/implementing-navigation/lateral.html">
<div>
<h3>Developer Docs</h3>
- <p>Creating Swipe Views with Tabs</p>
+ <p>Creating Swipe Views<br>with Tabs</p>
</div>
</a>
diff --git a/docs/html/design/building-blocks/text-fields.jd b/docs/html/design/building-blocks/text-fields.jd
index e109d5f..19c22f9 100644
--- a/docs/html/design/building-blocks/text-fields.jd
+++ b/docs/html/design/building-blocks/text-fields.jd
@@ -2,6 +2,15 @@ page.title=Text Fields
page.tags=text,edittext,input
@jd:body
+
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/components/text-fields.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Text Fields<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}guide/topics/ui/controls/text.html">
<div>
<h3>Developer Docs</h3>
diff --git a/docs/html/design/downloads/index.jd b/docs/html/design/downloads/index.jd
index 16d61e7..4111bca 100644
--- a/docs/html/design/downloads/index.jd
+++ b/docs/html/design/downloads/index.jd
@@ -12,6 +12,7 @@ and implementation.</p>
<div class="layout-content-row">
<div class="layout-content-col span-5">
+
<p>Drag and drop your way to beautifully designed Android apps. The stencils feature the
rich typography, colors, interactive controls, and icons found throughout Android, along with
phone and tablet outlines to frame your creations. Source files for icons and controls are also
@@ -23,15 +24,31 @@ available.</p>
<img src="{@docRoot}design/media/downloads_stencils.png">
</div>
+
+ <div class="layout-content-col span-4">
+ <a class="notice-designers-material"
+ style="width:218px;"
+ href="http://www.google.com/design/spec/resources/layout-templates.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Layout Templates<p>
+ </div>
+ </a>
+ </div>
+
<div class="layout-content-col span-4">
+ <a class="notice-designers-material"
+ style="width:218px;"
+ href="http://www.google.com/design/spec/resources/sticker-sheets-icons.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Sticker Sheets<p>
+ </div>
+ </a>
+ </div>
+ <div class="layout-content-col span-4">
<p>
- <!--<a class="download-button" onClick="ga('send', 'event', 'Design', 'Download', 'Fireworks Stencil');"
- href="{@docRoot}downloads/design/Android_Design_Fireworks_Stencil_20120814.png">Adobe&reg; Fireworks&reg; PNG Stencil</a>
- <a class="download-button" onClick="ga('send', 'event', 'Design', 'Download', 'Illustrator Stencil');"
- href="{@docRoot}downloads/design/Android_Design_Illustrator_Vectors_20120814.ai">Adobe&reg; Illustrator&reg; Stencil</a>
- <a class="download-button" onClick="ga('send', 'event', 'Design', 'Download', 'OmniGraffle Stencil');"
- href="{@docRoot}downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle">Omni&reg; OmniGraffle&reg; Stencil</a>-->
<a class="download-button" onClick="ga('send', 'event', 'Design', 'Download', 'Photoshop Sources');"
href="{@docRoot}downloads/design/Android_Design_Stencils_Sources_20131106.zip">Adobe&reg; Photoshop&reg; Stencils and Sources</a>
</p>
@@ -61,6 +78,18 @@ modify to match your theme, plus source files.</p>
<img src="{@docRoot}design/media/iconography_actionbar_style.png">
</div>
+
+ <div class="layout-content-col span-4">
+ <a class="notice-designers-material"
+ style="width:218px;"
+ href="http://www.google.com/design/spec/resources/sticker-sheets-icons.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Sticker Sheets<p>
+ </div>
+ </a>
+ </div>
+
<div class="layout-content-col span-4">
<p>
@@ -238,6 +267,18 @@ requirements of UI and high-resolution screens.</p>
<img src="{@docRoot}design/media/downloads_roboto_specimen_preview.png">
</div>
+
+ <div class="layout-content-col span-4">
+ <a class="notice-designers-material"
+ style="width:218px;"
+ href="http://www.google.com/design/spec/resources/roboto-noto-fonts.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Roboto Font<p>
+ </div>
+ </a>
+ </div>
+
<div class="layout-content-col span-4">
<p>
@@ -264,6 +305,18 @@ shade that can be used as a complement when needed.</p>
<img src="{@docRoot}design/media/downloads_color_swatches.png">
</div>
+
+ <div class="layout-content-col span-4">
+ <a class="notice-designers-material"
+ style="width:218px;"
+ href="http://www.google.com/design/spec/resources/color-palettes.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Color Palettes<p>
+ </div>
+ </a>
+ </div>
+
<div class="layout-content-col span-4">
<p>
diff --git a/docs/html/design/patterns/accessibility.jd b/docs/html/design/patterns/accessibility.jd
index aaa6f16..b968237 100644
--- a/docs/html/design/patterns/accessibility.jd
+++ b/docs/html/design/patterns/accessibility.jd
@@ -3,6 +3,14 @@ page.tags="accessibility","navigation","input"
page.metaDescription=Design an app that's universally accessible to people with visual impairment, color deficiency, hearing loss, and limited dexterity.
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/usability/accessibility.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Accessibility<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}training/accessibility/index.html">
<div>
<h3>Developer Docs</h3>
diff --git a/docs/html/design/patterns/actionbar.jd b/docs/html/design/patterns/actionbar.jd
index f28df01..5467722 100644
--- a/docs/html/design/patterns/actionbar.jd
+++ b/docs/html/design/patterns/actionbar.jd
@@ -5,6 +5,14 @@ page.metaDescription=The Action bar is an essential design element for all apps.
<img src="{@docRoot}design/media/action_bar_pattern_overview.png">
+
+<a class="notice-designers-material" href="http://www.google.com/design/spec/layout/structure.html#structure-app-bar">
+ <div>
+ <h3>Material Design</h3>
+ <p>App Bar<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}guide/topics/ui/actionbar.html">
<div>
<h3>Developer Docs</h3>
@@ -12,7 +20,6 @@ page.metaDescription=The Action bar is an essential design element for all apps.
</div>
</a>
-
<p>The <em>action bar</em> is a dedicated piece of real estate at the top of each screen that is generally persistent throughout the app.</p>
<p><strong>It provides several key functions</strong>:</p>
<ul>
diff --git a/docs/html/design/patterns/app-structure.jd b/docs/html/design/patterns/app-structure.jd
index e0a11ed..404dd4d 100644
--- a/docs/html/design/patterns/app-structure.jd
+++ b/docs/html/design/patterns/app-structure.jd
@@ -2,6 +2,15 @@ page.title=App Structure
page.tags=navigation,layout,tablet
@jd:body
+
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/patterns/app-structure.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>App Structure<p>
+ </div>
+</a>
+
<p>Apps come in many varieties that address very different needs. For example:</p>
<ul>
<li>Apps such as Calculator or Camera that are built around a single focused activity handled from a
@@ -63,7 +72,7 @@ layouts that are visually engaging and appropriate for the data type and screen
<div class="figure-caption">
Play Music allows navigation among artists, albums, and playlists through rich content display.
It is also enriched with tailored recommendations and promotions that surface content of interest
- to the user. Search is readily available from the action bar.
+ to the user. Search is readily available from the action bar.
</div>
</div>
@@ -92,7 +101,7 @@ important actions.</p>
<img src="{@docRoot}design/media/app_structure_gmail.png">
<div class="figure-caption">
A calendar is about productivity, so an efficient, easy-to-skim view with higher data density works
- well. Navigation supports switching views of day, week, month, and agenda views.
+ well. Navigation supports switching views of day, week, month, and agenda views.
</div>
</div>
diff --git a/docs/html/design/patterns/gestures.jd b/docs/html/design/patterns/gestures.jd
index 1ec7094..ada0735 100644
--- a/docs/html/design/patterns/gestures.jd
+++ b/docs/html/design/patterns/gestures.jd
@@ -2,6 +2,14 @@ page.title=Gestures
page.tags=gesture,input,touch
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/patterns/gestures.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Gestures<p>
+ </div>
+</a>
+
<p>Gestures allow users to interact with your app by manipulating the screen objects you provide. The
following table shows the core gesture set that is supported in Android.</p>
@@ -92,7 +100,7 @@ following table shows the core gesture set that is supported in Android.</p>
</li>
</ul>
</div>
-
+
</div>
diff --git a/docs/html/design/patterns/multi-pane-layouts.jd b/docs/html/design/patterns/multi-pane-layouts.jd
index 4e99462..dbe7d01 100644
--- a/docs/html/design/patterns/multi-pane-layouts.jd
+++ b/docs/html/design/patterns/multi-pane-layouts.jd
@@ -5,6 +5,14 @@ page.metaDescription=Design guide with examples of how to flatten navigation and
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/layout/structure.html#structure-ui-regions">
+ <div>
+ <h3>Material Design</h3>
+ <p>UI Regions and Guidance<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}training/basics/fragments/index.html">
<div>
<h3>Developer Docs</h3>
@@ -47,7 +55,7 @@ you can use to adjust the layout after orientation change while keeping function
<div class="layout-content-col span-8">
<img src="{@docRoot}design/media/multipane_stretch.png">
-
+
</div>
<div class="layout-content-col span-5">
@@ -61,7 +69,7 @@ you can use to adjust the layout after orientation change while keeping function
<div class="layout-content-col span-8">
<img src="{@docRoot}design/media/multipane_stack.png">
-
+
</div>
<div class="layout-content-col span-5">
@@ -75,7 +83,7 @@ you can use to adjust the layout after orientation change while keeping function
<div class="layout-content-col span-8">
<img src="{@docRoot}design/media/multipane_expand.png">
-
+
</div>
<div class="layout-content-col span-5">
@@ -89,7 +97,7 @@ you can use to adjust the layout after orientation change while keeping function
<div class="layout-content-col span-8">
<img src="{@docRoot}design/media/multipane_show.png">
-
+
</div>
<div class="layout-content-col span-5">
diff --git a/docs/html/design/patterns/navigation-drawer.jd b/docs/html/design/patterns/navigation-drawer.jd
index 7e63ba6..dbac459 100644
--- a/docs/html/design/patterns/navigation-drawer.jd
+++ b/docs/html/design/patterns/navigation-drawer.jd
@@ -3,6 +3,14 @@ page.tags=DrawerLayout,SlidingPaneLayout
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/layout/structure.html#structure-side-nav">
+ <div>
+ <h3>Material Design</h3>
+ <p>Side Nav<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}training/implementing-navigation/nav-drawer.html">
<div>
<h3>Developer Docs</h3>
@@ -12,7 +20,7 @@ page.tags=DrawerLayout,SlidingPaneLayout
<p>The navigation drawer is a panel that transitions in from the left edge of the screen and
-displays the app’s main navigation options.</p>
+displays the app’s main navigation options.</p>
<h4>Displaying the navigation drawer</h4>
@@ -92,7 +100,7 @@ anywhere in the app, navigation up to the top level is faster and more efficient
<p>The navigation drawer is a reflection of your app’s structure and displays its major
navigation hubs. Think of navigation hubs as those places in your app that a user will want
-to visit frequently or use as a jumping-off point to other parts of the app.
+to visit frequently or use as a jumping-off point to other parts of the app.
At a minimum, the navigation hubs are the top-level views, since they correspond to your app’s
major functional areas.</p>
<p> If your app’s structure is deep, you can add screens from lower levels that your users will
@@ -125,8 +133,8 @@ likely visit often and make those navigation hubs as well.</p>
<h2 id="Content">Content of the Navigation Drawer</h2>
<p> Keep the content of the navigation drawer focused on app navigation. Expose the navigation
-hubs of your app as list items inside the navigation drawer - one item per row.
-
+hubs of your app as list items inside the navigation drawer - one item per row.
+
<div class="layout-content-row">
<div class="layout-content-col span-8">
<h4>Titles, icons, and counters</h4>
@@ -139,7 +147,7 @@ hubs of your app as list items inside the navigation drawer - one item per row.
<div class="layout-content-col span-5">
<img src="{@docRoot}design/media/navigation_drawer_titles_icons.png">
<div class="figure-caption">
- Use titles and icons to organize your drawer.
+ Use titles and icons to organize your drawer.
</div>
</div>
</div>
@@ -149,13 +157,13 @@ hubs of your app as list items inside the navigation drawer - one item per row.
<img src="{@docRoot}design/media/navigation_drawer_collapse.png">
<div class="figure-caption">
Collapsible navigation items are split. Use the left side for navigation and the right
- to collapse and expand items.
+ to collapse and expand items.
</div>
</div>
<div class="layout-content-col span-5">
<h4>Collapsible navigation items</h4>
<p>If you have many views with some subordinate to others, consider collapsing them into one
- expandable item to conserve space.
+ expandable item to conserve space.
The parent in the navigation drawer then turns into a split item. The left side allows
navigation to the parent item’s view, and the right side collapses or expands the list of
child items. </p>
@@ -189,7 +197,7 @@ is fully expanded:</p>
<img src="{@docRoot}design/media/navigation_drawer_open_overflow.png">
<div class="figure-caption">
Clean up the action bar when the drawer is fully expanded. Remove actions that are not needed
- and display your app's name in the title area.
+ and display your app's name in the title area.
</div>
<h4>Actions</h4>
@@ -232,7 +240,7 @@ re-display the CAB.</p>
<img src="{@docRoot}design/media/navigation_drawer_CAB.png">
<div class="figure-caption">
- Hide contextual action bars while the drawer is visible.
+ Hide contextual action bars while the drawer is visible.
</div>
<p>If the user navigates away from a view with selected content, deselect the content before
diff --git a/docs/html/design/patterns/selection.jd b/docs/html/design/patterns/selection.jd
index be31677..7ed6dcc 100644
--- a/docs/html/design/patterns/selection.jd
+++ b/docs/html/design/patterns/selection.jd
@@ -2,6 +2,14 @@ page.title=Selection
page.tags=actionmode,navigation,contextual
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/patterns/selection.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Selection<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}guide/topics/ui/menus.html#context-menu">
<div>
<h3>Developer Docs</h3>
@@ -9,6 +17,7 @@ page.tags=actionmode,navigation,contextual
</div>
</a>
+
<p>Android 3.0 changed the <em>long press</em> gesture&mdash;that is, a touch that's held in the same position for a moment&mdash;to be the global gesture to select data.. This affects the way you should
handle multi-select and contextual actions in your apps.</p>
diff --git a/docs/html/design/patterns/settings.jd b/docs/html/design/patterns/settings.jd
index e3a3f05..a24d6c0 100644
--- a/docs/html/design/patterns/settings.jd
+++ b/docs/html/design/patterns/settings.jd
@@ -2,6 +2,14 @@ page.title=Settings
page.tags=preferences,sharedpreferences
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/patterns/settings.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Settings<p>
+ </div>
+</a>
+
<a class="notice-developers" href="{@docRoot}guide/topics/ui/settings.html">
<div>
<h3>Developer Docs</h3>
@@ -9,6 +17,7 @@ page.tags=preferences,sharedpreferences
</div>
</a>
+
<p itemprop="description">Settings is a place in your app where users indicate their preferences for how your app should
behave. This benefits users because:</p>
diff --git a/docs/html/design/style/branding.jd b/docs/html/design/style/branding.jd
index 2353a93..b5bb77c 100644
--- a/docs/html/design/style/branding.jd
+++ b/docs/html/design/style/branding.jd
@@ -7,6 +7,14 @@ everyone else's. In Android, your app can shine as an extension of your brand. <
<h2 id="color">Color</h2>
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/style/color.html#color-ui-color-application">
+ <div>
+ <h3>Material Design</h3>
+ <p>UI Color Application<p>
+ </div>
+</a>
+
<p>Use your brand color for accent by overriding the Android framework's default blue in UI elements like checkboxes, progress bars, radio buttons, sliders, tabs, and scroll indicators.</p>
<p>Look for opportunities to use high-contrast color for emphasis, for example, as the background color of the action bar or a primary button. But don't go overboard: not all actions are equal, so use it only for the one or two most important things.</p>
@@ -62,17 +70,32 @@ and app name in the action bar.</p>
Example of a the logo in the action bar. This works well in cases where the brand's logo matches the name of the app.
</div>
</div>
-</div>
+</div>
<h2 id="logo">Icons</h2>
+<a class="notice-designers-material" href="http://www.google.com/design/spec/style/icons.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Icons<p>
+ </div>
+</a>
+
+<p>If you have icons that you're already using for your app on other platforms
+and they have a distinctive look intended to fit your brand, use them on your
+Android app as well. <strong>If you take this approach, make sure your brand styling is
+applied to every single icon in your app.</strong></p>
+
<div class="layout-content-row">
<div class="layout-content-col span-6">
- <p>If you have icons that you're already using for your app on other platforms
- and they have a distinctive look intended to fit your brand, use them on your
- Android app as well. <strong>If you take this approach, make sure your brand styling is
- applied to every single icon in your app</strong>.</p>
+ <p>One exception: For any icon in your existing set where the symbol is different from
+ Android's, use Android's symbol but give it your brand's styling. That way, users will
+ understand what the purpose of the icon is based on what they've learned in other
+ Android apps (Design principle:
+ <a href="{@docRoot}design/get-started/principles.html#give-me-tricks">Give me tricks that
+ work everywhere</a>). But the icon will still look like it belongs with all of
+ your other icons as a part of your brand.</p>
</div>
@@ -81,13 +104,6 @@ and app name in the action bar.</p>
</div>
</div>
</div>
- <p>One exception: For any icon in your existing set where the symbol is different from
- Android's, use Android's symbol but give it your brand's styling. That way, users will
- understand what the purpose of the icon is based on what they've learned in other
- Android apps (Design principle:
- <a href="{@docRoot}design/get-started/principles.html#give-me-tricks">Give me tricks that
- work everywhere</a>). But the icon will still look like it belongs with all of
- your other icons as a part of your brand.</p>
<div class="layout-content-row">
<div class="layout-content-col span-6">
diff --git a/docs/html/design/style/color.jd b/docs/html/design/style/color.jd
index e00f6bc..4c5f5ab 100644
--- a/docs/html/design/style/color.jd
+++ b/docs/html/design/style/color.jd
@@ -88,6 +88,13 @@ page.title=Color
}
</style>
+<a class="notice-designers-material" href="http://www.google.com/design/spec/style/color.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Color<p>
+ </div>
+</a>
+
<p>Use color primarily for emphasis. Choose colors that fit with your brand and provide good contrast
between visual components. Note that red and green may be indistinguishable to color-blind users.</p>
@@ -129,6 +136,6 @@ shade that can be used as a complement when needed.</p>
.css('color', color)
.text(color.toUpperCase());
});
-
+
});
</script>
diff --git a/docs/html/design/style/devices-displays.jd b/docs/html/design/style/devices-displays.jd
index 6a7234b..1590363 100644
--- a/docs/html/design/style/devices-displays.jd
+++ b/docs/html/design/style/devices-displays.jd
@@ -3,6 +3,14 @@ page.metaDescription=Take advantage of Android's flexible layout system and crea
@jd:body
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/layout/principles.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Layout Principles<p>
+ </div>
+</a>
+
<p>Android powers hundreds of millions of phones, tablets, and other devices in a wide variety of screen sizes and
form factors. By taking advantage of Android's flexible layout system, you can create apps that
gracefully scale from large tablets to smaller phones.</p>
@@ -15,12 +23,14 @@ gracefully scale from large tablets to smaller phones.</p>
<div class="layout-content-col span-4">
<h4>Be flexible</h4>
+
<p>Stretch and compress your layouts to accommodate various heights and widths.</p>
</div>
<div class="layout-content-col span-5">
<h4>Optimize layouts</h4>
+
<p>On larger devices, take advantage of extra screen real estate. Create compound views that combine
multiple views to reveal more content and ease navigation.</p>
@@ -37,6 +47,15 @@ ensure that your app looks great on any device.</p>
<img src="{@docRoot}design/media/devices_displays_density@2x.png" alt="" height="160" />
<h4>Strategies</h4>
+
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/layout/structure.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Layout Structure<p>
+ </div>
+</a>
+
<p>So where do you begin when designing for multiple screens? One approach is to work in the base
standard (normal size and <acronym title="Medium density (160 dpi)">MDPI</acronym>) and scale it up or
down for the other buckets. Another approach is to start with the device with the largest screen
diff --git a/docs/html/design/style/iconography.jd b/docs/html/design/style/iconography.jd
index 75f541a..e2cdf3f 100644
--- a/docs/html/design/style/iconography.jd
+++ b/docs/html/design/style/iconography.jd
@@ -41,6 +41,14 @@ effectively down-scales your HDPI assets by 1/2 to match the expected size.</p>
<h2 id="launcher">Launcher</h2>
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/style/icons.html#icons-product-icons">
+ <div>
+ <h3>Material Design</h3>
+ <p>Product Icons<p>
+ </div>
+</a>
+
<p>The launcher icon is the visual representation of your app on the Home or All Apps screen. Since the
user can change the Home screen's wallpaper, make sure that your launcher icon is clearly visible on
any type of background.</p>
@@ -123,6 +131,14 @@ from above, so that users perceive some depth.</p>
<h2 id="action-bar">Action Bar</h2>
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/style/icons.html#icons-system-icons">
+ <div>
+ <h3>Material Design</h3>
+ <p>System Icons<p>
+ </div>
+</a>
+
<p>
Action bar icons are graphic buttons that represent the most important actions people can take
@@ -220,6 +236,14 @@ Disabled: <strong>30%</strong> opacity</p>
<h2 id="small-contextual">Small / Contextual Icons</h2>
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/style/icons.html#icons-system-icons">
+ <div>
+ <h3>Material Design</h3>
+ <p>System Icons<p>
+ </div>
+</a>
+
<p>Within the body of your app, use small icons to surface actions and/or provide status for specific
items. For example, in the Gmail app, each message has a star icon that marks the message as
important.</p>
@@ -300,6 +324,15 @@ the background.</p>
<h2 id="notification">Notification Icons</h2>
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/style/icons.html#icons-system-icons">
+ <div>
+ <h3>Material Design</h3>
+ <p>System Icons<p>
+ </div>
+</a>
+
+
<p>If your app generates notifications, provide an icon that the system can display in the status bar
whenever a new notification is available.</p>
diff --git a/docs/html/design/style/metrics-grids.jd b/docs/html/design/style/metrics-grids.jd
index e92d57e..d7b5f78 100644
--- a/docs/html/design/style/metrics-grids.jd
+++ b/docs/html/design/style/metrics-grids.jd
@@ -5,6 +5,16 @@ meta.tags="multiple screens, layout, tablets"
page.image=/design/media/metrics_closeup.png
@jd:body
+
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/layout/metrics-keylines.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Metrics and Keylines<p>
+ </div>
+</a>
+
+
<p>Devices vary not only in physical size, but also in screen density (<acronym title="Dots per
inch">DPI</acronym>). To simplify the way you design for multiple screens, think of each device as
falling into a particular size bucket and density bucket:</p>
diff --git a/docs/html/design/style/themes.jd b/docs/html/design/style/themes.jd
index 2dc8ead..3313a2b 100644
--- a/docs/html/design/style/themes.jd
+++ b/docs/html/design/style/themes.jd
@@ -17,6 +17,16 @@ page.title=Themes
</div>
<div class="layout-content-col span-7">
+
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/style/color.html#color-themes">
+ <div>
+ <h3>Material Design</h3>
+ <p>Color Themes<p>
+ </div>
+</a>
+
+
<p>Themes are Android's mechanism for applying a consistent style to an app or activity.
The style specifies the visual properties of the elements that make up your user interface,
such as color, height, padding and font size. To promote greater cohesion between all apps
@@ -34,7 +44,7 @@ of which you can selectively implement your own visual stylings.</p>
<div class="note develop">
<p><strong>Developer Guide</strong></p>
- <p>For information about how to apply themes such as Holo Light and Dark, and
+ <p>For information about how to apply themes such as Holo Light and Dark, and
how to build your own themes, see the
<a href="{@docRoot}guide/topics/ui/themes.html">Styles and Themes</a> API guide.</p>
</div>
diff --git a/docs/html/design/style/touch-feedback.jd b/docs/html/design/style/touch-feedback.jd
index 9f36fed..b6d6407 100644
--- a/docs/html/design/style/touch-feedback.jd
+++ b/docs/html/design/style/touch-feedback.jd
@@ -2,8 +2,17 @@ page.title=Touch Feedback
page.tags=input,button
@jd:body
- <div class="layout-content-row" style="margin-bottom: -100px">
- <div class="layout-content-col span-7">
+<div class="layout-content-row" style="margin-bottom: -100px">
+<div class="layout-content-col span-7">
+
+<a class="notice-designers-material"
+ href="http://www.google.com/design/spec/animation/responsive-interaction.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Responsive Interaction<p>
+ </div>
+</a>
+
<p>Use illumination and dimming to respond to touches, reinforce the resulting behaviors
of gestures, and indicate what actions are enabled and disabled.</p>
diff --git a/docs/html/design/style/typography.jd b/docs/html/design/style/typography.jd
index a665097..2f8e91b 100644
--- a/docs/html/design/style/typography.jd
+++ b/docs/html/design/style/typography.jd
@@ -9,7 +9,17 @@ page.metaDescription=How to use typography in your Android apps.
<img src="{@docRoot}design/media/typography_main.png">
</div>
- <div class="layout-content-col span-5">
+
+<a class="notice-designers-material"
+ style="width: 278px;"
+ href="http://www.google.com/design/spec/style/typography.html">
+ <div>
+ <h3>Material Design</h3>
+ <p>Typography<p>
+ </div>
+</a>
+
+<div class="layout-content-col span-5">
<p>
<a class="download-button" onClick="ga('send', 'event', 'Design', 'Download', 'Roboto ZIP');"
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java
index e2f7799..76d6edf 100644
--- a/graphics/java/android/graphics/Bitmap.java
+++ b/graphics/java/android/graphics/Bitmap.java
@@ -1573,6 +1573,15 @@ public final class Bitmap implements Parcelable {
return mSkBitmapPtr;
}
+ /**
+ * Refs the underlying SkPixelRef and returns a pointer to it.
+ *
+ * @hide
+ * */
+ public final long refSkPixelRef() {
+ return nativeRefPixelRef(mSkBitmapPtr);
+ }
+
private static class BitmapFinalizer {
private long mNativeBitmap;
@@ -1661,4 +1670,5 @@ public final class Bitmap implements Parcelable {
private static native boolean nativeHasMipMap(long nativeBitmap);
private static native void nativeSetHasMipMap(long nativeBitmap, boolean hasMipMap);
private static native boolean nativeSameAs(long nativeBitmap0, long nativeBitmap1);
+ private static native long nativeRefPixelRef(long nativeBitmap);
}
diff --git a/graphics/java/android/graphics/BitmapShader.java b/graphics/java/android/graphics/BitmapShader.java
index f2f890e..bd74bc8 100644
--- a/graphics/java/android/graphics/BitmapShader.java
+++ b/graphics/java/android/graphics/BitmapShader.java
@@ -42,8 +42,7 @@ public class BitmapShader extends Shader {
mBitmap = bitmap;
mTileX = tileX;
mTileY = tileY;
- final long b = bitmap.getSkBitmap();
- init(nativeCreate(b, tileX.nativeInt, tileY.nativeInt));
+ init(nativeCreate(bitmap, tileX.nativeInt, tileY.nativeInt));
}
/**
@@ -56,6 +55,6 @@ public class BitmapShader extends Shader {
return copy;
}
- private static native long nativeCreate(long native_bitmap, int shaderTileModeX,
+ private static native long nativeCreate(Bitmap bitmap, int shaderTileModeX,
int shaderTileModeY);
}
diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java
index 48afcbf..2acb8ba 100644
--- a/graphics/java/android/graphics/Canvas.java
+++ b/graphics/java/android/graphics/Canvas.java
@@ -81,10 +81,6 @@ public class Canvas {
*/
protected int mScreenDensity = Bitmap.DENSITY_NONE;
- // Used by native code
- @SuppressWarnings("UnusedDeclaration")
- private int mSurfaceFormat;
-
/**
* Flag for drawTextRun indicating left-to-right run direction.
* @hide
@@ -137,7 +133,7 @@ public class Canvas {
public Canvas() {
if (!isHardwareAccelerated()) {
// 0 means no native bitmap
- mNativeCanvasWrapper = initRaster(0);
+ mNativeCanvasWrapper = initRaster(null);
mFinalizer = new CanvasFinalizer(mNativeCanvasWrapper);
} else {
mFinalizer = null;
@@ -158,7 +154,7 @@ public class Canvas {
throw new IllegalStateException("Immutable bitmap passed to Canvas constructor");
}
throwIfCannotDraw(bitmap);
- mNativeCanvasWrapper = initRaster(bitmap.getSkBitmap());
+ mNativeCanvasWrapper = initRaster(bitmap);
mFinalizer = new CanvasFinalizer(mNativeCanvasWrapper);
mBitmap = bitmap;
mDensity = bitmap.mDensity;
@@ -215,7 +211,7 @@ public class Canvas {
}
if (bitmap == null) {
- native_setBitmap(mNativeCanvasWrapper, 0, false);
+ native_setBitmap(mNativeCanvasWrapper, null);
mDensity = Bitmap.DENSITY_NONE;
} else {
if (!bitmap.isMutable()) {
@@ -223,7 +219,7 @@ public class Canvas {
}
throwIfCannotDraw(bitmap);
- native_setBitmap(mNativeCanvasWrapper, bitmap.getSkBitmap(), true);
+ native_setBitmap(mNativeCanvasWrapper, bitmap);
mDensity = bitmap.mDensity;
}
@@ -231,13 +227,6 @@ public class Canvas {
}
/**
- * setBitmap() variant for native callers with a raw bitmap handle.
- */
- private void setNativeBitmap(long bitmapHandle) {
- native_setBitmap(mNativeCanvasWrapper, bitmapHandle, false);
- }
-
- /**
* Set the viewport dimensions if this canvas is GL based. If it is not,
* this method is ignored and no exception is thrown.
*
@@ -1976,10 +1965,9 @@ public class Canvas {
*/
public static native void freeTextLayoutCaches();
- private static native long initRaster(long nativeBitmapOrZero);
+ private static native long initRaster(Bitmap bitmap);
private static native void native_setBitmap(long canvasHandle,
- long bitmapHandle,
- boolean copyState);
+ Bitmap bitmap);
private static native boolean native_isOpaque(long canvasHandle);
private static native int native_getWidth(long canvasHandle);
private static native int native_getHeight(long canvasHandle);
diff --git a/include/androidfw/ResourceTypes.h b/include/androidfw/ResourceTypes.h
index da70e9b..df278c8 100644
--- a/include/androidfw/ResourceTypes.h
+++ b/include/androidfw/ResourceTypes.h
@@ -372,7 +372,8 @@ struct Res_value
};
// The data for this item, as interpreted according to dataType.
- uint32_t data;
+ typedef uint32_t data_type;
+ data_type data;
void copyFrom_dtoh(const Res_value& src);
};
@@ -1512,6 +1513,8 @@ private:
KeyedVector<String16, uint8_t> mEntries;
};
+bool U16StringToInt(const char16_t* s, size_t len, Res_value* outValue);
+
/**
* Convenience class for accessing data in a ResTable resource.
*/
diff --git a/keystore/java/android/security/AndroidKeyStore.java b/keystore/java/android/security/AndroidKeyStore.java
index b931774..1c068be 100644
--- a/keystore/java/android/security/AndroidKeyStore.java
+++ b/keystore/java/android/security/AndroidKeyStore.java
@@ -55,6 +55,7 @@ import java.util.Date;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import java.util.Set;
import javax.crypto.SecretKey;
@@ -116,11 +117,15 @@ public class AndroidKeyStore extends KeyStoreSpi {
throw new UnrecoverableKeyException("Key algorithm unknown");
}
- int keymasterDigest =
- keyCharacteristics.hwEnforced.getInt(KeymasterDefs.KM_TAG_DIGEST, -1);
- if (keymasterDigest == -1) {
- keymasterDigest =
- keyCharacteristics.swEnforced.getInt(KeymasterDefs.KM_TAG_DIGEST, -1);
+ List<Integer> keymasterDigests =
+ keyCharacteristics.getInts(KeymasterDefs.KM_TAG_DIGEST);
+ int keymasterDigest;
+ if (keymasterDigests.isEmpty()) {
+ keymasterDigest = -1;
+ } else {
+ // More than one digest can be permitted for this key. Use the first one to form the
+ // JCA key algorithm name.
+ keymasterDigest = keymasterDigests.get(0);
}
String keyAlgorithmString;
diff --git a/keystore/java/android/security/EcIesParameterSpec.java b/keystore/java/android/security/EcIesParameterSpec.java
index 3826679..a3e5aec 100644
--- a/keystore/java/android/security/EcIesParameterSpec.java
+++ b/keystore/java/android/security/EcIesParameterSpec.java
@@ -83,11 +83,10 @@ public class EcIesParameterSpec implements AlgorithmParameterSpec {
}
/**
- * Default parameter spec: NIST P-256 curve (aka secp256r1 aka prime256v1), compressed point
- * format, {@code HKDFwithSHA256}, DEM uses 128-bit AES GCM.
+ * Default parameter spec: compressed point format, {@code HKDFwithSHA256}, DEM uses 128-bit AES
+ * GCM.
*/
public static final EcIesParameterSpec DEFAULT = new EcIesParameterSpec(
- "P-256",
PointFormat.COMPRESSED,
"HKDFwithSHA256",
"AES/GCM/NoPadding",
@@ -95,7 +94,6 @@ public class EcIesParameterSpec implements AlgorithmParameterSpec {
null,
0);
- private final String mKemCurveName;
private final @PointFormatEnum int mKemPointFormat;
private final String mKemKdfAlgorithm;
private final String mDemCipherTransformation;
@@ -104,14 +102,12 @@ public class EcIesParameterSpec implements AlgorithmParameterSpec {
private final int mDemMacKeySize;
private EcIesParameterSpec(
- String kemCurveName,
@PointFormatEnum int kemPointFormat,
String kemKdfAlgorithm,
String demCipherTransformation,
int demCipherKeySize,
String demMacAlgorithm,
int demMacKeySize) {
- mKemCurveName = kemCurveName;
mKemPointFormat = kemPointFormat;
mKemKdfAlgorithm = kemKdfAlgorithm;
mDemCipherTransformation = demCipherTransformation;
@@ -121,15 +117,6 @@ public class EcIesParameterSpec implements AlgorithmParameterSpec {
}
/**
- * Returns KEM EC curve name (e.g., {@code secp256r1}) or {@code null} if not specified.
- *
- * @hide
- */
- public String getKemCurveName() {
- return mKemCurveName;
- }
-
- /**
* Returns KEM EC point wire format or {@link PointFormat#UNSPECIFIED} if not specified.
*/
public @PointFormatEnum int getKemPointFormat() {
@@ -188,7 +175,6 @@ public class EcIesParameterSpec implements AlgorithmParameterSpec {
* Builder of {@link EcIesParameterSpec}.
*/
public static class Builder {
- private String mKemCurveName;
private @PointFormatEnum int mKemPointFormat = PointFormat.UNSPECIFIED;
private String mKemKdfAlgorithm;
private String mDemCipherTransformation;
@@ -197,18 +183,6 @@ public class EcIesParameterSpec implements AlgorithmParameterSpec {
private int mDemMacKeySize = -1;
/**
- * Sets KEM EC curve name. For example, {@code P-256} or {@code secp256r1}.
- *
- * <p>NOTE: Only curves with cofactor of {@code 1} are supported.
- *
- * @hide
- */
- public Builder setKemCurveName(String name) {
- mKemCurveName = name;
- return this;
- }
-
- /**
* Sets KEM EC point wire format.
*/
public Builder setKemPointFormat(@PointFormatEnum int pointFormat) {
@@ -276,7 +250,6 @@ public class EcIesParameterSpec implements AlgorithmParameterSpec {
public EcIesParameterSpec build() {
int demMacKeySize = (mDemMacKeySize != -1) ? mDemMacKeySize : mDemCipherKeySize;
return new EcIesParameterSpec(
- mKemCurveName,
mKemPointFormat,
mKemKdfAlgorithm,
mDemCipherTransformation,
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index e247150..04ebe70 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -17,6 +17,16 @@
#define LOG_TAG "ResourceType"
//#define LOG_NDEBUG 0
+#include <ctype.h>
+#include <memory.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <limits>
+#include <type_traits>
+
#include <androidfw/ByteBucketArray.h>
#include <androidfw/ResourceTypes.h>
#include <androidfw/TypeWrappers.h>
@@ -27,17 +37,10 @@
#include <utils/String16.h>
#include <utils/String8.h>
-#ifdef HAVE_ANDROID_OS
+#ifdef __ANDROID__
#include <binder/TextOutput.h>
#endif
-#include <stdlib.h>
-#include <string.h>
-#include <memory.h>
-#include <ctype.h>
-#include <stdint.h>
-#include <stddef.h>
-
#ifndef INT32_MAX
#define INT32_MAX ((int32_t)(2147483647))
#endif
@@ -4615,8 +4618,7 @@ static bool parse_unit(const char* str, Res_value* outValue,
return false;
}
-
-bool ResTable::stringToInt(const char16_t* s, size_t len, Res_value* outValue)
+bool U16StringToInt(const char16_t* s, size_t len, Res_value* outValue)
{
while (len > 0 && isspace16(*s)) {
s++;
@@ -4628,7 +4630,7 @@ bool ResTable::stringToInt(const char16_t* s, size_t len, Res_value* outValue)
}
size_t i = 0;
- int32_t val = 0;
+ int64_t val = 0;
bool neg = false;
if (*s == '-') {
@@ -4640,28 +4642,50 @@ bool ResTable::stringToInt(const char16_t* s, size_t len, Res_value* outValue)
return false;
}
+ static_assert(std::is_same<uint32_t, Res_value::data_type>::value,
+ "Res_value::data_type has changed. The range checks in this "
+ "function are no longer correct.");
+
// Decimal or hex?
- if (s[i] == '0' && s[i+1] == 'x') {
- if (outValue)
- outValue->dataType = outValue->TYPE_INT_HEX;
+ bool isHex;
+ if (len > 1 && s[i] == '0' && s[i+1] == 'x') {
+ isHex = true;
i += 2;
+
+ if (neg) {
+ return false;
+ }
+
+ if (i == len) {
+ // Just u"0x"
+ return false;
+ }
+
bool error = false;
while (i < len && !error) {
val = (val*16) + get_hex(s[i], &error);
i++;
+
+ if (val > std::numeric_limits<uint32_t>::max()) {
+ return false;
+ }
}
if (error) {
return false;
}
} else {
- if (outValue)
- outValue->dataType = outValue->TYPE_INT_DEC;
+ isHex = false;
while (i < len) {
if (s[i] < '0' || s[i] > '9') {
return false;
}
val = (val*10) + s[i]-'0';
i++;
+
+ if ((neg && -val < std::numeric_limits<int32_t>::min()) ||
+ (!neg && val > std::numeric_limits<int32_t>::max())) {
+ return false;
+ }
}
}
@@ -4671,13 +4695,21 @@ bool ResTable::stringToInt(const char16_t* s, size_t len, Res_value* outValue)
i++;
}
- if (i == len) {
- if (outValue)
- outValue->data = val;
- return true;
+ if (i != len) {
+ return false;
}
- return false;
+ if (outValue) {
+ outValue->dataType =
+ isHex ? outValue->TYPE_INT_HEX : outValue->TYPE_INT_DEC;
+ outValue->data = static_cast<Res_value::data_type>(val);
+ }
+ return true;
+}
+
+bool ResTable::stringToInt(const char16_t* s, size_t len, Res_value* outValue)
+{
+ return U16StringToInt(s, len, outValue);
}
bool ResTable::stringToFloat(const char16_t* s, size_t len, Res_value* outValue)
diff --git a/libs/androidfw/tests/Android.mk b/libs/androidfw/tests/Android.mk
index 58b78b5..a353575 100644
--- a/libs/androidfw/tests/Android.mk
+++ b/libs/androidfw/tests/Android.mk
@@ -19,6 +19,7 @@
# targets here.
# ==========================================================
LOCAL_PATH:= $(call my-dir)
+
testFiles := \
AttributeFinder_test.cpp \
ByteBucketArray_test.cpp \
@@ -32,27 +33,33 @@ testFiles := \
TypeWrappers_test.cpp \
ZipUtils_test.cpp
+androidfw_test_cflags := \
+ -Wall \
+ -Werror \
+ -Wunused \
+ -Wunreachable-code \
+ -Wno-missing-field-initializers \
+
+# gtest is broken.
+androidfw_test_cflags += -Wno-unnamed-type-template-args
+
# ==========================================================
# Build the host tests: libandroidfw_tests
# ==========================================================
include $(CLEAR_VARS)
LOCAL_MODULE := libandroidfw_tests
-
-LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
-# gtest is broken.
-LOCAL_CFLAGS += -Wno-unnamed-type-template-args
-
+LOCAL_CFLAGS := $(androidfw_test_cflags)
LOCAL_SRC_FILES := $(testFiles)
LOCAL_STATIC_LIBRARIES := \
libandroidfw \
libutils \
libcutils \
- liblog
+ liblog \
+ libz \
include $(BUILD_HOST_NATIVE_TEST)
-
# ==========================================================
# Build the device tests: libandroidfw_tests
# ==========================================================
@@ -60,14 +67,11 @@ ifneq ($(SDK_ONLY),true)
include $(CLEAR_VARS)
LOCAL_MODULE := libandroidfw_tests
-
-LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code
-# gtest is broken.
-LOCAL_CFLAGS += -Wno-unnamed-type-template-args
-
+LOCAL_CFLAGS := $(androidfw_test_cflags)
LOCAL_SRC_FILES := $(testFiles) \
BackupData_test.cpp \
- ObbFile_test.cpp
+ ObbFile_test.cpp \
+
LOCAL_SHARED_LIBRARIES := \
libandroidfw \
libcutils \
diff --git a/libs/androidfw/tests/ResTable_test.cpp b/libs/androidfw/tests/ResTable_test.cpp
index 6a9314e..dcfe91e 100644
--- a/libs/androidfw/tests/ResTable_test.cpp
+++ b/libs/androidfw/tests/ResTable_test.cpp
@@ -16,6 +16,10 @@
#include <androidfw/ResourceTypes.h>
+#include <codecvt>
+#include <locale>
+#include <string>
+
#include <utils/String8.h>
#include <utils/String16.h>
#include "TestHelpers.h"
@@ -201,4 +205,81 @@ TEST(ResTableTest, emptyTableHasSensibleDefaults) {
ASSERT_LT(table.getResource(base::R::integer::number1, &val, MAY_NOT_BE_BAG), 0);
}
+void testU16StringToInt(const char16_t* str, uint32_t expectedValue,
+ bool expectSuccess, bool expectHex) {
+ size_t len = std::char_traits<char16_t>::length(str);
+
+ // Gtest can't print UTF-16 strings, so we have to convert to UTF-8 :(
+ std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert;
+ std::string s = convert.to_bytes(std::u16string(str, len));
+
+ Res_value out = {};
+ ASSERT_EQ(expectSuccess, U16StringToInt(str, len, &out))
+ << "Failed with " << s;
+
+ if (!expectSuccess) {
+ ASSERT_EQ(out.TYPE_NULL, out.dataType) << "Failed with " << s;
+ return;
+ }
+
+ if (expectHex) {
+ ASSERT_EQ(out.TYPE_INT_HEX, out.dataType) << "Failed with " << s;
+ } else {
+ ASSERT_EQ(out.TYPE_INT_DEC, out.dataType) << "Failed with " << s;
+ }
+
+ ASSERT_EQ(expectedValue, out.data) << "Failed with " << s;
+}
+
+TEST(ResTableTest, U16StringToInt) {
+ testU16StringToInt(u"", 0U, false, false);
+ testU16StringToInt(u" ", 0U, false, false);
+ testU16StringToInt(u"\t\n", 0U, false, false);
+
+ testU16StringToInt(u"abcd", 0U, false, false);
+ testU16StringToInt(u"10abcd", 0U, false, false);
+ testU16StringToInt(u"42 42", 0U, false, false);
+ testU16StringToInt(u"- 42", 0U, false, false);
+ testU16StringToInt(u"-", 0U, false, false);
+
+ testU16StringToInt(u"0x", 0U, false, true);
+ testU16StringToInt(u"0xnope", 0U, false, true);
+ testU16StringToInt(u"0X42", 0U, false, true);
+ testU16StringToInt(u"0x42 0x42", 0U, false, true);
+ testU16StringToInt(u"-0x0", 0U, false, true);
+ testU16StringToInt(u"-0x42", 0U, false, true);
+ testU16StringToInt(u"- 0x42", 0U, false, true);
+
+ // Note that u" 42" would pass. This preserves the old behavior, but it may
+ // not be desired.
+ testU16StringToInt(u"42 ", 0U, false, false);
+ testU16StringToInt(u"0x42 ", 0U, false, true);
+
+ // Decimal cases.
+ testU16StringToInt(u"0", 0U, true, false);
+ testU16StringToInt(u"-0", 0U, true, false);
+ testU16StringToInt(u"42", 42U, true, false);
+ testU16StringToInt(u" 42", 42U, true, false);
+ testU16StringToInt(u"-42", static_cast<uint32_t>(-42), true, false);
+ testU16StringToInt(u" -42", static_cast<uint32_t>(-42), true, false);
+ testU16StringToInt(u"042", 42U, true, false);
+ testU16StringToInt(u"-042", static_cast<uint32_t>(-42), true, false);
+
+ // Hex cases.
+ testU16StringToInt(u"0x0", 0x0, true, true);
+ testU16StringToInt(u"0x42", 0x42, true, true);
+ testU16StringToInt(u" 0x42", 0x42, true, true);
+
+ // Just before overflow cases:
+ testU16StringToInt(u"2147483647", INT_MAX, true, false);
+ testU16StringToInt(u"-2147483648", static_cast<uint32_t>(INT_MIN), true,
+ false);
+ testU16StringToInt(u"0xffffffff", UINT_MAX, true, true);
+
+ // Overflow cases:
+ testU16StringToInt(u"2147483648", 0U, false, false);
+ testU16StringToInt(u"-2147483649", 0U, false, false);
+ testU16StringToInt(u"0x1ffffffff", 0U, false, true);
+}
+
}
diff --git a/libs/hwui/AssetAtlas.cpp b/libs/hwui/AssetAtlas.cpp
index 4d2e3a0..882826e 100644
--- a/libs/hwui/AssetAtlas.cpp
+++ b/libs/hwui/AssetAtlas.cpp
@@ -82,12 +82,12 @@ void AssetAtlas::updateTextureId() {
///////////////////////////////////////////////////////////////////////////////
AssetAtlas::Entry* AssetAtlas::getEntry(const SkBitmap* bitmap) const {
- ssize_t index = mEntries.indexOfKey(bitmap);
+ ssize_t index = mEntries.indexOfKey(bitmap->pixelRef());
return index >= 0 ? mEntries.valueAt(index) : nullptr;
}
Texture* AssetAtlas::getEntryTexture(const SkBitmap* bitmap) const {
- ssize_t index = mEntries.indexOfKey(bitmap);
+ ssize_t index = mEntries.indexOfKey(bitmap->pixelRef());
return index >= 0 ? mEntries.valueAt(index)->texture : nullptr;
}
@@ -120,7 +120,7 @@ void AssetAtlas::createEntries(Caches& caches, int64_t* map, int count) {
const float height = float(mTexture->height);
for (int i = 0; i < count; ) {
- SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(map[i++]);
+ SkPixelRef* pixelRef = reinterpret_cast<SkPixelRef*>(map[i++]);
// NOTE: We're converting from 64 bit signed values to 32 bit
// signed values. This is guaranteed to be safe because the "x"
// and "y" coordinate values are guaranteed to be representable
@@ -131,21 +131,21 @@ void AssetAtlas::createEntries(Caches& caches, int64_t* map, int count) {
bool rotated = map[i++] > 0;
// Bitmaps should never be null, we're just extra paranoid
- if (!bitmap) continue;
+ if (!pixelRef) continue;
const UvMapper mapper(
- x / width, (x + bitmap->width()) / width,
- y / height, (y + bitmap->height()) / height);
+ x / width, (x + pixelRef->info().width()) / width,
+ y / height, (y + pixelRef->info().height()) / height);
Texture* texture = new DelegateTexture(caches, mTexture);
- texture->blend = !bitmap->isOpaque();
- texture->width = bitmap->width();
- texture->height = bitmap->height();
+ texture->blend = !SkAlphaTypeIsOpaque(pixelRef->info().alphaType());
+ texture->width = pixelRef->info().width();
+ texture->height = pixelRef->info().height();
- Entry* entry = new Entry(bitmap, x, y, rotated, texture, mapper, *this);
+ Entry* entry = new Entry(pixelRef, x, y, rotated, texture, mapper, *this);
texture->uvMapper = &entry->uvMapper;
- mEntries.add(entry->bitmap, entry);
+ mEntries.add(entry->pixelRef, entry);
}
}
diff --git a/libs/hwui/AssetAtlas.h b/libs/hwui/AssetAtlas.h
index 1772eff..17c5281 100644
--- a/libs/hwui/AssetAtlas.h
+++ b/libs/hwui/AssetAtlas.h
@@ -48,24 +48,8 @@ public:
* Entry representing the position and rotation of a
* bitmap inside the atlas.
*/
- struct Entry {
- /**
- * The bitmap that generated this atlas entry.
- */
- SkBitmap* bitmap;
-
- /**
- * Location of the bitmap inside the atlas, in pixels.
- */
- int x;
- int y;
-
- /**
- * If set, the bitmap is rotated 90 degrees (clockwise)
- * inside the atlas.
- */
- bool rotated;
-
+ class Entry {
+ public:
/*
* A "virtual texture" object that represents the texture
* this entry belongs to. This texture should never be
@@ -80,11 +64,6 @@ public:
const UvMapper uvMapper;
/**
- * Atlas this entry belongs to.
- */
- const AssetAtlas& atlas;
-
- /**
* Unique identifier used to merge bitmaps and 9-patches stored
* in the atlas.
*/
@@ -93,10 +72,37 @@ public:
}
private:
- Entry(SkBitmap* bitmap, int x, int y, bool rotated,
- Texture* texture, const UvMapper& mapper, const AssetAtlas& atlas):
- bitmap(bitmap), x(x), y(y), rotated(rotated),
- texture(texture), uvMapper(mapper), atlas(atlas) {
+ /**
+ * The pixel ref that generated this atlas entry.
+ */
+ SkPixelRef* pixelRef;
+
+ /**
+ * Location of the bitmap inside the atlas, in pixels.
+ */
+ int x;
+ int y;
+
+ /**
+ * If set, the bitmap is rotated 90 degrees (clockwise)
+ * inside the atlas.
+ */
+ bool rotated;
+
+ /**
+ * Atlas this entry belongs to.
+ */
+ const AssetAtlas& atlas;
+
+ Entry(SkPixelRef* pixelRef, int x, int y, bool rotated,
+ Texture* texture, const UvMapper& mapper, const AssetAtlas& atlas)
+ : texture(texture)
+ , uvMapper(mapper)
+ , pixelRef(pixelRef)
+ , x(x)
+ , y(y)
+ , rotated(rotated)
+ , atlas(atlas) {
}
~Entry() {
@@ -178,7 +184,7 @@ private:
const bool mBlendKey;
const bool mOpaqueKey;
- KeyedVector<const SkBitmap*, Entry*> mEntries;
+ KeyedVector<const SkPixelRef*, Entry*> mEntries;
}; // class AssetAtlas
}; // namespace uirenderer
diff --git a/libs/hwui/Canvas.h b/libs/hwui/Canvas.h
index 7ad0683..aa24673 100644
--- a/libs/hwui/Canvas.h
+++ b/libs/hwui/Canvas.h
@@ -29,7 +29,7 @@ class ANDROID_API Canvas {
public:
virtual ~Canvas() {};
- static Canvas* create_canvas(SkBitmap* bitmap);
+ static Canvas* create_canvas(const SkBitmap& bitmap);
/**
* Create a new Canvas object which delegates to an SkCanvas.
@@ -52,7 +52,7 @@ public:
*/
virtual SkCanvas* asSkCanvas() = 0;
- virtual void setBitmap(SkBitmap* bitmap, bool copyState) = 0;
+ virtual void setBitmap(const SkBitmap& bitmap) = 0;
virtual bool isOpaque() = 0;
virtual int width() = 0;
@@ -87,7 +87,8 @@ public:
virtual bool quickRejectRect(float left, float top, float right, float bottom) const = 0;
virtual bool quickRejectPath(const SkPath& path) const = 0;
- virtual bool clipRect(float left, float top, float right, float bottom, SkRegion::Op op) = 0;
+ virtual bool clipRect(float left, float top, float right, float bottom,
+ SkRegion::Op op = SkRegion::kIntersect_Op) = 0;
virtual bool clipPath(const SkPath* path, SkRegion::Op op) = 0;
virtual bool clipRegion(const SkRegion* region, SkRegion::Op op) = 0;
diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h
index 53fd1ad..ff698f5 100644
--- a/libs/hwui/DisplayListRenderer.h
+++ b/libs/hwui/DisplayListRenderer.h
@@ -138,7 +138,7 @@ public:
// ----------------------------------------------------------------------------
virtual SkCanvas* asSkCanvas() override;
- virtual void setBitmap(SkBitmap* bitmap, bool copyState) override {
+ virtual void setBitmap(const SkBitmap& bitmap) override {
LOG_ALWAYS_FATAL("DisplayListRenderer is not backed by a bitmap.");
}
diff --git a/libs/hwui/SkiaCanvas.cpp b/libs/hwui/SkiaCanvas.cpp
index 8b11757..a323065 100644
--- a/libs/hwui/SkiaCanvas.cpp
+++ b/libs/hwui/SkiaCanvas.cpp
@@ -31,7 +31,7 @@ namespace android {
// Holds an SkCanvas reference plus additional native data.
class SkiaCanvas : public Canvas {
public:
- explicit SkiaCanvas(SkBitmap* bitmap);
+ explicit SkiaCanvas(const SkBitmap& bitmap);
/**
* Create a new SkiaCanvas.
@@ -49,7 +49,7 @@ public:
return mCanvas.get();
}
- virtual void setBitmap(SkBitmap* bitmap, bool copyState) override;
+ virtual void setBitmap(const SkBitmap& bitmap) override;
virtual bool isOpaque() override;
virtual int width() override;
@@ -145,19 +145,7 @@ private:
SkAutoTDelete<SkDeque> mSaveStack; // lazily allocated, tracks partial saves.
};
-// Construct an SkCanvas from the bitmap.
-static SkCanvas* createCanvas(SkBitmap* bitmap) {
- if (bitmap) {
- return SkNEW_ARGS(SkCanvas, (*bitmap));
- }
-
- // Create an empty bitmap device to prevent callers from crashing
- // if they attempt to draw into this canvas.
- SkBitmap emptyBitmap;
- return new SkCanvas(emptyBitmap);
-}
-
-Canvas* Canvas::create_canvas(SkBitmap* bitmap) {
+Canvas* Canvas::create_canvas(const SkBitmap& bitmap) {
return new SkiaCanvas(bitmap);
}
@@ -165,8 +153,8 @@ Canvas* Canvas::create_canvas(SkCanvas* skiaCanvas) {
return new SkiaCanvas(skiaCanvas);
}
-SkiaCanvas::SkiaCanvas(SkBitmap* bitmap) {
- mCanvas.reset(createCanvas(bitmap));
+SkiaCanvas::SkiaCanvas(const SkBitmap& bitmap) {
+ mCanvas.reset(new SkCanvas(bitmap));
}
// ----------------------------------------------------------------------------
@@ -191,11 +179,11 @@ private:
SkCanvas* m_dstCanvas;
};
-void SkiaCanvas::setBitmap(SkBitmap* bitmap, bool copyState) {
- SkCanvas* newCanvas = createCanvas(bitmap);
+void SkiaCanvas::setBitmap(const SkBitmap& bitmap) {
+ SkCanvas* newCanvas = new SkCanvas(bitmap);
SkASSERT(newCanvas);
- if (copyState) {
+ if (!bitmap.isNull()) {
// Copy the canvas matrix & clip state.
newCanvas->setMatrix(mCanvas->getTotalMatrix());
if (NULL != mCanvas->getDevice() && NULL != newCanvas->getDevice()) {
diff --git a/libs/hwui/SkiaCanvasProxy.cpp b/libs/hwui/SkiaCanvasProxy.cpp
index ec1bb90..8a6c8c5 100644
--- a/libs/hwui/SkiaCanvasProxy.cpp
+++ b/libs/hwui/SkiaCanvasProxy.cpp
@@ -289,6 +289,7 @@ void SkiaCanvasProxy::onDrawPosText(const void* text, size_t byteLength, const S
// but even more conservative bounds if this is too slow.
SkRect bounds;
glyphs.paint.measureText(glyphs.glyphIDs, glyphs.count << 1, &bounds);
+ bounds.offset(x, y);
SK_COMPILE_ASSERT(sizeof(SkPoint) == sizeof(float)*2, SkPoint_is_no_longer_2_floats);
mCanvas->drawText(glyphs.glyphIDs, &posArray[0].fX, glyphs.count, glyphs.paint, x, y,
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index cc87241..d15fa39 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -293,11 +293,11 @@ CREATE_BRIDGE3(copyLayerInto, CanvasContext* context, DeferredLayerUpdater* laye
return (void*) success;
}
-bool RenderProxy::copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap) {
+bool RenderProxy::copyLayerInto(DeferredLayerUpdater* layer, SkBitmap& bitmap) {
SETUP_TASK(copyLayerInto);
args->context = mContext;
args->layer = layer;
- args->bitmap = bitmap;
+ args->bitmap = &bitmap;
return (bool) postAndWait(task);
}
diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h
index 29c6f08..cc475fa 100644
--- a/libs/hwui/renderthread/RenderProxy.h
+++ b/libs/hwui/renderthread/RenderProxy.h
@@ -83,7 +83,7 @@ public:
ANDROID_API DeferredLayerUpdater* createTextureLayer();
ANDROID_API void buildLayer(RenderNode* node);
- ANDROID_API bool copyLayerInto(DeferredLayerUpdater* layer, SkBitmap* bitmap);
+ ANDROID_API bool copyLayerInto(DeferredLayerUpdater* layer, SkBitmap& bitmap);
ANDROID_API void pushLayerUpdate(DeferredLayerUpdater* layer);
ANDROID_API void cancelLayerUpdate(DeferredLayerUpdater* layer);
ANDROID_API void detachSurfaceTexture(DeferredLayerUpdater* layer);
diff --git a/location/java/android/location/GpsMeasurement.java b/location/java/android/location/GpsMeasurement.java
index 05bcf79..df128c9 100644
--- a/location/java/android/location/GpsMeasurement.java
+++ b/location/java/android/location/GpsMeasurement.java
@@ -80,6 +80,8 @@ public class GpsMeasurement implements Parcelable {
private static final int HAS_TIME_FROM_LAST_BIT = (1<<14);
private static final int HAS_DOPPLER_SHIFT = (1<<15);
private static final int HAS_DOPPLER_SHIFT_UNCERTAINTY = (1<<16);
+ private static final int HAS_USED_IN_FIX = (1<<17);
+ private static final int GPS_MEASUREMENT_HAS_UNCORRECTED_PSEUDORANGE_RATE = (1<<18);
/**
* The indicator is not available or it is unknown.
@@ -137,10 +139,17 @@ public class GpsMeasurement implements Parcelable {
public static final short STATE_TOW_DECODED = (1<<3);
/**
+ * The state of the GPS receiver contains millisecond ambiguity.
+ *
+ * @hide
+ */
+ public static final short STATE_MSEC_AMBIGUOUS = (1<<4);
+
+ /**
* All the GPS receiver state flags.
*/
- private static final short STATE_ALL =
- STATE_CODE_LOCK | STATE_BIT_SYNC | STATE_SUBFRAME_SYNC | STATE_TOW_DECODED;
+ private static final short STATE_ALL = STATE_CODE_LOCK | STATE_BIT_SYNC | STATE_SUBFRAME_SYNC
+ | STATE_TOW_DECODED | STATE_MSEC_AMBIGUOUS;
/**
* The state of the 'Accumulated Delta Range' is invalid or unknown.
@@ -295,6 +304,9 @@ public class GpsMeasurement implements Parcelable {
if ((mState & STATE_TOW_DECODED) == STATE_TOW_DECODED) {
builder.append("TowDecoded|");
}
+ if ((mState & STATE_MSEC_AMBIGUOUS) == STATE_MSEC_AMBIGUOUS) {
+ builder.append("MsecAmbiguous");
+ }
int remainingStates = mState & ~STATE_ALL;
if (remainingStates > 0) {
builder.append("Other(");
@@ -361,6 +373,15 @@ public class GpsMeasurement implements Parcelable {
/**
* Gets the Pseudorange rate at the timestamp in m/s.
* The reported value includes {@link #getPseudorangeRateUncertaintyInMetersPerSec()}.
+ *
+ * The correction of a given Pseudorange Rate value includes corrections from receiver and
+ * satellite clock frequency errors.
+ * {@link #isPseudorangeRateCorrected()} identifies the type of value reported.
+ *
+ * A positive 'uncorrected' value indicates that the SV is moving away from the receiver.
+ * The sign of the 'uncorrected' Pseudorange Rate and its relation to the sign of
+ * {@link #getDopplerShiftInHz()} is given by the equation:
+ * pseudorange rate = -k * doppler shift (where k is a constant)
*/
public double getPseudorangeRateInMetersPerSec() {
return mPseudorangeRateInMetersPerSec;
@@ -374,6 +395,18 @@ public class GpsMeasurement implements Parcelable {
}
/**
+ * See {@link #getPseudorangeRateInMetersPerSec()} for more details.
+ *
+ * @return {@code true} if {@link #getPseudorangeRateInMetersPerSec()} contains a corrected
+ * value, {@code false} if it contains an uncorrected value.
+ *
+ * @hide
+ */
+ public boolean isPseudorangeRateCorrected() {
+ return !isFlagSet(GPS_MEASUREMENT_HAS_UNCORRECTED_PSEUDORANGE_RATE);
+ }
+
+ /**
* Gets the pseudorange's rate uncertainty (1-Sigma) in m/s.
* The uncertainty is represented as an absolute (single sided) value.
*/
@@ -437,6 +470,11 @@ public class GpsMeasurement implements Parcelable {
* The reported value includes {@link #getAccumulatedDeltaRangeUncertaintyInMeters()}.
*
* The availability of the value is represented by {@link #getAccumulatedDeltaRangeState()}.
+ *
+ * A positive value indicates that the SV is moving away from the receiver.
+ * The sign of {@link #getAccumulatedDeltaRangeInMeters()} and its relation to the sign of
+ * {@link #getCarrierPhase()} is given by the equation:
+ * accumulated delta range = -k * carrier phase (where k is a constant)
*/
public double getAccumulatedDeltaRangeInMeters() {
return mAccumulatedDeltaRangeInMeters;
@@ -452,6 +490,8 @@ public class GpsMeasurement implements Parcelable {
/**
* Gets the accumulated delta range's uncertainty (1-Sigma) in meters.
* The uncertainty is represented as an absolute (single sided) value.
+ *
+ * The status of the value is represented by {@link #getAccumulatedDeltaRangeState()}.
*/
public double getAccumulatedDeltaRangeUncertaintyInMeters() {
return mAccumulatedDeltaRangeUncertaintyInMeters;
@@ -460,7 +500,7 @@ public class GpsMeasurement implements Parcelable {
/**
* Sets the accumulated delta range's uncertainty (1-sigma) in meters.
*
- * The availability of the value is represented by {@link #getAccumulatedDeltaRangeState()}.
+ * The status of the value is represented by {@link #getAccumulatedDeltaRangeState()}.
*/
public void setAccumulatedDeltaRangeUncertaintyInMeters(double value) {
mAccumulatedDeltaRangeUncertaintyInMeters = value;
@@ -1235,6 +1275,10 @@ public class GpsMeasurement implements Parcelable {
mPseudorangeRateInMetersPerSec,
"PseudorangeRateUncertaintyInMetersPerSec",
mPseudorangeRateUncertaintyInMetersPerSec));
+ builder.append(String.format(
+ format,
+ "PseudorangeRateIsCorrected",
+ isPseudorangeRateCorrected()));
builder.append(String.format(
format,
diff --git a/location/java/android/location/GpsNavigationMessage.java b/location/java/android/location/GpsNavigationMessage.java
index b893f3f..5b12a61 100644
--- a/location/java/android/location/GpsNavigationMessage.java
+++ b/location/java/android/location/GpsNavigationMessage.java
@@ -60,6 +60,28 @@ public class GpsNavigationMessage implements Parcelable {
*/
public static final byte TYPE_CNAV2 = 4;
+ /**
+ * The Navigation Message Status is 'unknown'.
+ *
+ * @hide
+ */
+ public static final short STATUS_UNKNOWN = 0;
+
+ /**
+ * The Navigation Message was received without any parity error in its navigation words.
+ *
+ * @hide
+ */
+ public static final short STATUS_PARITY_PASSED = (1<<0);
+
+ /**
+ * The Navigation Message was received with words that failed parity check, but the receiver was
+ * able to correct those words.
+ *
+ * @hide
+ */
+ public static final short STATUS_PARITY_REBUILT = (1<<1);
+
// End enumerations in sync with gps.h
private byte mType;
@@ -67,6 +89,7 @@ public class GpsNavigationMessage implements Parcelable {
private short mMessageId;
private short mSubmessageId;
private byte[] mData;
+ private short mStatus;
GpsNavigationMessage() {
initialize();
@@ -81,6 +104,7 @@ public class GpsNavigationMessage implements Parcelable {
mMessageId = navigationMessage.mMessageId;
mSubmessageId = navigationMessage.mSubmessageId;
mData = navigationMessage.mData;
+ mStatus = navigationMessage.mStatus;
}
/**
@@ -194,6 +218,41 @@ public class GpsNavigationMessage implements Parcelable {
mData = value;
}
+ /**
+ * Gets the Status of the navigation message contained in the object.
+ *
+ * @hide
+ */
+ public short getStatus() {
+ return mStatus;
+ }
+
+ /**
+ * Sets the status of the navigation message.
+ *
+ * @hide
+ */
+ public void setStatus(short value) {
+ mStatus = value;
+ }
+
+ /**
+ * Gets a string representation of the 'status'.
+ * For internal and logging use only.
+ */
+ private String getStatusString() {
+ switch (mStatus) {
+ case STATUS_UNKNOWN:
+ return "Unknown";
+ case STATUS_PARITY_PASSED:
+ return "ParityPassed";
+ case STATUS_PARITY_REBUILT:
+ return "ParityRebuilt";
+ default:
+ return "<Invalid:" + mStatus + ">";
+ }
+ }
+
public static final Creator<GpsNavigationMessage> CREATOR =
new Creator<GpsNavigationMessage>() {
@Override
@@ -210,6 +269,13 @@ public class GpsNavigationMessage implements Parcelable {
parcel.readByteArray(data);
navigationMessage.setData(data);
+ if (parcel.dataAvail() >= Integer.SIZE) {
+ int status = parcel.readInt();
+ navigationMessage.setStatus((short) status);
+ } else {
+ navigationMessage.setStatus(STATUS_UNKNOWN);
+ }
+
return navigationMessage;
}
@@ -226,6 +292,7 @@ public class GpsNavigationMessage implements Parcelable {
parcel.writeInt(mSubmessageId);
parcel.writeInt(mData.length);
parcel.writeByteArray(mData);
+ parcel.writeInt(mStatus);
}
@Override
@@ -240,6 +307,7 @@ public class GpsNavigationMessage implements Parcelable {
builder.append(String.format(format, "Type", getTypeString()));
builder.append(String.format(format, "Prn", mPrn));
+ builder.append(String.format(format, "Status", getStatusString()));
builder.append(String.format(format, "MessageId", mMessageId));
builder.append(String.format(format, "SubmessageId", mSubmessageId));
@@ -261,5 +329,6 @@ public class GpsNavigationMessage implements Parcelable {
mMessageId = -1;
mSubmessageId = -1;
mData = EMPTY_ARRAY;
+ mStatus = STATUS_UNKNOWN;
}
}
diff --git a/location/lib/java/com/android/location/provider/FusedLocationHardware.java b/location/lib/java/com/android/location/provider/FusedLocationHardware.java
index 480a18c..eb3b2f4 100644
--- a/location/lib/java/com/android/location/provider/FusedLocationHardware.java
+++ b/location/lib/java/com/android/location/provider/FusedLocationHardware.java
@@ -216,6 +216,26 @@ public final class FusedLocationHardware {
}
}
+
+ /**
+ * Returns the version of the FLP HAL.
+ *
+ * <p>Version 1 is the initial release.
+ * <p>Version 2 adds the ability to use {@link #flushBatchedLocations},
+ * {@link FusedLocationHardwareSink#onCapabilities}, and
+ * {@link FusedLocationHardwareSink#onStatusChanged}.
+ *
+ * <p>This method is only available on API 23 or later. Older APIs have version 1.
+ */
+ public int getVersion() {
+ try {
+ return mLocationHardware.getVersion();
+ } catch(RemoteException e) {
+ Log.e(TAG, "RemoteException at getVersion");
+ }
+ return 1;
+ }
+
/*
* Helper methods and classes
*/
diff --git a/location/lib/java/com/android/location/provider/FusedLocationHardwareSink.java b/location/lib/java/com/android/location/provider/FusedLocationHardwareSink.java
index 618d5d6..01d37ac 100644
--- a/location/lib/java/com/android/location/provider/FusedLocationHardwareSink.java
+++ b/location/lib/java/com/android/location/provider/FusedLocationHardwareSink.java
@@ -54,7 +54,8 @@ public class FusedLocationHardwareSink {
/**
* Called when the status changes in the underlying FLP HAL
* implementation (the ability to compute location). This
- * callback will only be made on API 23 or later.
+ * callback will only be made on version 2 or later
+ * (see {@link FusedLocationHardware#getVersion()}).
*
* @param status One of FLP_STATUS_LOCATION_AVAILABLE or
* FLP_STATUS_LOCATION_UNAVAILABLE as defined in
diff --git a/media/java/android/media/AudioDevice.java b/media/java/android/media/AudioDeviceInfo.java
index df4d60d..d58b1d1 100644
--- a/media/java/android/media/AudioDevice.java
+++ b/media/java/android/media/AudioDeviceInfo.java
@@ -20,9 +20,8 @@ import android.util.SparseIntArray;
/**
* Class to provide information about the audio devices.
- * @hide
*/
-public class AudioDevice {
+public class AudioDeviceInfo {
/**
* A device type associated with an unknown or uninitialized device.
@@ -42,7 +41,7 @@ public class AudioDevice {
*/
public static final int TYPE_WIRED_HEADSET = 3;
/**
- * A device type describing a pair of wired headphones .
+ * A device type describing a pair of wired headphones.
*/
public static final int TYPE_WIRED_HEADPHONES = 4;
/**
@@ -54,7 +53,7 @@ public class AudioDevice {
*/
public static final int TYPE_LINE_DIGITAL = 6;
/**
- * A device type describing a Bluetooth device typically used for telephony .
+ * A device type describing a Bluetooth device typically used for telephony.
*/
public static final int TYPE_BLUETOOTH_SCO = 7;
/**
@@ -106,46 +105,92 @@ public class AudioDevice {
*/
public static final int TYPE_AUX_LINE = 19;
- AudioDevicePortConfig mConfig;
+ private final AudioDevicePort mPort;
- AudioDevice(AudioDevicePortConfig config) {
- mConfig = new AudioDevicePortConfig(config);
+ AudioDeviceInfo(AudioDevicePort port) {
+ mPort = port;
}
/**
* @hide
- * CANDIDATE FOR PUBLIC API
- * @return
+ * @return The internal device ID.
*/
- public boolean isInputDevice() {
- return (mConfig.port().role() == AudioPort.ROLE_SOURCE);
+ public int getId() {
+ return mPort.handle().id();
}
/**
- * @hide
- * CANDIDATE FOR PUBLIC API
- * @return
+ * @return The human-readable name of the audio device.
*/
- public boolean isOutputDevice() {
- return (mConfig.port().role() == AudioPort.ROLE_SINK);
+ public String getName() {
+ return mPort.name();
}
/**
- * @hide
- * CANDIDATE FOR PUBLIC API
- * @return
+ * @return The "address" string of the device. This generally contains device-specific
+ * parameters.
*/
- public int getDeviceType() {
- return INT_TO_EXT_DEVICE_MAPPING.get(mConfig.port().type(), TYPE_UNKNOWN);
+ // TODO Is there a compelling reason to expose this?
+ public String getAddress() {
+ return mPort.address();
+ }
+
+ /**
+ * @return true if the audio device is a source for audio data (e.e an input).
+ */
+ public boolean isSource() {
+ return mPort.role() == AudioPort.ROLE_SOURCE;
}
/**
- * @hide
- * CANDIDATE FOR PUBLIC API
- * @return
+ * @return true if the audio device is a sink for audio data (i.e. an output).
*/
- public String getAddress() {
- return mConfig.port().address();
+ public boolean isSink() {
+ return mPort.role() == AudioPort.ROLE_SINK;
+ }
+
+ /**
+ * @return An array of sample rates supported by the audio device.
+ */
+ public int[] getSampleRates() {
+ return mPort.samplingRates();
+ }
+
+ /**
+ * @return An array of channel masks supported by the audio device (defined in
+ * AudioFormat.java).
+ */
+ public int[] getChannelMasks() {
+ return mPort.channelMasks();
+ }
+
+ /**
+ * @return An array of channel counts supported by the audio device.
+ */
+ public int[] getChannelCounts() {
+ int[] masks = getChannelMasks();
+ int[] counts = new int[masks.length];
+ for (int mask_index = 0; mask_index < masks.length; mask_index++) {
+ counts[mask_index] = isSink()
+ ? AudioFormat.channelCountFromOutChannelMask(masks[mask_index])
+ : AudioFormat.channelCountFromInChannelMask(masks[mask_index]);
+ }
+ return counts;
+ }
+
+ /**
+ * @return An array of audio format IDs supported by the audio device (defined in
+ * AudioFormat.java)
+ */
+ public int[] getFormats() {
+ return mPort.formats();
+ }
+
+ /**
+ * @return The device type identifier of the audio device (i.e. TYPE_BUILTIN_SPEAKER).
+ */
+ public int getType() {
+ return INT_TO_EXT_DEVICE_MAPPING.get(mPort.type(), TYPE_UNKNOWN);
}
/** @hide */
diff --git a/media/java/android/media/AudioDevicesManager.java b/media/java/android/media/AudioDevicesManager.java
index ee11eef..ca238d7 100644
--- a/media/java/android/media/AudioDevicesManager.java
+++ b/media/java/android/media/AudioDevicesManager.java
@@ -17,24 +17,54 @@
package android.media;
import android.content.Context;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.util.ArrayMap;
+import android.util.Pair;
import android.util.Slog;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.util.HashMap;
import java.util.Iterator;
-/** @hide
- * API candidate
+/**
+ * AudioDevicesManager implements the Android Media Audio device enumeration and notification
+ * functionality. This functionality is in two comlementary parts.
+ * <ol>
+ * <li>{@link AudioDevicesManager#listDevices(int)} gets the list of current audio devices
+ * </li>
+ * <li>{@link AudioDevicesManager#addOnAudioDeviceConnectionListener(OnAudioDeviceConnectionListener, android.os.Handler)}
+ * provides a mechanism for applications to be informed of audio device connect/disconnect events.
+ * </li>
+ * </ol>
*/
public class AudioDevicesManager {
+
private static String TAG = "AudioDevicesManager";
- private static boolean DEBUG = true;
+
+ private static boolean DEBUG = false;
private AudioManager mAudioManager = null;
+
private OnAmPortUpdateListener mPortListener = null;
- /*
- * Enum/Selection API
+ /**
+ * The message sent to apps when the contents of the device list changes if they provide
+ * a {#link Handler} object to addOnAudioDeviceConnectionListener().
+ */
+ private final static int MSG_DEVICES_LIST_CHANGE = 0;
+
+ private ArrayMap<OnAudioDeviceConnectionListener, NativeEventHandlerDelegate>
+ mDeviceConnectionListeners =
+ new ArrayMap<OnAudioDeviceConnectionListener, NativeEventHandlerDelegate>();
+
+ /**
+ * @hide
+ * The AudioDevicesManager class is used to enumerate the physical audio devices connected
+ * to the system. See also {@link AudioDeviceInfo}.
*/
public AudioDevicesManager(Context context) {
mAudioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
@@ -42,214 +72,120 @@ public class AudioDevicesManager {
mAudioManager.registerAudioPortUpdateListener(mPortListener);
}
- /** @hide
- * API candidate
+ /**
+ * Specifies to the {@link AudioDevicesManager#listDevices(int)} method to include
+ * source (i.e. input) audio devices.
*/
- //TODO Merge this class into android.media.AudioDevice
- public class AudioDeviceInfo {
- private AudioDevicePort mPort = null;
-
- /** @hide */
- /* package */ AudioDeviceInfo(AudioDevicePort port) {
- mPort = port;
- }
-
- public int getId() { return mPort.handle().id(); }
-
- public String getName() { return mPort.name(); }
-
- public int getType() {
- return mPort.type();
- }
-
- public String getAddress() {
- return mPort.address();
- }
-
- public int getRole() { return mPort.role(); }
-
- public int[] getSampleRates() { return mPort.samplingRates(); }
-
- public int[] getChannelMasks() { return mPort.channelMasks(); }
-
- public int[] getChannelCounts() {
- int[] masks = getChannelMasks();
- int[] counts = new int[masks.length];
- for (int mask_index = 0; mask_index < masks.length; mask_index++) {
- counts[mask_index] = getRole() == AudioPort.ROLE_SINK
- ? AudioFormat.channelCountFromOutChannelMask(masks[mask_index])
- : AudioFormat.channelCountFromInChannelMask(masks[mask_index]);
- }
- return counts;
- }
-
- /* The format IDs are in AudioFormat.java */
- public int[] getFormats() { return mPort.formats(); }
+ public static final int LIST_DEVICES_INPUTS = 0x0001;
- public String toString() { return "" + getId() + " - " + getName(); }
- }
-
- /** @hide */
- public static final int LIST_DEVICES_OUTPUTS = 0x0001;
- /** @hide */
- public static final int LIST_DEVICES_INPUTS = 0x0002;
- /** @hide */
- public static final int LIST_DEVICES_BUILTIN = 0x0004;
- /** @hide */
- public static final int LIST_DEVICES_USB = 0x0008;
- // TODO implement the semantics for these.
- /** @hide */
- public static final int LIST_DEVICES_WIRED = 0x0010;
- /** @hide */
- public static final int LIST_DEVICES_UNWIRED = 0x0020;
+ /**
+ * Specifies to the {@link AudioDevicesManager#listDevices(int)} method to include
+ * sink (i.e. output) audio devices.
+ */
+ public static final int LIST_DEVICES_OUTPUTS = 0x0002;
- /** @hide */
+ /**
+ * Specifies to the {@link AudioDevicesManager#listDevices(int)} method to include both
+ * source and sink devices.
+ */
public static final int LIST_DEVICES_ALL = LIST_DEVICES_OUTPUTS | LIST_DEVICES_INPUTS;
+ /**
+ * Determines if a given AudioDevicePort meets the specified filter criteria.
+ * @param port The port to test.
+ * @param flags A set of bitflags specifying the criteria to test.
+ * @see {@link LIST_DEVICES_OUTPUTS} and {@link LIST_DEVICES_INPUTS}
+ **/
private boolean checkFlags(AudioDevicePort port, int flags) {
- // Inputs / Outputs
- boolean passed =
- port.role() == AudioPort.ROLE_SINK && (flags & LIST_DEVICES_OUTPUTS) != 0 ||
- port.role() == AudioPort.ROLE_SOURCE && (flags & LIST_DEVICES_INPUTS) != 0;
-
- // USB
- if (passed && (flags & LIST_DEVICES_USB) != 0) {
- int role = port.role();
- int type = port.type();
- Slog.i(TAG, " role:" + role + " type:0x" + Integer.toHexString(type));
- passed =
- (role == AudioPort.ROLE_SINK && (type & AudioSystem.DEVICE_OUT_ALL_USB) != 0) ||
- (role == AudioPort.ROLE_SOURCE && (type & AudioSystem.DEVICE_IN_ALL_USB) != 0);
- }
-
- return passed;
+ return port.role() == AudioPort.ROLE_SINK && (flags & LIST_DEVICES_OUTPUTS) != 0 ||
+ port.role() == AudioPort.ROLE_SOURCE && (flags & LIST_DEVICES_INPUTS) != 0;
}
- /** @hide */
- public ArrayList<AudioDeviceInfo> listDevices(int flags) {
- Slog.i(TAG, "AudioManager.listDevices(" + Integer.toHexString(flags) + ")");
-
+ /**
+ * Generates a list of AudioDeviceInfo objects corresponding to the audio devices currently
+ * connected to the system and meeting the criteria specified in the <code>flags</code>
+ * parameter.
+ * @param flags A set of bitflags specifying the criteria to test.
+ * @see {@link LIST_DEVICES_OUTPUTS}, {@link LIST_DEVICES_INPUTS} and {@link LIST_DEVICES_ALL}.
+ * @return A (possibly zero-length) array of AudioDeviceInfo objects.
+ */
+ public AudioDeviceInfo[] listDevices(int flags) {
ArrayList<AudioDevicePort> ports = new ArrayList<AudioDevicePort>();
int status = mAudioManager.listAudioDevicePorts(ports);
-
- Slog.i(TAG, " status:" + status + " numPorts:" + ports.size());
-
- ArrayList<AudioDeviceInfo> deviceList = new ArrayList<AudioDeviceInfo>();
-
- if (status == AudioManager.SUCCESS) {
- deviceList = new ArrayList<AudioDeviceInfo>();
- for (AudioDevicePort port : ports) {
- if (checkFlags(port, flags)) {
- deviceList.add(new AudioDeviceInfo(port));
- }
- }
+ if (status != AudioManager.SUCCESS) {
+ // fail and bail!
+ return new AudioDeviceInfo[0];
}
- return deviceList;
- }
- private ArrayList<OnAudioDeviceConnectionListener> mDeviceConnectionListeners =
- new ArrayList<OnAudioDeviceConnectionListener>();
-
- private HashMap<Integer, AudioPort> mCurrentPortlist =
- new HashMap<Integer, AudioPort>();
-
- private ArrayList<AudioDeviceInfo> calcAddedDevices(AudioPort[] portList) {
- ArrayList<AudioDeviceInfo> addedDevices = new ArrayList<AudioDeviceInfo>();
- synchronized(mCurrentPortlist) {
- for(int portIndex = 0; portIndex < portList.length; portIndex++) {
- if (portList[portIndex] instanceof AudioDevicePort) {
- if (!mCurrentPortlist.containsKey(portList[portIndex].handle().id())) {
- addedDevices.add(new AudioDeviceInfo((AudioDevicePort)portList[portIndex]));
- }
- }
+ // figure out how many AudioDeviceInfo we need space for
+ int numRecs = 0;
+ for (AudioDevicePort port : ports) {
+ if (checkFlags(port, flags)) {
+ numRecs++;
}
}
- return addedDevices;
- }
- private boolean hasPortId(AudioPort[] portList, int id) {
- for(int portIndex = 0; portIndex < portList.length; portIndex++) {
- if (portList[portIndex].handle().id() == id) {
- return true;
+ // Now load them up
+ AudioDeviceInfo[] deviceList = new AudioDeviceInfo[numRecs];
+ int slot = 0;
+ for (AudioDevicePort port : ports) {
+ if (checkFlags(port, flags)) {
+ deviceList[slot++] = new AudioDeviceInfo(port);
}
}
- return false;
- }
-
- private ArrayList<AudioDeviceInfo> calcRemovedDevices(AudioPort[] portList) {
- ArrayList<AudioDeviceInfo> removedDevices = new ArrayList<AudioDeviceInfo>();
- synchronized (mCurrentPortlist) {
- Iterator it = mCurrentPortlist.entrySet().iterator();
- while (it.hasNext()) {
- HashMap.Entry pairs = (HashMap.Entry)it.next();
- if (pairs.getValue() instanceof AudioDevicePort) {
- if (!hasPortId(portList, ((Integer)pairs.getKey()).intValue())) {
- removedDevices.add(new AudioDeviceInfo((AudioDevicePort)pairs.getValue()));
- }
- }
- }
- }
- return removedDevices;
+ return deviceList;
}
- private void buildCurrentDevicesList(AudioPort[] portList) {
- synchronized (mCurrentPortlist) {
- mCurrentPortlist.clear();
- for (int portIndex = 0; portIndex < portList.length; portIndex++) {
- if (portList[portIndex] instanceof AudioDevicePort) {
- mCurrentPortlist.put(portList[portIndex].handle().id(),
- (AudioDevicePort)portList[portIndex]);
- }
+ /**
+ * Adds an {@link OnAudioDeviceConnectionListener} to receive notifications of changes
+ * to the set of connected audio devices.
+ */
+ public void addOnAudioDeviceConnectionListener(OnAudioDeviceConnectionListener listener,
+ android.os.Handler handler) {
+ if (listener != null && !mDeviceConnectionListeners.containsKey(listener)) {
+ synchronized (mDeviceConnectionListeners) {
+ mDeviceConnectionListeners.put(
+ listener, new NativeEventHandlerDelegate(listener, handler));
}
}
}
- /** @hide */
- public void addDeviceConnectionListener(OnAudioDeviceConnectionListener listener) {
+ /**
+ * Removes an {@link OnAudioDeviceConnectionListener} which has been previously registered
+ * to receive notifications of changes to the set of connected audio devices.
+ */
+ public void removeOnAudioDeviceConnectionListener(OnAudioDeviceConnectionListener listener) {
synchronized (mDeviceConnectionListeners) {
- mDeviceConnectionListeners.add(listener);
+ if (mDeviceConnectionListeners.containsKey(listener)) {
+ mDeviceConnectionListeners.remove(listener);
+ }
}
}
- /** @hide */
- public void removeDeviceConnectionListener(OnAudioDeviceConnectionListener listener) {
+ /**
+ * Sends device list change notification to all listeners.
+ */
+ private void broadcastDeviceListChange() {
+ Collection<NativeEventHandlerDelegate> values;
synchronized (mDeviceConnectionListeners) {
- mDeviceConnectionListeners.remove(listener);
+ values = mDeviceConnectionListeners.values();
+ }
+ for(NativeEventHandlerDelegate delegate : values) {
+ Handler handler = delegate.getHandler();
+ if (handler != null) {
+ handler.sendEmptyMessage(MSG_DEVICES_LIST_CHANGE);
+ }
}
}
/**
- * @hide
+ * Handles Port list update notifications from the AudioManager
*/
private class OnAmPortUpdateListener implements AudioManager.OnAudioPortUpdateListener {
static final String TAG = "OnAmPortUpdateListener";
public void onAudioPortListUpdate(AudioPort[] portList) {
- Slog.i(TAG, "onAudioPortListUpdate() " + portList.length + " ports.");
- ArrayList<AudioDeviceInfo> addedDevices = calcAddedDevices(portList);
- ArrayList<AudioDeviceInfo> removedDevices = calcRemovedDevices(portList);
-
- ArrayList<OnAudioDeviceConnectionListener> listeners = null;
- synchronized (mDeviceConnectionListeners) {
- listeners =
- new ArrayList<OnAudioDeviceConnectionListener>(mDeviceConnectionListeners);
- }
-
- // Connect
- if (addedDevices.size() != 0) {
- for (OnAudioDeviceConnectionListener listener : listeners) {
- listener.onConnect(addedDevices);
- }
- }
-
- // Disconnect?
- if (removedDevices.size() != 0) {
- for (OnAudioDeviceConnectionListener listener : listeners) {
- listener.onDisconnect(removedDevices);
- }
- }
-
- buildCurrentDevicesList(portList);
+ broadcastDeviceListChange();
}
/**
@@ -257,14 +193,70 @@ public class AudioDevicesManager {
* @param patchList the updated list of audio patches
*/
public void onAudioPatchListUpdate(AudioPatch[] patchList) {
- Slog.i(TAG, "onAudioPatchListUpdate() " + patchList.length + " patches.");
+ if (DEBUG) {
+ Slog.d(TAG, "onAudioPatchListUpdate() " + patchList.length + " patches.");
+ }
}
/**
* Callback method called when the mediaserver dies
*/
public void onServiceDied() {
- Slog.i(TAG, "onServiceDied()");
+ if (DEBUG) {
+ Slog.i(TAG, "onServiceDied()");
+ }
+
+ broadcastDeviceListChange();
+ }
+ }
+
+ //---------------------------------------------------------
+ // Inner classes
+ //--------------------
+ /**
+ * Helper class to handle the forwarding of native events to the appropriate listener
+ * (potentially) handled in a different thread.
+ */
+ private class NativeEventHandlerDelegate {
+ private final Handler mHandler;
+
+ NativeEventHandlerDelegate(final OnAudioDeviceConnectionListener listener,
+ Handler handler) {
+ // find the looper for our new event handler
+ Looper looper;
+ if (handler != null) {
+ looper = handler.getLooper();
+ } else {
+ // no given handler, use the looper the addListener call was called in
+ looper = Looper.getMainLooper();
+ }
+
+ // construct the event handler with this looper
+ if (looper != null) {
+ // implement the event handler delegate
+ mHandler = new Handler(looper) {
+ @Override
+ public void handleMessage(Message msg) {
+ switch(msg.what) {
+ case MSG_DEVICES_LIST_CHANGE:
+ // call the OnAudioDeviceConnectionListener
+ if (listener != null) {
+ listener.onAudioDeviceConnection();
+ }
+ break;
+ default:
+ Slog.e(TAG, "Unknown native event type: " + msg.what);
+ break;
+ }
+ }
+ };
+ } else {
+ mHandler = null;
+ }
+ }
+
+ Handler getHandler() {
+ return mHandler;
}
}
}
diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java
index fc0189c..9e1e055 100644
--- a/media/java/android/media/AudioRecord.java
+++ b/media/java/android/media/AudioRecord.java
@@ -398,8 +398,8 @@ public class AudioRecord
* default output sample rate of the device (see
* {@link AudioManager#PROPERTY_OUTPUT_SAMPLE_RATE}), its channel configuration will be
* {@link AudioFormat#CHANNEL_IN_DEFAULT}.
- * <br>Failing to set an adequate buffer size with {@link #setBufferSizeInBytes(int)} will
- * prevent the successful creation of an <code>AudioRecord</code> instance.
+ * <br>If the buffer size is not specified with {@link #setBufferSizeInBytes(int)},
+ * the minimum buffer size for the source is used.
*/
public static class Builder {
private AudioAttributes mAttributes;
@@ -473,7 +473,9 @@ public class AudioRecord
* during the recording. New audio data can be read from this buffer in smaller chunks
* than this size. See {@link #getMinBufferSize(int, int, int)} to determine the minimum
* required buffer size for the successful creation of an AudioRecord instance.
- * Using values smaller than getMinBufferSize() will result in an initialization failure.
+ * Since bufferSizeInBytes may be internally increased to accommodate the source
+ * requirements, use {@link #getNativeFrameCount()} to determine the actual buffer size
+ * in frames.
* @param bufferSizeInBytes a value strictly greater than 0
* @return the same Builder instance.
* @throws IllegalArgumentException
@@ -520,6 +522,13 @@ public class AudioRecord
.build();
}
try {
+ // If the buffer size is not specified,
+ // use a single frame for the buffer size and let the
+ // native code figure out the minimum buffer size.
+ if (mBufferSizeInBytes == 0) {
+ mBufferSizeInBytes = mFormat.getChannelCount()
+ * mFormat.getBytesPerSample(mFormat.getEncoding());
+ }
return new AudioRecord(mAttributes, mFormat, mBufferSizeInBytes, mSessionId);
} catch (IllegalArgumentException e) {
throw new UnsupportedOperationException(e.getMessage());
@@ -711,6 +720,20 @@ public class AudioRecord
}
/**
+ * Returns the "native frame count" of the <code>AudioRecord</code> buffer.
+ * This is greater than or equal to the bufferSizeInBytes converted to frame units
+ * specified in the <code>AudioRecord</code> constructor or Builder.
+ * The native frame count may be enlarged to accommodate the requirements of the
+ * source on creation or if the <code>AudioRecord</code>
+ * is subsequently rerouted.
+ * @return current size in frames of the <code>AudioRecord</code> buffer.
+ * @throws IllegalStateException
+ */
+ public int getNativeFrameCount() throws IllegalStateException {
+ return native_get_native_frame_count();
+ }
+
+ /**
* Returns the notification marker position expressed in frames.
*/
public int getNotificationMarkerPosition() {
@@ -1173,6 +1196,8 @@ public class AudioRecord
private native final int native_read_in_direct_buffer(Object jBuffer, int sizeInBytes);
+ private native final int native_get_native_frame_count();
+
private native final int native_set_marker_pos(int marker);
private native final int native_get_marker_pos();
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java
index e028e3f..d82afdf 100644
--- a/media/java/android/media/MediaCodec.java
+++ b/media/java/android/media/MediaCodec.java
@@ -325,13 +325,6 @@ final public class MediaCodec {
*/
public static final int BUFFER_FLAG_END_OF_STREAM = 4;
- /**
- * This indicates that the codec is released because the media resources used by the codec
- * have been reclaimed, for example by the resource manager.
- * This is used by the {@link Callback#onCodecReleased} callback.
- */
- public static final int REASON_RECLAIMED = 1;
-
private EventHandler mEventHandler;
private Callback mCallback;
@@ -342,7 +335,6 @@ final public class MediaCodec {
private static final int CB_OUTPUT_AVAILABLE = 2;
private static final int CB_ERROR = 3;
private static final int CB_OUTPUT_FORMAT_CHANGE = 4;
- private static final int CB_CODEC_RELEASED = 5;
private class EventHandler extends Handler {
private MediaCodec mCodec;
@@ -413,13 +405,6 @@ final public class MediaCodec {
break;
}
- case CB_CODEC_RELEASED:
- {
- int reason = msg.arg2;
- mCallback.onCodecReleased(mCodec, reason);
- break;
- }
-
default:
{
break;
@@ -684,9 +669,10 @@ final public class MediaCodec {
* Thrown when an internal codec error occurs.
*/
public final static class CodecException extends IllegalStateException {
- CodecException(int errorCode, int actionCode, String detailMessage) {
+ CodecException(int errorCode, int actionCode, String detailMessage, int reason) {
super(detailMessage);
mErrorCode = errorCode;
+ mReason = reason;
mActionCode = actionCode;
// TODO get this from codec
@@ -714,6 +700,15 @@ final public class MediaCodec {
}
/**
+ * Retrieve the reason associated with a CodecException.
+ * The reason could be one of {@link #REASON_HARDWARE} or {@link #REASON_RECLAIMED}.
+ *
+ */
+ public int getReason() {
+ return mReason;
+ }
+
+ /**
* Retrieve the error code associated with a CodecException.
* This is opaque diagnostic information and may depend on
* hardware or API level.
@@ -734,13 +729,26 @@ final public class MediaCodec {
return mDiagnosticInfo;
}
+ /**
+ * This indicates the exception is caused by the hardware.
+ */
+ public static final int REASON_HARDWARE = 0;
+
+ /**
+ * This indicates the exception is because the resource manager reclaimed
+ * the media resource used by the codec.
+ * <p>
+ * With this exception, the codec must be released, as it has moved to terminal state.
+ */
+ public static final int REASON_RECLAIMED = 1;
+
/* Must be in sync with android_media_MediaCodec.cpp */
- private final static int ACTION_FATAL = 0;
private final static int ACTION_TRANSIENT = 1;
private final static int ACTION_RECOVERABLE = 2;
private final String mDiagnosticInfo;
private final int mErrorCode;
+ private final int mReason;
private final int mActionCode;
}
@@ -1670,22 +1678,6 @@ final public class MediaCodec {
* @param format The new output format.
*/
public abstract void onOutputFormatChanged(MediaCodec codec, MediaFormat format);
-
- /**
- * Called when the underlying codec component has been released.
- * <p>
- * At this point the MediaCodec must be released, as it has moved to terminal
- * Uninitialized state.
- *
- * @param codec The MediaCodec object.
- * @param reason The reason of the release.
- */
- public void onCodecReleased(MediaCodec codec, int reason) {
- int errorCode = -1;
- String detailMessage = "resources reclaimed";
- onError(codec,
- new CodecException(errorCode, CodecException.ACTION_FATAL, detailMessage));
- }
}
private void postEventFromNative(
diff --git a/media/java/android/media/OnAudioDeviceConnectionListener.java b/media/java/android/media/OnAudioDeviceConnectionListener.java
index 4bdd4d0..71c135a 100644
--- a/media/java/android/media/OnAudioDeviceConnectionListener.java
+++ b/media/java/android/media/OnAudioDeviceConnectionListener.java
@@ -16,13 +16,16 @@
package android.media;
-import java.util.ArrayList;
-
/**
- * @hide
- * API candidate
+ * OnAudioDeviceConnectionListener defines the interface for notification listeners in the
+ * {@link AudioDevicesManager}
*/
-public abstract class OnAudioDeviceConnectionListener {
- public void onConnect(ArrayList<AudioDevicesManager.AudioDeviceInfo> devices) {}
- public void onDisconnect(ArrayList<AudioDevicesManager.AudioDeviceInfo> devices) {}
+public interface OnAudioDeviceConnectionListener {
+ /**
+ * Called by the {@link AudioDevicesManager} to indicate that an audio device has been
+ * connected or disconnected. A listener will probably call the
+ * {@link AudioDevicesManager#listDevices} method to retrieve the current list of audio
+ * devices.
+ */
+ public void onAudioDeviceConnection();
}
diff --git a/media/java/android/media/audiofx/Virtualizer.java b/media/java/android/media/audiofx/Virtualizer.java
index be5adc8..49e56bc 100644
--- a/media/java/android/media/audiofx/Virtualizer.java
+++ b/media/java/android/media/audiofx/Virtualizer.java
@@ -17,7 +17,7 @@
package android.media.audiofx;
import android.annotation.IntDef;
-import android.media.AudioDevice;
+import android.media.AudioDeviceInfo;
import android.media.AudioFormat;
import android.media.audiofx.AudioEffect;
import android.util.Log;
@@ -204,7 +204,7 @@ public class Virtualizer extends AudioEffect {
// convert channel mask to internal native representation
paramsConverter.putInt(AudioFormat.convertChannelOutMaskToNativeMask(channelMask));
// convert Java device type to internal representation
- paramsConverter.putInt(AudioDevice.convertDeviceTypeToInternalDevice(deviceType));
+ paramsConverter.putInt(AudioDeviceInfo.convertDeviceTypeToInternalDevice(deviceType));
// allocate an array to store the results
byte[] result = new byte[nbChannels * 4/*int to byte*/ * 3/*for mask, azimuth, elevation*/];
@@ -305,9 +305,9 @@ public class Virtualizer extends AudioEffect {
throws IllegalArgumentException {
switch (virtualizationMode) {
case VIRTUALIZATION_MODE_BINAURAL:
- return AudioDevice.TYPE_WIRED_HEADPHONES;
+ return AudioDeviceInfo.TYPE_WIRED_HEADPHONES;
case VIRTUALIZATION_MODE_TRANSAURAL:
- return AudioDevice.TYPE_BUILTIN_SPEAKER;
+ return AudioDeviceInfo.TYPE_BUILTIN_SPEAKER;
default:
throw (new IllegalArgumentException(
"Virtualizer: illegal virtualization mode " + virtualizationMode));
@@ -317,7 +317,7 @@ public class Virtualizer extends AudioEffect {
private static int getDeviceForModeForce(@ForceVirtualizationMode int virtualizationMode)
throws IllegalArgumentException {
if (virtualizationMode == VIRTUALIZATION_MODE_AUTO) {
- return AudioDevice.TYPE_UNKNOWN;
+ return AudioDeviceInfo.TYPE_UNKNOWN;
} else {
return getDeviceForModeQuery(virtualizationMode);
}
@@ -325,24 +325,24 @@ public class Virtualizer extends AudioEffect {
private static int deviceToMode(int deviceType) {
switch (deviceType) {
- case AudioDevice.TYPE_WIRED_HEADSET:
- case AudioDevice.TYPE_WIRED_HEADPHONES:
- case AudioDevice.TYPE_BLUETOOTH_SCO:
- case AudioDevice.TYPE_BUILTIN_EARPIECE:
+ case AudioDeviceInfo.TYPE_WIRED_HEADSET:
+ case AudioDeviceInfo.TYPE_WIRED_HEADPHONES:
+ case AudioDeviceInfo.TYPE_BLUETOOTH_SCO:
+ case AudioDeviceInfo.TYPE_BUILTIN_EARPIECE:
return VIRTUALIZATION_MODE_BINAURAL;
- case AudioDevice.TYPE_BUILTIN_SPEAKER:
- case AudioDevice.TYPE_LINE_ANALOG:
- case AudioDevice.TYPE_LINE_DIGITAL:
- case AudioDevice.TYPE_BLUETOOTH_A2DP:
- case AudioDevice.TYPE_HDMI:
- case AudioDevice.TYPE_HDMI_ARC:
- case AudioDevice.TYPE_USB_DEVICE:
- case AudioDevice.TYPE_USB_ACCESSORY:
- case AudioDevice.TYPE_DOCK:
- case AudioDevice.TYPE_FM:
- case AudioDevice.TYPE_AUX_LINE:
+ case AudioDeviceInfo.TYPE_BUILTIN_SPEAKER:
+ case AudioDeviceInfo.TYPE_LINE_ANALOG:
+ case AudioDeviceInfo.TYPE_LINE_DIGITAL:
+ case AudioDeviceInfo.TYPE_BLUETOOTH_A2DP:
+ case AudioDeviceInfo.TYPE_HDMI:
+ case AudioDeviceInfo.TYPE_HDMI_ARC:
+ case AudioDeviceInfo.TYPE_USB_DEVICE:
+ case AudioDeviceInfo.TYPE_USB_ACCESSORY:
+ case AudioDeviceInfo.TYPE_DOCK:
+ case AudioDeviceInfo.TYPE_FM:
+ case AudioDeviceInfo.TYPE_AUX_LINE:
return VIRTUALIZATION_MODE_TRANSAURAL;
- case AudioDevice.TYPE_UNKNOWN:
+ case AudioDeviceInfo.TYPE_UNKNOWN:
default:
return VIRTUALIZATION_MODE_OFF;
}
@@ -433,7 +433,7 @@ public class Virtualizer extends AudioEffect {
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
// convert Java device type to internal representation
int deviceType = getDeviceForModeForce(virtualizationMode);
- int internalDevice = AudioDevice.convertDeviceTypeToInternalDevice(deviceType);
+ int internalDevice = AudioDeviceInfo.convertDeviceTypeToInternalDevice(deviceType);
int status = setParameter(PARAM_FORCE_VIRTUALIZATION_MODE, internalDevice);
@@ -470,7 +470,7 @@ public class Virtualizer extends AudioEffect {
int[] value = new int[1];
int status = getParameter(PARAM_VIRTUALIZATION_MODE, value);
if (status >= 0) {
- return deviceToMode(AudioDevice.convertInternalDeviceToDeviceType(value[0]));
+ return deviceToMode(AudioDeviceInfo.convertInternalDeviceToDeviceType(value[0]));
} else if (status == AudioEffect.ERROR_BAD_VALUE) {
return VIRTUALIZATION_MODE_OFF;
} else {
diff --git a/media/java/android/media/audiopolicy/AudioMix.java b/media/java/android/media/audiopolicy/AudioMix.java
index 1806662..6aa4d8a 100644
--- a/media/java/android/media/audiopolicy/AudioMix.java
+++ b/media/java/android/media/audiopolicy/AudioMix.java
@@ -36,6 +36,7 @@ public class AudioMix {
private int mRouteFlags;
private String mRegistrationId;
private int mMixType = MIX_TYPE_INVALID;
+ private int mMixState = MIX_STATE_DISABLED;
/**
* All parameters are guaranteed valid through the Builder.
@@ -48,6 +49,7 @@ public class AudioMix {
mMixType = rule.getTargetMixType();
}
+ // ROUTE_FLAG_* values to keep in sync with frameworks/av/include/media/AudioPolicy.h
/**
* An audio mix behavior where the output of the mix is sent to the original destination of
* the audio signal, i.e. an output device for an output mix, or a recording for an input mix.
@@ -62,6 +64,7 @@ public class AudioMix {
@SystemApi
public static final int ROUTE_FLAG_LOOP_BACK = 0x1 << 1;
+ // MIX_TYPE_* values to keep in sync with frameworks/av/include/media/AudioPolicy.h
/**
* @hide
* Invalid mix type, default value.
@@ -78,6 +81,39 @@ public class AudioMix {
*/
public static final int MIX_TYPE_RECORDERS = 1;
+
+ // MIX_STATE_* values to keep in sync with frameworks/av/include/media/AudioPolicy.h
+ /**
+ * @hide
+ * State of a mix before its policy is enabled.
+ */
+ @SystemApi
+ public static final int MIX_STATE_DISABLED = -1;
+ /**
+ * @hide
+ * State of a mix when there is no audio to mix.
+ */
+ @SystemApi
+ public static final int MIX_STATE_IDLE = 0;
+ /**
+ * @hide
+ * State of a mix that is actively mixing audio.
+ */
+ @SystemApi
+ public static final int MIX_STATE_MIXING = 1;
+
+ /**
+ * @hide
+ * The current mixing state.
+ * @return one of {@link #MIX_STATE_DISABLED}, {@link #MIX_STATE_IDLE},
+ * {@link #MIX_STATE_MIXING}.
+ */
+ @SystemApi
+ public int getMixState() {
+ return mMixState;
+ }
+
+
int getRouteFlags() {
return mRouteFlags;
}
diff --git a/media/java/android/media/tv/TvTrackInfo.java b/media/java/android/media/tv/TvTrackInfo.java
index 0284171..8394517 100644
--- a/media/java/android/media/tv/TvTrackInfo.java
+++ b/media/java/android/media/tv/TvTrackInfo.java
@@ -48,11 +48,12 @@ public final class TvTrackInfo implements Parcelable {
private final int mVideoWidth;
private final int mVideoHeight;
private final float mVideoFrameRate;
+ private final float mVideoPixelAspectRatio;
private final Bundle mExtra;
private TvTrackInfo(int type, String id, String language, String description,
int audioChannelCount, int audioSampleRate, int videoWidth, int videoHeight,
- float videoFrameRate, Bundle extra) {
+ float videoFrameRate, float videoPixelAspectRatio, Bundle extra) {
mType = type;
mId = id;
mLanguage = language;
@@ -62,6 +63,7 @@ public final class TvTrackInfo implements Parcelable {
mVideoWidth = videoWidth;
mVideoHeight = videoHeight;
mVideoFrameRate = videoFrameRate;
+ mVideoPixelAspectRatio = videoPixelAspectRatio;
mExtra = extra;
}
@@ -75,6 +77,7 @@ public final class TvTrackInfo implements Parcelable {
mVideoWidth = in.readInt();
mVideoHeight = in.readInt();
mVideoFrameRate = in.readFloat();
+ mVideoPixelAspectRatio = in.readFloat();
mExtra = in.readBundle();
}
@@ -162,6 +165,17 @@ public final class TvTrackInfo implements Parcelable {
}
/**
+ * Returns the pixel aspect ratio (the ratio of a pixel's width to its height) of the video.
+ * Valid only for {@link #TYPE_VIDEO} tracks.
+ */
+ public final float getVideoPixelAspectRatio() {
+ if (mType != TYPE_VIDEO) {
+ throw new IllegalStateException("Not a video track");
+ }
+ return mVideoPixelAspectRatio;
+ }
+
+ /**
* Returns the extra information about the current track.
*/
public final Bundle getExtra() {
@@ -190,6 +204,7 @@ public final class TvTrackInfo implements Parcelable {
dest.writeInt(mVideoWidth);
dest.writeInt(mVideoHeight);
dest.writeFloat(mVideoFrameRate);
+ dest.writeFloat(mVideoPixelAspectRatio);
dest.writeBundle(mExtra);
}
@@ -219,6 +234,7 @@ public final class TvTrackInfo implements Parcelable {
private int mVideoWidth;
private int mVideoHeight;
private float mVideoFrameRate;
+ private float mVideoPixelAspectRatio = 1.0f;
private Bundle mExtra;
/**
@@ -332,6 +348,26 @@ public final class TvTrackInfo implements Parcelable {
}
/**
+ * Sets the pixel aspect ratio (the ratio of a pixel's width to its height) of the video.
+ * Valid only for {@link #TYPE_VIDEO} tracks.
+ * <p>
+ * This is needed for applications to be able to scale the video properly for some video
+ * formats such as 720x576 4:3 and 720x576 16:9 where pixels are not square. By default,
+ * applications assume the value of 1.0 (square pixels), so it is not necessary to set the
+ * pixel aspect ratio for most video formats.
+ * </p>
+ *
+ * @param videoPixelAspectRatio The pixel aspect ratio of the video.
+ */
+ public final Builder setVideoPixelAspectRatio(float videoPixelAspectRatio) {
+ if (mType != TYPE_VIDEO) {
+ throw new IllegalStateException("Not a video track");
+ }
+ mVideoPixelAspectRatio = videoPixelAspectRatio;
+ return this;
+ }
+
+ /**
* Sets the extra information about the current track.
*
* @param extra The extra information.
@@ -348,7 +384,8 @@ public final class TvTrackInfo implements Parcelable {
*/
public TvTrackInfo build() {
return new TvTrackInfo(mType, mId, mLanguage, mDescription, mAudioChannelCount,
- mAudioSampleRate, mVideoWidth, mVideoHeight, mVideoFrameRate, mExtra);
+ mAudioSampleRate, mVideoWidth, mVideoHeight, mVideoFrameRate,
+ mVideoPixelAspectRatio, mExtra);
}
}
}
diff --git a/media/jni/Android.mk b/media/jni/Android.mk
index 5b177e5..66d055a 100644
--- a/media/jni/Android.mk
+++ b/media/jni/Android.mk
@@ -42,7 +42,7 @@ LOCAL_SHARED_LIBRARIES := \
libusbhost \
libjhead \
libexif \
- libstagefright_amrnb_common \
+ libstagefright_amrnb_common
LOCAL_REQUIRED_MODULES := \
libjhead_jni
@@ -54,6 +54,7 @@ LOCAL_C_INCLUDES += \
external/libexif/ \
external/tremor/Tremor \
frameworks/base/core/jni \
+ frameworks/base/libs/hwui \
frameworks/av/media/libmedia \
frameworks/av/media/libstagefright \
frameworks/av/media/libstagefright/codecs/amrnb/enc/src \
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index 71457b7..5f586a9 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -70,6 +70,11 @@ static struct CodecActionCodes {
jint codecActionRecoverable;
} gCodecActionCodes;
+static struct ExceptionReason {
+ jint reasonHardware;
+ jint reasonReclaimed;
+} gExceptionReason;
+
struct fields_t {
jfieldID context;
jmethodID postEventFromNativeID;
@@ -568,7 +573,7 @@ static jthrowable createCodecException(
env, env->FindClass("android/media/MediaCodec$CodecException"));
CHECK(clazz.get() != NULL);
- const jmethodID ctor = env->GetMethodID(clazz.get(), "<init>", "(IILjava/lang/String;)V");
+ const jmethodID ctor = env->GetMethodID(clazz.get(), "<init>", "(IILjava/lang/String;I)V");
CHECK(ctor != NULL);
ScopedLocalRef<jstring> msgObj(
@@ -587,7 +592,9 @@ static jthrowable createCodecException(
break;
}
- return (jthrowable)env->NewObject(clazz.get(), ctor, err, actionCode, msgObj.get());
+ // TODO: propagate reason from MediaCodec.
+ int reason = gExceptionReason.reasonHardware;
+ return (jthrowable)env->NewObject(clazz.get(), ctor, err, actionCode, msgObj.get(), reason);
}
void JMediaCodec::handleCallback(const sp<AMessage> &msg) {
@@ -669,14 +676,6 @@ void JMediaCodec::handleCallback(const sp<AMessage> &msg) {
break;
}
- case MediaCodec::CB_CODEC_RELEASED:
- {
- if (!msg->findInt32("reason", &arg2)) {
- arg2 = MediaCodec::REASON_UNKNOWN;
- }
- break;
- }
-
default:
TRESPASS();
}
@@ -1462,6 +1461,16 @@ static void android_media_MediaCodec_native_init(JNIEnv *env) {
CHECK(field != NULL);
gCodecActionCodes.codecActionRecoverable =
env->GetStaticIntField(clazz.get(), field);
+
+ field = env->GetStaticFieldID(clazz.get(), "REASON_HARDWARE", "I");
+ CHECK(field != NULL);
+ gExceptionReason.reasonHardware =
+ env->GetStaticIntField(clazz.get(), field);
+
+ field = env->GetStaticFieldID(clazz.get(), "REASON_RECLAIMED", "I");
+ CHECK(field != NULL);
+ gExceptionReason.reasonReclaimed =
+ env->GetStaticIntField(clazz.get(), field);
}
static void android_media_MediaCodec_native_setup(
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/mediarecorder/MediaRecorderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/mediarecorder/MediaRecorderTest.java
index d7069cac..e730329 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/mediarecorder/MediaRecorderTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/mediarecorder/MediaRecorderTest.java
@@ -27,6 +27,7 @@ import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.hardware.Camera;
+import android.media.MediaMetadataRetriever;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.media.EncoderCapabilities;
@@ -426,6 +427,29 @@ public class MediaRecorderTest extends ActivityInstrumentationTestCase2<MediaFra
return validVideo;
}
+ private boolean validateMetadata(String filePath, int captureRate) {
+ MediaMetadataRetriever retriever = new MediaMetadataRetriever();
+
+ retriever.setDataSource(filePath);
+
+ // verify capture rate meta key is present and correct
+ String captureFps = retriever.extractMetadata(
+ MediaMetadataRetriever.METADATA_KEY_CAPTURE_FRAMERATE);
+
+ if (captureFps == null) {
+ Log.d(TAG, "METADATA_KEY_CAPTURE_FRAMERATE is missing");
+ return false;
+ }
+
+ if (Math.abs(Float.parseFloat(captureFps) - captureRate) > 0.001) {
+ Log.d(TAG, "METADATA_KEY_CAPTURE_FRAMERATE is incorrect: "
+ + captureFps + "vs. " + captureRate);
+ return false;
+ }
+
+ // verify other meta keys here if necessary
+ return true;
+ }
@LargeTest
/*
* This test case set the camera in portrait mode.
@@ -555,13 +579,16 @@ public class MediaRecorderTest extends ActivityInstrumentationTestCase2<MediaFra
// always set videoOnly=false, MediaRecorder should disable
// audio automatically with time lapse/slow motion
- success = recordVideoFromSurface(frameRate,
- k==0 ? MIN_VIDEO_FPS : HIGH_SPEED_FPS,
- 352, 288, codec,
+ int captureRate = k==0 ? MIN_VIDEO_FPS : HIGH_SPEED_FPS;
+ success = recordVideoFromSurface(
+ frameRate, captureRate, 352, 288, codec,
MediaRecorder.OutputFormat.THREE_GPP,
filename, false /* videoOnly */);
if (success) {
success = validateVideo(filename, 352, 288);
+ if (success) {
+ success = validateMetadata(filename, captureRate);
+ }
}
if (!success) {
noOfFailure++;
@@ -569,6 +596,7 @@ public class MediaRecorderTest extends ActivityInstrumentationTestCase2<MediaFra
}
} catch (Exception e) {
Log.v(TAG, e.toString());
+ noOfFailure++;
}
assertTrue("testSurfaceRecordingTimeLapse", noOfFailure == 0);
}
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
index 3bb5f01..14c2619 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java
@@ -261,6 +261,16 @@ public class CameraBinderTest extends AndroidTestCase {
// TODO Auto-generated method stub
}
+
+ /*
+ * (non-Javadoc)
+ * @see android.hardware.camera2.ICameraDeviceCallbacks#onPrepared()
+ */
+ @Override
+ public void onPrepared(int streamId) throws RemoteException {
+ // TODO Auto-generated method stub
+
+ }
}
@SmallTest
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java
index 0466540..6f33672 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java
@@ -132,6 +132,16 @@ public class CameraDeviceBinderTest extends AndroidTestCase {
// TODO Auto-generated method stub
}
+
+ /*
+ * (non-Javadoc)
+ * @see android.hardware.camera2.ICameraDeviceCallbacks#onPrepared()
+ */
+ @Override
+ public void onPrepared(int streamId) throws RemoteException {
+ // TODO Auto-generated method stub
+
+ }
}
class IsMetadataNotEmpty extends ArgumentMatcher<CameraMetadataNative> {
diff --git a/native/android/Android.mk b/native/android/Android.mk
index b3a74a8..12fdf71 100644
--- a/native/android/Android.mk
+++ b/native/android/Android.mk
@@ -12,9 +12,10 @@ LOCAL_SRC_FILES:= \
looper.cpp \
native_activity.cpp \
native_window.cpp \
+ net.c \
obb.cpp \
sensor.cpp \
- storage_manager.cpp
+ storage_manager.cpp \
LOCAL_SHARED_LIBRARIES := \
liblog \
@@ -25,14 +26,17 @@ LOCAL_SHARED_LIBRARIES := \
libbinder \
libui \
libgui \
- libandroid_runtime
+ libandroid_runtime \
+ libnetd_client \
LOCAL_STATIC_LIBRARIES := \
libstorage
LOCAL_C_INCLUDES += \
frameworks/base/native/include \
- frameworks/base/core/jni/android
+ frameworks/base/core/jni/android \
+ bionic/libc/dns/include \
+ system/netd/include \
LOCAL_MODULE := libandroid
diff --git a/native/android/net.c b/native/android/net.c
new file mode 100644
index 0000000..de4b90c
--- /dev/null
+++ b/native/android/net.c
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include <android/multinetwork.h>
+#include <errno.h>
+#include <NetdClient.h> // the functions that communicate with netd
+#include <resolv_netid.h> // android_getaddrinfofornet()
+#include <stdlib.h>
+#include <sys/limits.h>
+
+
+static int getnetidfromhandle(net_handle_t handle, unsigned *netid) {
+ static const uint32_t k32BitMask = 0xffffffff;
+ // This value MUST be kept in sync with the corresponding value in
+ // the android.net.Network#getNetworkHandle() implementation.
+ static const uint32_t kHandleMagic = 0xfacade;
+
+ // Check for minimum acceptable version of the API in the low bits.
+ if (handle != NETWORK_UNSPECIFIED &&
+ (handle & k32BitMask) != kHandleMagic) {
+ return 0;
+ }
+
+ if (netid != NULL) {
+ *netid = ((handle >> (CHAR_BIT * sizeof(k32BitMask))) & k32BitMask);
+ }
+ return 1;
+}
+
+
+int android_setsocknetwork(net_handle_t network, int fd) {
+ unsigned netid;
+ if (!getnetidfromhandle(network, &netid)) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ int rval = setNetworkForSocket(netid, fd);
+ if (rval < 0) {
+ errno = -rval;
+ rval = -1;
+ }
+ return rval;
+}
+
+int android_setprocnetwork(net_handle_t network) {
+ unsigned netid;
+ if (!getnetidfromhandle(network, &netid)) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ int rval = setNetworkForProcess(netid);
+ if (rval < 0) {
+ errno = -rval;
+ rval = -1;
+ }
+ return rval;
+}
+
+int android_getaddrinfofornetwork(net_handle_t network,
+ const char *node, const char *service,
+ const struct addrinfo *hints, struct addrinfo **res) {
+ unsigned netid;
+ if (!getnetidfromhandle(network, &netid)) {
+ errno = EINVAL;
+ return EAI_SYSTEM;
+ }
+
+ return android_getaddrinfofornet(node, service, hints, netid, 0, res);
+}
diff --git a/native/graphics/jni/Android.mk b/native/graphics/jni/Android.mk
index 91c9ac6..f89a5af 100644
--- a/native/graphics/jni/Android.mk
+++ b/native/graphics/jni/Android.mk
@@ -24,7 +24,8 @@ LOCAL_SHARED_LIBRARIES := \
LOCAL_C_INCLUDES += \
frameworks/base/native/include \
- frameworks/base/core/jni/android/graphics
+ frameworks/base/core/jni/android/graphics \
+ frameworks/base/libs/hwui
LOCAL_MODULE:= libjnigraphics
diff --git a/packages/DocumentsUI/res/layout/fragment_pick.xml b/packages/DocumentsUI/res/layout/fragment_pick.xml
index 5735871..87dc4f8 100644
--- a/packages/DocumentsUI/res/layout/fragment_pick.xml
+++ b/packages/DocumentsUI/res/layout/fragment_pick.xml
@@ -21,12 +21,19 @@
android:baselineAligned="false"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall">
-
+ <Button
+ android:id="@android:id/button2"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:text="@android:string/cancel"
+ android:visibility="gone"
+ style="?android:attr/buttonBarNegativeButtonStyle" />
<Button
android:id="@android:id/button1"
- android:layout_width="match_parent"
+ android:layout_width="wrap_content"
android:layout_height="match_parent"
+ android:layout_weight="1"
android:textAllCaps="false"
style="?android:attr/buttonBarPositiveButtonStyle" />
-
</LinearLayout>
diff --git a/packages/DocumentsUI/res/values-af/strings.xml b/packages/DocumentsUI/res/values-af/strings.xml
index 6fa7a4e..14a9721 100644
--- a/packages/DocumentsUI/res/values-af/strings.xml
+++ b/packages/DocumentsUI/res/values-af/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Versteek SD-kaart"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Wys lêergrootte"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Versteek lêergrootte"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> gekies"</string>
<string name="sort_name" msgid="9183560467917256779">"Volgens naam"</string>
<string name="sort_date" msgid="586080032956151448">"Volgens datum gewysig"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Kan lêer nie oopmaak nie"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Kan sommige dokumente nie uitvee nie"</string>
<string name="share_via" msgid="8966594246261344259">"Deel via"</string>
- <string name="cancel" msgid="6442560571259935130">"Kanselleer"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopieer tans lêers"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> oor"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Kopieer tans <xliff:g id="COUNT_1">%1$d</xliff:g> lêers.</item>
<item quantity="one">Kopieer tans <xliff:g id="COUNT_0">%1$d</xliff:g> lêer.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Maak tans gereed vir kopieer …"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-am/strings.xml b/packages/DocumentsUI/res/values-am/strings.xml
index 52cc50e..7e655d0 100644
--- a/packages/DocumentsUI/res/values-am/strings.xml
+++ b/packages/DocumentsUI/res/values-am/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ካርድ ደብቅ"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"የፋይል መጠን አሳይ"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"የፋይል መጠን ደብቅ"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ተመርጠዋል"</string>
<string name="sort_name" msgid="9183560467917256779">"በስም"</string>
<string name="sort_date" msgid="586080032956151448">"በተለወጠበት ቀን"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"ፋይል መክፈት አይቻልም"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"አንዳንድ ሰነዶችን መሰረዝ አልተቻለም"</string>
<string name="share_via" msgid="8966594246261344259">"በሚከተለው በኩል ያጋሩ"</string>
- <string name="cancel" msgid="6442560571259935130">"ይቅር"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"ፋይሎች በመገልበጥ ላይ"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ቀርቷል"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ፋይሎች በመቅዳት ላይ።</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ፋይሎች በመቅዳት ላይ።</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"ቅጂ በማዘጋጀት ላይ…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ar/strings.xml b/packages/DocumentsUI/res/values-ar/strings.xml
index 4e1065f..4db588d 100644
--- a/packages/DocumentsUI/res/values-ar/strings.xml
+++ b/packages/DocumentsUI/res/values-ar/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"‏إخفاء بطاقة SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"إظهار حجم الملف"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"إخفاء حجم الملف"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"تم تحديد <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"بحسب الاسم"</string>
<string name="sort_date" msgid="586080032956151448">"بحسب تاريخ التعديل"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"لا يمكن فتح الملف"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"تعذر حذف بعض المستندات"</string>
<string name="share_via" msgid="8966594246261344259">"مشاركة عبر"</string>
- <string name="cancel" msgid="6442560571259935130">"إلغاء"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"جارٍ نسخ الملفات"</string>
<string name="copy_remaining" msgid="6283790937387975095">"المدة المتبقية: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -68,6 +69,14 @@
<item quantity="other">جارٍ نسخ <xliff:g id="COUNT_1">%1$d</xliff:g> من الملفات.</item>
<item quantity="one">جارٍ نسخ ملف واحد (<xliff:g id="COUNT_0">%1$d</xliff:g>).</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"جارٍ التحضير للنسخ ..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-bg/strings.xml b/packages/DocumentsUI/res/values-bg/strings.xml
index 8e98cd2..81ad675 100644
--- a/packages/DocumentsUI/res/values-bg/strings.xml
+++ b/packages/DocumentsUI/res/values-bg/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD карта: Скриване"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Размер на файла: Показв."</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Размер на файла: Скрив."</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Избрахте <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"По име"</string>
<string name="sort_date" msgid="586080032956151448">"По дата на промяната"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Файлът не може да се отвори"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Някои документи не могат да бъдат изтрити"</string>
<string name="share_via" msgid="8966594246261344259">"Споделяне чрез"</string>
- <string name="cancel" msgid="6442560571259935130">"Отказ"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Файловете се копират"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Оставащо време: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Копират се <xliff:g id="COUNT_1">%1$d</xliff:g> файла.</item>
<item quantity="one">Копира се <xliff:g id="COUNT_0">%1$d</xliff:g> файл.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Подготвя се за копиране…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-bn-rBD/strings.xml b/packages/DocumentsUI/res/values-bn-rBD/strings.xml
index ad2a860..71443d1 100644
--- a/packages/DocumentsUI/res/values-bn-rBD/strings.xml
+++ b/packages/DocumentsUI/res/values-bn-rBD/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD কার্ড লুকান"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"ফাইলের আকার দেখান"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"ফাইলের আকার লুকান"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> নির্বাচন করা হয়েছে"</string>
<string name="sort_name" msgid="9183560467917256779">"নামের দ্বারা"</string>
<string name="sort_date" msgid="586080032956151448">"পরিবর্তনের তারিখ দ্বারা"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"ফাইল খোলা যাবে না"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"কিছু দস্তাবেজ মুছতে অসমর্থ"</string>
<string name="share_via" msgid="8966594246261344259">"এর মাধ্যমে ভাগ করুন"</string>
- <string name="cancel" msgid="6442560571259935130">"বাতিল করুন"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"ফাইলগুলি অনুলিপি করা হচ্ছে"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> বাকি"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g>টি ফাইল অনুলিপি করা হচ্ছে৷</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>টি ফাইল অনুলিপি করা হচ্ছে৷</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"অনুলিপি করার জন্য প্রস্তুত করা হচ্ছে..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ca/strings.xml b/packages/DocumentsUI/res/values-ca/strings.xml
index 4ee3832..c3e1ff8 100644
--- a/packages/DocumentsUI/res/values-ca/strings.xml
+++ b/packages/DocumentsUI/res/values-ca/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Amaga la targeta SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Mostra la mida de fitxer"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Amaga la mida del fitxer"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Seleccionats: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Per nom"</string>
<string name="sort_date" msgid="586080032956151448">"Per data de modificació"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"No es pot obrir el fitxer."</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"No es poden suprimir alguns documents."</string>
<string name="share_via" msgid="8966594246261344259">"Comparteix mitjançant"</string>
- <string name="cancel" msgid="6442560571259935130">"Cancel·la"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"S\'estan copiant fitxers"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Temps restant: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">S\'estan copiant <xliff:g id="COUNT_1">%1$d</xliff:g> fitxers.</item>
<item quantity="one">S\'està copiant <xliff:g id="COUNT_0">%1$d</xliff:g> fitxer.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"S\'està preparant una còpia…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-cs/strings.xml b/packages/DocumentsUI/res/values-cs/strings.xml
index 0da696f..ae6e625 100644
--- a/packages/DocumentsUI/res/values-cs/strings.xml
+++ b/packages/DocumentsUI/res/values-cs/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skrýt SD kartu"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Zobrazit velikost souboru"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Skrýt velikost souboru"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Vybráno: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Podle názvu"</string>
<string name="sort_date" msgid="586080032956151448">"Podle data úpravy"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Soubor nelze otevřít"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Některé dokumenty nelze smazat"</string>
<string name="share_via" msgid="8966594246261344259">"Sdílet pomocí"</string>
- <string name="cancel" msgid="6442560571259935130">"Zrušit"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopírování souborů"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Zbývající čas: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -66,6 +67,14 @@
<item quantity="other">Kopírování <xliff:g id="COUNT_1">%1$d</xliff:g> souborů</item>
<item quantity="one">Kopírování <xliff:g id="COUNT_0">%1$d</xliff:g> souboru</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Příprava na kopírování…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-da/strings.xml b/packages/DocumentsUI/res/values-da/strings.xml
index c674ed2..8e9ff6b 100644
--- a/packages/DocumentsUI/res/values-da/strings.xml
+++ b/packages/DocumentsUI/res/values-da/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skjul SD-kort"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Vis filstørrelse"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Skjul filstørrelse"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> er valgt"</string>
<string name="sort_name" msgid="9183560467917256779">"Efter navn"</string>
<string name="sort_date" msgid="586080032956151448">"Efter ændringsdato"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Filen kan ikke åbnes"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Nogle dokumenter kan ikke slettes"</string>
<string name="share_via" msgid="8966594246261344259">"Del via"</string>
- <string name="cancel" msgid="6442560571259935130">"Annuller"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopierer filer"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> tilbage"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one">Kopierer <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item>
<item quantity="other">Kopierer <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Forbereder kopiering…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-de/strings.xml b/packages/DocumentsUI/res/values-de/strings.xml
index 73f08e1..f6f2514 100644
--- a/packages/DocumentsUI/res/values-de/strings.xml
+++ b/packages/DocumentsUI/res/values-de/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD-Karte ausblenden"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Dateigröße anzeigen"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Dateigröße ausblenden"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ausgewählt"</string>
<string name="sort_name" msgid="9183560467917256779">"Nach Name"</string>
<string name="sort_date" msgid="586080032956151448">"Nach Änderungsdatum"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Datei kann nicht geöffnet werden."</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Einige Dokumente konnten nicht gelöscht werden."</string>
<string name="share_via" msgid="8966594246261344259">"Teilen über"</string>
- <string name="cancel" msgid="6442560571259935130">"Abbrechen"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Dateien werden kopiert"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Noch <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> Dateien werden kopiert.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> Datei wird kopiert.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Kopieren wird vorbereitet…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-el/strings.xml b/packages/DocumentsUI/res/values-el/strings.xml
index c41a831..40d4aae 100644
--- a/packages/DocumentsUI/res/values-el/strings.xml
+++ b/packages/DocumentsUI/res/values-el/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Απόκρυψη κάρτας SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Εμφ. μεγέθους αρχείου"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Απόκρ. μεγέθους αρχείου"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Επιλέχθηκαν <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Κατά όνομα"</string>
<string name="sort_date" msgid="586080032956151448">"Κατά ημερομηνία τροποποίησης"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Δεν είναι δυνατό το άνοιγμα του αρχείου"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Δεν είναι δυνατή η διαγραφή ορισμένων εγγράφων"</string>
<string name="share_via" msgid="8966594246261344259">"Κοινή χρήση μέσω"</string>
- <string name="cancel" msgid="6442560571259935130">"Ακύρωση"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Αντιγραφή αρχείων"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Απομένουν <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="one">Αντιγραφή <xliff:g id="COUNT_0">%1$d</xliff:g> αρχείου.</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"Προετοιμασία για αντιγραφή…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-en-rAU/strings.xml b/packages/DocumentsUI/res/values-en-rAU/strings.xml
index 74eaaa7..26af414 100644
--- a/packages/DocumentsUI/res/values-en-rAU/strings.xml
+++ b/packages/DocumentsUI/res/values-en-rAU/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Hide SD card"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Show file size"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Hide file size"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selected"</string>
<string name="sort_name" msgid="9183560467917256779">"By name"</string>
<string name="sort_date" msgid="586080032956151448">"By date modified"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Cannot open file"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Unable to delete some documents"</string>
<string name="share_via" msgid="8966594246261344259">"Share via"</string>
- <string name="cancel" msgid="6442560571259935130">"Cancel"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Copying files"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> left"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="one">Copying <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"Preparing for copy…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-en-rGB/strings.xml b/packages/DocumentsUI/res/values-en-rGB/strings.xml
index 74eaaa7..26af414 100644
--- a/packages/DocumentsUI/res/values-en-rGB/strings.xml
+++ b/packages/DocumentsUI/res/values-en-rGB/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Hide SD card"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Show file size"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Hide file size"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selected"</string>
<string name="sort_name" msgid="9183560467917256779">"By name"</string>
<string name="sort_date" msgid="586080032956151448">"By date modified"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Cannot open file"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Unable to delete some documents"</string>
<string name="share_via" msgid="8966594246261344259">"Share via"</string>
- <string name="cancel" msgid="6442560571259935130">"Cancel"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Copying files"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> left"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="one">Copying <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"Preparing for copy…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-en-rIN/strings.xml b/packages/DocumentsUI/res/values-en-rIN/strings.xml
index 74eaaa7..26af414 100644
--- a/packages/DocumentsUI/res/values-en-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-en-rIN/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Hide SD card"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Show file size"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Hide file size"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selected"</string>
<string name="sort_name" msgid="9183560467917256779">"By name"</string>
<string name="sort_date" msgid="586080032956151448">"By date modified"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Cannot open file"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Unable to delete some documents"</string>
<string name="share_via" msgid="8966594246261344259">"Share via"</string>
- <string name="cancel" msgid="6442560571259935130">"Cancel"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Copying files"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> left"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="one">Copying <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"Preparing for copy…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-es-rUS/strings.xml b/packages/DocumentsUI/res/values-es-rUS/strings.xml
index bd3088e..366cee9 100644
--- a/packages/DocumentsUI/res/values-es-rUS/strings.xml
+++ b/packages/DocumentsUI/res/values-es-rUS/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar tarjeta SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tamaño archivos"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tamaño archivos"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> seleccionado(s)"</string>
<string name="sort_name" msgid="9183560467917256779">"Por nombre"</string>
<string name="sort_date" msgid="586080032956151448">"Por fecha de modificación"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"No se puede abrir el archivo."</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"No es posible eliminar algunos documentos."</string>
<string name="share_via" msgid="8966594246261344259">"Compartir mediante"</string>
- <string name="cancel" msgid="6442560571259935130">"Cancelar"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Copiando archivos"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Faltan <xliff:g id="DURATION">%s</xliff:g>."</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Copiando <xliff:g id="COUNT_1">%1$d</xliff:g> archivos</item>
<item quantity="one">Copiando <xliff:g id="COUNT_0">%1$d</xliff:g> archivo</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Preparando para copiar…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-es/strings.xml b/packages/DocumentsUI/res/values-es/strings.xml
index ff70644..a5db821 100644
--- a/packages/DocumentsUI/res/values-es/strings.xml
+++ b/packages/DocumentsUI/res/values-es/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar tarjeta SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tamaño archivo"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tamaño archivo"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Seleccionado: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Por nombre"</string>
<string name="sort_date" msgid="586080032956151448">"Por fecha de modificación"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Error al abrir el archivo"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"No es posible eliminar algunos documentos"</string>
<string name="share_via" msgid="8966594246261344259">"Compartir a través de"</string>
- <string name="cancel" msgid="6442560571259935130">"Cancelar"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Copiando archivos"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Tiempo restante: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Copiando <xliff:g id="COUNT_1">%1$d</xliff:g> archivos.</item>
<item quantity="one">Copiando <xliff:g id="COUNT_0">%1$d</xliff:g> archivo.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Preparando para copiar..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-et-rEE/strings.xml b/packages/DocumentsUI/res/values-et-rEE/strings.xml
index b67f798..ebf3927 100644
--- a/packages/DocumentsUI/res/values-et-rEE/strings.xml
+++ b/packages/DocumentsUI/res/values-et-rEE/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Peida SD-kaart"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Kuva faili suurus"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Peida faili suurus"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> on valitud"</string>
<string name="sort_name" msgid="9183560467917256779">"Nime järgi"</string>
<string name="sort_date" msgid="586080032956151448">"Muutmiskuupäeva järgi"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Faili ei saa avada"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Mõnda dokumenti ei õnnestu kustutada"</string>
<string name="share_via" msgid="8966594246261344259">"Jagage teenusega"</string>
- <string name="cancel" msgid="6442560571259935130">"Tühista"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Failide kopeerimine"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Jäänud on <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> faili kopeerimine.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> faili kopeerimine.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Kopeerimise ettevalmistamine …"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-eu-rES/strings.xml b/packages/DocumentsUI/res/values-eu-rES/strings.xml
index 268a75c..95dca4a 100644
--- a/packages/DocumentsUI/res/values-eu-rES/strings.xml
+++ b/packages/DocumentsUI/res/values-eu-rES/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ezkutatu SD txartela"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Erakutsi fitxategi-tamaina"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Ezkutatu fitxategi-tamaina"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> hautatuta"</string>
<string name="sort_name" msgid="9183560467917256779">"Izenaren arabera"</string>
<string name="sort_date" msgid="586080032956151448">"Aldatze-dataren arabera"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Ezin da fitxategia ireki"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Ezin izan dira dokumentu batzuk ezabatu"</string>
<string name="share_via" msgid="8966594246261344259">"Partekatu honen bidez:"</string>
- <string name="cancel" msgid="6442560571259935130">"Utzi"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Fitxategiak kopiatzen"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Falta den denbora: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> fitxategi kopiatzen.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> fitxategi kopiatzen.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Kopiatzeko prestatzen…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-fa/strings.xml b/packages/DocumentsUI/res/values-fa/strings.xml
index 0388409..77a8ca1 100644
--- a/packages/DocumentsUI/res/values-fa/strings.xml
+++ b/packages/DocumentsUI/res/values-fa/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"‏پنهان کردن کارت SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"نمایش اندازه فایل"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"پنهان کردن اندازه فایل"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> انتخاب شد"</string>
<string name="sort_name" msgid="9183560467917256779">"بر اساس نام"</string>
<string name="sort_date" msgid="586080032956151448">"بر اساس تاریخ اصلاح"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"فایل باز نمی‌شود"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"برخی از اسناد حذف نمی‌شوند"</string>
<string name="share_via" msgid="8966594246261344259">"اشتراک‌گذاری از طریق"</string>
- <string name="cancel" msgid="6442560571259935130">"لغو"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"در حال کپی کردن فایل‌ها"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> باقی‌مانده"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one">در حال کپی کردن <xliff:g id="COUNT_1">%1$d</xliff:g> فایل.</item>
<item quantity="other">در حال کپی کردن <xliff:g id="COUNT_1">%1$d</xliff:g> فایل.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"در حال آماده‌سازی برای کپی..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-fi/strings.xml b/packages/DocumentsUI/res/values-fi/strings.xml
index 34b704c..c1e8449 100644
--- a/packages/DocumentsUI/res/values-fi/strings.xml
+++ b/packages/DocumentsUI/res/values-fi/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Piilota SD-kortti"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Näytä tiedostokoko"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Piilota tiedostokoko"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> valittua"</string>
<string name="sort_name" msgid="9183560467917256779">"Nimen mukaan"</string>
<string name="sort_date" msgid="586080032956151448">"Muokkauspäivän mukaan"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Tiedostoa ei voi avata"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Joitakin asiakirjoja ei voi poistaa"</string>
<string name="share_via" msgid="8966594246261344259">"Jaa sovelluksessa"</string>
- <string name="cancel" msgid="6442560571259935130">"Peruuta"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopioidaan tiedostoja"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> jäljellä"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Kopioidaan <xliff:g id="COUNT_1">%1$d</xliff:g> tiedostoa.</item>
<item quantity="one">Kopioidaan <xliff:g id="COUNT_0">%1$d</xliff:g> tiedosto.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Valmistellaan kopiointia…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-fr-rCA/strings.xml b/packages/DocumentsUI/res/values-fr-rCA/strings.xml
index 7ee5449..2d6033b 100644
--- a/packages/DocumentsUI/res/values-fr-rCA/strings.xml
+++ b/packages/DocumentsUI/res/values-fr-rCA/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Masquer la carte SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Afficher taille fichier"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Masquer taille fichier"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> sélectionné(s)"</string>
<string name="sort_name" msgid="9183560467917256779">"Par nom"</string>
<string name="sort_date" msgid="586080032956151448">"Par date de modification"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Impossible d\'ouvrir le fichier"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Impossible de supprimer certains documents"</string>
<string name="share_via" msgid="8966594246261344259">"Partager par"</string>
- <string name="cancel" msgid="6442560571259935130">"Annuler"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Copie de fichiers..."</string>
<string name="copy_remaining" msgid="6283790937387975095">"Durée restante : <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one">Copier de <xliff:g id="COUNT_1">%1$d</xliff:g> fichier en cours.</item>
<item quantity="other">Copier de <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers en cours.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Préparation de la copie en cours"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-fr/strings.xml b/packages/DocumentsUI/res/values-fr/strings.xml
index 2875f6c..64feecb 100644
--- a/packages/DocumentsUI/res/values-fr/strings.xml
+++ b/packages/DocumentsUI/res/values-fr/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Masquer la carte SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Afficher taille fichier"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Masquer taille fichier"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> élément(s) sélectionné(s)"</string>
<string name="sort_name" msgid="9183560467917256779">"Par nom"</string>
<string name="sort_date" msgid="586080032956151448">"Par date de modification"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Impossible d\'ouvrir le fichier."</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Impossible de supprimer certains documents."</string>
<string name="share_via" msgid="8966594246261344259">"Partager via"</string>
- <string name="cancel" msgid="6442560571259935130">"Annuler"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Copie de fichiers en cours"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Temps restant : <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one">Copie de <xliff:g id="COUNT_1">%1$d</xliff:g> fichier en cours…</item>
<item quantity="other">Copie de <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers en cours…</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Préparation de la copie en cours…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-gl-rES/strings.xml b/packages/DocumentsUI/res/values-gl-rES/strings.xml
index 5f316f2..518c62c 100644
--- a/packages/DocumentsUI/res/values-gl-rES/strings.xml
+++ b/packages/DocumentsUI/res/values-gl-rES/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar tarxeta SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tamaño ficheiro"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tamaño ficheiro"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> seleccionados"</string>
<string name="sort_name" msgid="9183560467917256779">"Por nome"</string>
<string name="sort_date" msgid="586080032956151448">"Por data de modificación"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Non se pode abrir o ficheiro"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Non se poden eliminar algúns documentos"</string>
<string name="share_via" msgid="8966594246261344259">"Compartir a través de"</string>
- <string name="cancel" msgid="6442560571259935130">"Cancelar"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Copiando ficheiros"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Tempo restante: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Copiando <xliff:g id="COUNT_1">%1$d</xliff:g> ficheiros.</item>
<item quantity="one">Copianto <xliff:g id="COUNT_0">%1$d</xliff:g> ficheiro.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Preparando para copiar…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-hi/strings.xml b/packages/DocumentsUI/res/values-hi/strings.xml
index 9d6727c..b422333 100644
--- a/packages/DocumentsUI/res/values-hi/strings.xml
+++ b/packages/DocumentsUI/res/values-hi/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD कार्ड छिपाएं"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"फ़ाइल आकार दिखाएं"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"फ़ाइल आकार छिपाएं"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> चयनित"</string>
<string name="sort_name" msgid="9183560467917256779">"नाम के अनुसार"</string>
<string name="sort_date" msgid="586080032956151448">"बदलाव के दिनांक के अनुसार"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"फ़ाइल नहीं खोली जा सकती"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"कुछ दस्तावेज़ों को हटाने में अक्षम"</string>
<string name="share_via" msgid="8966594246261344259">"इसके द्वारा साझा करें"</string>
- <string name="cancel" msgid="6442560571259935130">"अभी नहीं"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"फ़ाइलें कॉपी हो रही हैं"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> शेष"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> फ़ाइलें कॉपी की जा रही हैं.</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> फ़ाइलें कॉपी की जा रही हैं.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"कॉपी करने की तैयारी हो रही है…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-hr/strings.xml b/packages/DocumentsUI/res/values-hr/strings.xml
index 1635ada..518c62d 100644
--- a/packages/DocumentsUI/res/values-hr/strings.xml
+++ b/packages/DocumentsUI/res/values-hr/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Sakrij SD karticu"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Pokaži veličinu datoteke"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Sakrij veličinu datoteke"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Odabrano: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Po korisniku"</string>
<string name="sort_date" msgid="586080032956151448">"Po datumu izmjene"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Datoteku nije moguće otvoriti"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Nije moguće izbrisati neke dokumente"</string>
<string name="share_via" msgid="8966594246261344259">"Dijeli putem"</string>
- <string name="cancel" msgid="6442560571259935130">"Odustani"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopiranje datoteka"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Još <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,6 +66,14 @@
<item quantity="few">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datoteke.</item>
<item quantity="other">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datoteka.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Priprema za kopiranje…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-hu/strings.xml b/packages/DocumentsUI/res/values-hu/strings.xml
index 223ed89..172402b 100644
--- a/packages/DocumentsUI/res/values-hu/strings.xml
+++ b/packages/DocumentsUI/res/values-hu/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD-kártya elrejtése"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Fájlméret megjelenítése"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Fájlméret elrejtése"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> kiválasztva"</string>
<string name="sort_name" msgid="9183560467917256779">"Név szerint"</string>
<string name="sort_date" msgid="586080032956151448">"Módosítás dátuma szerint"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"A fájlt nem lehet megnyitni"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Néhány dokumentumot nem lehet törölni"</string>
<string name="share_via" msgid="8966594246261344259">"Megosztás itt:"</string>
- <string name="cancel" msgid="6442560571259935130">"Mégse"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Fájlok másolása"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> van hátra"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> fájl másolása.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> fájl másolása.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Felkészülés a másolásra…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-hy-rAM/strings.xml b/packages/DocumentsUI/res/values-hy-rAM/strings.xml
index 35de1e1..89be3b5 100644
--- a/packages/DocumentsUI/res/values-hy-rAM/strings.xml
+++ b/packages/DocumentsUI/res/values-hy-rAM/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Թաքցնել SD քարտը"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Ցույց տալ ֆայլի չափը"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Թաքցնել ֆայլի չափը"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ընտրված"</string>
<string name="sort_name" msgid="9183560467917256779">"Ըստ անվան"</string>
<string name="sort_date" msgid="586080032956151448">"Ըստ փոփոխման ամսաթվի"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Հնարավոր չէ բացել ֆայլը"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Անհնար է ջնջել որոշ փաստաթղթեր"</string>
<string name="share_via" msgid="8966594246261344259">"Տարածել"</string>
- <string name="cancel" msgid="6442560571259935130">"Չեղարկել"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Ֆայլերի պատճենում"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Մնացել է <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ֆայլի պատճենում:</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ֆայլի պատճենում:</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Պատճենման նախապատրաստում…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-in/strings.xml b/packages/DocumentsUI/res/values-in/strings.xml
index 4d28802..ee15004 100644
--- a/packages/DocumentsUI/res/values-in/strings.xml
+++ b/packages/DocumentsUI/res/values-in/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Sembunyikan kartu SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Tampilkan ukuran file"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Sembunyikan ukuran file"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> dipilih"</string>
<string name="sort_name" msgid="9183560467917256779">"Menurut nama"</string>
<string name="sort_date" msgid="586080032956151448">"Menurut tanggal diubah"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Tidak dapat membuka file"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Tidak dapat menghapus beberapa dokumen"</string>
<string name="share_via" msgid="8966594246261344259">"Bagikan melalui"</string>
- <string name="cancel" msgid="6442560571259935130">"Batal"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Menyalin file"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> lagi"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="one">Menyalin <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"Menyiapkan salinan..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-is-rIS/strings.xml b/packages/DocumentsUI/res/values-is-rIS/strings.xml
index 83ac621..eebac4a 100644
--- a/packages/DocumentsUI/res/values-is-rIS/strings.xml
+++ b/packages/DocumentsUI/res/values-is-rIS/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Fela SD-kort"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Sýna skráarstærð"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Fela skráarstærð"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> valin"</string>
<string name="sort_name" msgid="9183560467917256779">"Eftir heiti"</string>
<string name="sort_date" msgid="586080032956151448">"Eftir breytingadags."</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Ekki er hægt að opna skrána"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Ekki er hægt að eyða einhverjum skjölum"</string>
<string name="share_via" msgid="8966594246261344259">"Deila í gegnum"</string>
- <string name="cancel" msgid="6442560571259935130">"Hætta við"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Afritar skrár"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> eftir"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one">Afritar <xliff:g id="COUNT_1">%1$d</xliff:g> skrá.</item>
<item quantity="other">Afritar <xliff:g id="COUNT_1">%1$d</xliff:g> skrár.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Undirbúningur fyrir afritun…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-it/strings.xml b/packages/DocumentsUI/res/values-it/strings.xml
index d85ae95..b905e6d 100644
--- a/packages/DocumentsUI/res/values-it/strings.xml
+++ b/packages/DocumentsUI/res/values-it/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Nascondi scheda SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Mostra dimensioni file"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Nascondi dimensioni file"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selezionati"</string>
<string name="sort_name" msgid="9183560467917256779">"Per nome"</string>
<string name="sort_date" msgid="586080032956151448">"Per data di modifica"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Impossibile aprire il file"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Impossibile eliminare alcuni documenti"</string>
<string name="share_via" msgid="8966594246261344259">"Condividi via"</string>
- <string name="cancel" msgid="6442560571259935130">"Annulla"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Copia di file in corso"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> rimanenti"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Copia di <xliff:g id="COUNT_1">%1$d</xliff:g> file in corso.</item>
<item quantity="one">Copia di <xliff:g id="COUNT_0">%1$d</xliff:g> file in corso.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Preparazione alla copia…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-iw/strings.xml b/packages/DocumentsUI/res/values-iw/strings.xml
index 12c7240..c7fcea8 100644
--- a/packages/DocumentsUI/res/values-iw/strings.xml
+++ b/packages/DocumentsUI/res/values-iw/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"‏הסתר כרטיס SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"הצג גודל קובץ"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"הסתר גודל קובץ"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> נבחרו"</string>
<string name="sort_name" msgid="9183560467917256779">"לפי שם"</string>
<string name="sort_date" msgid="586080032956151448">"לפי תאריך שינוי"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"לא ניתן לפתוח את הקובץ"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"לא ניתן למחוק חלק מהמסמכים"</string>
<string name="share_via" msgid="8966594246261344259">"שתף באמצעות"</string>
- <string name="cancel" msgid="6442560571259935130">"ביטול"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"מעתיק קבצים"</string>
<string name="copy_remaining" msgid="6283790937387975095">"זמן נותר: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -67,4 +68,13 @@
<item quantity="one">מעתיק קובץ <xliff:g id="COUNT_0">%1$d</xliff:g>.</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"מתכונן להעתקה..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ja/strings.xml b/packages/DocumentsUI/res/values-ja/strings.xml
index 29be902..939ebdc 100644
--- a/packages/DocumentsUI/res/values-ja/strings.xml
+++ b/packages/DocumentsUI/res/values-ja/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SDカードを非表示"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"ファイルサイズを表示"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"ファイルサイズを非表示"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g>件選択済み"</string>
<string name="sort_name" msgid="9183560467917256779">"名前順"</string>
<string name="sort_date" msgid="586080032956151448">"更新日順"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"ファイルを開けません"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"一部のドキュメントを削除できません"</string>
<string name="share_via" msgid="8966594246261344259">"共有ツール"</string>
- <string name="cancel" msgid="6442560571259935130">"キャンセル"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"ファイルのコピー中"</string>
<string name="copy_remaining" msgid="6283790937387975095">"残り<xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>個のファイルをコピーしています。</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g>個のファイルをコピーしています。</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"コピーの準備をしています…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ka-rGE/strings.xml b/packages/DocumentsUI/res/values-ka-rGE/strings.xml
index 03bc0a4..92da133 100644
--- a/packages/DocumentsUI/res/values-ka-rGE/strings.xml
+++ b/packages/DocumentsUI/res/values-ka-rGE/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ბარათის დამალვა"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"ფაილის ზომის ჩვენება"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"ფაილის ზომის დამალვა"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> მონიშნული"</string>
<string name="sort_name" msgid="9183560467917256779">"სახელით"</string>
<string name="sort_date" msgid="586080032956151448">"ცვლილების თარიღით"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"ფაილის გახსნა ვერ ხერხდება"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"ზოგიერთი დოკუმენტის წაშლა ვერ ხერხდება"</string>
<string name="share_via" msgid="8966594246261344259">"გაზიარება:"</string>
- <string name="cancel" msgid="6442560571259935130">"გაუქმება"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"მიმდ. ფაილების კოპირება"</string>
<string name="copy_remaining" msgid="6283790937387975095">"დარჩა <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">მიმდინარეობს <xliff:g id="COUNT_1">%1$d</xliff:g> ფაილის კოპირება.</item>
<item quantity="one">მიმდინარეობს <xliff:g id="COUNT_0">%1$d</xliff:g> ფაილის კოპირება.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"მომზადება კოპირებისთვის…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-kk-rKZ/strings.xml b/packages/DocumentsUI/res/values-kk-rKZ/strings.xml
index 4f43ca8..b16f6ac 100644
--- a/packages/DocumentsUI/res/values-kk-rKZ/strings.xml
+++ b/packages/DocumentsUI/res/values-kk-rKZ/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD картасын жасыру"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Файл өлшемін көрсету"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Файл өлшемін жасыру"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> таңдалды"</string>
<string name="sort_name" msgid="9183560467917256779">"Атауы бойынша"</string>
<string name="sort_date" msgid="586080032956151448">"Өзгертілген мерзімі бойынша"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Файлды аша алмады"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Кейбір құжаттарды жою мүмкін болмады"</string>
<string name="share_via" msgid="8966594246261344259">"арқылы бөлісу"</string>
- <string name="cancel" msgid="6442560571259935130">"Бас тарту"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Файлдарды көшіру"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> қалды"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> файлды көшіру.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> файлды көшіру.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Көшіруге дайындау…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-km-rKH/strings.xml b/packages/DocumentsUI/res/values-km-rKH/strings.xml
index 82400ff..4fd9a63 100644
--- a/packages/DocumentsUI/res/values-km-rKH/strings.xml
+++ b/packages/DocumentsUI/res/values-km-rKH/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"លាក់​កាត​អេសឌី"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"បង្ហាញទំហំឯកសារ"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"លាក់ទំហំឯកសារ"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"បាន​ជ្រើស <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"តាម​ឈ្មោះ"</string>
<string name="sort_date" msgid="586080032956151448">"តាម​កាលបរិច្ឆេទ​បាន​កែប្រែ"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"មិន​អាច​បើក​ឯកសារ"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"មិន​អាច​លុប​ឯកសារ​មួយ​ចំនួន"</string>
<string name="share_via" msgid="8966594246261344259">"ចែករំលែក​តាម"</string>
- <string name="cancel" msgid="6442560571259935130">"បោះ​បង់​"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"កំពុងថតចម្លងឯកសារ"</string>
<string name="copy_remaining" msgid="6283790937387975095">"នៅសល់ <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">កំពុងថតចម្លងឯកសារចំនួន <xliff:g id="COUNT_1">%1$d</xliff:g> ។</item>
<item quantity="one">កំពុងថតចម្លងឯកសារចំនួន <xliff:g id="COUNT_0">%1$d</xliff:g> ។</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"កំពុងរៀបចំចម្លង…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-kn-rIN/strings.xml b/packages/DocumentsUI/res/values-kn-rIN/strings.xml
index 03c42a4..fb0d818 100644
--- a/packages/DocumentsUI/res/values-kn-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-kn-rIN/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ಕಾರ್ಡ್‌ ಅನ್ನು ಮರೆಮಾಡಿ"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"ಫೈಲ್‌ ಗಾತ್ರವನ್ನು ತೋರಿಸು"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"ಫೈಲ್‌ ಗಾತ್ರವನ್ನು ಮರೆಮಾಡಿ"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ"</string>
<string name="sort_name" msgid="9183560467917256779">"ಹೆಸರಿನ ಪ್ರಕಾರ"</string>
<string name="sort_date" msgid="586080032956151448">"ಮಾರ್ಪಡಿಸಿರುವ ದಿನಾಂಕದ ಪ್ರಕಾರ"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"ಫೈಲ್ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"ಕೆಲವು ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
<string name="share_via" msgid="8966594246261344259">"ಈ ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳಿ"</string>
- <string name="cancel" msgid="6442560571259935130">"ರದ್ದುಮಾಡು"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"ಫೈಲ್‌ಗಳನ್ನು ನಕಲಿಸಲಾಗುತ್ತಿದೆ"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ಉಳಿದಿದೆ"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one"> <xliff:g id="COUNT_1">%1$d</xliff:g> ಫೈಲ್‌ಗಳನ್ನು ನಕಲಿಸಲಾಗುತ್ತಿದೆ.</item>
<item quantity="other"> <xliff:g id="COUNT_1">%1$d</xliff:g> ಫೈಲ್‌ಗಳನ್ನು ನಕಲಿಸಲಾಗುತ್ತಿದೆ.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"ನಕಲಿಸಲು ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ko/strings.xml b/packages/DocumentsUI/res/values-ko/strings.xml
index 6080cf2..073b9c6 100644
--- a/packages/DocumentsUI/res/values-ko/strings.xml
+++ b/packages/DocumentsUI/res/values-ko/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD 카드 숨기기"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"파일 크기 표시"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"파일 크기 숨기기"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g>개 선택됨"</string>
<string name="sort_name" msgid="9183560467917256779">"이름순"</string>
<string name="sort_date" msgid="586080032956151448">"수정된 날짜순"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"파일을 열 수 없음"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"일부 문서를 삭제할 수 없음"</string>
<string name="share_via" msgid="8966594246261344259">"공유 방법"</string>
- <string name="cancel" msgid="6442560571259935130">"취소"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"파일 복사 중"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> 남음"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">파일 <xliff:g id="COUNT_1">%1$d</xliff:g>개를 복사합니다.</item>
<item quantity="one">파일 <xliff:g id="COUNT_0">%1$d</xliff:g>개를 복사합니다.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"사본 준비 중…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ky-rKG/strings.xml b/packages/DocumentsUI/res/values-ky-rKG/strings.xml
index 2e62a47..5aa4c83 100644
--- a/packages/DocumentsUI/res/values-ky-rKG/strings.xml
+++ b/packages/DocumentsUI/res/values-ky-rKG/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD картаны жашыруу"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Файл өлчөмүн көрсөтүү"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Файл өлчөмүн жашыруу"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> тандалды"</string>
<string name="sort_name" msgid="9183560467917256779">"Аты боюнча"</string>
<string name="sort_date" msgid="586080032956151448">"Өзгөртүлгөн күнү боюнча"</string>
@@ -57,14 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Файл ачылбады"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Кээ бир документтерди өчүрүү кыйрады"</string>
<string name="share_via" msgid="8966594246261344259">"Кийинки аркылуу бөлүшүү:"</string>
- <!-- no translation found for cancel (6442560571259935130) -->
- <skip />
<string name="copy_notification_title" msgid="6374299806748219777">"Файлдар көчүрүлүүдө"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> калды"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> файл көчүрүлүүдө.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> файл көчүрүлүүдө.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Көчүрүүгө даярдалууда…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-lo-rLA/strings.xml b/packages/DocumentsUI/res/values-lo-rLA/strings.xml
index 5b7364f..f9e39e9 100644
--- a/packages/DocumentsUI/res/values-lo-rLA/strings.xml
+++ b/packages/DocumentsUI/res/values-lo-rLA/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"ເຊື່ອງ SD Card"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"ສະແດງ​ຂະໜາດ​ໄຟລ໌"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"ເຊື່ອງ​ຂະ​ຫນາດ​ໄຟລ໌"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"ເລືອກແລ້ວ <xliff:g id="COUNT">%1$d</xliff:g> ລາຍການ"</string>
<string name="sort_name" msgid="9183560467917256779">"ຕາມຊື່"</string>
<string name="sort_date" msgid="586080032956151448">"ຕາມວັນທີທີ່ແກ້ໄຂ"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"ບໍ່ສາມດາເປີດໄຟລ໌ໄດ້"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"ບໍ່ສາມາດລຶບບາງເອກະສານໄດ້"</string>
<string name="share_via" msgid="8966594246261344259">"ແບ່ງປັນຜ່ານ"</string>
- <string name="cancel" msgid="6442560571259935130">"ຍົກເລີກ"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"ກຳ​ລັງ​ອັດ​ສຳ​ເນົາ​ໄຟ​ລ໌"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ຍັງ​ເຫຼືອ​ຢູ່"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="one">ກຳ​ລັງ​ອັດ​ສຳ​ເນົາ <xliff:g id="COUNT_0">%1$d</xliff:g> ໄຟ​ລ໌.</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"ກຳ​ລັງ​ກຽມ​ອັດ​ສຳ​ເນົາ…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-lt/strings.xml b/packages/DocumentsUI/res/values-lt/strings.xml
index 9a650c1..cb968ad 100644
--- a/packages/DocumentsUI/res/values-lt/strings.xml
+++ b/packages/DocumentsUI/res/values-lt/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Slėpti SD kortelę"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Rodyti failo dydį"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Slėpti failo dydį"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Pasirinkta: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Pagal pavadinimą"</string>
<string name="sort_date" msgid="586080032956151448">"Pagal keitimo datą"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Nepavyksta atidaryti failo"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Nepavyko ištrinti kai kurių dokumentų"</string>
<string name="share_via" msgid="8966594246261344259">"Bendrinti naudojant"</string>
- <string name="cancel" msgid="6442560571259935130">"Atšaukti"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopijuojami failai"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Liko: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -66,6 +67,14 @@
<item quantity="many">Kopijuojama <xliff:g id="COUNT_1">%1$d</xliff:g> failo.</item>
<item quantity="other">Kopijuojama <xliff:g id="COUNT_1">%1$d</xliff:g> failų.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Ruošiamasi kopijuoti…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-lv/strings.xml b/packages/DocumentsUI/res/values-lv/strings.xml
index 4130d4f..6c911fa 100644
--- a/packages/DocumentsUI/res/values-lv/strings.xml
+++ b/packages/DocumentsUI/res/values-lv/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Paslēpt SD karti"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Rādīt failu lielumu"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Paslēpt failu lielumu"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Atlasīts: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Pēc nosaukuma"</string>
<string name="sort_date" msgid="586080032956151448">"Pēc pārveidošanas datuma"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Nevar atvērt failu."</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Nevar dzēst dažus dokumentus."</string>
<string name="share_via" msgid="8966594246261344259">"Kopīgot, izmantojot"</string>
- <string name="cancel" msgid="6442560571259935130">"Atcelt"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Notiek failu kopēšana"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Atlikušais laiks: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,6 +66,14 @@
<item quantity="one">Notiek <xliff:g id="COUNT_1">%1$d</xliff:g> faila kopēšana.</item>
<item quantity="other">Notiek <xliff:g id="COUNT_1">%1$d</xliff:g> failu kopēšana.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Gatavošanās kopēšanai…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-mk-rMK/strings.xml b/packages/DocumentsUI/res/values-mk-rMK/strings.xml
index 927487d..748ac2e 100644
--- a/packages/DocumentsUI/res/values-mk-rMK/strings.xml
+++ b/packages/DocumentsUI/res/values-mk-rMK/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Сoкриј СД-картичка"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Прикажи целосна големина"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Сокриј целосна големина"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Избрани се <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"По име"</string>
<string name="sort_date" msgid="586080032956151448">"Изменети по датум"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Датотеката не се отвора"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Некои документи не може да се избришат"</string>
<string name="share_via" msgid="8966594246261344259">"Сподели преку"</string>
- <string name="cancel" msgid="6442560571259935130">"Откажи"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Се копираат датотеки"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Уште <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one">Се копира <xliff:g id="COUNT_1">%1$d</xliff:g> датотека.</item>
<item quantity="other">Се копираат <xliff:g id="COUNT_1">%1$d</xliff:g> датотеки.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Се подготвува за копирање…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ml-rIN/strings.xml b/packages/DocumentsUI/res/values-ml-rIN/strings.xml
index 3b9b0d9..750c842 100644
--- a/packages/DocumentsUI/res/values-ml-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-ml-rIN/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD കാർഡ് മറയ്‌ക്കുക"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"ഫയൽ വലുപ്പം കാണിക്കുക"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"ഫയൽ വലുപ്പം മറയ്‌ക്കുക"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> തിരഞ്ഞെടുത്തു"</string>
<string name="sort_name" msgid="9183560467917256779">"പേര് പ്രകാരം"</string>
<string name="sort_date" msgid="586080032956151448">"പരിഷ്‌ക്കരിച്ച തീയതി പ്രകാരം"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"ഫയൽ തുറക്കാനായില്ല"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"ചില പ്രമാണങ്ങൾ ഇല്ലാതാക്കാനായില്ല"</string>
<string name="share_via" msgid="8966594246261344259">"ഇതുവഴി പങ്കിടുക"</string>
- <string name="cancel" msgid="6442560571259935130">"റദ്ദാക്കുക"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"ഫയലുകൾ പകർത്തുന്നു"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ശേഷിക്കുന്നു"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ഫയലുകൾ പകർത്തുന്നു.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ഫയൽ പകർത്തുന്നു.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"പകർപ്പിനായി തയ്യാറെടുക്കുന്നു…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-mn-rMN/strings.xml b/packages/DocumentsUI/res/values-mn-rMN/strings.xml
index 00b52db..28174ec 100644
--- a/packages/DocumentsUI/res/values-mn-rMN/strings.xml
+++ b/packages/DocumentsUI/res/values-mn-rMN/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD картыг нуух"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Файлын хэмжээг харуулах"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Файлын хэмжээг нуух"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> сонгогдсон"</string>
<string name="sort_name" msgid="9183560467917256779">"Нэрээр"</string>
<string name="sort_date" msgid="586080032956151448">"Өөрчлөгдсөн огноогоор"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Файлыг нээх боломжгүй"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Зарим документуудыг устгах боломжгүй"</string>
<string name="share_via" msgid="8966594246261344259">"Дараахаар дамжуулан хуваалцах"</string>
- <string name="cancel" msgid="6442560571259935130">"Цуцлах"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Файлуудыг хуулж байна"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> үлдсэн"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"> <xliff:g id="COUNT_1">%1$d</xliff:g> файлуудыг хуулж байна.</item>
<item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> файл хуулж байна.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Хуулбарлахад бэлтгэж байна..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-mr-rIN/strings.xml b/packages/DocumentsUI/res/values-mr-rIN/strings.xml
index c100970..5664515 100644
--- a/packages/DocumentsUI/res/values-mr-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-mr-rIN/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD कार्ड लपवा"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"फाईल आकार दर्शवा"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"फाईल आकार लपवा"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> निवडले"</string>
<string name="sort_name" msgid="9183560467917256779">"नावानुसार"</string>
<string name="sort_date" msgid="586080032956151448">"सुधारित केलेल्‍या तारखेनुसार"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"फाईल उघडू शकत नाही"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"काही दस्‍तऐवज हटविण्‍यात अक्षम"</string>
<string name="share_via" msgid="8966594246261344259">"द्वारे सामायिक करा"</string>
- <string name="cancel" msgid="6442560571259935130">"रद्द करा"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"फायली कॉपी करीत आहे"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> शिल्लक"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> फाईल कॉपी करीत आहे.</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> फायली कॉपी करीत आहे.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"कॉपी करण्‍यासाठी तयार करीत आहे…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ms-rMY/strings.xml b/packages/DocumentsUI/res/values-ms-rMY/strings.xml
index f50aa78..69bfd34 100644
--- a/packages/DocumentsUI/res/values-ms-rMY/strings.xml
+++ b/packages/DocumentsUI/res/values-ms-rMY/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Sembunyikan kad SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Papar saiz fail"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Sembunyikan saiz fail"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> dipilih"</string>
<string name="sort_name" msgid="9183560467917256779">"Mengikut nama"</string>
<string name="sort_date" msgid="586080032956151448">"Diubah suai mengikut tarikh"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Tidak dapat membuka fail"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Tidak dapat memadam beberapa dokumen"</string>
<string name="share_via" msgid="8966594246261344259">"Kongsi melalui"</string>
- <string name="cancel" msgid="6442560571259935130">"Batal"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Menyalin fail"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> lagi"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Menyalin <xliff:g id="COUNT_1">%1$d</xliff:g> fail.</item>
<item quantity="one">Menyalin <xliff:g id="COUNT_0">%1$d</xliff:g> fail.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Bersedia untuk salin..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-my-rMM/strings.xml b/packages/DocumentsUI/res/values-my-rMM/strings.xml
index 3a860a4..e2513e8 100644
--- a/packages/DocumentsUI/res/values-my-rMM/strings.xml
+++ b/packages/DocumentsUI/res/values-my-rMM/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ကဒ် ဖျောက်ပါ"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"ဖိုင်အရွယ်အစား ပြပါ"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"ဖိုင်အရွယ်အစား ဖျောက်ပါ"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ခရွေးချယ်ပြီး"</string>
<string name="sort_name" msgid="9183560467917256779">"အမည်ဖြင့်"</string>
<string name="sort_date" msgid="586080032956151448">"ပြင်ဆင်မှု ရက်စွဲဖြင့်"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"ဖိုင်အား ဖွင့်မရပါ"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"တချို့ စာရွက်စာတန်းများ မဖျက်စီးနိုင်ပါ"</string>
<string name="share_via" msgid="8966594246261344259">"မှ ဝေမျှပါ"</string>
- <string name="cancel" msgid="6442560571259935130">"ထားတော့"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"ဖိုင်များကူယူနေသည်"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ကျန်ရှိသည်"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ဖိုင် ကူးယူနေသည်။</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"မိတ္တူကူးရန်ပြင်ဆင်နေ..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-nb/strings.xml b/packages/DocumentsUI/res/values-nb/strings.xml
index e1254a3..4f0c866 100644
--- a/packages/DocumentsUI/res/values-nb/strings.xml
+++ b/packages/DocumentsUI/res/values-nb/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skjul SD-kortet"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Vis filstørrelsen"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Skjul filstørrelsen"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> valgt"</string>
<string name="sort_name" msgid="9183560467917256779">"Etter navn"</string>
<string name="sort_date" msgid="586080032956151448">"«Etter dato» endret"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Kan ikke åpne filen"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Enkelte dokumenter kunne ikke slettes"</string>
<string name="share_via" msgid="8966594246261344259">"Del via"</string>
- <string name="cancel" msgid="6442560571259935130">"Avbryt"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopierer filer"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> gjenstår"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Kopierer <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item>
<item quantity="one">Kopierer <xliff:g id="COUNT_0">%1$d</xliff:g> fil.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Forbereder kopiering …"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ne-rNP/strings.xml b/packages/DocumentsUI/res/values-ne-rNP/strings.xml
index 7c300e3..7aa51e6 100644
--- a/packages/DocumentsUI/res/values-ne-rNP/strings.xml
+++ b/packages/DocumentsUI/res/values-ne-rNP/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD कार्ड लुकाउनुहोस्"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"फाइल आकार देखाउनुहोस्"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"फाइल आकार लुकाउनुहोस्"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> चयन गरियो"</string>
<string name="sort_name" msgid="9183560467917256779">"नाम अनुसार"</string>
<string name="sort_date" msgid="586080032956151448">"परिमार्जित मिति अनुसार"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"फाइल खोल्न सक्दैन"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"केही कागजातहरू मेट्न असमर्थ छ"</string>
<string name="share_via" msgid="8966594246261344259">"माध्यमबाट साझेदारी गर्नुहोस्"</string>
- <string name="cancel" msgid="6442560571259935130">"रद्द गर्नुहोस्"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"फाइलहरू प्रतिलिपि गर्दै:"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g>बाँकी"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> फाइल प्रतिलिपि गर्दै।</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"प्रतिलिपिको लागि तयारी गर्दै ..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-nl/strings.xml b/packages/DocumentsUI/res/values-nl/strings.xml
index 593451a..b5e4930 100644
--- a/packages/DocumentsUI/res/values-nl/strings.xml
+++ b/packages/DocumentsUI/res/values-nl/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD-kaart verbergen"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Bestandsgrootte weergeven"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Bestandsgrootte verbergen"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> geselecteerd"</string>
<string name="sort_name" msgid="9183560467917256779">"Op naam"</string>
<string name="sort_date" msgid="586080032956151448">"Op aanpassingsdatum"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Kan bestand niet openen"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Kan bepaalde documenten niet verwijderen"</string>
<string name="share_via" msgid="8966594246261344259">"Delen via"</string>
- <string name="cancel" msgid="6442560571259935130">"Annuleren"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Bestanden kopiëren"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> resterend"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> bestanden kopiëren.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> bestand kopiëren.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Kopiëren voorbereiden…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-pl/strings.xml b/packages/DocumentsUI/res/values-pl/strings.xml
index 94a78c2..4d39387 100644
--- a/packages/DocumentsUI/res/values-pl/strings.xml
+++ b/packages/DocumentsUI/res/values-pl/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ukryj kartę SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Pokaż rozmiar pliku"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Ukryj rozmiar pliku"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Wybrano: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Według nazwy"</string>
<string name="sort_date" msgid="586080032956151448">"Według daty edycji"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Nie można otworzyć pliku"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Nie można usunąć niektórych dokumentów"</string>
<string name="share_via" msgid="8966594246261344259">"Udostępnij przez"</string>
- <string name="cancel" msgid="6442560571259935130">"Anuluj"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopiowanie plików"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Pozostało: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -66,6 +67,14 @@
<item quantity="other">Kopiowanie <xliff:g id="COUNT_1">%1$d</xliff:g> pliku.</item>
<item quantity="one">Kopiowanie <xliff:g id="COUNT_0">%1$d</xliff:g> pliku.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Przygotowuję do kopiowania…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-pt-rPT/strings.xml b/packages/DocumentsUI/res/values-pt-rPT/strings.xml
index 50e59d6..c145be9 100644
--- a/packages/DocumentsUI/res/values-pt-rPT/strings.xml
+++ b/packages/DocumentsUI/res/values-pt-rPT/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar cartão SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tam. de fich."</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tam. de fich."</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selecionado(s)"</string>
<string name="sort_name" msgid="9183560467917256779">"Por nome"</string>
<string name="sort_date" msgid="586080032956151448">"Por data de modificação"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Não é possível abrir o ficheiro"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Não é possível eliminar alguns documentos"</string>
<string name="share_via" msgid="8966594246261344259">"Partilhar através de"</string>
- <string name="cancel" msgid="6442560571259935130">"Cancelar"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"A copiar ficheiros"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Faltam <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">A copiar <xliff:g id="COUNT_1">%1$d</xliff:g> ficheiros.</item>
<item quantity="one">A copiar <xliff:g id="COUNT_0">%1$d</xliff:g> ficheiro.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"A preparar para copiar…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-pt/strings.xml b/packages/DocumentsUI/res/values-pt/strings.xml
index a0a5821..b47a084 100644
--- a/packages/DocumentsUI/res/values-pt/strings.xml
+++ b/packages/DocumentsUI/res/values-pt/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar cartão SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tam. do arquivo"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tam. do arquivo"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selecionados"</string>
<string name="sort_name" msgid="9183560467917256779">"Por nome"</string>
<string name="sort_date" msgid="586080032956151448">"Por data de modificação"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Não é possível abrir o arquivo"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Não foi possível excluir alguns documentos"</string>
<string name="share_via" msgid="8966594246261344259">"Compartilhar via"</string>
- <string name="cancel" msgid="6442560571259935130">"Cancelar"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Copiando arquivos"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> restantes"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one">Copiando <xliff:g id="COUNT_1">%1$d</xliff:g> arquivos.</item>
<item quantity="other">Copiando <xliff:g id="COUNT_1">%1$d</xliff:g> arquivos.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Preparando para copiar..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ro/strings.xml b/packages/DocumentsUI/res/values-ro/strings.xml
index 679b43e..9dd4abc 100644
--- a/packages/DocumentsUI/res/values-ro/strings.xml
+++ b/packages/DocumentsUI/res/values-ro/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ascundeți cardul SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Afișați mărime fișiere"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Ascundeți mărime fișiere"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selectate"</string>
<string name="sort_name" msgid="9183560467917256779">"După nume"</string>
<string name="sort_date" msgid="586080032956151448">"După data modificării"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Fișierul nu poate fi deschis"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Unele documente nu au putut fi șterse"</string>
<string name="share_via" msgid="8966594246261344259">"Distribuiți prin"</string>
- <string name="cancel" msgid="6442560571259935130">"Anulați"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Se copiază fișierele"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Timp rămas: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,6 +66,14 @@
<item quantity="other">Se copiază <xliff:g id="COUNT_1">%1$d</xliff:g> de fișiere.</item>
<item quantity="one">Se copiază <xliff:g id="COUNT_0">%1$d</xliff:g> fișier.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Se pregătește copierea..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ru/strings.xml b/packages/DocumentsUI/res/values-ru/strings.xml
index 651aa60..839dd27 100644
--- a/packages/DocumentsUI/res/values-ru/strings.xml
+++ b/packages/DocumentsUI/res/values-ru/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Скрыть SD-карту"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Показать размер файлов"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Скрыть размер файлов"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Выбрано: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"По названию"</string>
<string name="sort_date" msgid="586080032956151448">"По дате изменения"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Не удалось открыть файл"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Не удалось удалить некоторые документы"</string>
<string name="share_via" msgid="8966594246261344259">"Поделиться"</string>
- <string name="cancel" msgid="6442560571259935130">"Отмена"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Копирование файлов"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Осталось <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -66,6 +67,14 @@
<item quantity="many">Копируется <xliff:g id="COUNT_1">%1$d</xliff:g> файлов...</item>
<item quantity="other">Копируется <xliff:g id="COUNT_1">%1$d</xliff:g> файла...</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Подготовка к копированию…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-si-rLK/strings.xml b/packages/DocumentsUI/res/values-si-rLK/strings.xml
index e388195..d7b6cd9 100644
--- a/packages/DocumentsUI/res/values-si-rLK/strings.xml
+++ b/packages/DocumentsUI/res/values-si-rLK/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD කාඩ් පත සඟවන්න"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"ගොනු ප්‍රමණය පෙන්වන්න"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"ගොනු ප්‍රමණය සඟවන්න"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ක් තෝරාගන්නා ලදි"</string>
<string name="sort_name" msgid="9183560467917256779">"නමින්"</string>
<string name="sort_date" msgid="586080032956151448">"වෙනස් කරන ලද දිනයෙන්"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"ගොනුව විවෘත කළ නොහැක"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"සමහර ලේඛන මැකීමට නොහැකි විය"</string>
<string name="share_via" msgid="8966594246261344259">"හරහා බෙදාගන්න"</string>
- <string name="cancel" msgid="6442560571259935130">"අවලංගු කරන්න"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"ගොනු පිටපත් කරමින්"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ඉතිරියි"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="one">ගොනු <xliff:g id="COUNT_1">%1$d</xliff:g> ක් පිටපත් කරමින්.</item>
<item quantity="other">ගොනු <xliff:g id="COUNT_1">%1$d</xliff:g> ක් පිටපත් කරමින්.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"පිටපතක් සඳහා සූදානම් කරමින්..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-sk/strings.xml b/packages/DocumentsUI/res/values-sk/strings.xml
index 5c5451b..f4e401a 100644
--- a/packages/DocumentsUI/res/values-sk/strings.xml
+++ b/packages/DocumentsUI/res/values-sk/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skryť kartu SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Zobraziť veľkosť súboru"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Skryť veľkosť súboru"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Vybraté: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Podľa názvu"</string>
<string name="sort_date" msgid="586080032956151448">"Podľa dátumu zmeny"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Súbor sa nepodarilo otvoriť"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Niektoré dokumenty sa nepodarilo odstrániť"</string>
<string name="share_via" msgid="8966594246261344259">"Zdieľať pomocou"</string>
- <string name="cancel" msgid="6442560571259935130">"Zrušiť"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopírovanie súborov"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Zostáva: <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -66,6 +67,14 @@
<item quantity="other">Kopíruje sa <xliff:g id="COUNT_1">%1$d</xliff:g> súborov.</item>
<item quantity="one">Kopíruje sa <xliff:g id="COUNT_0">%1$d</xliff:g> súbor.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Pripravuje sa na kopírovanie..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-sl/strings.xml b/packages/DocumentsUI/res/values-sl/strings.xml
index 76a9107..2e57114 100644
--- a/packages/DocumentsUI/res/values-sl/strings.xml
+++ b/packages/DocumentsUI/res/values-sl/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skrij kartico SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Pokaži velikost datoteke"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Skrij velikost datoteke"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Št. izbranih: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Po imenu"</string>
<string name="sort_date" msgid="586080032956151448">"Po datumu spremembe"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Datoteke ni mogoče odpreti"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Nekaterih dokumentov ni mogoče izbrisati"</string>
<string name="share_via" msgid="8966594246261344259">"Deli z drugimi prek"</string>
- <string name="cancel" msgid="6442560571259935130">"Prekliči"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopiranje datotek"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Še <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -66,6 +67,14 @@
<item quantity="few">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datotek.</item>
<item quantity="other">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datotek.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Pripravljanje na kopiranje …"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-sr/strings.xml b/packages/DocumentsUI/res/values-sr/strings.xml
index a2f9eb7..7c3f2c9 100644
--- a/packages/DocumentsUI/res/values-sr/strings.xml
+++ b/packages/DocumentsUI/res/values-sr/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Сакриј SD картицу"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Прикажи величину датотеке"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Сакриј величину датотеке"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Изабрано је <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Према имену"</string>
<string name="sort_date" msgid="586080032956151448">"Према датуму измене"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Није могуће отворити датотеку"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Није могуће избрисати неке документе"</string>
<string name="share_via" msgid="8966594246261344259">"Делите преко"</string>
- <string name="cancel" msgid="6442560571259935130">"Откажи"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Копирање датотека"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Још <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,6 +66,14 @@
<item quantity="few">Копирање <xliff:g id="COUNT_1">%1$d</xliff:g> датотеке.</item>
<item quantity="other">Копирање <xliff:g id="COUNT_1">%1$d</xliff:g> датотека.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Припрема се копирање…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-sv/strings.xml b/packages/DocumentsUI/res/values-sv/strings.xml
index fe852b0..cafba2c 100644
--- a/packages/DocumentsUI/res/values-sv/strings.xml
+++ b/packages/DocumentsUI/res/values-sv/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Dölj SD-kort"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Visa filstorlek"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Dölj filstorlek"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Har valt <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Efter namn"</string>
<string name="sort_date" msgid="586080032956151448">"Efter ändringsdatum"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Det går inte att öppna filen"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Det gick inte att ta bort vissa dokument"</string>
<string name="share_via" msgid="8966594246261344259">"Dela via"</string>
- <string name="cancel" msgid="6442560571259935130">"Avbryt"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kopierar filer"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> återstår"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Kopierar <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item>
<item quantity="one">Kopierar <xliff:g id="COUNT_0">%1$d</xliff:g> fil.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Kopieringen förbereds …"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-sw/strings.xml b/packages/DocumentsUI/res/values-sw/strings.xml
index a9d0ad6..61f5874 100644
--- a/packages/DocumentsUI/res/values-sw/strings.xml
+++ b/packages/DocumentsUI/res/values-sw/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ficha kadi ya SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Onyesha ukubwa wa faili"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Ficha ukubwa wa faili"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> zimechaguliwa"</string>
<string name="sort_name" msgid="9183560467917256779">"Kwa jina"</string>
<string name="sort_date" msgid="586080032956151448">"Kwa tarehe viliporekebishwa"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Haiwezi kufungua faili"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Imeshindwa kufuta baadhi ya hati"</string>
<string name="share_via" msgid="8966594246261344259">"Shiriki kupitia"</string>
- <string name="cancel" msgid="6442560571259935130">"Ghairi"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Inanakili faili"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Zimesalia <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Inanakili faili <xliff:g id="COUNT_1">%1$d</xliff:g>.</item>
<item quantity="one">Inanakili faili <xliff:g id="COUNT_0">%1$d</xliff:g>.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Inaanda kunakili..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ta-rIN/strings.xml b/packages/DocumentsUI/res/values-ta-rIN/strings.xml
index b597486..6ce4983 100644
--- a/packages/DocumentsUI/res/values-ta-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-ta-rIN/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD கார்டை மறை"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"கோப்பு அளவைக் காட்டு"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"கோப்பு அளவை மறை"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> தேர்ந்தெடுக்கப்பட்டன"</string>
<string name="sort_name" msgid="9183560467917256779">"பெயரின்படி"</string>
<string name="sort_date" msgid="586080032956151448">"தேதியின்படி திருத்தப்பட்டது"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"கோப்பைத் திறக்க முடியவில்லை"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"சில ஆவணங்களை நீக்க முடியவில்லை"</string>
<string name="share_via" msgid="8966594246261344259">"இதன் வழியாகப் பகிர்"</string>
- <string name="cancel" msgid="6442560571259935130">"ரத்துசெய்"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"கோப்புகளை நகலெடுத்தல்"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> மீதமுள்ளது"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> கோப்புகளை நகலெடுக்கிறது.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> கோப்பை நகலெடுக்கிறது.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"நகல் தயாராகிறது…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-te-rIN/strings.xml b/packages/DocumentsUI/res/values-te-rIN/strings.xml
index 512d365..8215fcd 100644
--- a/packages/DocumentsUI/res/values-te-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-te-rIN/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD కార్డ్‌ను దాచు"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"ఫైల్ పరిమాణాన్ని చూపు"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"ఫైల్ పరిమాణాన్ని దాచు"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ఎంచుకోబడ్డాయి"</string>
<string name="sort_name" msgid="9183560467917256779">"పేరు ద్వారా"</string>
<string name="sort_date" msgid="586080032956151448">"సవరించిన తేదీ ద్వారా"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"ఫైల్‌ను తెరవడం సాధ్యపడదు"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"కొన్ని పత్రాలను తొలగించడం సాధ్యపడలేదు"</string>
<string name="share_via" msgid="8966594246261344259">"దీని ద్వారా భాగస్వామ్యం చేయండి"</string>
- <string name="cancel" msgid="6442560571259935130">"రద్దు చేయండి"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"ఫైల్‌లు కాపీ అవుతున్నాయి"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> మిగిలి ఉంది"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ఫైల్‌లను కాపీ చేస్తోంది.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ఫైల్‌ను కాపీ చేస్తోంది.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"కాపీ చేయడానికి సిద్ధం చేస్తోంది…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-th/strings.xml b/packages/DocumentsUI/res/values-th/strings.xml
index 378103b..eb2c2ed 100644
--- a/packages/DocumentsUI/res/values-th/strings.xml
+++ b/packages/DocumentsUI/res/values-th/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"ซ่อนการ์ด SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"แสดงขนาดไฟล์"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"ซ่อนขนาดไฟล์"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"เลือกไว้ <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"ตามชื่อ"</string>
<string name="sort_date" msgid="586080032956151448">"ตามวันที่ที่ปรับเปลี่ยน"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"ไม่สามารถเปิดไฟล์ได้"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"ไม่สามารถลบเอกสารบางรายการ"</string>
<string name="share_via" msgid="8966594246261344259">"แชร์ผ่าน"</string>
- <string name="cancel" msgid="6442560571259935130">"ยกเลิก"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"กำลังคัดลอกไฟล์"</string>
<string name="copy_remaining" msgid="6283790937387975095">"เหลือ <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">กำลังคัดลอก <xliff:g id="COUNT_1">%1$d</xliff:g> ไฟล์</item>
<item quantity="one">กำลังคัดลอก <xliff:g id="COUNT_0">%1$d</xliff:g> ไฟล์</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"กำลังเตรียมการคัดลอก…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-tl/strings.xml b/packages/DocumentsUI/res/values-tl/strings.xml
index b0bf5eb..27cfc6c 100644
--- a/packages/DocumentsUI/res/values-tl/strings.xml
+++ b/packages/DocumentsUI/res/values-tl/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Itago ang SD card"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Ipakita ang laki ng file"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Itago ang laki ng file"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ang pinili"</string>
<string name="sort_name" msgid="9183560467917256779">"Ayon sa pangalan"</string>
<string name="sort_date" msgid="586080032956151448">"Ayon sa petsa ng pagbago"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Hindi mabuksan ang file"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Hindi matanggal ang ilang dokumento"</string>
<string name="share_via" msgid="8966594246261344259">"Ibahagi sa pamamagitan ng"</string>
- <string name="cancel" msgid="6442560571259935130">"Kanselahin"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Kinokopya ang mga file"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> na lang ang natitira"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="other">Kumokopya ng <xliff:g id="COUNT_1">%1$d</xliff:g> na file.</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"Naghahanda para sa pagkopya…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-tr/strings.xml b/packages/DocumentsUI/res/values-tr/strings.xml
index f4f9363..cb18930 100644
--- a/packages/DocumentsUI/res/values-tr/strings.xml
+++ b/packages/DocumentsUI/res/values-tr/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD kartı gizle"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Dosya boyutunu göster"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Dosya boyutunu gizle"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> tane seçildi"</string>
<string name="sort_name" msgid="9183560467917256779">"Ada göre"</string>
<string name="sort_date" msgid="586080032956151448">"Değişiklik tarihine göre"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Dosya açılamıyor"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Bazı dokümanlar silinemiyor"</string>
<string name="share_via" msgid="8966594246261344259">"Şunu kullanarak paylaş:"</string>
- <string name="cancel" msgid="6442560571259935130">"İptal"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Dosyalar kopyalanıyor"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> kaldı"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> dosya kopyalanıyor.</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> dosya kopyalanıyor.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Kopyalanmak için hazırlanıyor…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-uk/strings.xml b/packages/DocumentsUI/res/values-uk/strings.xml
index 9781d11..9c4f1b0 100644
--- a/packages/DocumentsUI/res/values-uk/strings.xml
+++ b/packages/DocumentsUI/res/values-uk/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Сховати карту SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Показати розмір файлу"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Сховати розмір файлу"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Вибрано <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"За назвою"</string>
<string name="sort_date" msgid="586080032956151448">"За датою змінення"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Не вдалося відкрити файл"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Не вдалося видалити деякі документи"</string>
<string name="share_via" msgid="8966594246261344259">"Надіслати через"</string>
- <string name="cancel" msgid="6442560571259935130">"Скасувати"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Копіювання файлів"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Залишилося <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -66,6 +67,14 @@
<item quantity="many">Копіювання <xliff:g id="COUNT_1">%1$d</xliff:g> файлів.</item>
<item quantity="other">Копіювання <xliff:g id="COUNT_1">%1$d</xliff:g> файлу.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Підготовка до копіювання…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-ur-rPK/strings.xml b/packages/DocumentsUI/res/values-ur-rPK/strings.xml
index c07d607d..33710c5 100644
--- a/packages/DocumentsUI/res/values-ur-rPK/strings.xml
+++ b/packages/DocumentsUI/res/values-ur-rPK/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"‏SD کارڈ چھپائیں"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"فائل سائز دکھائیں"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"فائل سائز چھپائیں"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> کو منتخب کیا گیا"</string>
<string name="sort_name" msgid="9183560467917256779">"نام کے لحاظ سے"</string>
<string name="sort_date" msgid="586080032956151448">"ترمیم کی تاریخ کے لحاظ سے"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"فائل نہيں کھول سکتے ہیں"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"کچھ دستاویزات کو حذف کرنے سے قاصر"</string>
<string name="share_via" msgid="8966594246261344259">"اشتراک کریں بذریعہ"</string>
- <string name="cancel" msgid="6442560571259935130">"منسوخ کریں"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"فائلیں کاپی ہو رہی ہیں"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> باقی ہے"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> فائلیں کاپی کی جا رہی ہیں۔</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> فائل کاپی کی جا رہی ہے۔</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"کاپی کیلئے تیار ہو رہا ہے…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-uz-rUZ/strings.xml b/packages/DocumentsUI/res/values-uz-rUZ/strings.xml
index c3eaded..1b73b34 100644
--- a/packages/DocumentsUI/res/values-uz-rUZ/strings.xml
+++ b/packages/DocumentsUI/res/values-uz-rUZ/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD kartani berkitish"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Fayl hajmini ko‘rsatish"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Fayl hajmini berkitish"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> belgilandi"</string>
<string name="sort_name" msgid="9183560467917256779">"Nomi bo‘yicha"</string>
<string name="sort_date" msgid="586080032956151448">"Tahrir sanasi bo‘yicha"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Fayl ochilmadi"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Ba’zi hujjatlar o‘chirilmadi"</string>
<string name="share_via" msgid="8966594246261344259">"Quyidagi orqali ulashish"</string>
- <string name="cancel" msgid="6442560571259935130">"Bekor qilish"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Fayllar nusxalanmoqda"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> qoldi"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> ta fayl nusxalanmoqda</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"Nuxsa olishga tayyorgarlik..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-vi/strings.xml b/packages/DocumentsUI/res/values-vi/strings.xml
index 78bccec..70a7af3 100644
--- a/packages/DocumentsUI/res/values-vi/strings.xml
+++ b/packages/DocumentsUI/res/values-vi/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ẩn thẻ SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Hiển thị kích thước tệp"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Ẩn kích thước tệp"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"Đã chọn <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="sort_name" msgid="9183560467917256779">"Theo tên"</string>
<string name="sort_date" msgid="586080032956151448">"Theo ngày sửa đổi"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"Không thể mở tệp"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Không thể xóa một số tài liệu"</string>
<string name="share_via" msgid="8966594246261344259">"Chia sẻ qua"</string>
- <string name="cancel" msgid="6442560571259935130">"Hủy"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Đang sao chép tệp"</string>
<string name="copy_remaining" msgid="6283790937387975095">"Còn <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">Đang sao chép <xliff:g id="COUNT_1">%1$d</xliff:g> tệp.</item>
<item quantity="one">Đang sao chép <xliff:g id="COUNT_0">%1$d</xliff:g> tệp.</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"Đang chuẩn bị sao chép…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-zh-rCN/strings.xml b/packages/DocumentsUI/res/values-zh-rCN/strings.xml
index 78fe5e3..0097017 100644
--- a/packages/DocumentsUI/res/values-zh-rCN/strings.xml
+++ b/packages/DocumentsUI/res/values-zh-rCN/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"隐藏SD卡"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"显示文件大小"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"隐藏文件大小"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"已选择<xliff:g id="COUNT">%1$d</xliff:g>项"</string>
<string name="sort_name" msgid="9183560467917256779">"按名称"</string>
<string name="sort_date" msgid="586080032956151448">"按修改日期"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"无法打开文件"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"无法删除部分文档"</string>
<string name="share_via" msgid="8966594246261344259">"分享方式"</string>
- <string name="cancel" msgid="6442560571259935130">"取消"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"正在复制文件"</string>
<string name="copy_remaining" msgid="6283790937387975095">"剩余时间:<xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">正在复制 <xliff:g id="COUNT_1">%1$d</xliff:g> 个文件。</item>
<item quantity="one">正在复制 <xliff:g id="COUNT_0">%1$d</xliff:g> 个文件。</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"正在准备复制…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-zh-rHK/strings.xml b/packages/DocumentsUI/res/values-zh-rHK/strings.xml
index f8ed983..34dcfa5 100644
--- a/packages/DocumentsUI/res/values-zh-rHK/strings.xml
+++ b/packages/DocumentsUI/res/values-zh-rHK/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"隱藏 SD 卡"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"顯示檔案大小"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"隱藏檔案大小"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"已選取 <xliff:g id="COUNT">%1$d</xliff:g> 個"</string>
<string name="sort_name" msgid="9183560467917256779">"按名稱"</string>
<string name="sort_date" msgid="586080032956151448">"按修改日期"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"無法開啟檔案"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"無法刪除部分文件"</string>
<string name="share_via" msgid="8966594246261344259">"分享方式:"</string>
- <string name="cancel" msgid="6442560571259935130">"取消"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"正在複製檔案"</string>
<string name="copy_remaining" msgid="6283790937387975095">"剩餘 <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">正在複製 <xliff:g id="COUNT_1">%1$d</xliff:g> 個檔案。</item>
<item quantity="one">正在複製 <xliff:g id="COUNT_0">%1$d</xliff:g> 個檔案。</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"正在準備複製…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-zh-rTW/strings.xml b/packages/DocumentsUI/res/values-zh-rTW/strings.xml
index 8372133..62a6488 100644
--- a/packages/DocumentsUI/res/values-zh-rTW/strings.xml
+++ b/packages/DocumentsUI/res/values-zh-rTW/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"隱藏 SD 卡"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"顯示檔案大小"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"隱藏檔案大小"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"已選取 <xliff:g id="COUNT">%1$d</xliff:g> 個項目"</string>
<string name="sort_name" msgid="9183560467917256779">"依名稱"</string>
<string name="sort_date" msgid="586080032956151448">"依修改日期"</string>
@@ -57,13 +59,20 @@
<string name="toast_no_application" msgid="1339885974067891667">"無法開啟檔案"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"無法刪除部分文件"</string>
<string name="share_via" msgid="8966594246261344259">"分享方式:"</string>
- <string name="cancel" msgid="6442560571259935130">"取消"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"複製檔案"</string>
<string name="copy_remaining" msgid="6283790937387975095">"剩餘 <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
<item quantity="other">正在複製 <xliff:g id="COUNT_1">%1$d</xliff:g> 個檔案。</item>
<item quantity="one">正在複製 <xliff:g id="COUNT_0">%1$d</xliff:g> 個檔案。</item>
</plurals>
- <!-- no translation found for copy_preparing (3896202461003039386) -->
+ <string name="copy_preparing" msgid="3896202461003039386">"正在準備複製…"</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
<skip />
</resources>
diff --git a/packages/DocumentsUI/res/values-zu/strings.xml b/packages/DocumentsUI/res/values-zu/strings.xml
index 3178117..c97e0bf 100644
--- a/packages/DocumentsUI/res/values-zu/strings.xml
+++ b/packages/DocumentsUI/res/values-zu/strings.xml
@@ -38,6 +38,8 @@
<string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Fihla ikhadi le-SD"</string>
<string name="menu_file_size_show" msgid="3240323619260823076">"Bonisa usayizi wefayela"</string>
<string name="menu_file_size_hide" msgid="8881975928502581042">"Fihla usayizi wefayela"</string>
+ <!-- no translation found for button_copy (8706475544635021302) -->
+ <skip />
<string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> okukhethiwe"</string>
<string name="sort_name" msgid="9183560467917256779">"Ngegama"</string>
<string name="sort_date" msgid="586080032956151448">"Ngedethi yokuguqula"</string>
@@ -57,7 +59,6 @@
<string name="toast_no_application" msgid="1339885974067891667">"Ayikwazi ukuvula ifayela"</string>
<string name="toast_failed_delete" msgid="2180678019407244069">"Ayikwazi ukususa amanye amadokhumenti"</string>
<string name="share_via" msgid="8966594246261344259">"Yabelana nge-"</string>
- <string name="cancel" msgid="6442560571259935130">"Khansela"</string>
<string name="copy_notification_title" msgid="6374299806748219777">"Ikopisha amafayela"</string>
<string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> okusele"</string>
<plurals name="copy_begin" formatted="false" msgid="9071199452634086365">
@@ -65,4 +66,13 @@
<item quantity="other">Ikopisha amafayela angu-<xliff:g id="COUNT_1">%1$d</xliff:g>.</item>
</plurals>
<string name="copy_preparing" msgid="3896202461003039386">"Ilungiselela ukukopisha..."</string>
+ <!-- no translation found for copy_error_notification_title (4911333304372840735) -->
+ <!-- no translation found for notification_touch_for_details (4483108577842961665) -->
+ <skip />
+ <!-- no translation found for retry (7564024179122207376) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_title (616726451967793549) -->
+ <skip />
+ <!-- no translation found for copy_failure_alert_content (2655232627616241542) -->
+ <skip />
</resources>
diff --git a/packages/DocumentsUI/res/values/strings.xml b/packages/DocumentsUI/res/values/strings.xml
index 3ca239a..062d433 100644
--- a/packages/DocumentsUI/res/values/strings.xml
+++ b/packages/DocumentsUI/res/values/strings.xml
@@ -65,6 +65,9 @@
<!-- Menu item that hides the sizes of displayed files [CHAR LIMIT=24] -->
<string name="menu_file_size_hide">Hide file size</string>
+ <!-- Button label that copies files to the current directory [CHAR LIMIT=48] -->
+ <string name="button_copy">Copy</string>
+
<!-- Action mode title summarizing the number of documents selected [CHAR LIMIT=32] -->
<string name="mode_selected_count"><xliff:g id="count" example="3">%1$d</xliff:g> selected</string>
@@ -112,8 +115,6 @@
<!-- Title of dialog when prompting user to select an app to share documents with [CHAR LIMIT=32] -->
<string name="share_via">Share via</string>
- <!-- Title of the cancel button [CHAR LIMIT=24] -->
- <string name="cancel">Cancel</string>
<!-- Title of the copy notification [CHAR LIMIT=24] -->
<string name="copy_notification_title">Copying files</string>
<!-- Text shown on the copy notification to indicate remaining time, in minutes [CHAR LIMIT=24] -->
@@ -125,5 +126,17 @@
</plurals>
<!-- Text shown on the copy notification while DocumentsUI performs setup in preparation for copying files [CHAR LIMIT=32] -->
<string name="copy_preparing">Preparing for copy\u2026</string>
-
+ <!-- Title of the copy error notification [CHAR LIMIT=48] -->
+ <plurals name="copy_error_notification_title">
+ <item quantity="one">Error copying <xliff:g id="count" example="1">%1$d</xliff:g> file.</item>
+ <item quantity="other">Error copying <xliff:g id="count" example="1">%1$d</xliff:g> files.</item>
+ </plurals>
+ <!-- Second line for notifications saying that more information will be shown after touching [CHAR LIMIT=48] -->
+ <string name="notification_touch_for_details">Touch to view details</string>
+ <!-- Label of a dialog button for retrying a failed operation [CHAR LIMIT=24] -->
+ <string name="retry">Retry</string>
+ <!-- Title of the copying failure alert dialog. [CHAR LIMIT=48] -->
+ <string name="copy_failure_alert_title">Error copying files</string>
+ <!-- Contents of the copying failure alert dialog. [CHAR LIMIT=48] -->
+ <string name="copy_failure_alert_content">Following files are not copied: <xliff:g id="list">%1$s</xliff:g></string>
</resources>
diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
index bd17401..66792da 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
@@ -33,10 +33,6 @@ import com.android.documentsui.model.RootInfo;
import com.google.common.collect.Maps;
abstract class BaseActivity extends Activity {
- /** Intent action name to open copy destination. */
- public static String ACTION_OPEN_COPY_DESTINATION_STRING =
- "com.android.documentsui.OPEN_COPY_DESTINATION";
-
public abstract State getDisplayState();
public abstract RootInfo getCurrentRoot();
public abstract void onStateChanged();
@@ -56,6 +52,18 @@ abstract class BaseActivity extends Activity {
return (BaseActivity) fragment.getActivity();
}
+ public static abstract class DocumentsIntent {
+ /** Intent action name to open copy destination. */
+ public static String ACTION_OPEN_COPY_DESTINATION =
+ "com.android.documentsui.OPEN_COPY_DESTINATION";
+
+ /**
+ * Extra boolean flag for ACTION_OPEN_COPY_DESTINATION_STRING, which
+ * specifies if the destination directory needs to create new directory or not.
+ */
+ public static String EXTRA_DIRECTORY_COPY = "com.android.documentsui.DIRECTORY_COPY";
+ }
+
public static class State implements android.os.Parcelable {
public int action;
public String[] acceptMimes;
@@ -77,6 +85,7 @@ abstract class BaseActivity extends Activity {
public boolean showAdvanced = false;
public boolean stackTouched = false;
public boolean restored = false;
+ public boolean directoryCopy = false;
/** Current user navigation stack; empty implies recents. */
public DocumentStack stack = new DocumentStack();
diff --git a/packages/DocumentsUI/src/com/android/documentsui/CopyService.java b/packages/DocumentsUI/src/com/android/documentsui/CopyService.java
index e140f33..d2ef3d7 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/CopyService.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/CopyService.java
@@ -57,6 +57,10 @@ public class CopyService extends IntentService {
private static final String EXTRA_CANCEL = "com.android.documentsui.CANCEL";
public static final String EXTRA_SRC_LIST = "com.android.documentsui.SRC_LIST";
public static final String EXTRA_STACK = "com.android.documentsui.STACK";
+ public static final String EXTRA_FAILURE = "com.android.documentsui.FAILURE";
+
+ // TODO: Move it to a shared file when more operations are implemented.
+ public static final int FAILURE_COPY = 1;
private NotificationManager mNotificationManager;
private Notification.Builder mProgressBuilder;
@@ -66,7 +70,7 @@ public class CopyService extends IntentService {
private volatile boolean mIsCancelled;
// Parameters of the copy job. Requests to an IntentService are serialized so this code only
// needs to deal with one job at a time.
- private final List<Uri> mFailedFiles;
+ private final ArrayList<Uri> mFailedFiles;
private long mBatchSize;
private long mBytesCopied;
private long mStartTime;
@@ -128,7 +132,23 @@ public class CopyService extends IntentService {
mNotificationManager.cancel(mJobId, 0);
if (mFailedFiles.size() > 0) {
- // TODO: Display a notification when an error has occurred.
+ final Context context = getApplicationContext();
+ final Intent navigateIntent = new Intent(context, StandaloneActivity.class);
+ navigateIntent.putExtra(EXTRA_STACK, (Parcelable) stack);
+ navigateIntent.putExtra(EXTRA_FAILURE, FAILURE_COPY);
+ navigateIntent.putParcelableArrayListExtra(EXTRA_SRC_LIST, mFailedFiles);
+
+ final Notification.Builder errorBuilder = new Notification.Builder(this)
+ .setContentTitle(context.getResources().
+ getQuantityString(R.plurals.copy_error_notification_title,
+ mFailedFiles.size(), mFailedFiles.size()))
+ .setContentText(getString(R.string.notification_touch_for_details))
+ .setContentIntent(PendingIntent.getActivity(context, 0, navigateIntent,
+ PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT))
+ .setCategory(Notification.CATEGORY_ERROR)
+ .setSmallIcon(R.drawable.ic_menu_copy)
+ .setAutoCancel(true);
+ mNotificationManager.notify(mJobId, 0, errorBuilder.build());
}
// TODO: Display a toast if the copy was cancelled.
@@ -158,18 +178,19 @@ public class CopyService extends IntentService {
final Context context = getApplicationContext();
final Intent navigateIntent = new Intent(context, StandaloneActivity.class);
- navigateIntent.putExtra(EXTRA_STACK, (Parcelable)stack);
+ navigateIntent.putExtra(EXTRA_STACK, (Parcelable) stack);
mProgressBuilder = new Notification.Builder(this)
.setContentTitle(getString(R.string.copy_notification_title))
.setContentIntent(PendingIntent.getActivity(context, 0, navigateIntent, 0))
.setCategory(Notification.CATEGORY_PROGRESS)
- .setSmallIcon(R.drawable.ic_menu_copy).setOngoing(true);
+ .setSmallIcon(R.drawable.ic_menu_copy)
+ .setOngoing(true);
final Intent cancelIntent = new Intent(this, CopyService.class);
cancelIntent.putExtra(EXTRA_CANCEL, mJobId);
mProgressBuilder.addAction(R.drawable.ic_cab_cancel,
- getString(R.string.cancel), PendingIntent.getService(this, 0,
+ getString(android.R.string.cancel), PendingIntent.getService(this, 0,
cancelIntent, PendingIntent.FLAG_ONE_SHOT));
// Send an initial progress notification.
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
index 61fcad2..e2e9807 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
@@ -683,10 +683,18 @@ public class DirectoryFragment extends Fragment {
// Pop up a dialog to pick a destination. This is inadequate but works for now.
// TODO: Implement a picker that is to spec.
final Intent intent = new Intent(
- BaseActivity.ACTION_OPEN_COPY_DESTINATION_STRING,
+ BaseActivity.DocumentsIntent.ACTION_OPEN_COPY_DESTINATION,
Uri.EMPTY,
getActivity(),
DocumentsActivity.class);
+ boolean directoryCopy = false;
+ for (DocumentInfo info : docs) {
+ if (Document.MIME_TYPE_DIR.equals(info.mimeType)) {
+ directoryCopy = true;
+ break;
+ }
+ }
+ intent.putExtra(BaseActivity.DocumentsIntent.EXTRA_DIRECTORY_COPY, directoryCopy);
startActivityForResult(intent, REQUEST_COPY_DESTINATION);
}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java
index 1e798eb..a2a789f 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java
@@ -237,7 +237,7 @@ public class DocumentsActivity extends BaseActivity {
mState.action = ACTION_MANAGE;
} else if (DocumentsContract.ACTION_BROWSE_DOCUMENT_ROOT.equals(action)) {
mState.action = ACTION_BROWSE;
- } else if (ACTION_OPEN_COPY_DESTINATION_STRING.equals(action)) {
+ } else if (DocumentsIntent.ACTION_OPEN_COPY_DESTINATION.equals(action)) {
mState.action = ACTION_OPEN_COPY_DESTINATION;
}
@@ -265,6 +265,10 @@ public class DocumentsActivity extends BaseActivity {
} else {
mState.showSize = LocalPreferences.getDisplayFileSize(this);
}
+ if (mState.action == ACTION_OPEN_COPY_DESTINATION) {
+ mState.directoryCopy = intent.getBooleanExtra(
+ BaseActivity.DocumentsIntent.EXTRA_DIRECTORY_COPY, false);
+ }
}
private class RestoreRootTask extends AsyncTask<Void, Void, RootInfo> {
@@ -906,7 +910,7 @@ public class DocumentsActivity extends BaseActivity {
if (pick != null) {
final CharSequence displayName = (mState.stack.size() <= 1) ? root.title
: cwd.displayName;
- pick.setPickTarget(cwd, displayName);
+ pick.setPickTarget(mState.action, cwd, displayName);
}
}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/FailureDialogFragment.java b/packages/DocumentsUI/src/com/android/documentsui/FailureDialogFragment.java
new file mode 100644
index 0000000..1748c9c
--- /dev/null
+++ b/packages/DocumentsUI/src/com/android/documentsui/FailureDialogFragment.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.documentsui;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.DialogInterface;
+import android.net.Uri;
+import android.os.Bundle;
+import android.text.Html;
+
+import com.android.documentsui.model.DocumentInfo;
+
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+
+/**
+ * Alert dialog for failed operations.
+ */
+public class FailureDialogFragment extends DialogFragment
+ implements DialogInterface.OnClickListener {
+ private static final String TAG = "FailureDialogFragment";
+
+ private int mFailure;
+ private ArrayList<Uri> mFailedSrcList;
+
+ public static void show(FragmentManager fm, int failure, ArrayList<Uri> failedSrcList) {
+ // TODO: Add support for other failures than copy.
+ if (failure != CopyService.FAILURE_COPY) {
+ return;
+ }
+
+ final Bundle args = new Bundle();
+ args.putInt(CopyService.EXTRA_FAILURE, failure);
+ args.putParcelableArrayList(CopyService.EXTRA_SRC_LIST, failedSrcList);
+
+ final FragmentTransaction ft = fm.beginTransaction();
+ final FailureDialogFragment fragment = new FailureDialogFragment();
+ fragment.setArguments(args);
+
+ ft.add(fragment, TAG);
+ ft.commitAllowingStateLoss();
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int whichButton) {
+ // TODO: Pass mFailure and mFailedSrcList to the parent fragment.
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle inState) {
+ super.onCreate(inState);
+
+ mFailure = getArguments().getInt(CopyService.EXTRA_FAILURE);
+ mFailedSrcList = getArguments().getParcelableArrayList(CopyService.EXTRA_SRC_LIST);
+
+ final StringBuilder list = new StringBuilder("<p>");
+ for (Uri documentUri : mFailedSrcList) {
+ try {
+ final DocumentInfo documentInfo = DocumentInfo.fromUri(
+ getActivity().getContentResolver(), documentUri);
+ list.append(String.format("&#8226; %s<br>", documentInfo.displayName));
+ }
+ catch (FileNotFoundException ignore) {
+ // Source file most probably gone.
+ }
+ }
+ list.append("</p>");
+ final String message = String.format(getString(R.string.copy_failure_alert_content),
+ list.toString());
+
+ return new AlertDialog.Builder(getActivity())
+ .setTitle(getString(R.string.copy_failure_alert_title))
+ .setMessage(Html.fromHtml(message))
+ // TODO: Implement retrying the copy operation.
+ .setPositiveButton(R.string.retry, this)
+ .setNegativeButton(android.R.string.cancel, this)
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .create();
+ }
+}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/PickFragment.java b/packages/DocumentsUI/src/com/android/documentsui/PickFragment.java
index 4b008ca..5e565bf 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/PickFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/PickFragment.java
@@ -16,6 +16,8 @@
package com.android.documentsui;
+import android.R.string;
+import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
@@ -40,6 +42,7 @@ public class PickFragment extends Fragment {
private View mContainer;
private Button mPick;
+ private Button mCancel;
public static void show(FragmentManager fm) {
final PickFragment fragment = new PickFragment();
@@ -61,7 +64,10 @@ public class PickFragment extends Fragment {
mPick = (Button) mContainer.findViewById(android.R.id.button1);
mPick.setOnClickListener(mPickListener);
- setPickTarget(null, null);
+ mCancel = (Button) mContainer.findViewById(android.R.id.button2);
+ mCancel.setOnClickListener(mCancelListener);
+
+ setPickTarget(0, null, null);
return mContainer;
}
@@ -74,18 +80,43 @@ public class PickFragment extends Fragment {
}
};
- public void setPickTarget(DocumentInfo pickTarget, CharSequence displayName) {
- mPickTarget = pickTarget;
+ private View.OnClickListener mCancelListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ final BaseActivity activity = BaseActivity.get(PickFragment.this);
+ activity.setResult(Activity.RESULT_CANCELED);
+ activity.finish();
+ }
+ };
+ /**
+ * @param action Which action defined in BaseActivity.State is the picker shown for.
+ */
+ public void setPickTarget(int action,
+ DocumentInfo pickTarget,
+ CharSequence displayName) {
if (mContainer != null) {
- if (mPickTarget != null) {
+ if (pickTarget != null) {
mContainer.setVisibility(View.VISIBLE);
final Locale locale = getResources().getConfiguration().locale;
- final String raw = getString(R.string.menu_select).toUpperCase(locale);
- mPick.setText(TextUtils.expandTemplate(raw, displayName));
+ switch (action) {
+ case BaseActivity.State.ACTION_OPEN_TREE:
+ final String raw = getString(R.string.menu_select).toUpperCase(locale);
+ mPick.setText(TextUtils.expandTemplate(raw, displayName));
+ mCancel.setVisibility(View.GONE);
+ break;
+ case BaseActivity.State.ACTION_OPEN_COPY_DESTINATION:
+ mPick.setText(getString(R.string.button_copy).toUpperCase(locale));
+ mCancel.setVisibility(View.VISIBLE);
+ break;
+ default:
+ throw new IllegalArgumentException("Illegal action for PickFragment.");
+ }
+
} else {
mContainer.setVisibility(View.GONE);
}
}
+ mPickTarget = pickTarget;
}
}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
index d2267b1..27e8f20 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
@@ -367,6 +367,9 @@ public class RootsCache {
if (!state.showAdvanced && advanced) continue;
// Exclude non-local devices when local only
if (state.localOnly && !localOnly) continue;
+ // Exclude downloads roots that don't support directory creation
+ // TODO: Add flag to check the root supports directory creation or not.
+ if (state.directoryCopy && root.isDownloads()) continue;
// Only show empty roots when creating
if ((state.action != State.ACTION_CREATE ||
state.action != State.ACTION_OPEN_TREE ||
diff --git a/packages/DocumentsUI/src/com/android/documentsui/StandaloneActivity.java b/packages/DocumentsUI/src/com/android/documentsui/StandaloneActivity.java
index f542838..976f21d 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/StandaloneActivity.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/StandaloneActivity.java
@@ -63,6 +63,7 @@ import android.widget.TextView;
import android.widget.Toast;
import android.widget.Toolbar;
+import com.android.documentsui.FailureDialogFragment;
import com.android.documentsui.RecentsProvider.ResumeColumns;
import com.android.documentsui.model.DocumentInfo;
import com.android.documentsui.model.DocumentStack;
@@ -73,6 +74,7 @@ import libcore.io.IoUtils;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
@@ -153,6 +155,13 @@ public class StandaloneActivity extends BaseActivity {
RootsFragment.show(getFragmentManager(), null);
if (!mState.restored) {
new RestoreStackTask().execute();
+ final Intent intent = getIntent();
+ final int failure = intent.getIntExtra(CopyService.EXTRA_FAILURE, 0);
+ if (failure != 0) {
+ final ArrayList<Uri> failedSrcList = intent.getParcelableArrayListExtra(
+ CopyService.EXTRA_SRC_LIST);
+ FailureDialogFragment.show(getFragmentManager(), failure, failedSrcList);
+ }
} else {
onCurrentDirectoryChanged(ANIM_NONE);
}
diff --git a/packages/Keyguard/res/values-af/strings.xml b/packages/Keyguard/res/values-af/strings.xml
index 3fa6c5c..0eb378f 100644
--- a/packages/Keyguard/res/values-af/strings.xml
+++ b/packages/Keyguard/res/values-af/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Volgende wekker gestel vir <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Vee uit"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Invoersleutel"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Noodgeval"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Het jy die patroon vergeet?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Verkeerde patroon"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Verkeerde wagwoord"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Geen diens nie."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Knoppie vir wissel van invoermetode."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Vliegtuigmodus"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nie herken nie"</string>
</resources>
diff --git a/packages/Keyguard/res/values-am/strings.xml b/packages/Keyguard/res/values-am/strings.xml
index 6e25c98..c95b404 100644
--- a/packages/Keyguard/res/values-am/strings.xml
+++ b/packages/Keyguard/res/values-am/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"ቀጣዩ ማንቂያ ለ<xliff:g id="ALARM">%1$s</xliff:g> ተዘጋጅቷል"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ሰርዝ"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"አስገባ"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"ድንገተኛ አደጋ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ስርዓተ ጥለቱን እርሳ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"የተሳሳተ ስርዓተ ጥለት"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"የተሳሳተ ይለፍ ቃል"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"ከአገልግሎት መስጫ ክልል ውጪ።"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"የግቤት ስልት አዝራር ቀይር"</string>
<string name="airplane_mode" msgid="3122107900897202805">"የአውሮፕላን ሁነታ"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"አልታወቀም"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ar/strings.xml b/packages/Keyguard/res/values-ar/strings.xml
index 8acdbbd..5b919ba 100644
--- a/packages/Keyguard/res/values-ar/strings.xml
+++ b/packages/Keyguard/res/values-ar/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"تم ضبط التنبيه التالي على <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"حذف"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"الطوارئ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"نسيت النقش"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"نقش خاطئ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"كلمة مرور خاطئة"</string>
@@ -118,6 +117,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"لا تتوفر خدمة"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"زر تبديل طريقة الإدخال."</string>
<string name="airplane_mode" msgid="3122107900897202805">"وضع الطائرة"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"لم يتم التعرف عليها"</string>
</resources>
diff --git a/packages/Keyguard/res/values-bg/strings.xml b/packages/Keyguard/res/values-bg/strings.xml
index 9cbc853..97b04e4 100644
--- a/packages/Keyguard/res/values-bg/strings.xml
+++ b/packages/Keyguard/res/values-bg/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Следващият будилник е зададен за <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Изтриване"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Спешни случаи"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Забравена фигура"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Грешна фигура"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Грешна парола"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Няма покритие."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Бутон за превключване на метода на въвеждане."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Самолетен режим"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Не е разпознато"</string>
</resources>
diff --git a/packages/Keyguard/res/values-bn-rBD/strings.xml b/packages/Keyguard/res/values-bn-rBD/strings.xml
index 30e2f84..a67143a 100644
--- a/packages/Keyguard/res/values-bn-rBD/strings.xml
+++ b/packages/Keyguard/res/values-bn-rBD/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> এ পরবর্তী অ্যালার্ম সেট করা হয়েছে"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"মুছুন"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"জরুরী"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"প্যাটার্ন ভুলে গেছেন"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ভুল প্যাটার্ন"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"ভুল পাসওয়ার্ড"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"কোনো পরিষেবা নেই৷"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"ইনপুট পদ্ধতির বোতাম পরিবর্তন করুন৷"</string>
<string name="airplane_mode" msgid="3122107900897202805">"বিমান মোড"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"স্বীকৃত নয়"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ca/strings.xml b/packages/Keyguard/res/values-ca/strings.xml
index 454861c..6541d80 100644
--- a/packages/Keyguard/res/values-ca/strings.xml
+++ b/packages/Keyguard/res/values-ca/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"S\'ha definit la pròxima alarma per a les: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Suprimeix"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Retorn"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emergències"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Patró oblidat"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Patró incorrecte"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Contrasenya incorrecta"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Sense servei."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Botó de canvi del mètode d\'entrada."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Mode d\'avió"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"No s\'ha reconegut"</string>
</resources>
diff --git a/packages/Keyguard/res/values-cs/strings.xml b/packages/Keyguard/res/values-cs/strings.xml
index a2f70d0..b264141 100644
--- a/packages/Keyguard/res/values-cs/strings.xml
+++ b/packages/Keyguard/res/values-cs/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Další budík je nastaven na <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Smazat"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Stav nouze"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zapomenuté gesto"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nesprávné gesto"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Nesprávné heslo"</string>
@@ -114,6 +113,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Žádný signál."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Tlačítko přepnutí metody zadávání"</string>
<string name="airplane_mode" msgid="3122107900897202805">"Režim Letadlo"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nerozpoznáno"</string>
</resources>
diff --git a/packages/Keyguard/res/values-da/strings.xml b/packages/Keyguard/res/values-da/strings.xml
index f156ddd..a60a433 100644
--- a/packages/Keyguard/res/values-da/strings.xml
+++ b/packages/Keyguard/res/values-da/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Næste alarm er indstillet til <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Slet"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Angiv"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Nødopkald"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Glemt mønster"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Forkert mønster"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Forkert adgangskode"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Ingen dækning."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Skift indtastningsmetode-knappen."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Flytilstand"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Kan ikke genkendes"</string>
</resources>
diff --git a/packages/Keyguard/res/values-de/strings.xml b/packages/Keyguard/res/values-de/strings.xml
index 1582a93..b46284a 100644
--- a/packages/Keyguard/res/values-de/strings.xml
+++ b/packages/Keyguard/res/values-de/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Nächster Wecker gestellt für <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Löschen"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Eingabetaste"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Notfall"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Muster vergessen"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Falsches Muster"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Falsches Passwort"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Kein Dienst"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Schaltfläche zum Ändern der Eingabemethode"</string>
<string name="airplane_mode" msgid="3122107900897202805">"Flugmodus"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nicht erkannt"</string>
</resources>
diff --git a/packages/Keyguard/res/values-el/strings.xml b/packages/Keyguard/res/values-el/strings.xml
index 9ed05ee..ff67a6f 100644
--- a/packages/Keyguard/res/values-el/strings.xml
+++ b/packages/Keyguard/res/values-el/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Το επόμενο ξυπνητήρι ορίστηκε στις <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Διαγραφή"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Επείγοντα περιστατικά"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Ξεχάσατε το μοτίβο"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Εσφαλμένο μοτίβο"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Εσφαλμένος κωδικός πρόσβασης"</string>
diff --git a/packages/Keyguard/res/values-en-rAU/strings.xml b/packages/Keyguard/res/values-en-rAU/strings.xml
index e856005..3b1adc9 100644
--- a/packages/Keyguard/res/values-en-rAU/strings.xml
+++ b/packages/Keyguard/res/values-en-rAU/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Next alarm set for <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emergency"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Wrong Password"</string>
diff --git a/packages/Keyguard/res/values-en-rGB/strings.xml b/packages/Keyguard/res/values-en-rGB/strings.xml
index e856005..3b1adc9 100644
--- a/packages/Keyguard/res/values-en-rGB/strings.xml
+++ b/packages/Keyguard/res/values-en-rGB/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Next alarm set for <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emergency"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Wrong Password"</string>
diff --git a/packages/Keyguard/res/values-en-rIN/strings.xml b/packages/Keyguard/res/values-en-rIN/strings.xml
index e856005..3b1adc9 100644
--- a/packages/Keyguard/res/values-en-rIN/strings.xml
+++ b/packages/Keyguard/res/values-en-rIN/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Next alarm set for <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emergency"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Forgot Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Wrong Pattern"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Wrong Password"</string>
diff --git a/packages/Keyguard/res/values-es-rUS/strings.xml b/packages/Keyguard/res/values-es-rUS/strings.xml
index 12c9d1e..e130c90 100644
--- a/packages/Keyguard/res/values-es-rUS/strings.xml
+++ b/packages/Keyguard/res/values-es-rUS/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próxima alarma establecida: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Eliminar"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Ingresar"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emergencias"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"¿Olvidaste el patrón?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Patrón incorrecto"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Contraseña incorrecta"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Sin servicio"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Botón Cambiar método de entrada"</string>
<string name="airplane_mode" msgid="3122107900897202805">"Modo de avión"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"No reconocido"</string>
</resources>
diff --git a/packages/Keyguard/res/values-es/strings.xml b/packages/Keyguard/res/values-es/strings.xml
index ff41e25..e7f0a50 100644
--- a/packages/Keyguard/res/values-es/strings.xml
+++ b/packages/Keyguard/res/values-es/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próxima alarma: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Eliminar"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Intro"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emergencia"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"¿Has olvidado el patrón?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"El patrón es incorrecto"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Contraseña incorrecta"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Sin servicio"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Botón Cambiar método de entrada"</string>
<string name="airplane_mode" msgid="3122107900897202805">"Modo avión"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"No reconocido"</string>
</resources>
diff --git a/packages/Keyguard/res/values-et-rEE/strings.xml b/packages/Keyguard/res/values-et-rEE/strings.xml
index f726214..3175e7b 100644
--- a/packages/Keyguard/res/values-et-rEE/strings.xml
+++ b/packages/Keyguard/res/values-et-rEE/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Järgmine alarm on määratud ajaks <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Kustuta"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Sisestusklahv"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Hädaabi"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Unustasin mustri"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Vale muster"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Vale parool"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Teenus puudub."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Sisestusmeetodi vahetamise nupp."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Lennukirežiim"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Ei tuvastatud"</string>
</resources>
diff --git a/packages/Keyguard/res/values-eu-rES/strings.xml b/packages/Keyguard/res/values-eu-rES/strings.xml
index 2f715e9..6a18667 100644
--- a/packages/Keyguard/res/values-eu-rES/strings.xml
+++ b/packages/Keyguard/res/values-eu-rES/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Hurrengo alarmak ordu honetan joko du: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Ezabatu"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Sartu"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Larrialdiak"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Eredua ahaztu zaizu"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Eredu okerra"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Pasahitz okerra"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Zerbitzurik gabe."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Idazketa-metodoa aldatzeko botoia."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Hegaldi modua"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Ez da ezagutzen"</string>
</resources>
diff --git a/packages/Keyguard/res/values-fa/strings.xml b/packages/Keyguard/res/values-fa/strings.xml
index ac7bdb5..b0bb6e6 100644
--- a/packages/Keyguard/res/values-fa/strings.xml
+++ b/packages/Keyguard/res/values-fa/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"زنگ هشدار بعدی برای <xliff:g id="ALARM">%1$s</xliff:g> تنظیم شد"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"اورژانس"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"الگو را فراموش کرده‌اید"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"الگوی اشتباه"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"گذرواژه اشتباه"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"خدماتی وجود ندارد."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"کلید تغییر روش ورود متن."</string>
<string name="airplane_mode" msgid="3122107900897202805">"حالت هواپیما"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"شناخته نشد"</string>
</resources>
diff --git a/packages/Keyguard/res/values-fi/strings.xml b/packages/Keyguard/res/values-fi/strings.xml
index b125264..459b32b 100644
--- a/packages/Keyguard/res/values-fi/strings.xml
+++ b/packages/Keyguard/res/values-fi/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Seuraava hälytys asetettu: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Poista"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Hätäpuhelu"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Unohtunut kuvio"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Väärä kuvio"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Väärä salasana"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Ei yhteyttä."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Syöttötavan vaihtopainike."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Lentokonetila"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Ei tunnistettu"</string>
</resources>
diff --git a/packages/Keyguard/res/values-fr-rCA/strings.xml b/packages/Keyguard/res/values-fr-rCA/strings.xml
index 90a751b..992faf8 100644
--- a/packages/Keyguard/res/values-fr-rCA/strings.xml
+++ b/packages/Keyguard/res/values-fr-rCA/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Heure de la prochaine alarme : <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Supprimer"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Entrée"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Urgence"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"J\'ai oublié le schéma"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Schéma incorrect."</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Mot de passe incorrect."</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Aucun service"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Bouton \"Changer le mode de saisie\""</string>
<string name="airplane_mode" msgid="3122107900897202805">"Mode Avion"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Doigt non reconnu"</string>
</resources>
diff --git a/packages/Keyguard/res/values-fr/strings.xml b/packages/Keyguard/res/values-fr/strings.xml
index 87c0112..48b5bc3 100644
--- a/packages/Keyguard/res/values-fr/strings.xml
+++ b/packages/Keyguard/res/values-fr/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Prochaine alarme définie à <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Supprimer"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Entrée"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Urgences"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"J\'ai oublié le schéma"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Schéma incorrect."</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Mot de passe incorrect."</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Aucun service"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Bouton \"Changer le mode de saisie\""</string>
<string name="airplane_mode" msgid="3122107900897202805">"Mode Avion"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Non reconnu"</string>
</resources>
diff --git a/packages/Keyguard/res/values-gl-rES/strings.xml b/packages/Keyguard/res/values-gl-rES/strings.xml
index b2a8144..8b6b0ba 100644
--- a/packages/Keyguard/res/values-gl-rES/strings.xml
+++ b/packages/Keyguard/res/values-gl-rES/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próxima alarma definida para <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Eliminar"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Intro"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emerxencia"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueciches o padrón"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Padrón incorrecto"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Contrasinal incorrecto"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Non hai servizo."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Cambiar o botón do método de entrada."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Modo avión"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Non se recoñece"</string>
</resources>
diff --git a/packages/Keyguard/res/values-hi/strings.xml b/packages/Keyguard/res/values-hi/strings.xml
index a701535..aa32759 100644
--- a/packages/Keyguard/res/values-hi/strings.xml
+++ b/packages/Keyguard/res/values-hi/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"अगला अलार्म <xliff:g id="ALARM">%1$s</xliff:g> के लिए सेट किया गया"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"हटाएं"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"आपातकाल"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"आकार भूल गए"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"गलत आकार"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"गलत पासवर्ड"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"कोई सेवा नहीं."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"इनपुट पद्धति‍ बटन स्विच करें."</string>
<string name="airplane_mode" msgid="3122107900897202805">"हवाई जहाज़ मोड"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"पहचाना नहीं गया"</string>
</resources>
diff --git a/packages/Keyguard/res/values-hr/strings.xml b/packages/Keyguard/res/values-hr/strings.xml
index ceacb95..cd280e3 100644
--- a/packages/Keyguard/res/values-hr/strings.xml
+++ b/packages/Keyguard/res/values-hr/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Sljedeći alarm postavljen za <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Izbriši"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Hitno"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Zaboravili ste obrazac"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Pogrešan obrazac"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Pogrešna zaporka"</string>
@@ -112,6 +111,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Nema usluge."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Gumb za promjenu načina unosa."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Način rada u zrakoplovu"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nije prepoznat"</string>
</resources>
diff --git a/packages/Keyguard/res/values-hu/strings.xml b/packages/Keyguard/res/values-hu/strings.xml
index 119618c..ead2f87 100644
--- a/packages/Keyguard/res/values-hu/strings.xml
+++ b/packages/Keyguard/res/values-hu/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"A következő riasztás beállított ideje: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Vészhívás"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Elfelejtett minta"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Helytelen minta"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Helytelen jelszó"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Nincs szolgáltatás."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Beviteli mód váltása gomb."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Repülős üzemmód"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nem sikerült felismerni"</string>
</resources>
diff --git a/packages/Keyguard/res/values-hy-rAM/strings.xml b/packages/Keyguard/res/values-hy-rAM/strings.xml
index 7e666c5..9b94ba0 100644
--- a/packages/Keyguard/res/values-hy-rAM/strings.xml
+++ b/packages/Keyguard/res/values-hy-rAM/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Հաջորդ զարթուցիչը դրված է <xliff:g id="ALARM">%1$s</xliff:g>-ի վրա"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Ջնջել"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Մուտք"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Արտակարգ իրավիճակ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Մոռացել եմ սխեման"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Սխալ սխեմա"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Սխալ գաղտնաբառ"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Ծառայություն չկա:"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Միացնել մուտքագրման եղանակի կոճակը:"</string>
<string name="airplane_mode" msgid="3122107900897202805">"Ինքնաթիռային ռեժիմ"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Չճանաչվեց"</string>
</resources>
diff --git a/packages/Keyguard/res/values-in/strings.xml b/packages/Keyguard/res/values-in/strings.xml
index 2c3a311..93484d2 100644
--- a/packages/Keyguard/res/values-in/strings.xml
+++ b/packages/Keyguard/res/values-in/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Alarm berikutnya disetel untuk <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Hapus"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Darurat"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Lupa Pola?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Pola Salah"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Sandi Salah"</string>
diff --git a/packages/Keyguard/res/values-is-rIS/strings.xml b/packages/Keyguard/res/values-is-rIS/strings.xml
index 154b2ba..9e88318 100644
--- a/packages/Keyguard/res/values-is-rIS/strings.xml
+++ b/packages/Keyguard/res/values-is-rIS/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Næsti vekjari stilltur á <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Eyða"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Neyðarsímtal"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Man ekki mynstrið"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Rangt mynstur"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Rangt aðgangsorð"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Ekkert símasamband."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Hnappur til að skipta um innsláttaraðferð."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Flugstilling"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Þekktist ekki"</string>
</resources>
diff --git a/packages/Keyguard/res/values-it/strings.xml b/packages/Keyguard/res/values-it/strings.xml
index 436de8b..c0c690b 100644
--- a/packages/Keyguard/res/values-it/strings.xml
+++ b/packages/Keyguard/res/values-it/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Prossima sveglia impostata a: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Canc"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Invio"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emergenza"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Sequenza dimenticata"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Sequenza sbagliata"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Password sbagliata"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Nessun servizio."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Pulsante per cambiare metodo di immissione."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Modalità aereo"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Non riconosciuto"</string>
</resources>
diff --git a/packages/Keyguard/res/values-iw/strings.xml b/packages/Keyguard/res/values-iw/strings.xml
index e7e2264..f817096 100644
--- a/packages/Keyguard/res/values-iw/strings.xml
+++ b/packages/Keyguard/res/values-iw/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"ההתראה הבאה נקבעה לשעה <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"מחק"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"חירום"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"שכחת את הקו"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"קו ביטול נעילה שגוי"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"סיסמה שגויה"</string>
diff --git a/packages/Keyguard/res/values-ja/strings.xml b/packages/Keyguard/res/values-ja/strings.xml
index 693223a..5f92356 100644
--- a/packages/Keyguard/res/values-ja/strings.xml
+++ b/packages/Keyguard/res/values-ja/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"次のアラームは<xliff:g id="ALARM">%1$s</xliff:g>に設定されました"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"削除"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"緊急通報"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"パターンを忘れた場合"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"パターンが正しくありません"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"パスワードが正しくありません"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"通信サービスはありません。"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"入力方法の切り替えボタン。"</string>
<string name="airplane_mode" msgid="3122107900897202805">"機内モード"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"認識されませんでした"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ka-rGE/strings.xml b/packages/Keyguard/res/values-ka-rGE/strings.xml
index 3f57e60..8ed74c7 100644
--- a/packages/Keyguard/res/values-ka-rGE/strings.xml
+++ b/packages/Keyguard/res/values-ka-rGE/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"შემდეგი მაღვიძარა დაყენებულია <xliff:g id="ALARM">%1$s</xliff:g>-ზე"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"წაშლა"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"შეყვანა"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"სასწრაფო"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"დაგავიწყდათ ნიმუში"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"არასწორი ნიმუში"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"არასწორი პაროლი"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"არ არის სერვისი."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"შეყვანის მეთოდის გადართვის ღილაკი."</string>
<string name="airplane_mode" msgid="3122107900897202805">"თვითმფრინავის რეჟიმი"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"არ არის ამოცნობილი"</string>
</resources>
diff --git a/packages/Keyguard/res/values-kk-rKZ/strings.xml b/packages/Keyguard/res/values-kk-rKZ/strings.xml
index d340689..2b38a2a 100644
--- a/packages/Keyguard/res/values-kk-rKZ/strings.xml
+++ b/packages/Keyguard/res/values-kk-rKZ/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Келесі дабыл <xliff:g id="ALARM">%1$s</xliff:g> уақытына орнатылған"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Жою"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Енгізу"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Төтенше жағдай"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Кескінді ұмытып қалу"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Қате кескін"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Қате кілтсөз"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Қызмет көрсетілмейді."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Енгізу әдісі түймесін ауыстыру."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Ұшақ режимі"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Анықталмаған"</string>
</resources>
diff --git a/packages/Keyguard/res/values-km-rKH/strings.xml b/packages/Keyguard/res/values-km-rKH/strings.xml
index e5a65d5..c278a47 100644
--- a/packages/Keyguard/res/values-km-rKH/strings.xml
+++ b/packages/Keyguard/res/values-km-rKH/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"ការ​ជូន​ដំណឹង​បន្ទាប់​កំណត់​សម្រាប់ <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"លុប"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"​បន្ទាន់"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ភ្លេច​​លំនាំ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"លំនាំ​មិន​ត្រឹមត្រូវ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"ពាក្យ​សម្ងាត់​មិន​ត្រឹមត្រូវ"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"គ្មាន​សេវា​"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"ប្ដូរ​ប៊ូតុង​វិធីសាស្ត្រ​បញ្ចូល។"</string>
<string name="airplane_mode" msgid="3122107900897202805">"របៀបក្នុងយន្តហោះ"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"មិនអាចសម្គាល់បានទេ"</string>
</resources>
diff --git a/packages/Keyguard/res/values-kn-rIN/strings.xml b/packages/Keyguard/res/values-kn-rIN/strings.xml
index da9de44..a5631a6 100644
--- a/packages/Keyguard/res/values-kn-rIN/strings.xml
+++ b/packages/Keyguard/res/values-kn-rIN/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> ಗೆ ಮುಂದಿನ ಅಲಾರಾಂ ಹೊಂದಿಸಲಾಗಿದೆ"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ಅಳಿಸು"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"ನಮೂದಿಸು"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"ತುರ್ತು"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ಮರೆತಿರುವಿರಿ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ತಪ್ಪು ಪ್ಯಾಟರ್ನ್"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"ತಪ್ಪಾದ ಪಾಸ್‌ವರ್ಡ್"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"ಯಾವುದೇ ಸೇವೆಯಿಲ್ಲ."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"ಇನ್‌ಪುಟ್ ವಿಧಾನ ಬದಲಿಸು ಬಟನ್."</string>
<string name="airplane_mode" msgid="3122107900897202805">"ಏರ್‌ಪ್ಲೇನ್ ಮೋಡ್"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"ಗುರುತಿಸಲಾಗಿಲ್ಲ"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ko/strings.xml b/packages/Keyguard/res/values-ko/strings.xml
index 232e5a8..37bf289 100644
--- a/packages/Keyguard/res/values-ko/strings.xml
+++ b/packages/Keyguard/res/values-ko/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"다음 알람이 <xliff:g id="ALARM">%1$s</xliff:g>(으)로 설정되었습니다."</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete 키"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter 키"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"긴급 전화"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"패턴을 잊음"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"잘못된 패턴"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"잘못된 비밀번호"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"서비스 불가"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"입력 방법 버튼을 전환합니다."</string>
<string name="airplane_mode" msgid="3122107900897202805">"비행기 모드"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"인식할 수 없습니다."</string>
</resources>
diff --git a/packages/Keyguard/res/values-ky-rKG/strings.xml b/packages/Keyguard/res/values-ky-rKG/strings.xml
index 0f51c82..cf7a07c 100644
--- a/packages/Keyguard/res/values-ky-rKG/strings.xml
+++ b/packages/Keyguard/res/values-ky-rKG/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Кийинки ойготкуч саат <xliff:g id="ALARM">%1$s</xliff:g> коюлган"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Жок кылуу"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Кирүү"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Тез жардам"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Үлгү унутулду"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Үлгү туура эмес"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Сырсөз туура эмес"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Байланыш жок."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Киргизүү ыкмасын которуу баскычы."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Учак режими"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Таанылган жок"</string>
</resources>
diff --git a/packages/Keyguard/res/values-lo-rLA/strings.xml b/packages/Keyguard/res/values-lo-rLA/strings.xml
index 6b6eeab..bcc1cf1 100644
--- a/packages/Keyguard/res/values-lo-rLA/strings.xml
+++ b/packages/Keyguard/res/values-lo-rLA/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"​ໂມງ​ປຸກ​ຕໍ່​ໄປ​ຖືກ​ຕັ້ງ​ໄວ້​ເວ​ລາ <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ລຶບ"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"ສຸກ​ເສີນ"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ລືມຮູບແບບປົດລັອກ?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ຮູບແບບຜິດ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ"</string>
diff --git a/packages/Keyguard/res/values-lt/strings.xml b/packages/Keyguard/res/values-lt/strings.xml
index ea74811..3bbf54f 100644
--- a/packages/Keyguard/res/values-lt/strings.xml
+++ b/packages/Keyguard/res/values-lt/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Kitas nustatytas signalas: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Ištrinti"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Įvesti"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Skambutis pagalbos numeriu"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Pamiršau atrakinimo piešinį"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Netinkamas atrakinimo piešinys"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Netinkamas slaptažodis"</string>
@@ -114,6 +113,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Nėra paslaugos."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Perjungti įvesties metodo mygtuką."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Lėktuvo režimas"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Neatpažintas"</string>
</resources>
diff --git a/packages/Keyguard/res/values-lv/strings.xml b/packages/Keyguard/res/values-lv/strings.xml
index 4e62830..3b03d0d 100644
--- a/packages/Keyguard/res/values-lv/strings.xml
+++ b/packages/Keyguard/res/values-lv/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Signāls iestatīts uz: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Dzēšanas taustiņš"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Ievadīšanas taustiņš"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Ārkārtas"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Aizmirsu kombināciju"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nepareiza kombinācija"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Nepareiza parole"</string>
@@ -112,6 +111,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Nav pakalpojuma."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Ievades metodes maiņas poga."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Lidojuma režīms"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nav atpazīts"</string>
</resources>
diff --git a/packages/Keyguard/res/values-mk-rMK/strings.xml b/packages/Keyguard/res/values-mk-rMK/strings.xml
index 7476c42..d5f4a09 100644
--- a/packages/Keyguard/res/values-mk-rMK/strings.xml
+++ b/packages/Keyguard/res/values-mk-rMK/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Следниот аларм е поставен за <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Копче „Избриши“"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Копче „Внеси“"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Итен случај"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Заборавив шема"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Погрешна шема"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Погрешна лозинка"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Нема услуга."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Копче за префрање метод на внес."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Режим на работа во авион"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Не е препознаено"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ml-rIN/strings.xml b/packages/Keyguard/res/values-ml-rIN/strings.xml
index 7931c99..509491f 100644
--- a/packages/Keyguard/res/values-ml-rIN/strings.xml
+++ b/packages/Keyguard/res/values-ml-rIN/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g>-ന് അടുത്ത അലാറം സജ്ജീകരിച്ചു"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ഇല്ലാതാക്കുക"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"അടിയന്തിരാവശ്യം"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"പാറ്റേൺ മറന്നു"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"പാറ്റേൺ തെറ്റാണ്"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"പാസ്‌വേഡ് തെറ്റാണ്"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"സേവനമൊന്നുമില്ല."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"ടൈപ്പുചെയ്യൽ രീതി ബട്ടൺ മാറുക."</string>
<string name="airplane_mode" msgid="3122107900897202805">"ഫ്ലൈറ്റ് മോഡ്"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"തിരിച്ചറിഞ്ഞില്ല"</string>
</resources>
diff --git a/packages/Keyguard/res/values-mn-rMN/strings.xml b/packages/Keyguard/res/values-mn-rMN/strings.xml
index fd05e49..6426d9e 100644
--- a/packages/Keyguard/res/values-mn-rMN/strings.xml
+++ b/packages/Keyguard/res/values-mn-rMN/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Дараагийн сэрүүлгийг <xliff:g id="ALARM">%1$s</xliff:g>-д тохируулсан"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Устгах"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Оруулах"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Яаралтай тусламж"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Хээг мартсан"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Буруу хээ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Нууц үг буруу"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Үйлчилгээ байхгүй."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Оруулах аргыг сэлгэх товч."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Нислэгийн горим"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Танигдахгүй байна"</string>
</resources>
diff --git a/packages/Keyguard/res/values-mr-rIN/strings.xml b/packages/Keyguard/res/values-mr-rIN/strings.xml
index 08a065d..6d40958 100644
--- a/packages/Keyguard/res/values-mr-rIN/strings.xml
+++ b/packages/Keyguard/res/values-mr-rIN/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"पुढील अलार्म <xliff:g id="ALARM">%1$s</xliff:g> साठी सेट केला"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"हटवा"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"प्रविष्ट करा"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"आणीबाणी"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"नमुना विसरलात"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"चुकीचा नमुना"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"चुकीचा संकेतशब्द"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"सेवा नाही."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"इनपुट पद्धत स्‍विच करा बटण."</string>
<string name="airplane_mode" msgid="3122107900897202805">"विमान मोड"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"ओळखले नाही"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ms-rMY/strings.xml b/packages/Keyguard/res/values-ms-rMY/strings.xml
index 1693777..53151be 100644
--- a/packages/Keyguard/res/values-ms-rMY/strings.xml
+++ b/packages/Keyguard/res/values-ms-rMY/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Penggera seterusnya ditetapkan pada <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Padam"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Masuk"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Kecemasan"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Lupa Corak"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Corak Salah"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Kata Laluan Salah"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Tiada perkhidmatan."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Butang tukar kaedah input."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Mod Pesawat"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Tidak dicam"</string>
</resources>
diff --git a/packages/Keyguard/res/values-my-rMM/strings.xml b/packages/Keyguard/res/values-my-rMM/strings.xml
index dfb7854..69498ed 100644
--- a/packages/Keyguard/res/values-my-rMM/strings.xml
+++ b/packages/Keyguard/res/values-my-rMM/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> အတွက် နောက် သတိပေးရန် သတ်မှတ်ချက်"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ဖျက်ရန်ခလုတ်"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enterခလုတ်"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"အရေးပေါ်"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ပုံဖော်မှုအား မေ့လျော့ခြင်း"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"ပုံဆွဲအမှား"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"စကားဝှက်အမှား"</string>
diff --git a/packages/Keyguard/res/values-nb/strings.xml b/packages/Keyguard/res/values-nb/strings.xml
index c83b9a9..454729e 100644
--- a/packages/Keyguard/res/values-nb/strings.xml
+++ b/packages/Keyguard/res/values-nb/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Neste alarm er innstilt for <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Slett"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Nødsituasjon"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Har du glemt mønsteret?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Feil mønster"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Feil passord"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Ingen tjeneste."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Bytt knapp for inndatametode."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Flymodus"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Ikke gjenkjent"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ne-rNP/strings.xml b/packages/Keyguard/res/values-ne-rNP/strings.xml
index 6f7d9fb..3fc8339 100644
--- a/packages/Keyguard/res/values-ne-rNP/strings.xml
+++ b/packages/Keyguard/res/values-ne-rNP/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> को लागि अर्को चेतावनी सेट"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"मेट्नुहोस्"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"प्रविष्टि गर्नुहोस्"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"आकस्मिक"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ढाँचा बिर्सनु भयो"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"गलत ढाँचा"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"गलत पासवर्ड"</string>
diff --git a/packages/Keyguard/res/values-nl/strings.xml b/packages/Keyguard/res/values-nl/strings.xml
index 5d6a0aa..dad2fff 100644
--- a/packages/Keyguard/res/values-nl/strings.xml
+++ b/packages/Keyguard/res/values-nl/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Volgende alarm ingesteld voor <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Noodgevallen"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Patroon vergeten"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Onjuist patroon"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Onjuist wachtwoord"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Geen service"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Knop voor wijzigen invoermethode."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Vliegtuigmodus"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Niet herkend"</string>
</resources>
diff --git a/packages/Keyguard/res/values-pl/strings.xml b/packages/Keyguard/res/values-pl/strings.xml
index 6ed132f..cb2b211 100644
--- a/packages/Keyguard/res/values-pl/strings.xml
+++ b/packages/Keyguard/res/values-pl/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Następny alarm ustawiono na <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Alarmowe"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nie pamiętam wzoru"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nieprawidłowy wzór"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Nieprawidłowe hasło"</string>
@@ -114,6 +113,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Brak usługi."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Przycisk przełączania metody wprowadzania."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Tryb samolotowy"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nie rozpoznano"</string>
</resources>
diff --git a/packages/Keyguard/res/values-pt-rPT/strings.xml b/packages/Keyguard/res/values-pt-rPT/strings.xml
index 25ac54b..dcd5ca7 100644
--- a/packages/Keyguard/res/values-pt-rPT/strings.xml
+++ b/packages/Keyguard/res/values-pt-rPT/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próximo alarme definido para as <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emergência"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueceu-se da Sequência"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Sequência Incorreta"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Palavra-passe Incorreta"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Sem serviço."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Alternar botão de método de introdução."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Modo de avião"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Não reconhecido"</string>
</resources>
diff --git a/packages/Keyguard/res/values-pt/strings.xml b/packages/Keyguard/res/values-pt/strings.xml
index 74b895e..09cbe14 100644
--- a/packages/Keyguard/res/values-pt/strings.xml
+++ b/packages/Keyguard/res/values-pt/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Próximo alarme definido para <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Excluir"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emergência"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Esqueci o padrão"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Padrão incorreto"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Senha incorreta"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Sem serviço."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Alterar botão do método de entrada."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Modo avião"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Não reconhecido"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ro/strings.xml b/packages/Keyguard/res/values-ro/strings.xml
index 124f2ed..01e5de2 100644
--- a/packages/Keyguard/res/values-ro/strings.xml
+++ b/packages/Keyguard/res/values-ro/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Următoarea alarmă este setată la <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Ștergeţi"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Urgență"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Model uitat"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Model greşit"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Parolă greşită"</string>
@@ -112,6 +111,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Fără serviciu."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Buton pentru comutarea metodei de introducere."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Mod Avion"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nu este recunoscută"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ru/strings.xml b/packages/Keyguard/res/values-ru/strings.xml
index 99eb3ae..e0a0b92 100644
--- a/packages/Keyguard/res/values-ru/strings.xml
+++ b/packages/Keyguard/res/values-ru/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Будильник сработает в <xliff:g id="ALARM">%1$s</xliff:g>."</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Клавиша удаления"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Клавиша ввода"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Экстренный вызов"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Забыли графический ключ?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Неправильный графический ключ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Неправильный пароль"</string>
@@ -114,6 +113,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Нет сигнала."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Кнопка переключения способа ввода."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Режим полета"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Не распознано"</string>
</resources>
diff --git a/packages/Keyguard/res/values-si-rLK/strings.xml b/packages/Keyguard/res/values-si-rLK/strings.xml
index 1648021..232f525 100644
--- a/packages/Keyguard/res/values-si-rLK/strings.xml
+++ b/packages/Keyguard/res/values-si-rLK/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"<xliff:g id="ALARM">%1$s</xliff:g> ට ඊළඟ සීනුව සකස් කර ඇත"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"මකන්න"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"ඇතුල් කරන්න"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"හදිසි"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"රටාව අමතකයි"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"වැරදි රටාවකි"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"වැරදි මුරපදය"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"සේවාව නැත."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"ආදාන ක්‍රමය මාරු කිරීමේ බොත්තම."</string>
<string name="airplane_mode" msgid="3122107900897202805">"ගුවන්යානා ප්‍රකාරය"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"අඳුනාගත නොහැක"</string>
</resources>
diff --git a/packages/Keyguard/res/values-sk/strings.xml b/packages/Keyguard/res/values-sk/strings.xml
index c4a21e1..4f60141 100644
--- a/packages/Keyguard/res/values-sk/strings.xml
+++ b/packages/Keyguard/res/values-sk/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Nasledujúci budík je nastavený na <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Odstrániť"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Tiesňové volanie"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nepamätám si vzor"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Nesprávny vzor"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Nesprávne heslo"</string>
@@ -114,6 +113,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Žiadny signál"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Tlačidlo prepnutia metódy vstupu."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Režim v lietadle"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Nebol rozpoznaný"</string>
</resources>
diff --git a/packages/Keyguard/res/values-sl/strings.xml b/packages/Keyguard/res/values-sl/strings.xml
index 27b17be..9573395 100644
--- a/packages/Keyguard/res/values-sl/strings.xml
+++ b/packages/Keyguard/res/values-sl/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Naslednji alarm je nastavljen za <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Tipka Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Tipka Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Klic v sili"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Pozabljen vzorec"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Napačen vzorec"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Napačno geslo"</string>
@@ -114,6 +113,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Ni storitve."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Gumb za preklop načina vnosa."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Način za letalo"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Neprepoznano"</string>
</resources>
diff --git a/packages/Keyguard/res/values-sr/strings.xml b/packages/Keyguard/res/values-sr/strings.xml
index c47708d..e888179 100644
--- a/packages/Keyguard/res/values-sr/strings.xml
+++ b/packages/Keyguard/res/values-sr/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Следећи аларм је подешен за <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Избриши"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Хитне службе"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Заборављени шаблон"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Погрешан шаблон"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Погрешна лозинка"</string>
@@ -112,6 +111,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Офлајн сте."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Дугме Промени метод уноса."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Режим рада у авиону"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Није препознат"</string>
</resources>
diff --git a/packages/Keyguard/res/values-sv/strings.xml b/packages/Keyguard/res/values-sv/strings.xml
index b49c68f..3fa40ff 100644
--- a/packages/Keyguard/res/values-sv/strings.xml
+++ b/packages/Keyguard/res/values-sv/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Nästa alarm är inställt på <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Retur"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Nödsamtal"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Har du glömt ditt grafiska lösenord?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Fel grafiskt lösenord"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Fel lösenord"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Ingen tjänst."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Knapp för byte av inmatningsmetod."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Flygplansläge"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Identifierades inte"</string>
</resources>
diff --git a/packages/Keyguard/res/values-sw/strings.xml b/packages/Keyguard/res/values-sw/strings.xml
index b966daf..403d452 100644
--- a/packages/Keyguard/res/values-sw/strings.xml
+++ b/packages/Keyguard/res/values-sw/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Kengele inayofuata imewekwa ilie saa <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Futa"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Dharura"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Umesahau Ruwaza"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Mchoro huo si sahihi"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Nenosiri Lisilo sahihi"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Hakuna huduma."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Swichi kitufe cha mbinu ingizi."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Hali ya ndegeni"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Haitambuliwi"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ta-rIN/strings.xml b/packages/Keyguard/res/values-ta-rIN/strings.xml
index 84ebd6a..42b00c0 100644
--- a/packages/Keyguard/res/values-ta-rIN/strings.xml
+++ b/packages/Keyguard/res/values-ta-rIN/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"அடுத்த அலாரம் <xliff:g id="ALARM">%1$s</xliff:g>க்கு அமைக்கப்பட்டது"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"நீக்கு"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"உள்ளிடு"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"அவசர அழைப்பு"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"வடிவத்தை மறந்துவிட்டீர்களா"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"தவறான வடிவம்"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"தவறான கடவுச்சொல்"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"சேவை இல்லை."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"உள்ளீட்டு முறையை மாற்றும் பொத்தான்."</string>
<string name="airplane_mode" msgid="3122107900897202805">"விமானப் பயன்முறை"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"அறியப்படவில்லை"</string>
</resources>
diff --git a/packages/Keyguard/res/values-te-rIN/strings.xml b/packages/Keyguard/res/values-te-rIN/strings.xml
index a481d76..9d9a70a 100644
--- a/packages/Keyguard/res/values-te-rIN/strings.xml
+++ b/packages/Keyguard/res/values-te-rIN/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"తదుపరి అలారం <xliff:g id="ALARM">%1$s</xliff:g>కి సెట్ చేయబడింది"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"తొలగించు"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"అత్యవసరం"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"నమూనాను మర్చిపోయాను"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"నమూనా తప్పు"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"పాస్‌వర్డ్ తప్పు"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"సేవ లేదు."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"ఇన్‌పుట్ పద్ధతి మార్చే బటన్."</string>
<string name="airplane_mode" msgid="3122107900897202805">"ఎయిర్‌ప్లైన్ మోడ్"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"గుర్తించలేదు"</string>
</resources>
diff --git a/packages/Keyguard/res/values-th/strings.xml b/packages/Keyguard/res/values-th/strings.xml
index 6870441..36e82af 100644
--- a/packages/Keyguard/res/values-th/strings.xml
+++ b/packages/Keyguard/res/values-th/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"ตั้งเวลาปลุกครั้งถัดไปไว้ที่ <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ลบ"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"ป้อน"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"เหตุฉุกเฉิน"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"ลืมรูปแบบใช่หรือไม่"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"รูปแบบไม่ถูกต้อง"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"รหัสผ่านไม่ถูกต้อง"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"ไม่มีบริการ"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"ปุ่มสลับวิธีการป้อนข้อมูล"</string>
<string name="airplane_mode" msgid="3122107900897202805">"โหมดบนเครื่องบิน"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"ไม่รู้จัก"</string>
</resources>
diff --git a/packages/Keyguard/res/values-tl/strings.xml b/packages/Keyguard/res/values-tl/strings.xml
index 9ae81fc..eabebb4 100644
--- a/packages/Keyguard/res/values-tl/strings.xml
+++ b/packages/Keyguard/res/values-tl/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Nakatakda ang susunod na alarm para sa <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Tanggalin"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Emergency"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Nakalimutan ang Pattern"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Maling Pattern"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Maling Password"</string>
diff --git a/packages/Keyguard/res/values-tr/strings.xml b/packages/Keyguard/res/values-tr/strings.xml
index 26f62d8..14c9d22 100644
--- a/packages/Keyguard/res/values-tr/strings.xml
+++ b/packages/Keyguard/res/values-tr/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Sonraki alarm <xliff:g id="ALARM">%1$s</xliff:g> için ayarlandı"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Sil"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Giriş"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Acil"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Deseni Unuttunuz mu?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Yanlış Desen"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Yanlış Şifre"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Hizmet yok."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Giriş yöntemini değiştirme düğmesi."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Uçak modu"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Tanınmadı"</string>
</resources>
diff --git a/packages/Keyguard/res/values-uk/strings.xml b/packages/Keyguard/res/values-uk/strings.xml
index a8984b5..fdff8c6 100644
--- a/packages/Keyguard/res/values-uk/strings.xml
+++ b/packages/Keyguard/res/values-uk/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Наступний сигнал: <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Екстрені служби"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Не пам’ятаю ключ"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Неправильний ключ"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Неправильний пароль"</string>
@@ -114,6 +113,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Зв’язку немає."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Кнопка перемикання методу введення."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Режим польоту"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Не розпізнано"</string>
</resources>
diff --git a/packages/Keyguard/res/values-ur-rPK/strings.xml b/packages/Keyguard/res/values-ur-rPK/strings.xml
index fd88dcc..29b2d5b 100644
--- a/packages/Keyguard/res/values-ur-rPK/strings.xml
+++ b/packages/Keyguard/res/values-ur-rPK/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"اگلا الارم <xliff:g id="ALARM">%1$s</xliff:g> کیلئے سیٹ ہے"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"حذف کریں"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"ہنگامی"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"پیٹرن بھول گئے"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"غلط پیٹرن"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"غلط پاس ورڈ"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"کوئی سروس نہیں ہے۔"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"اندراج کا طریقہ سوئچ کرنے کا بٹن۔"</string>
<string name="airplane_mode" msgid="3122107900897202805">"ہوائی جہاز وضع"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"تسلیم شدہ نہیں ہے"</string>
</resources>
diff --git a/packages/Keyguard/res/values-uz-rUZ/strings.xml b/packages/Keyguard/res/values-uz-rUZ/strings.xml
index dbf8ffc..c522a46 100644
--- a/packages/Keyguard/res/values-uz-rUZ/strings.xml
+++ b/packages/Keyguard/res/values-uz-rUZ/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Keyingi uyg‘otkich <xliff:g id="ALARM">%1$s</xliff:g> uchun o‘rnatildi"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"O‘chirish"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Kiritish"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Tez yordam"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Chizmali parol unutilgan"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Xato chizma paroli"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Xato parol"</string>
diff --git a/packages/Keyguard/res/values-vi/strings.xml b/packages/Keyguard/res/values-vi/strings.xml
index 748747b..7e48d57 100644
--- a/packages/Keyguard/res/values-vi/strings.xml
+++ b/packages/Keyguard/res/values-vi/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"Báo thức tiếp theo được đặt cho <xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Xóa"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Khẩn cấp"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Đã quên hình"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Hình sai"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Mật khẩu sai"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"Không có dịch vụ."</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Nút chuyển phương thức nhập."</string>
<string name="airplane_mode" msgid="3122107900897202805">"Chế độ trên máy bay"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"Không nhận dạng được"</string>
</resources>
diff --git a/packages/Keyguard/res/values-zh-rCN/strings.xml b/packages/Keyguard/res/values-zh-rCN/strings.xml
index 1feab4b..ee11122 100644
--- a/packages/Keyguard/res/values-zh-rCN/strings.xml
+++ b/packages/Keyguard/res/values-zh-rCN/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"下次闹钟时间已设置为<xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"紧急呼救"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘记了图案"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"图案错误"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"密码错误"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"无服务。"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"输入法切换按钮。"</string>
<string name="airplane_mode" msgid="3122107900897202805">"飞行模式"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"无法识别"</string>
</resources>
diff --git a/packages/Keyguard/res/values-zh-rHK/strings.xml b/packages/Keyguard/res/values-zh-rHK/strings.xml
index 6127691..f1310b0 100644
--- a/packages/Keyguard/res/values-zh-rHK/strings.xml
+++ b/packages/Keyguard/res/values-zh-rHK/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"已設定下一個鬧鐘時間:<xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"刪除"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter 鍵"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"緊急電話"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘記圖案"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"圖案錯誤"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"密碼錯誤"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"沒有服務。"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"切換輸入法按鈕。"</string>
<string name="airplane_mode" msgid="3122107900897202805">"飛航模式"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"未能辨別"</string>
</resources>
diff --git a/packages/Keyguard/res/values-zh-rTW/strings.xml b/packages/Keyguard/res/values-zh-rTW/strings.xml
index 85bb24d..88945e5 100644
--- a/packages/Keyguard/res/values-zh-rTW/strings.xml
+++ b/packages/Keyguard/res/values-zh-rTW/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"已設定下一個鬧鐘時間:<xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Delete 鍵"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter 鍵"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"緊急撥號"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"忘記圖形"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"圖形錯誤"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"密碼錯誤"</string>
@@ -110,6 +109,5 @@
<string name="keyguard_carrier_default" msgid="8700650403054042153">"沒有服務。"</string>
<string name="accessibility_ime_switch_button" msgid="5032926134740456424">"切換輸入法按鈕。"</string>
<string name="airplane_mode" msgid="3122107900897202805">"飛航模式"</string>
- <!-- no translation found for fingerprint_not_recognized (2690661881608146617) -->
- <skip />
+ <string name="fingerprint_not_recognized" msgid="2690661881608146617">"無法識別"</string>
</resources>
diff --git a/packages/Keyguard/res/values-zu/strings.xml b/packages/Keyguard/res/values-zu/strings.xml
index 690c397..eaf6fd5 100644
--- a/packages/Keyguard/res/values-zu/strings.xml
+++ b/packages/Keyguard/res/values-zu/strings.xml
@@ -56,7 +56,6 @@
<string name="keyguard_accessibility_next_alarm" msgid="7269583073750518672">"I-alamu elandelayo esethelwe i-<xliff:g id="ALARM">%1$s</xliff:g>"</string>
<string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Susa"</string>
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Faka"</string>
- <string name="kg_emergency_call_label" msgid="635955021540347194">"Isimo esiphuthumayo"</string>
<string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Ukhohlwe iphethini?"</string>
<string name="kg_wrong_pattern" msgid="1850806070801358830">"Iphatheni engalungile"</string>
<string name="kg_wrong_password" msgid="2333281762128113157">"Iphasiwedi engalungile"</string>
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
index a02fb4a..50c9f2d 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -783,21 +783,14 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
private void startListeningForFingerprint() {
if (DEBUG) Log.v(TAG, "startListeningForFingerprint()");
- final int userId;
- try {
- userId = ActivityManagerNative.getDefault().getCurrentUser().id;
- } catch (RemoteException e) {
- Log.e(TAG, "Failed to get current user id: ", e);
- return;
- }
+ int userId = ActivityManager.getCurrentUser();
if (mFpm != null && mFpm.isHardwareDetected() && !isFingerprintDisabled(userId)
- && mFpm.getEnrolledFingerprints().size() > 0) {
+ && mFpm.getEnrolledFingerprints(userId).size() > 0) {
if (mFingerprintCancelSignal != null) {
mFingerprintCancelSignal.cancel();
}
mFingerprintCancelSignal = new CancellationSignal();
- mFpm.authenticate(null, mFingerprintCancelSignal, mAuthenticationCallback, 0,
- ActivityManager.getCurrentUser());
+ mFpm.authenticate(null, mFingerprintCancelSignal, mAuthenticationCallback, 0, userId);
setFingerprintRunningDetectionRunning(true);
}
}
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index 012c84c..a8a4baa 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -53,6 +53,7 @@
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
+ <uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
<uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
<uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" />
diff --git a/packages/SystemUI/res/anim/heads_up_enter.xml b/packages/SystemUI/res/anim/heads_up_enter.xml
deleted file mode 100644
index 59eef42..0000000
--- a/packages/SystemUI/res/anim/heads_up_enter.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<set xmlns:android="http://schemas.android.com/apk/res/android"
- >
- <translate
- android:interpolator="@android:interpolator/overshoot"
- android:fromYDelta="-50%" android:toYDelta="0"
- android:duration="@android:integer/config_shortAnimTime" />
- <alpha
- android:interpolator="@android:interpolator/decelerate_quad"
- android:fromAlpha="0.0" android:toAlpha="1.0"
- android:duration="@android:integer/config_shortAnimTime" />
-</set>
diff --git a/packages/SystemUI/res/anim/heads_up_exit.xml b/packages/SystemUI/res/anim/heads_up_exit.xml
deleted file mode 100644
index 2cad8f6..0000000
--- a/packages/SystemUI/res/anim/heads_up_exit.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<set xmlns:android="http://schemas.android.com/apk/res/android"
- >
- <translate
- android:interpolator="@android:interpolator/overshoot"
- android:fromYDelta="0" android:toYDelta="-50%"
- android:duration="@android:integer/config_shortAnimTime" />
- <alpha
- android:interpolator="@android:interpolator/accelerate_quad"
- android:fromAlpha="1.0" android:toAlpha="0.0"
- android:duration="@android:integer/config_shortAnimTime" />
-</set>
diff --git a/packages/SystemUI/res/layout/heads_up.xml b/packages/SystemUI/res/layout/heads_up.xml
deleted file mode 100644
index 650ee5d..0000000
--- a/packages/SystemUI/res/layout/heads_up.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2014 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- extends FrameLayout -->
-<com.android.systemui.statusbar.policy.HeadsUpNotificationView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_height="match_parent"
- android:layout_width="match_parent"
- android:background="@drawable/heads_up_scrim">
-
- <FrameLayout
- android:layout_width="@dimen/notification_panel_width"
- android:layout_height="wrap_content"
- android:layout_gravity="@integer/notification_panel_layout_gravity"
- android:paddingStart="@dimen/notification_side_padding"
- android:paddingEnd="@dimen/notification_side_padding"
- android:elevation="8dp"
- android:id="@+id/content_holder" />
-
-</com.android.systemui.statusbar.policy.HeadsUpNotificationView> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/super_status_bar.xml b/packages/SystemUI/res/layout/super_status_bar.xml
index 532e1b7..539aabf 100644
--- a/packages/SystemUI/res/layout/super_status_bar.xml
+++ b/packages/SystemUI/res/layout/super_status_bar.xml
@@ -46,6 +46,13 @@
android:layout_height="match_parent"
android:importantForAccessibility="no" />
+ <com.android.systemui.statusbar.AlphaOptimizedView
+ android:id="@+id/heads_up_scrim"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/heads_up_scrim_height"
+ android:background="@drawable/heads_up_scrim"
+ android:importantForAccessibility="no"/>
+
<include layout="@layout/status_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/status_bar_height" />
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 03a1ecb..bba8a6d 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Sluitskerm."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Instellings"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Oorsig."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Gebruiker <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi afgeskakel."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Gly op vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Gly links vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Geen onderbrekings nie. Nie eens wekkers nie."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Geen onderbrekings nie"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Net prioriteitonderbrekings"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Net wekkers"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Wiil jy jou sessie voortsit?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Begin van voor af"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, gaan voort"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Voeg nuwe gebruiker by?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Wanneer jy \'n nuwe gebruiker byvoeg, moet daardie persoon hul spasie opstel.\n\nEnige gebruiker kan programme vir al die ander gebruikers opdateer."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Batteryspaarder is aan"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Weier"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is die volumedialoog"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Raak om die oorspronklike terug te stel."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen-kenmerk"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index e3c30a8..06e9fb2 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ማያ ገጽ ቆልፍ።"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"ቅንብሮች"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"አጠቃላይ እይታ።"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ተጠቃሚ <xliff:g id="USER">%s</xliff:g>።"</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>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"ለ<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደ ላይ አንሸራትት።"</string>
<string name="description_direction_left" msgid="7207478719805562165">"ለ<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደ ግራ አንሸራትት።"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ምንም ማቋረጦች የሉም። ማንቂያዎችም እንኳ።"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"ምንም ማቋረጦች የሉም"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"ቅድሚያ የሚሰጣቸው ማቋረጦች ብቻ"</string>
<string name="zen_alarms" msgid="5055668280767657759">"ማንቂያዎች ብቻ"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"ክፍለ-ጊዜዎን መቀጠል ይፈልጋሉ?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"እንደገና ጀምር"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"አዎ፣ ቀጥል"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"አዲስ ተጠቃሚ ይታከል?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"እርስዎ አንድ አዲስ ተጠቃሚ ሲያክሉ ያ ሰው የራሱ ቦታ ማዘጋጀት አለበት።\n\nማንኛውም ተጠቃሚ መተግበሪያዎችን ለሌሎች ተጠቃሚዎች ሁሉ ሊያዘምን ይችላል።"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"የባትሪ ኃይል ቆጣቢ በርቷል"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"ከልክል"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> የድምጽ መጠን መገናኛው ነው"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"የመጀመሪያውን ወደነበረበት ለመመለስ ይንኩ።"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 0b6b46d..ac86dbd 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -171,6 +171,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"شاشة التأمين."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"الإعدادات"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"النظرة عامة."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"المستخدم <xliff:g id="USER">%s</xliff:g>."</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>
@@ -305,6 +307,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"تمرير لأعلى لـ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"تمرير لليسار لـ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"عدم المقاطعة، ولا بالتنبيهات كذلك."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"بدون مقاطعات"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"المقاطعات ذات الأولوية فقط"</string>
<string name="zen_alarms" msgid="5055668280767657759">"التنبيهات فقط"</string>
@@ -340,6 +346,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"هل تريد متابعة جلستك؟"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"البدء من جديد"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"نعم، متابعة."</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"هل تريد إضافة مستخدم جديد؟"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"عند إضافة مستخدم جديد، يلزمه إعداد مساحته.\n\nعلمًا بأنه يُمكن لأي مستخدم تحديث التطبيقات لجميع المستخدمين الآخرين."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"وضع توفير الطاقة قيد التشغيل"</string>
@@ -391,6 +403,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"رفض"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> هو مربع حوار مستوى الصوت"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"المس لاستعادة الإعداد الأصلي."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index cc5826d..64e5afa 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Заключване на екрана."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Настройки"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Общ преглед."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Потребител: <xliff:g id="USER">%s</xliff:g>."</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">"Функцията за Wi-Fi се изключи."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Плъзнете нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Плъзнете наляво за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Без прекъсвания. Дори без будилници."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Без прекъсвания"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Само приоритетни прекъсвания"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Само будилници"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Искате ли да продължите сесията си?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Започване отначало"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Да, продължавам"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Да се добави ли нов потреб.?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Когато добавите нов потребител, той трябва да настрои работното си пространство.\n\nВсеки потребител може да актуализира приложенията за всички останали потребители."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Режимът за запазване на батерията е включен"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Отказване"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> изпълнява ролята на диалоговия прозорец за силата на звука"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Докоснете, за да възстановите оригинала."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml
index 461e9f2..dd83d59 100644
--- a/packages/SystemUI/res/values-bn-rBD/strings.xml
+++ b/packages/SystemUI/res/values-bn-rBD/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"লক স্ক্রীন।"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"সেটিংস"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"এক নজরে৷"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ব্যবহারকারী <xliff:g id="USER">%s</xliff:g>৷"</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>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> এর জন্য উপরের দিকে স্লাইড করুন৷"</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> এর জন্য বাম দিকে স্লাইড করুন৷"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"কোনো ব্যাঘাত ছাড়াই। এমনকি অ্যালার্মও নয়।"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"কোনো বাধা নয়"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"শুধুমাত্র প্রাধান্য বাধাগুলি"</string>
<string name="zen_alarms" msgid="5055668280767657759">"শুধুমাত্র অ্যালার্মগুলি"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"আপনি কি আপনার সেশনটি অবিরত রাখতে চান?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"আবার শুরু করুন"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"হ্যাঁ, অবিরত থাকুন"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"নতুন ব্যবহারকারীকে যোগ করবেন?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"আপনি একজন নতুন ব্যবহারকারী যোগ করলে তাকে তার জায়গা সেট আপ করে নিতে হবে৷\n\nযেকোনো ব্যবহারকারী অন্য সব ব্যবহারকারীর জন্য অ্যাপ্লিকেশান আপডেট করতে পারবেন৷"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"ব্যাটারি সেভার চালু রয়েছে"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"প্রত্যাখ্যান করুন"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> হল ভলিউম ডায়লগ"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"আসলটি পুনঃস্থাপন করতে স্পর্শ করুন৷"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index aa2b4ce..eda024d 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Pantalla de bloqueig"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Configuració"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visió general"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuari <xliff:g id="USER">%s</xliff:g>."</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">"La xarxa Wi-Fi està desactivada."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Fes lliscar el dit cap amunt per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Fes lliscar el dit cap a l\'esquerra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sense interrupcions (ni tan sols alarmes)"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Cap interrupció"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Només interrupcions amb prioritat"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Només alarmes"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Vols continuar amb la sessió?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Torna a començar"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sí, continua"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Vols afegir un usuari nou?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Quan s\'afegeix un usuari nou, aquest usuari ha de configurar-se l\'espai.\n\nQualsevol usuari pot actualitzar les aplicacions de la resta d\'usuaris."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Estalvi de bateria activada"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Denega"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> és el diàleg de volum"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Toca per restaurar l\'original."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index da16ba3..7abcc11 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -171,6 +171,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Obrazovka uzamčení"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Nastavení"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Přehled"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Uživatel <xliff:g id="USER">%s</xliff:g>."</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">"Připojení Wi-Fi je vypnuto."</string>
@@ -305,6 +307,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Přejeďte prstem nahoru: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
<string name="description_direction_left" msgid="7207478719805562165">"Přejeďte prstem doleva: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Žádná vyrušení, dokonce ani budíky."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Žádná vyrušení"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Pouze prioritní vyrušení"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Pouze budíky"</string>
@@ -340,6 +346,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Chcete v relaci pokračovat?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Začít znovu"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ano, pokračovat"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Přidat nového uživatele?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Když přidáte nového uživatele, musí si nastavit vlastní prostor.\n\nJakýkoli uživatel může aktualizovat aplikace všech ostatních uživatelů."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Režim Úspora baterie je zapnutý."</string>
@@ -391,6 +403,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odmítnout"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> je dialog hlasitosti"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Klepnutím obnovíte originál."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index efe0ef6..3d0a0b0 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Låseskærm."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Indstillinger"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Oversigt."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Bruger <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi er slået fra."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Glid op for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Glid til venstre for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Ingen afbrydelser. Ikke engang alarmer."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Ingen afbrydelser"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Kun prioriterede afbrydelser"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Kun Alarmer"</string>
@@ -336,9 +342,15 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Vil du fortsætte din session?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Start forfra"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, fortsæt"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Vil du tilføje den nye bruger?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Når du tilføjer en ny bruger, skal personen konfigurere sit område.\n\nEnhver bruger kan opdatere apps for alle andre brugere."</string>
- <string name="battery_saver_notification_title" msgid="237918726750955859">"Batteribesparelse er slået til"</string>
+ <string name="battery_saver_notification_title" msgid="237918726750955859">"Batterisparefunktion er slået til"</string>
<string name="battery_saver_notification_text" msgid="820318788126672692">"Reducerer ydeevne og baggrundsdata"</string>
<string name="battery_saver_notification_action_text" msgid="109158658238110382">"Deaktiver batterisparefunktion"</string>
<string name="notification_hidden_text" msgid="1135169301897151909">"Indholdet er skjult"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Afvis"</string>
<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="1826889705095768656">"Tryk for at gendanne originalen."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index c0662e4..f77da12 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Sperrbildschirm"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Einstellungen"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Übersicht"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Nutzer: <xliff:g id="USER">%s</xliff:g>"</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">"WLAN ist deaktiviert."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Zum <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach oben schieben"</string>
<string name="description_direction_left" msgid="7207478719805562165">"Zum <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach links schieben"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Keine Unterbrechungen. Auch keine Weckrufe."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Keine Unterbrechungen"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Nur wichtige Unterbrechungen"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Nur Wecker"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Möchten Sie Ihre Sitzung fortsetzen?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Von vorn"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, weiter"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Neuen Nutzer hinzufügen?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Wenn Sie einen neuen Nutzer hinzufügen, muss dieser seinen Bereich einrichten.\n\nJeder Nutzer kann Apps für alle anderen Nutzer aktualisieren."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Energiesparmodus ist aktiviert"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Ablehnen"</string>
<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="1826889705095768656">"Zum Wiederherstellen des Originals hier tippen"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index ac54fd6..e1e8ba3 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Κλείδωμα οθόνης."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Ρυθμίσεις"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Επισκόπηση."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Χρήστης <xliff:g id="USER">%s</xliff:g>."</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">"Το Wi-fi απενεργοποιήθηκε."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Κύλιση προς τα επάνω για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Κύλιση προς τα αριστερά για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Χωρίς διακοπές. Ούτε ειδοποιήσεις,"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Χωρίς διακοπές"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Μόνο διακοπές προτεραιότητας"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Μόνο ειδοποιήσεις"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Θέλετε να συνεχίσετε την περίοδο σύνδεσής σας;"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Έναρξη από την αρχή"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ναι, συνέχεια"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Προσθήκη νέου χρήστη;"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Κατά την προσθήκη ενός νέου χρήστη, αυτός θα πρέπει να ρυθμίσει το χώρο του.\n\nΟποιοσδήποτε χρήστης μπορεί να ενημερώσει τις εφαρμογές για όλους τους άλλους χρήστες."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Η Εξοικονόμηση μπαταρίας είναι ενεργή"</string>
@@ -390,4 +402,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> αποτελεί το παράθυρο διαλόγου ελέγχου έντασης"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Αγγίξτε για επαναφορά αρχικού."</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index c25f837..9e76616 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lock screen."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Settings"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Overview."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi turned off."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Slide up for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Slide left for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"No interruptions. Not even alarms."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"No interruptions"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Priority interruptions only"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Alarms only"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Do you want to continue your session?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Start again"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Yes, continue"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Add new user?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"When you add a new user, that person needs to set up their space.\n\nAny user can update apps for all other users."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Battery saver is on"</string>
@@ -388,4 +400,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is the volume dialogue"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Touch to restore the original."</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index c25f837..9e76616 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lock screen."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Settings"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Overview."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi turned off."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Slide up for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Slide left for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"No interruptions. Not even alarms."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"No interruptions"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Priority interruptions only"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Alarms only"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Do you want to continue your session?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Start again"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Yes, continue"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Add new user?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"When you add a new user, that person needs to set up their space.\n\nAny user can update apps for all other users."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Battery saver is on"</string>
@@ -388,4 +400,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is the volume dialogue"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Touch to restore the original."</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index c25f837..9e76616 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lock screen."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Settings"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Overview."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi turned off."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Slide up for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Slide left for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"No interruptions. Not even alarms."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"No interruptions"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Priority interruptions only"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Alarms only"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Do you want to continue your session?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Start again"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Yes, continue"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Add new user?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"When you add a new user, that person needs to set up their space.\n\nAny user can update apps for all other users."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Battery saver is on"</string>
@@ -388,4 +400,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is the volume dialogue"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Touch to restore the original."</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index bc7c4ef..40400f3 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Pantalla bloqueada"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Configuración"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Recientes"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuario <xliff:g id="USER">%s</xliff:g>"</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">"Wi-Fi desactivado"</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Desliza el dedo hacia arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Desliza el dedo hacia la izquierda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sin interrupciones (ni siquiera alarmas)"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Sin interrupciones"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Solo interrupciones de prioridad"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Solo alarmas"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"¿Quieres retomar la sesión?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Volver a empezar"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sí, continuar"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"¿Agregar usuario nuevo?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Cuando agregas un nuevo usuario, esa persona debe configurar su espacio.\n\nCualquier usuario puede actualizar aplicaciones para todos los usuarios."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Ahorro de batería activado"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Rechazar"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> es el cuadro de diálogo de volumen."</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Toca para restaurar el original."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 1fcffc3..cb061a5 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Pantalla de bloqueo."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Ajustes"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visión general."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuario <xliff:g id="USER">%s</xliff:g>"</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">"Wi-Fi desactivado."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Desliza el dedo hacia arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Desliza el dedo hacia la izquierda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sin interrupciones, ni siquiera alarmas."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Sin interrupciones"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Solo interrupciones de prioridad"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Solo alarmas"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"¿Quieres continuar con la sesión?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Volver a empezar"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sí, continuar"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"¿Añadir nuevo usuario?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Al añadir un usuario nuevo, este debe configurar su espacio.\n\nCualquier usuario puede actualizar las aplicaciones del resto de usuarios."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Ahorro de batería activado"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Rechazar"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> es el cuadro de diálogo de volumen"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Toca para restaurar la versión original."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml
index 98b6f83..7fffec7 100644
--- a/packages/SystemUI/res/values-et-rEE/strings.xml
+++ b/packages/SystemUI/res/values-et-rEE/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Kuva lukustamine."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Seaded"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Ülevaade."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Kasutaja <xliff:g id="USER">%s</xliff:g>."</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 on välja lülitatud."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Lohistage üles: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Lohistage vasakule: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Katkestusi pole. Pole isegi hoiatusi."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Mitte ühtegi katkestust"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Ainult prioriteetsed katkestused"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Ainult alarmid"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Kas soovite seansiga jätkata?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Alusta uuesti"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Jah, jätka"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Kas lisada uus kasutaja?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Kui lisate uue kasutaja, siis peab ta seadistama oma ruumi.\n\nIga kasutaja saab värskendada rakendusi kõigi kasutajate jaoks."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Akusäästja on sisse lülitatud"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Keela"</string>
<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="1826889705095768656">"Originaali taastamiseks puudutage."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml
index 0c29675..94dd6b1 100644
--- a/packages/SystemUI/res/values-eu-rES/strings.xml
+++ b/packages/SystemUI/res/values-eu-rES/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Pantaila blokeatzeko aukera."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Ezarpenak"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Ikuspegi orokorra."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"<xliff:g id="USER">%s</xliff:g> erabiltzailea."</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">"Wi-Fi konexioa desaktibatu egin da."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Lerratu gora hau egiteko: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Lerratu ezkerrera hau egiteko: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Etenaldirik ez, ezta alarmaren bat bada ere."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Etenaldirik gabe"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Lehentasun-etenaldiak soilik"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Alarmak soilik"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Saioarekin jarraitu nahi duzu?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Hasi berriro"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Bai, jarraitu"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Beste erabiltzaile bat gehitu?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Erabiltzaile bat gehitzen duzunean, horrek bere eremua konfiguratu beharko du.\n\nEdozein erabiltzailek egunera ditzake beste erabiltzaile guztien aplikazioak."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Bateria aurrezlea aktibatuta dago"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Ukatu"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> da bolumenaren leihoa"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Ukitu jatorrizkora leheneratzeko"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index 1a092cf..0260d3a 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"صفحه در حالت قفل."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"تنظیمات"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"نمای کلی."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"کاربر <xliff:g id="USER">%s</xliff:g>."</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">"‏Wi-Fi خاموش شد."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"لغزاندن به بالا برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"لغزاندن به چپ برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"بدون قطعی. حتی هشدارها قطع نمی‌شوند."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"بدون وقفه"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"فقط وقفه‌های اولویت‌دار"</string>
<string name="zen_alarms" msgid="5055668280767657759">"فقط هشدارها"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"آیا می‌خواهید جلسه‌تان را ادامه دهید؟"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"شروع مجدد"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"بله، ادامه داده شود"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"کاربر جدیدی اضافه می‌کنید؟"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"وقتی کاربر جدیدی را اضافه می‌کنید آن فرد باید فضای خودش را تنظیم کند.\n\nهر کاربری می‌تواند برنامه‌ها را برای همه کاربران دیگر به‌روزرسانی کند."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"ذخیره کننده باتری روشن است."</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"رد کردن"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> کنترل‌کننده صدا است"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"برای بازیابی کنترل‌کننده اصلی، لمس کنید."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"‎@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 1bff608..156bbb7 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lukitse näyttö."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Asetukset"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Viimeisimmät."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Käyttäjä: <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi poistettiin käytöstä."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Liu\'uta ylös ja <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Liu\'uta vasemmalle ja <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Ei keskeytyksiä, ei edes herätyksiä."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Ei häiriöitä"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Vain tärkeät häiriöt"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Vain herätykset"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Haluatko jatkaa istuntoa?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Aloita alusta"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Kyllä, haluan jatkaa"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Lisätäänkö uusi käyttäjä?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Kun lisäät uuden käyttäjän, hänen tulee määrittää oman tilansa asetukset.\n\nKaikki käyttäjät voivat päivittää sovelluksia muille käyttäjille."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Virransäästö on käytössä"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Estä"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> on äänenvoimakkuusvalinta."</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Palauta alkuperäinen koskettamalla."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 26b1c16..de5b7aa 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Écran de verrouillage"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Paramètres"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Aperçu"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilisateur : <xliff:g id="USER">%s</xliff:g>"</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">"Wi-Fi désactivé"</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Faire glisser le doigt vers le haut : <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
<string name="description_direction_left" msgid="7207478719805562165">"Faites glisser votre doigt vers la gauche pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Aucune interruption. Même pas pour les alarmes."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Aucune interruption"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Interruptions prioritaires seulement"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Alarmes uniquement"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Voulez-vous poursuivre la session?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Recommencer"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Oui, continuer"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Ajouter un utilisateur?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Lorsque vous ajoutez un utilisateur, celui-ci doit configurer son espace.\n\nN\'importe quel utilisateur peut mettre à jour les applications pour tous les autres utilisateurs."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"La fonction Économie d\'énergie est activée"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Refuser"</string>
<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="1826889705095768656">"Touchez pour restaurer l\'original."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 0074911..ed17e4af 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Écran de verrouillage"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Paramètres"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Aperçu"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilisateur <xliff:g id="USER">%s</xliff:g>"</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">"Wi-Fi désactivé."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Faites glisser vers le haut pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Faites glisser vers la gauche pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Aucune sonnerie, pas même pour les alarmes"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Aucune sonnerie"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Sonneries prioritaires uniquement"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Alarmes uniquement"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Voulez-vous poursuivre la dernière session ?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Non, nouvelle session"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Oui, continuer"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Ajouter un utilisateur ?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Lorsque vous ajoutez un utilisateur, celui-ci doit configurer son espace.\n\nN\'importe quel utilisateur peut mettre à jour les applications pour tous les autres utilisateurs."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"L\'économiseur de batterie est activé"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Refuser"</string>
<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="1826889705095768656">"Appuyez pour restaurer l\'interface d\'origine."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml
index ee9292f..89d5fc3 100644
--- a/packages/SystemUI/res/values-gl-rES/strings.xml
+++ b/packages/SystemUI/res/values-gl-rES/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Pantalla de bloqueo."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Configuración"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visión xeral."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuario <xliff:g id="USER">%s</xliff:g>."</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 desactivada."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Pasa o dedo cara arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Pasa o dedo cara a esquerda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Non hai interrupcións nin alarmas."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Sen interrupcións"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Só interrupcións prioritarias"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Só alarmas"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Queres continuar coa túa sesión?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Comezar de novo"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Si, continuar"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Engadir un usuario novo?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Cando engadas un usuario novo, este deberá configurar o seu espazo\n\nCalquera usuario pode actualizar as aplicacións para todos os demais usuarios."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"O aforro de batería está activado"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Denegar"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> é o cadro de diálogo de volume"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Toca para restaurar o orixinal."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index df82df5..08fbe69 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"लॉक स्क्रीन."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"सेटिंग"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"अवलोकन."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"उपयोगकर्ता <xliff:g id="USER">%s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"वाई-फ़ाई को बंद किया गया."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> के लिए ऊपर स्‍लाइड करें."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> के लिए बाएं स्‍लाइड करें."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ऐसा सेट करें की कोई कि अलार्म भी ना हो."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"कोई अवरोध नहीं"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"केवल प्राथमिकता वाले कल और मैसेज को रोकें"</string>
<string name="zen_alarms" msgid="5055668280767657759">"केवल अलार्म"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"क्‍या आप अपना सत्र जारी रखना चाहते हैं?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"पुन: प्रारंभ करें"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"हां, जारी रखें"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"नया उपयोगकर्ता जोड़ें?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"जब आप कोई नया उपयोगकर्ता जोड़ते हैं तो उस व्यक्ति को अपना स्थान सेट करना होता है.\n\nकोई भी उपयोगकर्ता अन्य सभी उपयोगकर्ताओं के लिए ऐप्स अपडेट कर सकता है."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"बैटरी सेवर चालू है"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"अस्वीकार करें"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> वॉल्यूम संवाद है"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"मूल वॉल्यूम को फिर से लाने के लिए स्पर्श करें."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 04305b8..85bb634 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -168,6 +168,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Zaključavanje zaslona."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Postavke"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Pregled."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Korisnik <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi isključen."</string>
@@ -302,6 +304,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Kliznite prema gore za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Kliznite lijevo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Bez prekida, čak ni za alarme."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Bez prekida"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Samo prioritetni prekidi"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Samo alarmi"</string>
@@ -337,6 +343,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Želite li nastaviti sesiju?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Počni ispočetka"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Da, nastavi"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Dodati novog korisnika?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Kada dodate novog korisnika, ta osoba mora postaviti vlastiti prostor.\n\nBilo koji korisnik može ažurirati aplikacije za sve ostale korisnike."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Štednja baterije je uključena"</string>
@@ -388,6 +400,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odbij"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> predstavlja dijaloški okvir za upravljanje glasnoćom"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Dodirnite da biste vratili izvorno."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index aabf01c..0773849 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lezárási képernyő."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Beállítások"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Áttekintés."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Felhasználó: <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi kikapcsolva."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"A(z) <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> művelethez csúsztassa felfelé."</string>
<string name="description_direction_left" msgid="7207478719805562165">"A(z) <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> művelethez csúsztassa balra."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Semmi sem zavarja meg, még a riasztások sem."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Ne zavarjon"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Csak prioritást élvező zavaró üzenetek"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Csak riasztások"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Folytatja a munkamenetet?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Újrakezdés"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Igen, folytatom"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Új felhasználó hozzáadása?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Ha új felhasználót ad hozzá, az illetőnek be kell állítania saját tárterületét.\n\nBármely felhasználó frissítheti az alkalmazásokat valamennyi felhasználó számára."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Akkumulátorkímélő mód bekapcsolva"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Elutasítás"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> alkalmazás kezeli a hangerőt"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Érintse meg az eredeti érték visszaállításához."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml
index 9c88b0f..3ffc030 100644
--- a/packages/SystemUI/res/values-hy-rAM/strings.xml
+++ b/packages/SystemUI/res/values-hy-rAM/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Էկրանի կողպում:"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Կարգավորումներ"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Համատեսք"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Օգտվող <xliff:g id="USER">%s</xliff:g>:"</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>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Սահեցրեք վերև <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-ի համար:"</string>
<string name="description_direction_left" msgid="7207478719805562165">"Սահեցրեք ձախ` <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-ի համար:"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Առանց ընդհատումների՝ ներառյալ զարթուցիչները:"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Առանց ընդհատումների"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Միայն կարևոր ընդհատումներ"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Միայն զարթուցիչ"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Դուք ցանկանու՞մ եք շարունակել ձեր գործողությունը:"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Սկսել"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Այո, շարունակել"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Ավելացնե՞լ նոր պրոֆիլ:"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Երբ նոր օգտվող եք ավելացնում, նա պետք է կարգավորի իր պրոֆիլը:\n\nՑանկացած օգտվող կարող է թարմացնել հավելվածները մյուս բոլոր հաշիվների համար:"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Մարտկոցի տնտեսումը միացված է"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Մերժել"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ը ձայնի ուժգնության երկխոսության հավելված է"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Դիպչեք՝ սկզբնօրինակը վերականգնելու համար:"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 3e6ff98..edee7c6 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Layar kunci."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Setelan"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Ringkasan."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Pengguna <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi dinonaktifkan."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Geser ke atas untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Geser ke kiri untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Tanpa gangguan, termasuk alarm."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Tidak ada interupsi"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Hanya interupsi prioritas"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Hanya alarm"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Lanjutkan sesi Anda?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Mulai"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ya, lanjutkan"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Tambahkan pengguna baru?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Saat Anda menambahkan pengguna baru, orang tersebut perlu menyiapkan ruangnya sendiri.\n\n1Pengguna mana pun dapat memperbarui aplikasi untuk semua pengguna lain."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Penghemat baterai aktif"</string>
@@ -388,4 +400,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> adalah dialog volume"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Sentuh untuk memulihkan aslinya."</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml
index be699d8..660834e 100644
--- a/packages/SystemUI/res/values-is-rIS/strings.xml
+++ b/packages/SystemUI/res/values-is-rIS/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lásskjár."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Stillingar"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Yfirlit."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Notandi: <xliff:g id="USER">%s</xliff:g>."</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">"Slökkt á Wi-Fi."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Strjúktu upp til að <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Strjúktu til vinstri til að <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Engar truflanir. Ekki einu sinni vekjarar."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Engin truflun"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Aðeins forgangstruflanir"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Aðeins vekjarar"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Viltu halda áfram með lotuna?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Byrja upp á nýtt"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Já, halda áfram"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Bæta nýjum notanda við?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Þegar þú bætir nýjum notanda við þarf sá notandi að setja upp svæðið sitt.\n\nHvaða notandi sem er getur uppfært forrit fyrir alla aðra notendur."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Kveikt er á rafhlöðusparnaði"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Hafna"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> er hljóðstyrksvalmyndin"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Snertu til að færa í upprunalegt horf."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 143d2d9..a7ac816 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Schermata di blocco."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Impostazioni"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Panoramica."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utente <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi disattivato."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Su per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"A sinistra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Senza interruzioni. Neanche sveglie."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Nessuna interruzione"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Solo interruzioni con priorità"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Solo sveglie"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Vuoi continuare la sessione?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Ricomincia"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sì, continua"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Aggiungere un nuovo utente?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Il nuovo utente, una volta aggiunto, deve impostare il proprio spazio.\n\nQualsiasi utente può aggiornare le app per tutti gli altri."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Risparmio batteria attivo"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Nega"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> rappresenta la finestra di dialogo relativa al volume"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Tocca per ripristinare l\'originale."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index f1cdcc3..837bba7 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"מסך נעילה."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"הגדרות"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"סקירה."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"משתמש <xliff:g id="USER">%s</xliff:g>."</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>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"הסט למעלה כדי להציג <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"הסט שמאלה כדי להציג <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ללא הפרעות. גם לא התראות."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"ללא הפרעות"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"רק הפרעות בעדיפות גבוהה"</string>
<string name="zen_alarms" msgid="5055668280767657759">"התראות בלבד"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"האם ברצונך להמשיך בפעילות באתר?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"התחל מחדש"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"כן, המשך"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"האם להוסיף משתמש חדש?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"בעת הוספת משתמש חדש, על משתמש זה להגדיר את השטח שלו.\n\nכל משתמש יכול לעדכן אפליקציות עבור כל המשתמשים האחרים."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"תכונת \'חיסכון בסוללה\' פועלת"</string>
@@ -390,4 +402,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> הוא תיבת הדו-שיח של עוצמת הקול"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"גע כדי לשחזר את עוצמת הקול המקורית."</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index fbe3dd9..e01fe53 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ロック画面"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"設定"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"最近"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ユーザー: <xliff:g id="USER">%s</xliff:g>"</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">"Wi-FiをOFFにしました。"</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"上にスライドして<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>を行います。"</string>
<string name="description_direction_left" msgid="7207478719805562165">"左にスライドして<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>を行います。"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"サイレント(アラームも鳴りません)"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"サイレント"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"重要な通知のみ"</string>
<string name="zen_alarms" msgid="5055668280767657759">"アラームのみ"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"セッションを続行しますか?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"最初から開始"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"続行"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"新しいユーザーを追加しますか?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"新しいユーザーを追加したら、そのユーザーは自分のスペースをセットアップする必要があります。\n\nすべてのユーザーは他のユーザーに代わってアプリを更新できます。"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"バッテリーセーバーがON"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"許可しない"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>を音量ダイアログとして使用"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"タップすると元の音量ダイアログが復元されます。"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml
index 1861f53..a41c9f5 100644
--- a/packages/SystemUI/res/values-ka-rGE/strings.xml
+++ b/packages/SystemUI/res/values-ka-rGE/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ეკრანის დაბლოკვა."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"პარამეტრები"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"მიმოხილვა"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"მომხმარებელი: <xliff:g id="USER">%s</xliff:g>."</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>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"გაასრიალეთ ზემოთ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-თვის."</string>
<string name="description_direction_left" msgid="7207478719805562165">"გაასრიალეთ მარცხნივ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-თვის."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"წყვეტების გარეშე. მაღვიძარების შემთხვევაშიც კი."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"შეწყვეტების გარეშე"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"მხოლოდ პრიორიტეტული შეწყვეტები"</string>
<string name="zen_alarms" msgid="5055668280767657759">"მხოლოდ გაფრთხილებები"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"გსურთ, თქვენი სესიის გაგრძელება?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"ხელახლა დაწყება"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"დიახ, გავაგრძელოთ"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"დაემატოს ახალი მომხმარებელი?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"ახალი მომხმარებლის დამატებისას, ამ მომხმარებელს საკუთარი სივრცის შექმნა მოუწევს.\n\nნებისმიერ მომხმარებელს შეუძლია აპები ყველა სხვა მომხმარებლისათვის განაახლოს."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"ბატარეის დამზოგი ჩართულია"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"უარყოფა"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ხმოვან დიალოგშია"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"ორიგინალის აღდგენისათვის, შეეხეთ."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml
index 8cf3d64..0beea99 100644
--- a/packages/SystemUI/res/values-kk-rKZ/strings.xml
+++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Бекіту экраны."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Параметрлер"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Шолу."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Пайдаланушы <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi өшірілді."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін жоғары сырғыту."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін солға сырғыту."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Үзілулер болмайды. Тіпті дабылдар да."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Үзулерсіз"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Тек басым үзулер"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Тек дабылдар"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Сеансты жалғастыру керек пе?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Қайта бастау"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Иә, жалғастыру"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Жаңа пайд-ны қосу керек пе?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Жаңа пайдаланушыны қосқанда сол адам өз кеңістігін реттеуі керек.\n\nКез келген пайдаланушы барлық басқа пайдаланушылар үшін қолданбаларды жаңарта алады."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Батарея үнемдегіш қосулы"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Өшіру"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> — көлем диалогтық терезесі"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Түпнұсқаны қалпына келтіру үшін түртіңіз."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml
index a8c3a00..ba84a54 100644
--- a/packages/SystemUI/res/values-km-rKH/strings.xml
+++ b/packages/SystemUI/res/values-km-rKH/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ចាក់​សោ​អេក្រង់។"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"ការកំណត់"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"ទិដ្ឋភាព​។"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"អ្នក​ប្រើ <xliff:g id="USER">%s</xliff:g> ។"</string>
<string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"បាន​បិទ​វ៉ាយហ្វាយ។"</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"រុញ​ឡើង​លើ​ដើម្បី <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ។"</string>
<string name="description_direction_left" msgid="7207478719805562165">"រុញ​ទៅ​ឆ្វេង​ដើម្បី <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ។"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"គ្មាន​ការ​ផ្អាក។ គ្មាន​ការ​ជូនដំណឹង​ពី​ព្រឹត្តិការណ៍។"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"គ្មាន​ការ​ផ្អាក"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"តែ​ការ​ផ្អាក​អាទិភាព​ប៉ុណ្ណោះ"</string>
<string name="zen_alarms" msgid="5055668280767657759">"សំឡេងរោទ៍ប៉ុណ្ណោះ"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"តើ​អ្នក​ចង់​បន្ត​សម័យ​របស់​អ្នក​?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"ចាប់ផ្ដើម"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"បាទ​/ចាស ​បន្ត"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"បន្ថែម​អ្នកប្រើ​ថ្មី?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"ពេល​អ្នក​បន្ថែម​អ្នកប្រើ​ថ្មី អ្នកប្រើ​នោះ​ត្រូវ​កំណត់​ទំហំ​ផ្ទាល់​របស់​គេ។\n\nអ្នក​ប្រើ​ណាមួយ​ក៏​អាច​ធ្វើ​បច្ចុប្បន្នភាព​កម្មវិធី​សម្រាប់​អ្នកប្រើ​ផ្សេង​បាន​ដែរ។"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"កម្មវិធី​សន្សំ​ថ្ម​គឺ​បើក"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"បដិសេធ"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> គឺជាប្រអប់សម្លេង"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"ប៉ះដើម្បីស្តារច្បាប់ដើម។"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml
index 9f7b509..76b5707 100644
--- a/packages/SystemUI/res/values-kn-rIN/strings.xml
+++ b/packages/SystemUI/res/values-kn-rIN/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ಲಾಕ್‌ ಪರದೆ."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"ಸಮಗ್ರ ನೋಟ."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ಬಳಕೆದಾರ <xliff:g id="USER">%s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"ವೈಫೈ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ಗಾಗಿ ಮೇಲಕ್ಕೆ ಸ್ಲೈಡ್ ಮಾಡಿ."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ಗಾಗಿ ಎಡಕ್ಕೆ ಸ್ಲೈಡ್ ಮಾಡಿ."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ಅಲಾರಂಗಳನ್ನು ಸೇರಿದಂತೆ ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"ಆದ್ಯತೆಯ ಅಡಚಣೆಗಳು ಮಾತ್ರ"</string>
<string name="zen_alarms" msgid="5055668280767657759">"ಅಲಾರಮ್‌ಗಳು ಮಾತ್ರ"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"ನಿಮ್ಮ ಸೆಷನ್‌ ಮುಂದುವರಿಸಲು ಇಚ್ಚಿಸುವಿರಾ?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"ಪ್ರಾರಂಭಿಸಿ"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ಹೌದು, ಮುಂದುವರಿ"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸುವುದೇ?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"ನೀವು ಒಬ್ಬ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿದಾಗ, ಆ ವ್ಯಕ್ತಿಯು ಅವರ ಸ್ಥಳವನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ.\n\nಯಾವುದೇ ಬಳಕೆದಾರರು ಎಲ್ಲಾ ಇತರೆ ಬಳಕೆದಾರರಿಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನವೀಕರಿಸಬಹುದು."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"ಬ್ಯಾಟರಿ ರಕ್ಷಕ ಆನ್ ಆಗಿದೆ"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"ನಿರಾಕರಿಸು"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ವಾಲ್ಯೂಮ್ ಸಂವಾದವಾಗಿದೆ"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"ಮೂಲ ಮರುಸ್ಥಾಪಿಸಲು ಸ್ಪರ್ಶಿಸಿ."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 9c348f6..32f751f 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"화면을 잠급니다."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"설정"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"최근 사용"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"사용자 <xliff:g id="USER">%s</xliff:g>"</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">"Wi-Fi가 사용 중지되었습니다."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>하려면 위로 슬라이드"</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>하려면 왼쪽으로 슬라이드"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"어떤 방해도 받지 않습니다. 알람도 울리지 않습니다."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"모든 알림 차단"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"최우선 알림만 수신"</string>
<string name="zen_alarms" msgid="5055668280767657759">"알람만 수신"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"세션을 계속 진행하시겠습니까?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"다시 시작"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"예, 계속합니다."</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"새 사용자를 추가할까요?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"추가된 새로운 사용자는 자신의 공간을 설정해야 합니다.\n\n모든 사용자는 다른 사용자들을 위하여 앱을 업데이트할 수 있습니다."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"배터리 세이버 사용 중"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"거부"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>은(는) 볼륨 대화입니다."</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"원본을 복원하려면 터치하세요."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml
index deecf9b..8e2defd 100644
--- a/packages/SystemUI/res/values-ky-rKG/strings.xml
+++ b/packages/SystemUI/res/values-ky-rKG/strings.xml
@@ -192,6 +192,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Кулпуланган экран."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Жөндөөлөр"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Көз жүгүртүү."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Колдонуучу <xliff:g id="USER">%s</xliff:g>."</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>
@@ -326,6 +328,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн жогору жылмыштырыңыз."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн солго жылмыштырыңыз."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Үзгүлтүктөр жок. Ойготкучтар дагы жок."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Үзгүлтүксүз"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Артыкчылыктуу үзгүлтүктөр гана"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Ойготкучтар гана"</string>
@@ -361,6 +367,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Сеансыңызды улантасызбы?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Кайра баштоо"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ооба, уланта берели"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Жаңы колдонуучу кошосузбу?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Жаңы колдонуучу кошулганда, ал өз мейкиндигин түзүп алышы керек.\n\nКолдонмолорду бир колдонуучу жаңыртканда, ал калган бардык колдонуучулар үчүн да жаңырат."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Батареяны үнөмдөгүч күйгүзүлдү"</string>
@@ -412,6 +424,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Жок"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> үндү катуулатуу диалогу"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Түпнусканы калыбына келтирүү үчүн тийип коюңуз."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml
index fc73134..d7bb83b 100644
--- a/packages/SystemUI/res/values-lo-rLA/strings.xml
+++ b/packages/SystemUI/res/values-lo-rLA/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ລັອກ​ໜ້າ​ຈໍ."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"ການ​ຕັ້ງ​ຄ່າ"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"​ພາບ​ຮວມ."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ຜູ່ໃຊ້ <xliff:g id="USER">%s</xliff:g>."</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">"ປິດ Wi-Fi ແລ້ວ."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"ເລື່ອນຂຶ້ນເພື່ອ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"ເລື່ອນໄປທາງຊ້າຍເພື່ອ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ບໍ່​ມີ​ການ​ລົບ​ກວນ. ບໍ່​ວ່າ​ຈະ​ເປັນ​​ໂມງ​ປຸກ​ກໍ​ຕາມ."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"ບໍ່​ມີ​ການ​ລົບກວນ"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"ສະເພາະ​ເລື່ອງ​ສຳຄັນ​ເທົ່ານັນ"</string>
<string name="zen_alarms" msgid="5055668280767657759">"ໂມງ​ປຸກ​ເທົ່າ​ນັ້ນ"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"ທ່ານ​ຕ້ອງ​ການ​ສືບ​ຕໍ່​ເຊດ​ຊັນ​ຂອງ​ທ່ານບໍ່?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"ເລີ່ມຕົ້ນໃຫມ່"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"​ຕົກ​ລົງ, ດຳ​ເນີນ​ການ​ຕໍ່"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"ເພີ່ມ​ຜູ່​ໃຊ້​ໃໝ່​ບໍ?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"ເມື່ອ​ທ່ານ​ເພີ່ມ​ຜູ່​ໃຊ້​ໃໝ່, ຜູ່​ໃຊ້​ນັ້ນ​ຈະ​ຕ້ອງ​ຕັ້ງ​ຄ່າ​ພື້ນ​ທີ່​ບ່ອນ​ຈັດ​ເກັບ​ຂໍ້​ມູນ​ຂອງ​ລາວ.\n\nຜູ່​ໃຊ້​ທຸກ​ຄົນ​ສາ​ມາດ​ອັບ​ເດດ​ແອັບຯ​ຂອງ​ຜູ່​ໃຊ້​ຄົນ​ອື່ນ​ທັງ​ໝົດ​ໄດ້."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"ເປີດ​ໃຊ້​ໂຕ​ປະຢັດ​ແບັດເຕີຣີ​ແລ້ວ"</string>
@@ -388,4 +400,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ແມ່ນ​ໜ້າ​ຕ່າງ​ລະ​ດັບ​ສຽງ"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"ສໍາ​ຜັດ​ເພື່ອກູ້​ຄືນ​ຕົ້ນ​ສະ​ບັບ​."</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 3d0c90d..2ac4636 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Užrakinimo ekranas."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Nustatymai"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Apžvalga."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Naudotojas <xliff:g id="USER">%s</xliff:g>."</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">"„Wi-Fi“ ryšys išjungtas."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Slyskite aukštyn link <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Slyskite į kairę link <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Nėra trikdžių. Nėra net įspėjimų."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Jokių pertraukčių"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Tik prioritetinės pertrauktys"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Tik signalai"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Ar norite tęsti sesiją?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Pradėti iš naujo"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Taip, tęsti"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Pridėti naują naudotoją?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Kai pridedate naują naudotoją, šis asmuo turi nustatyti savo erdvę.\n\nBet kuris naudotojas gali atnaujinti visų kitų naudotojų programas."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Akumuliatoriaus tausojimo priemonė įjungta"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Atmesti"</string>
<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="1826889705095768656">"Palieskite, kad atkurtumėte originalą."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index d94a646..a184664 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -168,6 +168,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Bloķēšanas ekrāns."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Iestatījumi"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Pārskats."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Lietotājs: <xliff:g id="USER">%s</xliff:g>"</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">"Wi-Fi ir izslēgts."</string>
@@ -302,6 +304,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Velciet uz augšu, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Velciet pa kreisi, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Bez traucējumiem. Pat bez brīdinājumiem"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Nepārtraukt"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Tikai prioritārie pārtraukumi"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Tikai signāli"</string>
@@ -337,6 +343,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Vai vēlaties turpināt savu sesiju?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Sākt no sākuma"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Jā, turpināt"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Vai pievienot jaunu lietotāju?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Kad pievienosiet jaunu lietotāju, viņam būs jāizveido savs profils.\n\nIkviens lietotājs var atjaunināt lietotnes citu lietotāju vietā."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Ieslēgts akumulatora enerģijas taupīšanas režīms"</string>
@@ -388,6 +400,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Neatļaut"</string>
<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="1826889705095768656">"Pieskarieties, lai atjaunotu sākotnējo."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml
index 61441a5..e288451 100644
--- a/packages/SystemUI/res/values-mk-rMK/strings.xml
+++ b/packages/SystemUI/res/values-mk-rMK/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Заклучи екран."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Поставки"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Краток преглед."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Корисник <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi е исклученo."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Лизгај нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Лизгај налево за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Без прекини. Дури и без аларми."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Без прекини"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Само приоритетни прекини"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Само аларми"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Дали сакате да продолжите со сесијата?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Почни одново"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Да, продолжи"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Да се додаде нов корисник?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Кога додавате нов корисник, тоа лице треба да го постави својот простор.\n\nСекој корисник може да ажурира апликации за сите други корисници."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Штедачот на батерија е вклучен"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Одбиј"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> е дијалог за јачина на звук"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Допрете за да го вратите оригиналот."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml
index 5e67b22..3bc27a1 100644
--- a/packages/SystemUI/res/values-ml-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ml-rIN/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ലോക്ക് സ്‌ക്രീൻ."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"ക്രമീകരണങ്ങൾ"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"കാഴ്ച."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ഉപയോക്താവ് <xliff:g id="USER">%s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"വൈഫൈ ഓഫാക്കി."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> എന്നതിനായി മുകളിലേയ്‌ക്ക് സ്ലൈഡുചെയ്യുക."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> എന്നതിനായി ഇടത്തേയ്‌ക്ക് സ്ലൈഡുചെയ്യുക."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"തടസ്സങ്ങളൊന്നുമില്ല. അലാറങ്ങൾ പോലുമില്ല."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"തടസ്സങ്ങളൊന്നുമില്ല"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"മുൻഗണനാ തടസ്സങ്ങൾ മാത്രം"</string>
<string name="zen_alarms" msgid="5055668280767657759">"അലാറങ്ങൾ മാത്രം"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"നിങ്ങളുടെ സെഷൻ തുടരണോ?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"പുനരാംരംഭിക്കുക"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"അതെ, തുടരുക"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"പുതിയ ഉപയോക്താവിനെ ചേർക്കണോ?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"നിങ്ങൾ ഒരു പുതിയ ഉപയോക്താവിനെ ചേർക്കുമ്പോൾ, ആ വ്യക്തിയ്‌ക്ക് അവരുടെ ഇടം സജ്ജീകരിക്കേണ്ടതുണ്ട്.\n\nമറ്റ് എല്ലാ ഉപയോക്താക്കൾക്കുമായി ഏതൊരു ഉപയോക്താവിനും അപ്ലിക്കേഷനുകൾ അപ്‌ഡേറ്റുചെയ്യാനാവും."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"ബാറ്ററി സേവർ ഓണാണ്"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"നിരസിക്കുക"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>, വോളിയം ഡയലോഗാണ്"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"ആദ്യത്തേത് പുനഃസ്ഥാപിക്കാൻ സ്‌പർശിക്കുക."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml
index b1318be..367de5d 100644
--- a/packages/SystemUI/res/values-mn-rMN/strings.xml
+++ b/packages/SystemUI/res/values-mn-rMN/strings.xml
@@ -165,6 +165,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Дэлгэц түгжих."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Тохиргоо"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Тойм"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Хэрэглэгч <xliff:g id="USER">%s</xliff:g>."</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>
@@ -299,6 +301,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-г гулсуулах."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> хийх зүүнлүү гулсуулах."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Тасалдал байхгүй. Сэрүүлэг ч байхгүй."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Ямар ч тасалдалгүй"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Зөвхөн нэн тэргүүний тасалдалд"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Зөвхөн сэрүүлэг"</string>
@@ -334,6 +340,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Та үргэлжлүүлэхийг хүсэж байна уу?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Дахин эхлүүлэх"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Тийм, үргэлжлүүлэх"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Шинэ хэрэглэгч нэмэх үү?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Та шинэ хэрэглэгч нэмбэл, тухайн хүн өөрийн профайлыг тохируулах шаардлагатай.\n\nАль ч хэрэглэгч бүх хэрэглэгчийн апп-уудыг шинэчлэх боломжтой."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Батерей хэмнэгч асаалттай"</string>
@@ -385,6 +397,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Татгалзах"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> нь дууны диалог юм."</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Анхны хувилбарыг эргүүлэн хадгалахыг хүсвэл хүрнэ үү."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml
index ebd2e44..eb8c6ad 100644
--- a/packages/SystemUI/res/values-mr-rIN/strings.xml
+++ b/packages/SystemUI/res/values-mr-rIN/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"लॉक स्क्रीन."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"सेटिंग्ज"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"विहंगावलोकन."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"वापरकर्ता <xliff:g id="USER">%s</xliff:g>."</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>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> साठी वर स्लाइड करा."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> साठी डावीकडे स्लाइड करा."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"कोणतेही व्यत्यय नाहीत. अगदी अलार्मचे देखील नाहीत."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"कोणतेही व्यत्यय नाही"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"केवळ प्राधान्य दिलेले व्‍यत्यय"</string>
<string name="zen_alarms" msgid="5055668280767657759">"केवळ अलार्म"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"आपण आपले सत्र सुरु ठेवू इच्छिता?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"येथून प्रारंभ करा"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"होय, सुरु ठेवा"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"नवीन वापरकर्ता जोडायचा?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"आपण एक नवीन वापरकर्ता जोडता तेव्हा, त्या व्यक्तीने त्यांचे स्थान सेट करणे आवश्यक असते.\n\nकोणताही वापरकर्ता इतर सर्व वापरकर्त्यांसाठी अॅप्स अद्यतनित करू शकतो."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"बॅटरी बचतकर्ता चालू आहे"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"नकार द्या"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> हा व्हॉल्यूम संवाद आहे"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"मूळ पुनर्संचयित करण्यासाठी स्पर्श करा."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml
index 9c7ef77..1b1fded 100644
--- a/packages/SystemUI/res/values-ms-rMY/strings.xml
+++ b/packages/SystemUI/res/values-ms-rMY/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Kunci skrin."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Tetapan"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Ikhtisar."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Pengguna <xliff:g id="USER">%s</xliff:g>."</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 dimatikan."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Luncurkan ke atas untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Luncurkan ke kiri untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Tiada gangguan, walau penggera sekalipun."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Tiada gangguan"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Gangguan keutamaan sahaja"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Penggera sahaja"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Adakah anda ingin meneruskan sesi anda?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Mulakan semula"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ya, teruskan"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Tambah pengguna baharu?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Apabila anda menambah pengguna baharu, orang itu perlu menyediakan ruang mereka.\n\nMana-mana pengguna boleh mengemas kini apl untuk semua pengguna lain."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Penjimat bateri dihidupkan"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Tolak"</string>
<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="1826889705095768656">"Sentuh untuk memulihkan yang asal."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:rentetan/nama_ciri_mod_zen"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml
index 2be74a1b..52c4298 100644
--- a/packages/SystemUI/res/values-my-rMM/strings.xml
+++ b/packages/SystemUI/res/values-my-rMM/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"မျက်နှာပြင် သော့ပိတ်ရန်"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"ဆက်တင်များ"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"ခြုံကြည့်မှု။"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"သုံးစွဲသူ <xliff:g id="USER">%s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>။"</string>
<string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"ကြိုးမဲ့ ပိတ်ထား။"</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> အတွက် အပေါ်ကို ပွတ်ဆွဲပါ"</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> အတွက် ဖယ်ဘက်ကို ပွတ်ဆွဲပါ"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ကြားဖြတ်ဝင်မှုများ မရှိခဲ့။ နှိုးစက်ပင် မရှိခဲ့။"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"ကြားဖြတ်ဝင်မှု ခွင့်မပြုရန်"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"ဦးစားပေး ကြားဖြတ်ဝင်မှုများ သာလျှင်"</string>
<string name="zen_alarms" msgid="5055668280767657759">"နှိုးစက်များသာ"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"သင်သည် သင်၏ ချိတ်ဆက်မှုကို ဆက်ပြုလုပ် လိုပါသလား?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"အစမှ ပြန်စပါ"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ဟုတ်ကဲ့၊ ဆက်လုပ်ပါ"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"အသုံးပြုသူ အသစ်ကို ထည့်ရမလား?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"သင်က အသုံးပြုသူ အသစ် တစ်ဦးကို ထည့်ပေးလိုက်လျှင်၊ ထိုသူသည် ၎င်း၏ နေရာကို သတ်မှတ်စီစဉ်ရန် လိုအပ်မည်။\n\n အသုံးပြုသူ မည်သူမဆို ကျန်အသုံးပြုသူ အားလုံးတို့အတွက် appများကို မွမ်းမံပေးနိုင်သည်။"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"ဘက်ထရီ ချွေတာသူ ဖွင့်ထား"</string>
@@ -388,4 +400,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> သည် အသံဒိုင်ယာလော့ခ်ဖြစ်သည်"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"မူရင်းအားပြန်လည်သိမ်းဆည်းရန် ထိပါ။"</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 17916c9..2168f14 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Låseskjerm."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Innstillinger"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Oversikt."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Bruker: <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi er slått av."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Dra opp for å <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Dra til venstre for å <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Ingen forstyrrelser, ikke engang alarmer."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Ingen forstyrrelser"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Bare prioriterte forstyrrelser"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Bare alarmer"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Vil du fortsette økten?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Start på nytt"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, fortsett"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Vil du legge til en ny bruker?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Når du legger til en ny bruker, må vedkommende konfigurere sitt eget område.\n\nAlle brukere kan oppdatere apper for alle andre brukere."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Batterisparing er på"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Ikke tillat"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> er volumdialogen"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Trykk for å gå tilbake til den opprinnelige volumdialogen."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml
index 368fb1c..11e19e7 100644
--- a/packages/SystemUI/res/values-ne-rNP/strings.xml
+++ b/packages/SystemUI/res/values-ne-rNP/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"स्क्रीन बन्द गर्नुहोस्।"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"सेटिङहरू"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"सारांश।"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"प्रयोगकर्ता <xliff:g id="USER">%s</xliff:g>।"</string>
<string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>।"</string>
<string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"वाइफाइ बन्द गरियो।"</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>को लागि माथि धिसार्नुहोस्"</string>
<string name="description_direction_left" msgid="7207478719805562165">"स्लाइड <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>को लागि बायाँ।"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"कुनै रुकावट छैन। चेतावनी समेत छैन।"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"कुनै रुकावटहरू छैन"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"प्राथमिकता रुकावटहरूमा मात्र"</string>
<string name="zen_alarms" msgid="5055668280767657759">"अलार्महरू मात्र"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"तपाईँ आफ्नो सत्र जारी गर्न चाहनुहुन्छ?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"सुरु गर्नुहोस्"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"हो, जारी राख्नुहोस्"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"नयाँ प्रयोगकर्ता थप्नुहुन्छ?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"जब तपाईँले नयाँ प्रयोगकर्ता थप्नुहुन्छ, त्यस प्रयोगकर्ताले आफ्नो स्थान स्थापना गर्न पर्ने छ।\n\nकुनै पनि प्रयोगकर्ताले सबै अन्य प्रयोगकर्ताहरूका लागि अनुप्रयोगहरू अद्यावधिक गर्न सक्छन्।"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"ब्याट्रि सेभर चालु छ"</string>
@@ -388,4 +400,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> भोल्यूम संवाद हो"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"मूल पुनर्स्थापना गर्न छुनुहोस्।"</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*Android: स्ट्रिङ/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 5c9c609..06ed986 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Vergrendelingsscherm."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Instellingen"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Overzicht."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Gebruiker: <xliff:g id="USER">%s</xliff:g>."</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 uitgeschakeld."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Veeg omhoog voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Veeg naar links voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Geen onderbrekingen. Zelfs geen alarm."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Geen onderbrekingen"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Alleen prioriteitsonderbrekingen"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Alleen alarmen"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Wilt u doorgaan met uw sessie?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Opnieuw starten"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, doorgaan"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Nieuwe gebruiker toevoegen?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Wanneer u een nieuwe gebruiker toevoegt, moet die persoon zijn eigen profiel instellen.\n\n1Elke gebruiker kan apps updaten voor alle andere gebruikers."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Accubesparing is ingeschakeld"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Afwijzen"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is het volumedialoogvenster"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Tik hierop om het origineel te herstellen."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index bbb21c0..ffeff1e 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Ekran blokady."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Ustawienia"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Przegląd."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Użytkownik: <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi wyłączone."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Przesuń w górę: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Przesuń w lewo: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Żadnych powiadomień. Nawet alarmów."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Bez przerw"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Tylko dźwięki priorytetowe"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Tylko alarmy"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Chcesz kontynuować sesję?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Rozpocznij nową"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Tak, kontynuuj"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Dodać nowego użytkownika?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Gdy dodasz nowego użytkownika, musi on skonfigurować swój profil.\n\nKażdy użytkownik może aktualizować aplikacje wszystkich innych użytkowników."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Oszczędzanie baterii jest włączone"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odmów"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> steruje głośnością"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Dotknij, by przywrócić pierwotną."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 005c1449..23413be 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Ecrã de bloqueio."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Definições"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visão geral."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilizador <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi desligado."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Deslize para cima para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Deslize para a esquerda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sem interrupções. Nem mesmo alarmes."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Sem interrupções"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Apenas interrupções com prioridade"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Apenas alarmes"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Pretende continuar a sessão?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Recomeçar"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sim, continuar"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Adicionar um novo utilizador?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Ao adicionar um novo utilizador, essa pessoa tem de configurar o respetivo espaço.\n\nQualquer utilizador pode atualizar aplicações para todos os outros utilizadores."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"A poupança de bateria está ligada"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Recusar"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> é a caixa de diálogo do volume"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Toque para restaurar o original."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 2367373..caf85cc 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Tela de bloqueio."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Configurações"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visão geral."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuário <xliff:g id="USER">%s</xliff:g>."</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">"O Wi-Fi foi desativado."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para cima."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para a esquerda."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sem interrupções. Nem mesmo alarmes."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Sem interrupções"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Apenas interrupções prioritárias"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Somente alarmes"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Deseja continuar a sessão?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Recomeçar"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sim, continuar"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Adicionar novo usuário?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Quando você adiciona um novo usuário, essa pessoa precisa configurar o próprio espaço.\n\nQualquer usuário pode atualizar apps para os demais usuários."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"A Economia de bateria está ativada"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Negar"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> é a caixa de diálogo referente ao volume"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Toque para restaurar o original."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index 84bca23..509ae92 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -168,6 +168,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Ecranul de blocare."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Setări"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Vizualizare generală"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilizatorul <xliff:g id="USER">%s</xliff:g>."</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">"Conexiunea prin Wi-Fi este dezactivată."</string>
@@ -302,6 +304,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Glisaţi în sus pentru <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Glisaţi spre stânga pentru <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Fără întreruperi. Nici măcar alarme."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Fără întreruperi"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Numai întreruperi cu prioritate"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Numai alarme"</string>
@@ -337,6 +343,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Vreți să continuați sesiunea?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Începeți din nou"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Da, continuați"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Adăugați utilizator nou?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Când adăugați un utilizator nou, acesta trebuie să-și configureze spațiul.\n\nOrice utilizator poate actualiza aplicațiile pentru toți ceilalți utilizatori."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Economisirea bateriei este activată"</string>
@@ -388,6 +400,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Refuzați"</string>
<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="1826889705095768656">"Atingeți pentru a reveni la setarea inițială."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 4b8b1a7..1c584fe 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -171,6 +171,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Заблокированный экран."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Настройки"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Обзор."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Пользователь <xliff:g id="USER">%s</xliff:g>"</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">"Модуль Wi-Fi отключен."</string>
@@ -305,6 +307,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Проведите вверх, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Проведите влево, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Никаких оповещений, даже от будильника."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Не беспокоить"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Только важные оповещения"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Только будильник"</string>
@@ -340,6 +346,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Продолжить сеанс?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Начать заново"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Да, продолжить"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Добавить пользователя?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"После создания профиля его необходимо настроить.\n\nОбновлять приложения для всех аккаунтов может любой пользователь устройства."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Включен режим энергосбережения"</string>
@@ -391,6 +403,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Нет"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"Приложение <xliff:g id="APP_NAME">%1$s</xliff:g> назначено регулятором громкости"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Нажмите, чтобы восстановить приложение по умолчанию."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml
index 5d0c5d7..9643102 100644
--- a/packages/SystemUI/res/values-si-rLK/strings.xml
+++ b/packages/SystemUI/res/values-si-rLK/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"අගුළු තිරය."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"සැකසීම්"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"දළ විශ්ලේෂණය."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"පරිශීලකයා <xliff:g id="USER">%s</xliff:g>."</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>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> සඳහා උඩට සර්පණය කරන්න."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> සඳහා වමට සර්පණය කරන්න."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"අතුරු බිඳීම් නැත. අඩුම තරමේ අනතුරු ඇඟවීමක්වත් නැත."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"අතුරු බිදුම් නැත"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"ප්‍රමුඛ අතුරු බිඳීම් පමණයි"</string>
<string name="zen_alarms" msgid="5055668280767657759">"ඇඟවීම් පමණි"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"ඔබගේ සැසිය දිගටම කරගෙන යෑමට ඔබට අවශ්‍යද?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"යළි මුල සිට අරඹන්න"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ඔව්, දිගටම කරගෙන යන්න"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"අලුත් පරිශීලකයෙක් එකතු කරන්නද?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"ඔබ අලුත් පරිශීලකයෙක් එකතු කරන විට, එම පුද්ගලයා ඔහුගේ වැඩ කරන ඉඩ සකසා ගත යුතුය.\n\nසියළුම අනෙක් පරිශීලකයින් සඳහා ඕනෑම පරිශීලකයෙකුට යාවත්කාලීන කළ හැක."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"බැටරිය සුරකින්නා සක්‍රීයයි"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"ප්‍රතික්ෂේප කරන්න"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ධාරිතා සංවාදයයි"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"මුල් තත්ත්වය නැවත ප්‍රතිසාධනය කිරීමට ස්පර්ශ කරන්න."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 0842875..d826901 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -171,6 +171,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Uzamknutá obrazovka"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Nastavenia"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Prehľad"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Používateľ: <xliff:g id="USER">%s</xliff:g>."</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">"Pripojenie Wi-Fi je vypnuté."</string>
@@ -305,6 +307,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Prejdite prstom nahor: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Prejdite prstom doľava: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Žiadne vyrušenia, ani budíky"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Žiadne vyrušenia"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Iba prioritné vyrušenia"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Iba budíky"</string>
@@ -340,6 +346,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Chcete v relácii pokračovať?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Začať odznova"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Áno, pokračovať"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Pridať nového používateľa?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Keď pridáte nového používateľa, musí si nastaviť vlastný priestor.\n\nAkýkoľvek používateľ môže aktualizovať aplikácie všetkých ostatných používateľov."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Šetrič batérie je zapnutý"</string>
@@ -391,6 +403,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odmietnuť"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> je dialóg hlasitosti"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Klepnutím obnovíte originál."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index 88ecf20..a7eca4d 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Zaklenjen zaslon"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Nastavitve"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Pregled."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Uporabnik: <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi je izklopljen."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Povlecite navzgor za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Povlecite v levo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Brez motenj. Celo brez alarmov."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Brez prekinitev"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Samo prednostne prekinitve"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Samo alarmi"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Želite nadaljevati sejo?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Začni znova"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Da, nadaljuj"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Dodajanje novega uporabnika?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Ko dodate novega uporabnika, mora ta nastaviti svoj prostor.\n\nVsak uporabnik lahko posodobi aplikacije za vse druge uporabnike."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Varčevanje z energijo akumulatorja je vklopljeno"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Zavrni"</string>
<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="1826889705095768656">"Dotaknite se, če želite obnoviti izvirnik."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 962698d..edb1166 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -168,6 +168,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Закључани екран."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Подешавања"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Преглед."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Корисник: <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi је искључен."</string>
@@ -302,6 +304,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Превуците нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Превуците улево за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Нема прекида. Чак ни аларма."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Без прекида"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Само приоритетни прекиди"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Само аларми"</string>
@@ -337,6 +343,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Желите ли да наставите сесију?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Почни из почетка"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Да, настави"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Додајете новог корисника?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Када додате новог корисника, та особа треба да подеси сопствени простор.\n\nСваки корисник може да ажурира апликације за све остале кориснике."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Штедња батерије је укључена"</string>
@@ -388,6 +400,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Одбиј"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> је дијалог за јачину звука"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Додирните да бисте вратили оригинал."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 3f558e729..ee03be4 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Låsskärm."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Inställningar"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Översikt."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Användare <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi har inaktiverats."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Dra uppåt för <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Dra åt vänster för <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Inga avbrott. Inte ens alarm."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Inga avbrott"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Bara prioriterade samtal och aviseringar"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Endast alarm"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Vill du fortsätta sessionen?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Börja om"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, fortsätt"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Lägga till ny användare?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"När du lägger till en ny användare måste den personen konfigurera sitt utrymme.\n\nAlla användare kan uppdatera appar för samtliga användares räkning."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Batterisparläget har aktiverats"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Neka"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> används som volymkontroll"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Tryck här om du vill återställa den ursprungliga appen."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 8dca2e8..2ac3926 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Skrini iliyofungwa."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Mipangilio"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Muhtasari."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Mtumiaji <xliff:g id="USER">%s</xliff:g>."</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 imezimwa."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Sogeza juu kwa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Sogeza kushoto kwa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Hakuna kukatizwa. Hata kama ni kengele."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Hakuna kukatizwa"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Mambo yenye kipaumbele pekee yakatize"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Kengele pekee"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Je, unataka kuendelea na kipindi chako?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Anza tena"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ndiyo, endelea"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Ungependa kuongeza mtumiaji?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Unapomwongeza mtumiaji mpya, mtu huyo anahitaji kusanidi nafasi yake.\n\nMtumiaji yoyote anaweza kusasisha programu kwa ajili ya watumiaji wengine wote."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Kiokoa betri kimewashwa"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Kataa"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ni mazungumzo ya sauti"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Gusa ili urejeshe ya awali."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml
index e3fe71f..a8177de 100644
--- a/packages/SystemUI/res/values-ta-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ta-rIN/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"பூட்டுத் திரை."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"அமைப்பு"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"மேலோட்டப் பார்வை."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"பயனர் <xliff:g id="USER">%s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"வைஃபை முடக்கப்பட்டது."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> க்கு மேலாக இழுக்கவும்."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> க்கு இடதுபக்கமாக இழுக்கவும்."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"அறிவிப்பும் இல்லை. அலாரங்களும் இல்லை."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"தெரிவிக்காதே"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"முக்கிய அறிவிப்புகள் மட்டும்"</string>
<string name="zen_alarms" msgid="5055668280767657759">"அலாரங்கள் மட்டும்"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"உங்கள் அமர்வைத் தொடர விருப்பமா?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"மீண்டும் தொடங்கு"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"தொடரவும்"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"புதியவரைச் சேர்க்கவா?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"புதிய பயனரைச் சேர்க்கும்போது, அவர் தனக்கான இடத்தை அமைக்க வேண்டும்.\n\nஎந்தவொரு பயனரும், மற்ற எல்லா பயனர்களுக்காகவும் பயன்பாடுகளைப் புதுப்பிக்கலாம்."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"பேட்டரி சேமிப்பான் இயக்கத்தில் உள்ளது"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"நிராகரி"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"ஒலியளவு செய்தி: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"அசலை மீட்டமைக்கத் தொடவும்."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml
index 67e4338..009eddb 100644
--- a/packages/SystemUI/res/values-te-rIN/strings.xml
+++ b/packages/SystemUI/res/values-te-rIN/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"లాక్ స్క్రీన్."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"సెట్టింగ్‌లు"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"అవలోకనం."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"వినియోగదారు <xliff:g id="USER">%s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string>
<string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"వైఫై ఆఫ్ చేయబడింది."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> కోసం పైకి స్లైడ్ చేయండి."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> కోసం ఎడమవైపుకు స్లైడ్ చేయండి."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"అంతరాయాలు లేవు. అలారాలు కూడా లేవు."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"అంతరాయాలు లేకుండా"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"ప్రాధాన్య అంతరాయాలు మాత్రమే"</string>
<string name="zen_alarms" msgid="5055668280767657759">"అలారాలు మాత్రమే"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"మీరు మీ సెషన్‌ని కొనసాగించాలనుకుంటున్నారా?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"మొదటి నుండి ప్రారంభించు"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"అవును, కొనసాగించు"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"కొత్త వినియోగదారుని జోడించాలా?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"మీరు కొత్త వినియోగదారుని జోడించినప్పుడు, ఆ వ్యక్తి తన స్థలాన్ని సెటప్ చేసుకోవాలి.\n\nఏ వినియోగదారు అయినా మిగతా అందరు వినియోగదారుల కోసం అనువర్తనాలను నవీకరించగలరు."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"బ్యాటర్ సేవర్ ఆన్ చేయబడింది"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"తిరస్కరించు"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> అనేది వాల్యూమ్ డైలాగ్"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"అసలుదాన్ని పునరుద్ధరించడానికి తాకండి."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index b32ccec..bd0f58e 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ล็อกหน้าจอ"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"การตั้งค่า"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"ภาพรวม"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ผู้ใช้ <xliff:g id="USER">%s</xliff:g>"</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">"ปิด Wi-Fi แล้ว"</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"เลื่อนขึ้นเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
<string name="description_direction_left" msgid="7207478719805562165">"เลื่อนไปทางซ้ายเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ไม่มีการรบกวน แม้แต่นาฬิกาปลุก"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"ไม่มีการรบกวน"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"เฉพาะเรื่องสำคัญเท่านั้น"</string>
<string name="zen_alarms" msgid="5055668280767657759">"เฉพาะปลุกเท่านั้น"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"คุณต้องการอยู่ในเซสชันต่อไปไหม"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"เริ่มต้นใหม่"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ใช่ ดำเนินการต่อ"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"ต้องการเพิ่มผู้ใช้ใหม่ใช่ไหม"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"เมื่อคุณเพิ่มผู้ใช้ใหม่ ผู้ใช้ดังกล่าวจะต้องตั้งค่าพื้นที่ของตนเอง\n\nผู้ใช้ทุกคนสามารถอัปเดตแอปสำหรับผู้ใช้รายอื่นทุกคนได้"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"เปิดโหมดประหยัดแบตเตอรี่อยู่"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"ปฏิเสธ"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> เป็นช่องโต้ตอบระดับเสียง"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"แตะเพื่อคืนค่าดั้งเดิม"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index e944ae7..b8858af 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lock screen."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Mga Setting"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Overview"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User na si <xliff:g id="USER">%s</xliff:g>."</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">"Na-off ang wifi."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Mag-slide pataas para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Mag-slide pakaliwa para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Walang mga pagkaantala. Kahit mga alarma."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Walang mga paggambala"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Mga may priyoridad na paggambala lang"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Mga alarm lang"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Gusto mo bang ipagpatuloy ang iyong session?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Magsimulang muli"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Oo, magpatuloy"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Magdagdag ng bagong user?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Kapag nagdagdag ka ng bagong user, kailangang i-set up ng taong iyon ang kanyang espasyo.\n\nAng sinumang user ay maaaring mag-update ng mga app para sa lahat ng iba pang user."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Naka-on ang tagatipid ng baterya"</string>
@@ -388,4 +400,6 @@
<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="1826889705095768656">"Pindutin upang ibalik ang orihinal."</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index c955474..1b0d11f 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Kilit ekranı"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Ayarlar"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Genel Bakış."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Kullanıcı: <xliff:g id="USER">%s</xliff:g>."</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">"Kablosuz kapatıldı."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> için yukarı kaydırın."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> için sola kaydırın."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Kesinti yok. Uyarı bile yok."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Kesinti yok"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Sadece öncelikli kesintiler"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Yalnızca alarmlar"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Oturumunuza devam etmek istiyor musunuz?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Baştan başla"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Evet, devam et"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Yeni kullanıcı eklensin mi?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Yeni bir kullanıcı eklediğinizde, bu kişinin kendi alanını ayarlaması gerekir.\n\nHerhangi bir kullanıcı, diğer tüm kullanıcılar için uygulamaları güncelleyebilir."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Pil tasarrufu açık"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Reddet"</string>
<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="1826889705095768656">"Orijinali geri yüklemek için dokunun."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index fadd5f8..c5ebd3a 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Заблокований екран."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Налаштування"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Огляд."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Користувач <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi вимкнено."</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Проведіть пальцем угору, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Проведіть пальцем ліворуч, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Без сповіщень і сигналів будильника."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Без сповіщень"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Лише пріоритетні сповіщення"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Лише сигнали"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Продовжити сеанс?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Почати знову"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Так, продовжити"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Додати нового користувача?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Користувач має налаштувати свій профіль після створення.\n\nБудь-який користувач пристрою може оновлювати додатки для решти користувачів."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Режим заощадження заряду акумулятора ввімкнено"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Відхилити"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> призначено регулятором гучності"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Торкніться, щоб відновити оригінал."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml
index 1c081e5..c01a197 100644
--- a/packages/SystemUI/res/values-ur-rPK/strings.xml
+++ b/packages/SystemUI/res/values-ur-rPK/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"مقفل اسکرین۔"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"ترتیبات"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"مجموعی جائزہ۔"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"صارف <xliff:g id="USER">%s</xliff:g>۔"</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>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> کیلئے اوپر سلائیڈ کریں۔"</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> کیلئے بائیں سلائیڈ کریں۔"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"کوئی مداخلتیں نہیں ہیں۔ یہاں تک کہ الارمز بھی نہیں ہیں۔"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"کوئی مداخلتیں نہیں ہیں"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"صرف ترجیحی مداخلتیں"</string>
<string name="zen_alarms" msgid="5055668280767657759">"صرف الارمز"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"کیا آپ اپنا سیشن جاری رکھنا چاہتے ہیں؟"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"دوبارہ شروع کریں"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ہاں، جاری رکھیں"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"نیا صارف شامل کریں؟"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"جب آپ ایک نیا صارف شامل کرتے ہیں تو اس شخص کو اپنی جگہ کو ترتیب دینے کی ضرورت ہوتی ہے۔\n\nکوئی بھی صارف دیگر سبھی صارفین کیلئے ایپس کو اپ ڈیٹ کر سکتا ہے۔"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"بیٹری سیور آن ہے"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"مسترد کریں"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> والیوم ڈائلاگ ہے"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"اصل کو بحال کرنے کیلئے ٹچ کریں۔"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"‎@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml
index 6ac4e9f..37e9542 100644
--- a/packages/SystemUI/res/values-uz-rUZ/strings.xml
+++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Qulflash ekrani."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Sozlamalar"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Umumiy nazar."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Foydalanuvchi <xliff:g id="USER">%s</xliff:g>."</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">"Wi-Fi o‘chirildi."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun yuqoriga suring."</string>
<string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun chapga suring."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Hech narsa bezovta qilmaydi, hatto uyg‘otkichlar ham."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Tanaffuslarsiz"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Faqat ustuvor tanaffuslar"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Faqat signallar"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Seansni davom ettirmoqchimisiz?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Boshidan boshlansin"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ha, davom ettirilsin"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Yangi foyd-chi qo‘shilsinmi?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Yangi foydalanuvchi qo‘shilgach, o‘sha shaxs o‘z hududini sozlashi lozim bo‘ladi.\n\nHar qanday foydalanuvchi ilovalarni barcha foydalanuvchilar uchun yangilashi mumkin."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Quvvat tejash yoqilgan"</string>
@@ -388,4 +400,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ovoz balandligini boshqaradi"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Aslini tiklash uchun bosing."</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 57dfb26..3c2d0ef 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Màn hình khóa."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Cài đặt"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Tổng quan."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Người dùng <xliff:g id="USER">%s</xliff:g>."</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">"Đã tắt Wifi."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Trượt lên để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Trượt sang trái để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Không có gián đoạn. Thậm chí không có cảnh báo."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Không có gián đoạn nào"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Chỉ các gián đoạn ưu tiên"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Chỉ báo thức"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Bạn có muốn tiếp tục phiên của mình không?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Bắt đầu lại"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Có, tiếp tục"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Thêm người dùng mới?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Khi bạn thêm người dùng mới, người dùng đó cần thiết lập dung lượng lưu trữ của mình.\n\nMọi người dùng đều có thể cập nhật ứng dụng cho tất cả người dùng khác."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Trình tiết kiệm pin đang bật"</string>
@@ -387,6 +399,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"Từ chối"</string>
<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="1826889705095768656">"Chạm để khôi phục bản gốc."</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index d7a195a..32e7735 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"锁定屏幕。"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"设置"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"概览。"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"用户:<xliff:g id="USER">%s</xliff:g>。"</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">"WLAN已关闭。"</string>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"向上滑动以<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
<string name="description_direction_left" msgid="7207478719805562165">"向左滑动以<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"零打扰(甚至不发出闹钟提醒)。"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"禁止打扰"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"仅限优先打扰内容"</string>
<string name="zen_alarms" msgid="5055668280767657759">"仅限闹钟"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"要继续您的会话吗?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"重新开始"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"是,继续"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"要添加新用户吗?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"当您添加新用户时,该用户必须设置自己的空间。\n\n任何用户均可为其他所有用户更新应用。"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"节电助手已开启"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"拒绝"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"“<xliff:g id="APP_NAME">%1$s</xliff:g>”已用作音量控制对话框"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"触摸即可恢复原始设置。"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 5fed73c..bf8dfb2 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"上鎖畫面。"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"設定"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"概覽"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"使用者:<xliff:g id="USER">%s</xliff:g>。"</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>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"向上滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
<string name="description_direction_left" msgid="7207478719805562165">"向左滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"不干擾 (即使鬧鐘也不例外)。"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"不允許干擾"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"只限重要干擾"</string>
<string name="zen_alarms" msgid="5055668280767657759">"僅限鬧鐘"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"您要繼續您的工作階段嗎?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"重新開始"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"是的,請繼續"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"新增使用者?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"新增的使用者需要自行設定個人空間。\n\n任何使用者均可為所有其他使用者更新應用程式。"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"省電模式已開啟"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"拒絕"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」為音量對話框"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"輕觸即可復原。"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index d6851b8..f9b33ca 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -169,6 +169,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"螢幕鎖定。"</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"設定"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"總覽。"</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"使用者:<xliff:g id="USER">%s</xliff:g>。"</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>
@@ -303,6 +305,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"向上滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
<string name="description_direction_left" msgid="7207478719805562165">"向左滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"不干擾 (即使鬧鐘也不例外)。"</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"不允許干擾"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"僅限優先干擾"</string>
<string name="zen_alarms" msgid="5055668280767657759">"僅允許鬧鐘"</string>
@@ -338,6 +344,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"您要繼續這個工作階段嗎?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"重新開始"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"是,請繼續"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"新增使用者?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"新增的使用者需要自行設定個人空間。\n\n任何使用者皆可為其他所有使用者更新應用程式。"</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"節約耗電量模式已啟用"</string>
@@ -389,6 +401,7 @@
<string name="volumeui_prompt_deny" msgid="5720663643411696731">"拒絕"</string>
<string name="volumeui_notification_title" msgid="4906770126345910955">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」現在是預設的音量控制對話方塊。"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"輕觸這裡即可恢復原始設定。"</string>
- <!-- no translation found for volume_zen_switch_text (8149183012610587643) -->
+ <string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 8734428..9a32c4b 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -167,6 +167,8 @@
<string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Khiya isikrini."</string>
<string name="accessibility_desc_settings" msgid="3417884241751434521">"Izilungiselelo"</string>
<string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Buka konke."</string>
+ <!-- no translation found for accessibility_desc_confirm (3446792278337969766) -->
+ <skip />
<string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Umsebenzisi <xliff:g id="USER">%s</xliff:g>."</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">"I-Wifi ivaliwe."</string>
@@ -301,6 +303,10 @@
<string name="description_direction_up" msgid="7169032478259485180">"Shelelisela ngenhla ku-<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="description_direction_left" msgid="7207478719805562165">"Shelelisela ngakwesokunxele ku-<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
<string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Akukho ukuphazamiseka. Nama-alamu imbala."</string>
+ <!-- no translation found for zen_priority_introduction (7253045784560169993) -->
+ <skip />
+ <!-- no translation found for zen_priority_customize_button (7948043278226955063) -->
+ <skip />
<string name="zen_no_interruptions" msgid="7970973750143632592">"Azikho iziphazamiso"</string>
<string name="zen_important_interruptions" msgid="3477041776609757628">"Iziphazamiso ezibalulekile kuphela"</string>
<string name="zen_alarms" msgid="5055668280767657759">"Ama-alamu kuphela"</string>
@@ -336,6 +342,12 @@
<string name="guest_wipe_session_message" msgid="8476238178270112811">"Ingabe ufuna ukuqhubeka ngesikhathi sakho?"</string>
<string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Qala phansi"</string>
<string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Yebo, qhubeka"</string>
+ <!-- no translation found for guest_notification_title (1585278533840603063) -->
+ <skip />
+ <!-- no translation found for guest_notification_text (7513706222848825467) -->
+ <skip />
+ <!-- no translation found for guest_notification_remove_action (8820670703892101990) -->
+ <skip />
<string name="user_add_user_title" msgid="4553596395824132638">"Engeza umsebenzisi omusha?"</string>
<string name="user_add_user_message_short" msgid="2161624834066214559">"Uma ungeza umsebenzisi omusha, loyo muntu udinga ukusetha isikhala sakhe.\n\nNoma yimuphi umsebenzisi angabuyekeza izinhlelo zokusebenza kubo bonke abasebenzisi."</string>
<string name="battery_saver_notification_title" msgid="237918726750955859">"Isilondolozi sebhethri sivuliwe"</string>
@@ -388,4 +400,6 @@
<string name="volumeui_notification_title" msgid="4906770126345910955">"I-<xliff:g id="APP_NAME">%1$s</xliff:g> yingxoxo yevolumu"</string>
<string name="volumeui_notification_text" msgid="1826889705095768656">"Thinta ukuze ubuyisele kokwangempela."</string>
<string name="volume_zen_switch_text" msgid="8149183012610587643">"@*android:string/zen_mode_feature_name"</string>
+ <!-- no translation found for managed_profile_foreground_toast (3199278359979281097) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 2e9e9f7..051d233 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -147,7 +147,7 @@
<integer name="heads_up_default_snooze_length_ms">60000</integer>
<!-- Minimum display time for a heads up notification, in milliseconds. -->
- <integer name="heads_up_notification_minimum_time">3000</integer>
+ <integer name="heads_up_notification_minimum_time">2000</integer>
<!-- milliseconds before the heads up notification accepts touches. -->
<integer name="heads_up_sensitivity_delay">700</integer>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index b6ff1ce..9e084a0 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -330,7 +330,7 @@
keyguard_clock_height_fraction_* for the difference between min and max.-->
<dimen name="keyguard_clock_notifications_margin_min">24dp</dimen>
<dimen name="keyguard_clock_notifications_margin_max">36dp</dimen>
- <dimen name="heads_up_window_height">250dp</dimen>
+ <dimen name="heads_up_scrim_height">250dp</dimen>
<!-- The minimum amount the user needs to swipe to go to the camera / phone. -->
<dimen name="keyguard_min_swipe_amount">110dp</dimen>
diff --git a/packages/SystemUI/res/values/ids.xml b/packages/SystemUI/res/values/ids.xml
index 3fc75d2..6d84727 100644
--- a/packages/SystemUI/res/values/ids.xml
+++ b/packages/SystemUI/res/values/ids.xml
@@ -37,6 +37,8 @@
<item type="id" name="doze_saved_filter_tag"/>
<item type="id" name="qs_icon_tag"/>
<item type="id" name="scrim"/>
+ <item type="id" name="hun_scrim_alpha_start"/>
+ <item type="id" name="hun_scrim_alpha_end"/>
<item type="id" name="notification_power"/>
<item type="id" name="notification_screenshot"/>
<item type="id" name="notification_hidden"/>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index 974cc48..87f9ca2 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -205,11 +205,6 @@
<style name="Animation.StatusBar">
</style>
- <style name="Animation.StatusBar.HeadsUp">
- <item name="android:windowEnterAnimation">@anim/heads_up_enter</item>
- <item name="android:windowExitAnimation">@anim/heads_up_exit</item>
- </style>
-
<style name="systemui_theme" parent="@android:style/Theme.DeviceDefault">
<item name="android:colorPrimary">@color/system_primary_color</item>
<item name="android:colorControlActivated">@color/system_accent_color</item>
diff --git a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
index bc7f745..fece07f 100644
--- a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
@@ -322,6 +322,10 @@ public class ExpandHelper implements Gefingerpoken {
isInside(mScrollAdapter.getHostView(), x, y)
&& mScrollAdapter.isScrolledToTop();
mResizedView = findView(x, y);
+ if (mResizedView != null && !mCallback.canChildBeExpanded(mResizedView)) {
+ mResizedView = null;
+ mWatchingForPull = false;
+ }
mInitialTouchY = ev.getY();
break;
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 065d62e..97a4c55 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -867,6 +867,12 @@ public class KeyguardViewMediator extends SystemUI {
*/
private void handleSetOccluded(boolean isOccluded) {
synchronized (KeyguardViewMediator.this) {
+ if (mHiding && isOccluded) {
+ // We're in the process of going away but WindowManager wants to show a
+ // SHOW_WHEN_LOCKED activity instead.
+ startKeyguardExitAnimation(0, 0);
+ }
+
if (mOccluded != isOccluded) {
mOccluded = isOccluded;
mStatusBarKeyguardViewManager.setOccluded(isOccluded);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index ee607a7..9f86475 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -96,7 +96,7 @@ import com.android.systemui.statusbar.NotificationData.Entry;
import com.android.systemui.statusbar.phone.NavigationBarView;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
-import com.android.systemui.statusbar.policy.HeadsUpNotificationView;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.PreviewInflater;
import com.android.systemui.statusbar.policy.RemoteInputView;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
@@ -130,9 +130,6 @@ public abstract class BaseStatusBar extends SystemUI implements
protected static final int MSG_CANCEL_PRELOAD_RECENT_APPS = 1023;
protected static final int MSG_SHOW_NEXT_AFFILIATED_TASK = 1024;
protected static final int MSG_SHOW_PREV_AFFILIATED_TASK = 1025;
- protected static final int MSG_SHOW_HEADS_UP = 1028;
- protected static final int MSG_HIDE_HEADS_UP = 1029;
- protected static final int MSG_ESCALATE_HEADS_UP = 1030;
protected static final boolean ENABLE_HEADS_UP = true;
// scores above this threshold should be displayed in heads up mode.
@@ -158,8 +155,7 @@ public abstract class BaseStatusBar extends SystemUI implements
protected NotificationGroupManager mGroupManager = new NotificationGroupManager();
// for heads up notifications
- protected HeadsUpNotificationView mHeadsUpNotificationView;
- protected int mHeadsUpNotificationDecay;
+ protected HeadsUpManager mHeadsUpManager;
protected int mCurrentUserId = 0;
final protected SparseArray<UserInfo> mCurrentProfiles = new SparseArray<UserInfo>();
@@ -446,9 +442,8 @@ public abstract class BaseStatusBar extends SystemUI implements
@Override
public void run() {
processForRemoteInput(sbn.getNotification());
- Notification n = sbn.getNotification();
- boolean isUpdate = mNotificationData.get(sbn.getKey()) != null
- || isHeadsUp(sbn.getKey());
+ String key = sbn.getKey();
+ boolean isUpdate = mNotificationData.get(key) != null;
// In case we don't allow child notifications, we ignore children of
// notifications that have a summary, since we're not going to show them
@@ -462,7 +457,7 @@ public abstract class BaseStatusBar extends SystemUI implements
// Remove existing notification to avoid stale data.
if (isUpdate) {
- removeNotification(sbn.getKey(), rankingMap);
+ removeNotification(key, rankingMap);
} else {
mNotificationData.updateRanking(rankingMap);
}
@@ -693,13 +688,11 @@ public abstract class BaseStatusBar extends SystemUI implements
}
private void setHeadsUpUser(int newUserId) {
- if (mHeadsUpNotificationView != null) {
- mHeadsUpNotificationView.setUser(newUserId);
- }
+ mHeadsUpManager.setUser(newUserId);
}
public boolean isHeadsUp(String key) {
- return mHeadsUpNotificationView != null && mHeadsUpNotificationView.isShowing(key);
+ return mHeadsUpManager.isHeadsUp(key);
}
@Override // NotificationData.Environment
@@ -758,8 +751,7 @@ public abstract class BaseStatusBar extends SystemUI implements
protected View updateNotificationVetoButton(View row, StatusBarNotification n) {
View vetoButton = row.findViewById(R.id.veto);
- if (n.isClearable() || (mHeadsUpNotificationView.getEntry() != null
- && mHeadsUpNotificationView.getEntry().row == row)) {
+ if (n.isClearable()) {
final String _pkg = n.getPackageName();
final String _tag = n.getTag();
final int _id = n.getId();
@@ -1002,9 +994,6 @@ public abstract class BaseStatusBar extends SystemUI implements
}
}
- public void onHeadsUpDismissed() {
- }
-
@Override
public void showRecentApps(boolean triggeredFromAltTab) {
int msg = MSG_SHOW_RECENT_APPS;
@@ -1141,13 +1130,10 @@ public abstract class BaseStatusBar extends SystemUI implements
// Do nothing
}
- public abstract void scheduleHeadsUpDecay(long delay);
-
- public abstract void scheduleHeadsUpOpen();
-
- public abstract void scheduleHeadsUpClose();
-
- public abstract void scheduleHeadsUpEscalation();
+ /**
+ * if the interrupting notification had a fullscreen intent, fire it now.
+ */
+ public abstract void escalateHeadsUp();
/**
* Save the current "public" (locked and secure) state of the lockscreen.
@@ -1238,15 +1224,7 @@ public abstract class BaseStatusBar extends SystemUI implements
protected void workAroundBadLayerDrawableOpacity(View v) {
}
- protected boolean inflateViews(NotificationData.Entry entry, ViewGroup parent) {
- return inflateViews(entry, parent, false);
- }
-
- protected boolean inflateViewsForHeadsUp(NotificationData.Entry entry, ViewGroup parent) {
- return inflateViews(entry, parent, true);
- }
-
- private boolean inflateViews(NotificationData.Entry entry, ViewGroup parent, boolean isHeadsUp) {
+ protected boolean inflateViews(Entry entry, ViewGroup parent) {
PackageManager pmUser = getPackageManagerForUser(
entry.notification.getUser().getIdentifier());
@@ -1254,12 +1232,7 @@ public abstract class BaseStatusBar extends SystemUI implements
final StatusBarNotification sbn = entry.notification;
RemoteViews contentView = sbn.getNotification().contentView;
RemoteViews bigContentView = sbn.getNotification().bigContentView;
-
- if (isHeadsUp) {
- maxHeight =
- mContext.getResources().getDimensionPixelSize(R.dimen.notification_mid_height);
- bigContentView = sbn.getNotification().headsUpContentView;
- }
+ RemoteViews headsUpContentView = sbn.getNotification().headsUpContentView;
if (contentView == null) {
return false;
@@ -1284,7 +1257,6 @@ public abstract class BaseStatusBar extends SystemUI implements
hasUserChangedExpansion = row.hasUserChangedExpansion();
userExpanded = row.isUserExpanded();
userLocked = row.isUserLocked();
- entry.row.setHeadsUp(isHeadsUp);
entry.reset();
if (hasUserChangedExpansion) {
row.setUserExpanded(userExpanded);
@@ -1307,10 +1279,8 @@ public abstract class BaseStatusBar extends SystemUI implements
// NB: the large icon is now handled entirely by the template
// bind the click event to the content area
- NotificationContentView expanded =
- (NotificationContentView) row.findViewById(R.id.expanded);
- NotificationContentView expandedPublic =
- (NotificationContentView) row.findViewById(R.id.expandedPublic);
+ NotificationContentView contentContainer = row.getPrivateLayout();
+ NotificationContentView contentContainerPublic = row.getPublicLayout();
row.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
if (ENABLE_REMOTE_INPUT) {
@@ -1328,11 +1298,16 @@ public abstract class BaseStatusBar extends SystemUI implements
// set up the adaptive layout
View contentViewLocal = null;
View bigContentViewLocal = null;
+ View headsUpContentViewLocal = null;
try {
- contentViewLocal = contentView.apply(mContext, expanded,
+ contentViewLocal = contentView.apply(mContext, contentContainer,
mOnClickHandler);
if (bigContentView != null) {
- bigContentViewLocal = bigContentView.apply(mContext, expanded,
+ bigContentViewLocal = bigContentView.apply(mContext, contentContainer,
+ mOnClickHandler);
+ }
+ if (headsUpContentView != null) {
+ headsUpContentViewLocal = headsUpContentView.apply(mContext, contentContainer,
mOnClickHandler);
}
}
@@ -1344,23 +1319,27 @@ public abstract class BaseStatusBar extends SystemUI implements
if (contentViewLocal != null) {
contentViewLocal.setIsRootNamespace(true);
- expanded.setContractedChild(contentViewLocal);
+ contentContainer.setContractedChild(contentViewLocal);
}
if (bigContentViewLocal != null) {
bigContentViewLocal.setIsRootNamespace(true);
- expanded.setExpandedChild(bigContentViewLocal);
+ contentContainer.setExpandedChild(bigContentViewLocal);
+ }
+ if (headsUpContentViewLocal != null) {
+ headsUpContentViewLocal.setIsRootNamespace(true);
+ contentContainer.setHeadsUpChild(headsUpContentViewLocal);
}
// now the public version
View publicViewLocal = null;
if (publicNotification != null) {
try {
- publicViewLocal = publicNotification.contentView.apply(mContext, expandedPublic,
+ publicViewLocal = publicNotification.contentView.apply(mContext, contentContainerPublic,
mOnClickHandler);
if (publicViewLocal != null) {
publicViewLocal.setIsRootNamespace(true);
- expandedPublic.setContractedChild(publicViewLocal);
+ contentContainerPublic.setContractedChild(publicViewLocal);
}
}
catch (RuntimeException e) {
@@ -1382,9 +1361,9 @@ public abstract class BaseStatusBar extends SystemUI implements
// Add a basic notification template
publicViewLocal = LayoutInflater.from(mContext).inflate(
R.layout.notification_public_default,
- expandedPublic, false);
+ contentContainerPublic, false);
publicViewLocal.setIsRootNamespace(true);
- expandedPublic.setContractedChild(publicViewLocal);
+ contentContainerPublic.setContractedChild(publicViewLocal);
final TextView title = (TextView) publicViewLocal.findViewById(R.id.title);
try {
@@ -1520,13 +1499,8 @@ public abstract class BaseStatusBar extends SystemUI implements
stripped.contentView = null;
stripped.extras.putBoolean("android.rebuild.bigView", true);
stripped.bigContentView = null;
-
- // Don't create the HUN input view for now because input doesn't work there yet.
- // TODO: Enable once HUNs can take remote input correctly.
- if (false) {
- stripped.extras.putBoolean("android.rebuild.hudView", true);
- stripped.headsUpContentView = null;
- }
+ stripped.extras.putBoolean("android.rebuild.hudView", true);
+ stripped.headsUpContentView = null;
Notification rebuilt = Notification.Builder.rebuild(mContext, stripped);
@@ -1558,16 +1532,23 @@ public abstract class BaseStatusBar extends SystemUI implements
}
// See if we have somewhere to put that remote input
- ViewGroup actionContainer = null;
- if (remoteInput != null && entry.expandedBig != null) {
- View actionContainerCandidate = entry.expandedBig
- .findViewById(com.android.internal.R.id.actions);
- if (actionContainerCandidate instanceof ViewGroup) {
- actionContainer = (ViewGroup) actionContainerCandidate;
+ if (remoteInput != null) {
+ if (entry.expandedBig != null) {
+ inflateRemoteInput(entry.expandedBig, remoteInput, actions);
+ }
+ View headsUpChild = entry.row.getPrivateLayout().getHeadsUpChild();
+ if (headsUpChild != null) {
+ inflateRemoteInput(headsUpChild, remoteInput, actions);
}
}
- if (actionContainer != null) {
+ }
+
+ private void inflateRemoteInput(View view, RemoteInput remoteInput,
+ Notification.Action[] actions) {
+ View actionContainerCandidate = view.findViewById(com.android.internal.R.id.actions);
+ if (actionContainerCandidate instanceof ViewGroup) {
+ ViewGroup actionContainer = (ViewGroup) actionContainerCandidate;
actionContainer.removeAllViews();
actionContainer.addView(
RemoteInputView.inflate(mContext, actionContainer, actions[0], remoteInput));
@@ -1597,12 +1578,12 @@ public abstract class BaseStatusBar extends SystemUI implements
mCurrentUserId);
dismissKeyguardThenExecute(new OnDismissAction() {
public boolean onDismiss() {
- if (mNotificationKey.equals(mHeadsUpNotificationView.getKey())) {
+ if (mHeadsUpManager.isHeadsUp(mNotificationKey)) {
// Release the HUN notification to the shade.
//
// In most cases, when FLAG_AUTO_CANCEL is set, the notification will
// become canceled shortly by NoMan, but we can't assume that.
- mHeadsUpNotificationView.releaseImmediately();
+ mHeadsUpManager.releaseImmediately(mNotificationKey);
}
new Thread() {
@Override
@@ -1889,90 +1870,28 @@ public abstract class BaseStatusBar extends SystemUI implements
if (DEBUG) Log.d(TAG, "updateNotification(" + notification + ")");
final String key = notification.getKey();
- boolean wasHeadsUp = isHeadsUp(key);
- Entry oldEntry;
- if (wasHeadsUp) {
- oldEntry = mHeadsUpNotificationView.getEntry();
- } else {
- oldEntry = mNotificationData.get(key);
- }
- if (oldEntry == null) {
+ Entry entry = mNotificationData.get(key);
+ if (entry == null) {
return;
}
- final StatusBarNotification oldNotification = oldEntry.notification;
-
- // XXX: modify when we do something more intelligent with the two content views
- final RemoteViews oldContentView = oldNotification.getNotification().contentView;
Notification n = notification.getNotification();
- final RemoteViews contentView = n.contentView;
- final RemoteViews oldBigContentView = oldNotification.getNotification().bigContentView;
- final RemoteViews bigContentView = n.bigContentView;
- final RemoteViews oldHeadsUpContentView = oldNotification.getNotification().headsUpContentView;
- final RemoteViews headsUpContentView = n.headsUpContentView;
- final Notification oldPublicNotification = oldNotification.getNotification().publicVersion;
- final RemoteViews oldPublicContentView = oldPublicNotification != null
- ? oldPublicNotification.contentView : null;
- final Notification publicNotification = n.publicVersion;
- final RemoteViews publicContentView = publicNotification != null
- ? publicNotification.contentView : null;
-
if (DEBUG) {
- Log.d(TAG, "old notification: when=" + oldNotification.getNotification().when
- + " ongoing=" + oldNotification.isOngoing()
- + " expanded=" + oldEntry.expanded
- + " contentView=" + oldContentView
- + " bigContentView=" + oldBigContentView
- + " publicView=" + oldPublicContentView
- + " rowParent=" + oldEntry.row.getParent());
- Log.d(TAG, "new notification: when=" + n.when
- + " ongoing=" + oldNotification.isOngoing()
- + " contentView=" + contentView
- + " bigContentView=" + bigContentView
- + " publicView=" + publicContentView);
- }
-
- // Can we just reapply the RemoteViews in place?
-
- // 1U is never null
- boolean contentsUnchanged = oldEntry.expanded != null
- && contentView.getPackage() != null
- && oldContentView.getPackage() != null
- && oldContentView.getPackage().equals(contentView.getPackage())
- && oldContentView.getLayoutId() == contentView.getLayoutId();
- // large view may be null
- boolean bigContentsUnchanged =
- (oldEntry.getBigContentView() == null && bigContentView == null)
- || ((oldEntry.getBigContentView() != null && bigContentView != null)
- && bigContentView.getPackage() != null
- && oldBigContentView.getPackage() != null
- && oldBigContentView.getPackage().equals(bigContentView.getPackage())
- && oldBigContentView.getLayoutId() == bigContentView.getLayoutId());
- boolean headsUpContentsUnchanged =
- (oldHeadsUpContentView == null && headsUpContentView == null)
- || ((oldHeadsUpContentView != null && headsUpContentView != null)
- && headsUpContentView.getPackage() != null
- && oldHeadsUpContentView.getPackage() != null
- && oldHeadsUpContentView.getPackage().equals(headsUpContentView.getPackage())
- && oldHeadsUpContentView.getLayoutId() == headsUpContentView.getLayoutId());
- boolean publicUnchanged =
- (oldPublicContentView == null && publicContentView == null)
- || ((oldPublicContentView != null && publicContentView != null)
- && publicContentView.getPackage() != null
- && oldPublicContentView.getPackage() != null
- && oldPublicContentView.getPackage().equals(publicContentView.getPackage())
- && oldPublicContentView.getLayoutId() == publicContentView.getLayoutId());
-
+ logUpdate(entry, n);
+ }
+ boolean applyInPlace = shouldApplyInPlace(entry, n);
final boolean shouldInterrupt = shouldInterrupt(notification);
- final boolean alertAgain = shouldInterrupt && alertAgain(oldEntry, n);
+ final boolean alertAgain = alertAgain(entry, n);
+
+ entry.notification = notification;
+ mGroupManager.onEntryUpdated(entry, entry.notification);
+
boolean updateSuccessful = false;
- if (contentsUnchanged && bigContentsUnchanged && headsUpContentsUnchanged
- && publicUnchanged) {
+ if (applyInPlace) {
+ // We can just reapply the notifications in place
if (DEBUG) Log.d(TAG, "reusing notification for key: " + key);
- oldEntry.notification = notification;
- mGroupManager.onEntryUpdated(oldEntry, oldNotification);
try {
- if (oldEntry.icon != null) {
+ if (entry.icon != null) {
// Update the icon
final StatusBarIcon ic = new StatusBarIcon(notification.getPackageName(),
notification.getUser(),
@@ -1980,88 +1899,39 @@ public abstract class BaseStatusBar extends SystemUI implements
n.iconLevel,
n.number,
n.tickerText);
- oldEntry.icon.setNotification(n);
- if (!oldEntry.icon.set(ic)) {
+ entry.icon.setNotification(n);
+ if (!entry.icon.set(ic)) {
handleNotificationError(notification, "Couldn't update icon: " + ic);
return;
}
}
-
- if (wasHeadsUp) {
- // Release may hang on to the views for a bit, so we should always update them.
- updateHeadsUpViews(oldEntry, notification);
- mHeadsUpNotificationView.updateNotification(oldEntry, alertAgain);
- if (!shouldInterrupt) {
- // we updated the notification above, so release to build a new shade entry
- mHeadsUpNotificationView.release();
- return;
- }
- } else {
- if (shouldInterrupt && alertAgain) {
- mStackScroller.setRemoveAnimationEnabled(false);
- removeNotificationViews(key, ranking);
- mStackScroller.setRemoveAnimationEnabled(true);
- addNotification(notification, ranking, oldEntry); //this will pop the headsup
- } else {
- updateNotificationViews(oldEntry, notification);
- }
- }
- mNotificationData.updateRanking(ranking);
- updateNotifications();
+ updateNotificationViews(entry, notification);
updateSuccessful = true;
}
catch (RuntimeException e) {
// It failed to add cleanly. Log, and remove the view from the panel.
- Log.w(TAG, "Couldn't reapply views for package " + contentView.getPackage(), e);
+ Log.w(TAG, "Couldn't reapply views for package " + n.contentView.getPackage(), e);
}
}
if (!updateSuccessful) {
if (DEBUG) Log.d(TAG, "not reusing notification for key: " + key);
- if (wasHeadsUp) {
- if (DEBUG) Log.d(TAG, "rebuilding heads up for key: " + key);
- ViewGroup holder = mHeadsUpNotificationView.getHolder();
- if (inflateViewsForHeadsUp(oldEntry, holder)) {
- mHeadsUpNotificationView.updateNotification(oldEntry, alertAgain);
- } else {
- Log.w(TAG, "Couldn't create new updated headsup for package "
- + contentView.getPackage());
- }
- if (!shouldInterrupt) {
- if (DEBUG) Log.d(TAG, "releasing heads up for key: " + key);
- oldEntry.notification = notification;
- mGroupManager.onEntryUpdated(oldEntry, oldNotification);
- mHeadsUpNotificationView.release();
- return;
- }
- } else {
- if (shouldInterrupt && alertAgain) {
- if (DEBUG) Log.d(TAG, "reposting to invoke heads up for key: " + key);
- mStackScroller.setRemoveAnimationEnabled(false);
- removeNotificationViews(key, ranking);
- mStackScroller.setRemoveAnimationEnabled(true);
- addNotification(notification, ranking, oldEntry); //this will pop the headsup
- } else {
- if (DEBUG) Log.d(TAG, "rebuilding update in place for key: " + key);
- oldEntry.notification = notification;
- mGroupManager.onEntryUpdated(oldEntry, oldNotification);
- final StatusBarIcon ic = new StatusBarIcon(notification.getPackageName(),
- notification.getUser(),
- n.icon,
- n.iconLevel,
- n.number,
- n.tickerText);
- oldEntry.icon.setNotification(n);
- oldEntry.icon.set(ic);
- inflateViews(oldEntry, mStackScroller, wasHeadsUp);
- mNotificationData.updateRanking(ranking);
- updateNotifications();
- }
- }
+ final StatusBarIcon ic = new StatusBarIcon(notification.getPackageName(),
+ notification.getUser(),
+ n.icon,
+ n.iconLevel,
+ n.number,
+ n.tickerText);
+ entry.icon.setNotification(n);
+ entry.icon.set(ic);
+ inflateViews(entry, mStackScroller);
}
+ updateHeadsUp(key, entry, shouldInterrupt, alertAgain);
+ mNotificationData.updateRanking(ranking);
+ updateNotifications();
// Update the veto button accordingly (and as a result, whether this row is
// swipe-dismissable)
- updateNotificationVetoButton(oldEntry.row, notification);
+ updateNotificationVetoButton(entry.row, notification);
// Is this for you?
boolean isForCurrentUser = isNotificationForCurrentProfiles(notification);
@@ -2071,22 +1941,91 @@ public abstract class BaseStatusBar extends SystemUI implements
setAreThereNotifications();
}
- private void updateNotificationViews(NotificationData.Entry entry,
- StatusBarNotification notification) {
- updateNotificationViews(entry, notification, false);
+ private void updateHeadsUp(String key, Entry entry, boolean shouldInterrupt,
+ boolean alertAgain) {
+ final boolean wasHeadsUp = isHeadsUp(key);
+ if (wasHeadsUp) {
+ mHeadsUpManager.updateNotification(entry, alertAgain);
+ if (!shouldInterrupt) {
+ // We don't want this to be interrupting anymore, lets remove it
+ mHeadsUpManager.removeNotification(key);
+ }
+ } else if (shouldInterrupt && alertAgain) {
+ // This notification was updated to be a heads-up, show it!
+ mHeadsUpManager.showNotification(entry);
+ }
}
- private void updateHeadsUpViews(NotificationData.Entry entry,
- StatusBarNotification notification) {
- updateNotificationViews(entry, notification, true);
+ private void logUpdate(Entry oldEntry, Notification n) {
+ StatusBarNotification oldNotification = oldEntry.notification;
+ Log.d(TAG, "old notification: when=" + oldNotification.getNotification().when
+ + " ongoing=" + oldNotification.isOngoing()
+ + " expanded=" + oldEntry.expanded
+ + " contentView=" + oldNotification.getNotification().contentView
+ + " bigContentView=" + oldNotification.getNotification().bigContentView
+ + " publicView=" + oldNotification.getNotification().publicVersion
+ + " rowParent=" + oldEntry.row.getParent());
+ Log.d(TAG, "new notification: when=" + n.when
+ + " ongoing=" + oldNotification.isOngoing()
+ + " contentView=" + n.contentView
+ + " bigContentView=" + n.bigContentView
+ + " publicView=" + n.publicVersion);
}
- private void updateNotificationViews(NotificationData.Entry entry,
- StatusBarNotification notification, boolean isHeadsUp) {
+ /**
+ * @return whether we can just reapply the RemoteViews in place when it is updated
+ */
+ private boolean shouldApplyInPlace(Entry entry, Notification n) {
+ StatusBarNotification oldNotification = entry.notification;
+ // XXX: modify when we do something more intelligent with the two content views
+ final RemoteViews oldContentView = oldNotification.getNotification().contentView;
+ final RemoteViews contentView = n.contentView;
+ final RemoteViews oldBigContentView = oldNotification.getNotification().bigContentView;
+ final RemoteViews bigContentView = n.bigContentView;
+ final RemoteViews oldHeadsUpContentView
+ = oldNotification.getNotification().headsUpContentView;
+ final RemoteViews headsUpContentView = n.headsUpContentView;
+ final Notification oldPublicNotification = oldNotification.getNotification().publicVersion;
+ final RemoteViews oldPublicContentView = oldPublicNotification != null
+ ? oldPublicNotification.contentView : null;
+ final Notification publicNotification = n.publicVersion;
+ final RemoteViews publicContentView = publicNotification != null
+ ? publicNotification.contentView : null;
+ boolean contentsUnchanged = entry.expanded != null
+ && contentView.getPackage() != null
+ && oldContentView.getPackage() != null
+ && oldContentView.getPackage().equals(contentView.getPackage())
+ && oldContentView.getLayoutId() == contentView.getLayoutId();
+ // large view may be null
+ boolean bigContentsUnchanged =
+ (entry.getBigContentView() == null && bigContentView == null)
+ || ((entry.getBigContentView() != null && bigContentView != null)
+ && bigContentView.getPackage() != null
+ && oldBigContentView.getPackage() != null
+ && oldBigContentView.getPackage().equals(bigContentView.getPackage())
+ && oldBigContentView.getLayoutId() == bigContentView.getLayoutId());
+ boolean headsUpContentsUnchanged =
+ (oldHeadsUpContentView == null && headsUpContentView == null)
+ || ((oldHeadsUpContentView != null && headsUpContentView != null)
+ && headsUpContentView.getPackage() != null
+ && oldHeadsUpContentView.getPackage() != null
+ && oldHeadsUpContentView.getPackage().equals(headsUpContentView.getPackage())
+ && oldHeadsUpContentView.getLayoutId() == headsUpContentView.getLayoutId());
+ boolean publicUnchanged =
+ (oldPublicContentView == null && publicContentView == null)
+ || ((oldPublicContentView != null && publicContentView != null)
+ && publicContentView.getPackage() != null
+ && oldPublicContentView.getPackage() != null
+ && oldPublicContentView.getPackage().equals(publicContentView.getPackage())
+ && oldPublicContentView.getLayoutId() == publicContentView.getLayoutId());
+ return contentsUnchanged && bigContentsUnchanged && headsUpContentsUnchanged
+ && publicUnchanged;
+ }
+
+ private void updateNotificationViews(Entry entry, StatusBarNotification notification) {
final RemoteViews contentView = notification.getNotification().contentView;
- final RemoteViews bigContentView = isHeadsUp
- ? notification.getNotification().headsUpContentView
- : notification.getNotification().bigContentView;
+ final RemoteViews bigContentView = notification.getNotification().bigContentView;
+ final RemoteViews headsUpContentView = notification.getNotification().headsUpContentView;
final Notification publicVersion = notification.getNotification().publicVersion;
final RemoteViews publicContentView = publicVersion != null ? publicVersion.contentView
: null;
@@ -2097,6 +2036,10 @@ public abstract class BaseStatusBar extends SystemUI implements
bigContentView.reapply(mContext, entry.getBigContentView(),
mOnClickHandler);
}
+ View headsUpChild = entry.row.getPrivateLayout().getHeadsUpChild();
+ if (headsUpContentView != null && headsUpChild != null) {
+ headsUpContentView.reapply(mContext, headsUpChild, mOnClickHandler);
+ }
if (publicContentView != null && entry.getPublicContentView() != null) {
publicContentView.reapply(mContext, entry.getPublicContentView(), mOnClickHandler);
}
@@ -2115,10 +2058,8 @@ public abstract class BaseStatusBar extends SystemUI implements
applyRemoteInput(entry);
}
- protected void notifyHeadsUpScreenOn(boolean screenOn) {
- if (!screenOn) {
- scheduleHeadsUpEscalation();
- }
+ protected void notifyHeadsUpScreenOff() {
+ escalateHeadsUp();
}
private boolean alertAgain(Entry oldEntry, Notification newNotification) {
@@ -2134,7 +2075,7 @@ public abstract class BaseStatusBar extends SystemUI implements
return false;
}
- if (mHeadsUpNotificationView.isSnoozed(sbn.getPackageName())) {
+ if (mHeadsUpManager.isSnoozed(sbn.getPackageName())) {
return false;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
index 06a174e..33a07d9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
@@ -78,13 +78,14 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
private NotificationContentView mPublicLayout;
private NotificationContentView mPrivateLayout;
private int mMaxExpandHeight;
+ private int mHeadsUpHeight;
private View mVetoButton;
private boolean mClearable;
private ExpansionLogger mLogger;
private String mLoggingKey;
private boolean mWasReset;
- private NotificationGuts mGuts;
+ private NotificationGuts mGuts;
private StatusBarNotification mStatusBarNotification;
private boolean mIsHeadsUp;
private View mExpandButton;
@@ -108,6 +109,15 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
!mChildrenExpanded);
}
};
+ private boolean mInShade;
+
+ public NotificationContentView getPrivateLayout() {
+ return mPrivateLayout;
+ }
+
+ public NotificationContentView getPublicLayout() {
+ return mPublicLayout;
+ }
public void setIconAnimationRunning(boolean running) {
setIconAnimationRunning(running, mPublicLayout);
@@ -118,8 +128,10 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
if (layout != null) {
View contractedChild = layout.getContractedChild();
View expandedChild = layout.getExpandedChild();
+ View headsUpChild = layout.getHeadsUpChild();
setIconAnimationRunningForChild(running, contractedChild);
setIconAnimationRunningForChild(running, expandedChild);
+ setIconAnimationRunningForChild(running, headsUpChild);
}
}
@@ -164,8 +176,17 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
return mStatusBarNotification;
}
+ public boolean isHeadsUp() {
+ return mIsHeadsUp;
+ }
+
public void setHeadsUp(boolean isHeadsUp) {
+ int intrinsicBefore = getIntrinsicHeight();
mIsHeadsUp = isHeadsUp;
+ mPrivateLayout.setHeadsUp(isHeadsUp);
+ if (intrinsicBefore != getIntrinsicHeight()) {
+ notifyHeightChanged(false /* needsAnimation */);
+ }
}
public void setGroupManager(NotificationGroupManager groupManager) {
@@ -263,6 +284,18 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
return realActualHeight;
}
+ public void setInShade(boolean inShade) {
+ mInShade = inShade;
+ }
+
+ public boolean isInShade() {
+ return mInShade;
+ }
+
+ public int getHeadsUpHeight() {
+ return mHeadsUpHeight;
+ }
+
public interface ExpansionLogger {
public void logNotificationExpansion(String key, boolean userAction, boolean expanded);
}
@@ -299,6 +332,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
resetActualHeight();
}
mMaxExpandHeight = 0;
+ mHeadsUpHeight = 0;
mWasReset = true;
onHeightReset();
requestLayout();
@@ -536,7 +570,13 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
}
boolean inExpansionState = isExpanded();
int maxContentHeight;
- if ((!inExpansionState && !mChildrenExpanded) || mShowingPublicForIntrinsicHeight) {
+ if (mIsHeadsUp) {
+ if (inExpansionState) {
+ maxContentHeight = Math.max(mMaxExpandHeight, mHeadsUpHeight);
+ } else {
+ maxContentHeight = Math.max(mRowMinHeight, mHeadsUpHeight);
+ }
+ } else if ((!inExpansionState && !mChildrenExpanded) || mShowingPublicForIntrinsicHeight) {
maxContentHeight = mRowMinHeight;
} else if (mChildrenExpanded) {
maxContentHeight = mChildrenContainer.getIntrinsicHeight();
@@ -583,7 +623,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
boolean updateExpandHeight = mMaxExpandHeight == 0 && !mWasReset;
- updateMaxExpandHeight();
+ updateMaxHeights();
if (updateExpandHeight) {
applyExpansionToLayout();
}
@@ -599,9 +639,18 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
return super.isChildInvisible(child) || isInvisibleChildContainer;
}
- private void updateMaxExpandHeight() {
+ private void updateMaxHeights() {
int intrinsicBefore = getIntrinsicHeight();
- mMaxExpandHeight = mPrivateLayout.getMaxHeight();
+ View expandedChild = mPrivateLayout.getExpandedChild();
+ if (expandedChild == null) {
+ expandedChild = mPrivateLayout.getContractedChild();
+ }
+ mMaxExpandHeight = expandedChild.getHeight();
+ View headsUpChild = mPrivateLayout.getHeadsUpChild();
+ if (headsUpChild == null) {
+ headsUpChild = mPrivateLayout.getContractedChild();
+ }
+ mHeadsUpHeight = headsUpChild.getHeight();
if (intrinsicBefore != getIntrinsicHeight()) {
notifyHeightChanged(false /* needsAnimation */);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java
index 7ae0d6d..e632cc8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java
@@ -118,6 +118,7 @@ public abstract class ExpandableView extends FrameLayout {
setContentHeight(initialHeight);
}
}
+ updateClipping();
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java
index 745e75d..964d75f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java
@@ -23,10 +23,12 @@ import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
+import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.animation.Interpolator;
import android.view.animation.LinearInterpolator;
import android.widget.FrameLayout;
+
import com.android.systemui.R;
/**
@@ -37,23 +39,28 @@ import com.android.systemui.R;
public class NotificationContentView extends FrameLayout {
private static final long ANIMATION_DURATION_LENGTH = 170;
+ private static final int CONTRACTED = 1;
+ private static final int EXPANDED = 2;
+ private static final int HEADSUP = 3;
private final Rect mClipBounds = new Rect();
private View mContractedChild;
private View mExpandedChild;
+ private View mHeadsUpChild;
private NotificationViewWrapper mContractedWrapper;
- private int mSmallHeight;
+ private final int mSmallHeight;
+ private final int mHeadsUpHeight;
private int mClipTopAmount;
+
private int mContentHeight;
private final Interpolator mLinearInterpolator = new LinearInterpolator();
+ private int mVisibleView = CONTRACTED;
- private boolean mContractedVisible = true;
private boolean mDark;
-
private final Paint mFadePaint = new Paint();
private boolean mAnimate;
private ViewTreeObserver.OnPreDrawListener mEnableAnimationPredrawListener
@@ -65,14 +72,62 @@ public class NotificationContentView extends FrameLayout {
return true;
}
};
+ private boolean mIsHeadsUp;
public NotificationContentView(Context context, AttributeSet attrs) {
super(context, attrs);
mFadePaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.ADD));
+ mSmallHeight = getResources().getDimensionPixelSize(R.dimen.notification_min_height);
+ mHeadsUpHeight = getResources().getDimensionPixelSize(R.dimen.notification_mid_height);
reset(true);
}
@Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ int heightMode = MeasureSpec.getMode(heightMeasureSpec);
+ boolean hasFixedHeight = heightMode == MeasureSpec.EXACTLY;
+ boolean isHeightLimited = heightMode == MeasureSpec.AT_MOST;
+ int maxSize = Integer.MAX_VALUE;
+ if (hasFixedHeight || isHeightLimited) {
+ maxSize = MeasureSpec.getSize(heightMeasureSpec);
+ }
+ int maxChildHeight = 0;
+ if (mContractedChild != null) {
+ int size = Math.min(maxSize, mSmallHeight);
+ mContractedChild.measure(widthMeasureSpec,
+ MeasureSpec.makeMeasureSpec(size, MeasureSpec.AT_MOST));
+ maxChildHeight = Math.max(maxChildHeight, mContractedChild.getMeasuredHeight());
+ }
+ if (mExpandedChild != null) {
+ int size = maxSize;
+ ViewGroup.LayoutParams layoutParams = mExpandedChild.getLayoutParams();
+ if (layoutParams.height >= 0) {
+ // An actual height is set
+ size = Math.min(maxSize, layoutParams.height);
+ }
+ int spec = size == Integer.MAX_VALUE ?
+ MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED) :
+ MeasureSpec.makeMeasureSpec(size, MeasureSpec.AT_MOST);
+ mExpandedChild.measure(widthMeasureSpec, spec);
+ maxChildHeight = Math.max(maxChildHeight, mExpandedChild.getMeasuredHeight());
+ }
+ if (mHeadsUpChild != null) {
+ int size = Math.min(maxSize, mHeadsUpHeight);
+ ViewGroup.LayoutParams layoutParams = mHeadsUpChild.getLayoutParams();
+ if (layoutParams.height >= 0) {
+ // An actual height is set
+ size = Math.min(maxSize, layoutParams.height);
+ }
+ mHeadsUpChild.measure(widthMeasureSpec,
+ MeasureSpec.makeMeasureSpec(size, MeasureSpec.AT_MOST));
+ maxChildHeight = Math.max(maxChildHeight, mHeadsUpChild.getMeasuredHeight());
+ }
+ int ownHeight = Math.min(maxChildHeight, maxSize);
+ int width = MeasureSpec.getSize(widthMeasureSpec);
+ setMeasuredDimension(width, ownHeight);
+ }
+
+ @Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
updateClipping();
@@ -91,11 +146,14 @@ public class NotificationContentView extends FrameLayout {
if (mExpandedChild != null) {
mExpandedChild.animate().cancel();
}
+ if (mHeadsUpChild != null) {
+ mHeadsUpChild.animate().cancel();
+ }
removeAllViews();
mContractedChild = null;
mExpandedChild = null;
- mSmallHeight = getResources().getDimensionPixelSize(R.dimen.notification_min_height);
- mContractedVisible = true;
+ mHeadsUpChild = null;
+ mVisibleView = CONTRACTED;
if (resetActualHeight) {
mContentHeight = mSmallHeight;
}
@@ -109,12 +167,15 @@ public class NotificationContentView extends FrameLayout {
return mExpandedChild;
}
+ public View getHeadsUpChild() {
+ return mHeadsUpChild;
+ }
+
public void setContractedChild(View child) {
if (mContractedChild != null) {
mContractedChild.animate().cancel();
removeView(mContractedChild);
}
- sanitizeContractedLayoutParams(child);
addView(child);
mContractedChild = child;
mContractedWrapper = NotificationViewWrapper.wrap(getContext(), child);
@@ -132,6 +193,16 @@ public class NotificationContentView extends FrameLayout {
selectLayout(false /* animate */, true /* force */);
}
+ public void setHeadsUpChild(View child) {
+ if (mHeadsUpChild != null) {
+ mHeadsUpChild.animate().cancel();
+ removeView(mHeadsUpChild);
+ }
+ addView(child);
+ mHeadsUpChild = child;
+ selectLayout(false /* animate */, true /* force */);
+ }
+
@Override
protected void onVisibilityChanged(View changedView, int visibility) {
super.onVisibilityChanged(changedView, visibility);
@@ -166,9 +237,12 @@ public class NotificationContentView extends FrameLayout {
}
public int getMaxHeight() {
-
- // The maximum height is just the laid out height.
- return getHeight();
+ if (mIsHeadsUp && mHeadsUpChild != null) {
+ return mHeadsUpChild.getHeight();
+ } else if (mExpandedChild != null) {
+ return mExpandedChild.getHeight();
+ }
+ return mSmallHeight;
}
public int getMinHeight() {
@@ -185,62 +259,91 @@ public class NotificationContentView extends FrameLayout {
setClipBounds(mClipBounds);
}
- private void sanitizeContractedLayoutParams(View contractedChild) {
- LayoutParams lp = (LayoutParams) contractedChild.getLayoutParams();
- lp.height = mSmallHeight;
- contractedChild.setLayoutParams(lp);
- }
-
private void selectLayout(boolean animate, boolean force) {
if (mContractedChild == null) {
return;
}
- boolean showContractedChild = showContractedChild();
- if (showContractedChild != mContractedVisible || force) {
+ int visibleView = calculateVisibleView();
+ if (visibleView != mVisibleView || force) {
if (animate && mExpandedChild != null) {
- runSwitchAnimation(showContractedChild);
- } else if (mExpandedChild != null) {
- mContractedChild.setVisibility(showContractedChild ? View.VISIBLE : View.INVISIBLE);
- mContractedChild.setAlpha(showContractedChild ? 1f : 0f);
- mExpandedChild.setVisibility(showContractedChild ? View.INVISIBLE : View.VISIBLE);
- mExpandedChild.setAlpha(showContractedChild ? 0f : 1f);
+ runSwitchAnimation(visibleView);
+ } else {
+ updateViewVisibilities(visibleView);
}
+ mVisibleView = visibleView;
}
- mContractedVisible = showContractedChild;
}
- private void runSwitchAnimation(final boolean showContractedChild) {
- mContractedChild.setVisibility(View.VISIBLE);
- mExpandedChild.setVisibility(View.VISIBLE);
- mContractedChild.setLayerType(LAYER_TYPE_HARDWARE, mFadePaint);
- mExpandedChild.setLayerType(LAYER_TYPE_HARDWARE, mFadePaint);
+ private void updateViewVisibilities(int visibleView) {
+ boolean contractedVisible = visibleView == CONTRACTED;
+ mContractedChild.setVisibility(contractedVisible ? View.VISIBLE : View.INVISIBLE);
+ mContractedChild.setAlpha(contractedVisible ? 1f : 0f);
+ mContractedChild.setLayerType(LAYER_TYPE_NONE, null);
+ if (mExpandedChild != null) {
+ boolean expandedVisible = visibleView == EXPANDED;
+ mExpandedChild.setVisibility(expandedVisible ? View.VISIBLE : View.INVISIBLE);
+ mExpandedChild.setAlpha(expandedVisible ? 1f : 0f);
+ mExpandedChild.setLayerType(LAYER_TYPE_NONE, null);
+ }
+ if (mHeadsUpChild != null) {
+ boolean headsUpVisible = visibleView == HEADSUP;
+ mHeadsUpChild.setVisibility(headsUpVisible ? View.VISIBLE : View.INVISIBLE);
+ mHeadsUpChild.setAlpha(headsUpVisible ? 1f : 0f);
+ mHeadsUpChild.setLayerType(LAYER_TYPE_NONE, null);
+ }
+ setLayerType(LAYER_TYPE_NONE, null);
+ }
+
+ private void runSwitchAnimation(int visibleView) {
+ View shownView = getViewFromFlag(visibleView);
+ View hiddenView = getViewFromFlag(mVisibleView);
+ shownView.setVisibility(View.VISIBLE);
+ hiddenView.setVisibility(View.VISIBLE);
+ shownView.setLayerType(LAYER_TYPE_HARDWARE, mFadePaint);
+ hiddenView.setLayerType(LAYER_TYPE_HARDWARE, mFadePaint);
setLayerType(LAYER_TYPE_HARDWARE, null);
- mContractedChild.animate()
- .alpha(showContractedChild ? 1f : 0f)
+ hiddenView.animate()
+ .alpha(0f)
.setDuration(ANIMATION_DURATION_LENGTH)
- .setInterpolator(mLinearInterpolator);
- mExpandedChild.animate()
- .alpha(showContractedChild ? 0f : 1f)
+ .setInterpolator(mLinearInterpolator)
+ .withEndAction(null); // In case we have multiple changes in one frame.
+ shownView.animate()
+ .alpha(1f)
.setDuration(ANIMATION_DURATION_LENGTH)
.setInterpolator(mLinearInterpolator)
.withEndAction(new Runnable() {
@Override
public void run() {
- mContractedChild.setLayerType(LAYER_TYPE_NONE, null);
- mExpandedChild.setLayerType(LAYER_TYPE_NONE, null);
- setLayerType(LAYER_TYPE_NONE, null);
- mContractedChild.setVisibility(showContractedChild
- ? View.VISIBLE
- : View.INVISIBLE);
- mExpandedChild.setVisibility(showContractedChild
- ? View.INVISIBLE
- : View.VISIBLE);
+ updateViewVisibilities(mVisibleView);
}
});
}
- private boolean showContractedChild() {
- return mContentHeight <= mSmallHeight || mExpandedChild == null;
+ private View getViewFromFlag(int visibleView) {
+ switch (visibleView) {
+ case EXPANDED:
+ return mExpandedChild;
+ case HEADSUP:
+ return mHeadsUpChild;
+ }
+ return mContractedChild;
+ }
+
+ private int calculateVisibleView() {
+ boolean noExpandedChild = mExpandedChild == null;
+ if (mIsHeadsUp && mHeadsUpChild != null) {
+ if (mContentHeight <= mHeadsUpChild.getHeight() || noExpandedChild) {
+ return HEADSUP;
+ } else {
+ return EXPANDED;
+ }
+ } else {
+ if (mContentHeight <= mSmallHeight || noExpandedChild) {
+ return CONTRACTED;
+ } else {
+ return EXPANDED;
+ }
+ }
}
public void notifyContentUpdated() {
@@ -261,6 +364,11 @@ public class NotificationContentView extends FrameLayout {
mContractedWrapper.setDark(dark, fade, delay);
}
+ public void setHeadsUp(boolean headsUp) {
+ mIsHeadsUp = headsUp;
+ selectLayout(false /* animate */, true /* force */);
+ }
+
@Override
public boolean hasOverlappingRendering() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java
index 912f414..429889d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java
@@ -25,6 +25,7 @@ import android.util.ArrayMap;
import android.view.View;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
import java.io.PrintWriter;
import java.util.ArrayList;
@@ -37,6 +38,7 @@ import java.util.Comparator;
public class NotificationData {
private final Environment mEnvironment;
+ private HeadsUpManager mHeadsUpManager;
public static final class Entry {
public String key;
@@ -98,43 +100,47 @@ public class NotificationData {
private RankingMap mRankingMap;
private final Ranking mTmpRanking = new Ranking();
+ public void setHeadsUpManager(HeadsUpManager headsUpManager) {
+ mHeadsUpManager = headsUpManager;
+ }
+
private final Comparator<Entry> mRankingComparator = new Comparator<Entry>() {
private final Ranking mRankingA = new Ranking();
private final Ranking mRankingB = new Ranking();
@Override
public int compare(Entry a, Entry b) {
- // Upsort current media notification.
String mediaNotification = mEnvironment.getCurrentMediaNotificationKey();
boolean aMedia = a.key.equals(mediaNotification);
boolean bMedia = b.key.equals(mediaNotification);
- if (aMedia != bMedia) {
- return aMedia ? -1 : 1;
- }
final StatusBarNotification na = a.notification;
final StatusBarNotification nb = b.notification;
- // Upsort PRIORITY_MAX system notifications
boolean aSystemMax = na.getNotification().priority >= Notification.PRIORITY_MAX &&
isSystemNotification(na);
boolean bSystemMax = nb.getNotification().priority >= Notification.PRIORITY_MAX &&
isSystemNotification(nb);
- if (aSystemMax != bSystemMax) {
- return aSystemMax ? -1 : 1;
- }
+ int d = nb.getScore() - na.getScore();
- // RankingMap as received from NoMan.
- if (mRankingMap != null) {
+ boolean isHeadsUp = a.row.isHeadsUp();
+ if (isHeadsUp != b.row.isHeadsUp()) {
+ return isHeadsUp ? -1 : 1;
+ } else if (isHeadsUp) {
+ // Provide consistent ranking with headsUpManager
+ return mHeadsUpManager.compare(a, b);
+ } else if (aMedia != bMedia) {
+ // Upsort current media notification.
+ return aMedia ? -1 : 1;
+ } else if (aSystemMax != bSystemMax) {
+ // Upsort PRIORITY_MAX system notifications
+ return aSystemMax ? -1 : 1;
+ } else if (mRankingMap != null) {
+ // RankingMap as received from NoMan
mRankingMap.getRanking(a.key, mRankingA);
mRankingMap.getRanking(b.key, mRankingB);
return mRankingA.getRank() - mRankingB.getRank();
- }
-
- int d = nb.getScore() - na.getScore();
- if (a.interruption != b.interruption) {
- return a.interruption ? -1 : 1;
- } else if (d != 0) {
+ } if (d != 0) {
return d;
} else {
return (int) (nb.getNotification().when - na.getNotification().when);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java
new file mode 100644
index 0000000..3997807
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.systemui.statusbar.phone;
+
+import android.content.Context;
+import android.view.MotionEvent;
+import android.view.ViewConfiguration;
+
+import com.android.systemui.Gefingerpoken;
+import com.android.systemui.statusbar.ExpandableNotificationRow;
+import com.android.systemui.statusbar.ExpandableView;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
+import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
+
+/**
+ * A Helper class to handle touches on the heads-up views
+ */
+public class HeadsUpTouchHelper implements Gefingerpoken {
+
+ private HeadsUpManager mHeadsUpManager;
+ private NotificationStackScrollLayout mStackScroller;
+ private int mTrackingPointer;
+ private float mTouchSlop;
+ private float mInitialTouchX;
+ private float mInitialTouchY;
+ private boolean mMotionOnHeadsUpView;
+ private boolean mTrackingHeadsUp;
+ private boolean mCollapseSnoozes;
+ private NotificationPanelView mPanel;
+ private ExpandableNotificationRow mPickedChild;
+
+ public boolean isTrackingHeadsUp() {
+ return mTrackingHeadsUp;
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent event) {
+ if (!mMotionOnHeadsUpView && event.getActionMasked() != MotionEvent.ACTION_DOWN) {
+ return false;
+ }
+ int pointerIndex = event.findPointerIndex(mTrackingPointer);
+ if (pointerIndex < 0) {
+ pointerIndex = 0;
+ mTrackingPointer = event.getPointerId(pointerIndex);
+ }
+ final float x = event.getX(pointerIndex);
+ final float y = event.getY(pointerIndex);
+ switch (event.getActionMasked()) {
+ case MotionEvent.ACTION_DOWN:
+ mInitialTouchY = y;
+ mInitialTouchX = x;
+ setTrackingHeadsUp(false);
+ ExpandableView child = mStackScroller.getChildAtPosition(x, y);
+ mMotionOnHeadsUpView = false;
+ if (child instanceof ExpandableNotificationRow) {
+ mPickedChild = (ExpandableNotificationRow) child;
+ mMotionOnHeadsUpView = mPickedChild.isHeadsUp() && !mPickedChild.isInShade();
+ }
+ break;
+ case MotionEvent.ACTION_POINTER_UP:
+ final int upPointer = event.getPointerId(event.getActionIndex());
+ if (mTrackingPointer == upPointer) {
+ // gesture is ongoing, find a new pointer to track
+ final int newIndex = event.getPointerId(0) != upPointer ? 0 : 1;
+ mTrackingPointer = event.getPointerId(newIndex);
+ mInitialTouchX = event.getX(newIndex);
+ mInitialTouchY = event.getY(newIndex);
+ }
+ break;
+
+ case MotionEvent.ACTION_MOVE:
+ final float h = y - mInitialTouchY;
+ if (Math.abs(h) > mTouchSlop && Math.abs(h) > Math.abs(x - mInitialTouchX)) {
+ setTrackingHeadsUp(true);
+ mCollapseSnoozes = h < 0;
+ mInitialTouchX = x;
+ mInitialTouchY = y;
+ int expandedHeight = mPickedChild.getActualHeight();
+ mPanel.startExpandMotion(x, y, true /* startTracking */, expandedHeight);
+ return true;
+ }
+ break;
+
+ case MotionEvent.ACTION_CANCEL:
+ case MotionEvent.ACTION_UP:
+ if (mPickedChild != null && mMotionOnHeadsUpView) {
+ if (mHeadsUpManager.shouldSwallowClick(
+ mPickedChild.getStatusBarNotification().getKey())) {
+ endMotion();
+ return true;
+ }
+ }
+ endMotion();
+ break;
+ }
+ return false;
+ }
+
+ private void setTrackingHeadsUp(boolean tracking) {
+ mTrackingHeadsUp = tracking;
+ mHeadsUpManager.setTrackingHeadsUp(tracking);
+ mPanel.setTrackingHeadsUp(tracking);
+ }
+
+ public void notifyFling(boolean collapse) {
+ if (collapse && mCollapseSnoozes) {
+ mHeadsUpManager.snooze();
+ }
+ mCollapseSnoozes = false;
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ if (!mTrackingHeadsUp) {
+ return false;
+ }
+ switch (event.getActionMasked()) {
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_CANCEL:
+ endMotion();
+ setTrackingHeadsUp(false);
+ break;
+ }
+ return true;
+ }
+
+ private void endMotion() {
+ mTrackingPointer = -1;
+ mPickedChild = null;
+ mMotionOnHeadsUpView = false;
+ }
+
+ public ExpandableView getPickedChild() {
+ return mPickedChild;
+ }
+
+ public void bind(HeadsUpManager headsUpManager, NotificationStackScrollLayout stackScroller,
+ NotificationPanelView notificationPanelView) {
+ mHeadsUpManager = headsUpManager;
+ mStackScroller = stackScroller;
+ mPanel = notificationPanelView;
+ Context context = stackScroller.getContext();
+ final ViewConfiguration configuration = ViewConfiguration.get(context);
+ mTouchSlop = configuration.getScaledTouchSlop();
+ }
+}
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 410a7e4..094cd1f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
@@ -28,6 +28,7 @@ import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.InsetDrawable;
+import android.hardware.fingerprint.FingerprintManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.RemoteException;
@@ -625,6 +626,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
public void onFingerprintError(int msgId, String errString) {
// TODO: Go to bouncer if this is "too many attempts" (lockout) error.
Log.i(TAG, "FP Error: " + errString);
+ updateLockIcon();
}
};
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 02b6c19..c266467 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -32,6 +32,7 @@ import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewTreeObserver;
+import android.view.WindowInsets;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
@@ -39,16 +40,19 @@ import android.widget.FrameLayout;
import android.widget.TextView;
import com.android.keyguard.KeyguardStatusView;
-import com.android.systemui.EventLogTags;
import com.android.systemui.EventLogConstants;
+import com.android.systemui.EventLogTags;
import com.android.systemui.R;
import com.android.systemui.qs.QSContainer;
import com.android.systemui.qs.QSPanel;
+import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.ExpandableView;
import com.android.systemui.statusbar.FlingAnimationUtils;
import com.android.systemui.statusbar.GestureRecorder;
import com.android.systemui.statusbar.KeyguardAffordanceView;
+import com.android.systemui.statusbar.NotificationData;
import com.android.systemui.statusbar.StatusBarState;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.KeyguardUserSwitcher;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.stack.StackStateAnimator;
@@ -56,7 +60,8 @@ import com.android.systemui.statusbar.stack.StackStateAnimator;
public class NotificationPanelView extends PanelView implements
ExpandableView.OnHeightChangedListener, ObservableScrollView.Listener,
View.OnClickListener, NotificationStackScrollLayout.OnOverscrollTopChangedListener,
- KeyguardAffordanceHelper.Callback, NotificationStackScrollLayout.OnEmptySpaceClickListener {
+ KeyguardAffordanceHelper.Callback, NotificationStackScrollLayout.OnEmptySpaceClickListener,
+ HeadsUpManager.OnHeadsUpChangedListener {
private static final boolean DEBUG = false;
@@ -81,7 +86,7 @@ public class NotificationPanelView extends PanelView implements
private TextView mClockView;
private View mReserveNotificationSpace;
private View mQsNavbarScrim;
- private View mNotificationContainerParent;
+ private NotificationsQuickSettingsContainer mNotificationContainerParent;
private NotificationStackScrollLayout mNotificationStackScroller;
private int mNotificationTopPadding;
private boolean mAnimateNextTopPaddingChange;
@@ -177,6 +182,17 @@ public class NotificationPanelView extends PanelView implements
private float mKeyguardStatusBarAnimateAlpha = 1f;
private int mOldLayoutDirection;
+ private HeadsUpTouchHelper mHeadsUpTouchHelper = new HeadsUpTouchHelper();
+ private boolean mPinnedHeadsUpExist;
+ private boolean mExpansionIsFromHeadsUp;
+ private int mBottomBarHeight;
+ private boolean mExpandingFromHeadsUp;
+ private Runnable mHeadsUpExistenceChangedRunnable = new Runnable() {
+ @Override
+ public void run() {
+ notifyBarPanelExpansionChanged();
+ }
+ };
public NotificationPanelView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -201,7 +217,8 @@ public class NotificationPanelView extends PanelView implements
mScrollView.setListener(this);
mScrollView.setFocusable(false);
mReserveNotificationSpace = findViewById(R.id.reserve_notification_space);
- mNotificationContainerParent = findViewById(R.id.notification_container_parent);
+ mNotificationContainerParent = (NotificationsQuickSettingsContainer)
+ findViewById(R.id.notification_container_parent);
mNotificationStackScroller = (NotificationStackScrollLayout)
findViewById(R.id.notification_stack_scroller);
mNotificationStackScroller.setOnHeightChangedListener(this);
@@ -317,6 +334,7 @@ public class NotificationPanelView extends PanelView implements
if (mQsSizeChangeAnimator == null) {
mQsContainer.setHeightOverride(mQsContainer.getDesiredHeight());
}
+ updateMaxHeadsUpTranslation();
}
@Override
@@ -493,22 +511,39 @@ public class NotificationPanelView extends PanelView implements
}
@Override
+ protected void flingToHeight(float vel, boolean expand, float target) {
+ mHeadsUpTouchHelper.notifyFling(!expand);
+ super.flingToHeight(vel, expand, target);
+ }
+
+ @Override
public boolean dispatchPopulateAccessibilityEventInternal(AccessibilityEvent event) {
if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
event.getText().add(getKeyguardOrLockScreenString());
mLastAnnouncementWasQuickSettings = false;
return true;
}
-
return super.dispatchPopulateAccessibilityEventInternal(event);
}
@Override
- public boolean onInterceptTouchEvent(MotionEvent event) {
+ public boolean
+ onInterceptTouchEvent(MotionEvent event) {
if (mBlockTouches) {
return false;
}
initDownStates(event);
+ if (mHeadsUpTouchHelper.onInterceptTouchEvent(event)) {
+ mExpansionIsFromHeadsUp = true;
+ return true;
+ }
+ if (!isShadeCollapsed() && onQsIntercept(event)) {
+ return true;
+ }
+ return super.onInterceptTouchEvent(event);
+ }
+
+ private boolean onQsIntercept(MotionEvent event) {
int pointerIndex = event.findPointerIndex(mTrackingPointer);
if (pointerIndex < 0) {
pointerIndex = 0;
@@ -583,7 +618,7 @@ public class NotificationPanelView extends PanelView implements
mIntercepting = false;
break;
}
- return super.onInterceptTouchEvent(event);
+ return false;
}
@Override
@@ -652,6 +687,15 @@ public class NotificationPanelView extends PanelView implements
if (mOnlyAffordanceInThisMotion) {
return true;
}
+ mHeadsUpTouchHelper.onTouchEvent(event);
+ if (!mHeadsUpTouchHelper.isTrackingHeadsUp() && handleQSTouch(event)) {
+ return true;
+ }
+ super.onTouchEvent(event);
+ return true;
+ }
+
+ private boolean handleQSTouch(MotionEvent event) {
if (event.getActionMasked() == MotionEvent.ACTION_DOWN && getExpandedFraction() == 1f
&& mStatusBar.getBarState() != StatusBarState.KEYGUARD && !mQsExpanded
&& mQsExpansionEnabled) {
@@ -664,7 +708,7 @@ public class NotificationPanelView extends PanelView implements
mInitialTouchY = event.getX();
mInitialTouchX = event.getY();
}
- if (mExpandedHeight != 0) {
+ if (!isShadeCollapsed()) {
handleQsDown(event);
}
if (!mQsExpandImmediate && mQsTracking) {
@@ -677,7 +721,7 @@ public class NotificationPanelView extends PanelView implements
|| event.getActionMasked() == MotionEvent.ACTION_UP) {
mConflictingQsExpansionGesture = false;
}
- if (event.getActionMasked() == MotionEvent.ACTION_DOWN && mExpandedHeight == 0
+ if (event.getActionMasked() == MotionEvent.ACTION_DOWN && isShadeCollapsed()
&& mQsExpansionEnabled) {
mTwoFingerQsExpandPossible = true;
}
@@ -691,8 +735,7 @@ public class NotificationPanelView extends PanelView implements
// earlier so the state is already up to date when dragging down.
setListening(true);
}
- super.onTouchEvent(event);
- return true;
+ return false;
}
private boolean isInQsArea(float x, float y) {
@@ -834,13 +877,13 @@ public class NotificationPanelView extends PanelView implements
setQsExpansion(mQsExpansionHeight);
flingSettings(!mQsExpansionEnabled && open ? 0f : velocity, open && mQsExpansionEnabled,
new Runnable() {
- @Override
- public void run() {
- mStackScrollerOverscrolling = false;
- mQsExpansionFromOverscroll = false;
- updateQsState();
- }
- });
+ @Override
+ public void run() {
+ mStackScrollerOverscrolling = false;
+ mQsExpansionFromOverscroll = false;
+ updateQsState();
+ }
+ });
}
private void onQsExpansionStarted() {
@@ -869,6 +912,7 @@ public class NotificationPanelView extends PanelView implements
mNotificationStackScroller.setInterceptDelegateEnabled(expanded);
mStatusBar.setQsExpanded(expanded);
mQsPanel.setExpanded(expanded);
+ mNotificationContainerParent.setQsExpanded(expanded);
}
}
@@ -1056,7 +1100,7 @@ public class NotificationPanelView extends PanelView implements
mKeyguardBottomArea.animate()
.alpha(0f)
.setStartDelay(mStatusBar.getKeyguardFadingAwayDelay())
- .setDuration(mStatusBar.getKeyguardFadingAwayDuration()/2)
+ .setDuration(mStatusBar.getKeyguardFadingAwayDuration() / 2)
.setInterpolator(PhoneStatusBar.ALPHA_OUT)
.withEndAction(mAnimateKeyguardBottomAreaInvisibleEndRunnable)
.start();
@@ -1132,8 +1176,8 @@ public class NotificationPanelView extends PanelView implements
updateEmptyShadeView();
mQsNavbarScrim.setVisibility(mStatusBarState == StatusBarState.SHADE && mQsExpanded
&& !mStackScrollerOverscrolling && mQsScrimEnabled
- ? View.VISIBLE
- : View.INVISIBLE);
+ ? View.VISIBLE
+ : View.INVISIBLE);
if (mKeyguardUserSwitcher != null && mQsExpanded && !mStackScrollerOverscrolling) {
mKeyguardUserSwitcher.hideIfNotSimple(true /* animate */);
}
@@ -1402,6 +1446,8 @@ public class NotificationPanelView extends PanelView implements
updateHeader();
updateUnlockIcon();
updateNotificationTranslucency();
+ mHeadsUpManager.setIsExpanded(!isShadeCollapsed());
+ mNotificationStackScroller.setShadeExpanded(!isShadeCollapsed());
if (DEBUG) {
invalidate();
}
@@ -1471,16 +1517,24 @@ public class NotificationPanelView extends PanelView implements
}
}
private void updateNotificationTranslucency() {
- float alpha = (getNotificationsTopY() + mNotificationStackScroller.getItemHeight())
- / (mQsMinExpansionHeight + mNotificationStackScroller.getBottomStackPeekSize()
- - mNotificationStackScroller.getCollapseSecondCardPadding());
- alpha = Math.max(0, Math.min(alpha, 1));
- alpha = (float) Math.pow(alpha, 0.75);
- if (alpha != 1f && mNotificationStackScroller.getLayerType() != LAYER_TYPE_HARDWARE) {
- mNotificationStackScroller.setLayerType(LAYER_TYPE_HARDWARE, null);
- } else if (alpha == 1f
- && mNotificationStackScroller.getLayerType() == LAYER_TYPE_HARDWARE) {
- mNotificationStackScroller.setLayerType(LAYER_TYPE_NONE, null);
+ float alpha;
+ if (mExpandingFromHeadsUp || mHeadsUpManager.hasPinnedHeadsUp()) {
+ alpha = 1f;
+ if (mNotificationStackScroller.getLayerType() == LAYER_TYPE_HARDWARE) {
+ mNotificationStackScroller.setLayerType(LAYER_TYPE_NONE, null);
+ }
+ } else {
+ alpha = (getNotificationsTopY() + mNotificationStackScroller.getItemHeight())
+ / (mQsMinExpansionHeight + mNotificationStackScroller.getBottomStackPeekSize()
+ - mNotificationStackScroller.getCollapseSecondCardPadding());
+ alpha = Math.max(0, Math.min(alpha, 1));
+ alpha = (float) Math.pow(alpha, 0.75);
+ if (alpha != 1f && mNotificationStackScroller.getLayerType() != LAYER_TYPE_HARDWARE) {
+ mNotificationStackScroller.setLayerType(LAYER_TYPE_HARDWARE, null);
+ } else if (alpha == 1f
+ && mNotificationStackScroller.getLayerType() == LAYER_TYPE_HARDWARE) {
+ mNotificationStackScroller.setLayerType(LAYER_TYPE_NONE, null);
+ }
}
mNotificationStackScroller.setAlpha(alpha);
}
@@ -1544,7 +1598,13 @@ public class NotificationPanelView extends PanelView implements
return mExpandedHeight / HEADER_RUBBERBAND_FACTOR - mQsMinExpansionHeight;
}
}
- return Math.min(0, mNotificationStackScroller.getTranslationY()) / HEADER_RUBBERBAND_FACTOR;
+ float stackTranslation = mNotificationStackScroller.getStackTranslation();
+ float translation = stackTranslation / HEADER_RUBBERBAND_FACTOR;
+ if (mHeadsUpManager.hasPinnedHeadsUp() || mExpansionIsFromHeadsUp) {
+ translation = mNotificationStackScroller.getTopPadding() + stackTranslation
+ - mNotificationTopPadding - mQsMinExpansionHeight;
+ }
+ return Math.min(0, translation);
}
/**
@@ -1605,15 +1665,19 @@ public class NotificationPanelView extends PanelView implements
protected void onExpandingFinished() {
super.onExpandingFinished();
mNotificationStackScroller.onExpansionStopped();
+ mHeadsUpManager.onExpandingFinished();
mIsExpanding = false;
mScrollYOverride = -1;
- if (mExpandedHeight == 0f) {
+ if (isShadeCollapsed()) {
setListening(false);
} else {
setListening(true);
}
mQsExpandImmediate = false;
mTwoFingerQsExpandPossible = false;
+ mExpansionIsFromHeadsUp = false;
+ mNotificationStackScroller.setTrackingHeadsUp(mHeadsUpTouchHelper.isTrackingHeadsUp());
+ mExpandingFromHeadsUp = mHeadsUpTouchHelper.isTrackingHeadsUp();
}
private void setListening(boolean listening) {
@@ -1709,6 +1773,17 @@ public class NotificationPanelView extends PanelView implements
}
@Override
+ public WindowInsets onApplyWindowInsets(WindowInsets insets) {
+ mBottomBarHeight = insets.getSystemWindowInsetBottom();
+ updateMaxHeadsUpTranslation();
+ return insets;
+ }
+
+ private void updateMaxHeadsUpTranslation() {
+ mNotificationStackScroller.setHeadsUpBoundaries(getHeight(), mBottomBarHeight);
+ }
+
+ @Override
public void onRtlPropertiesChanged(int layoutDirection) {
if (layoutDirection != mOldLayoutDirection) {
mAfforanceHelper.onRtlPropertiesChanged();
@@ -2066,4 +2141,49 @@ public class NotificationPanelView extends PanelView implements
mNotificationStackScroller.getTopPadding(), p);
}
}
+
+ @Override
+ public void OnPinnedHeadsUpExistChanged(final boolean exist, boolean changeImmediatly) {
+ if (exist != mPinnedHeadsUpExist) {
+ mPinnedHeadsUpExist = exist;
+ if (exist) {
+ mHeadsUpExistenceChangedRunnable.run();
+ updateNotificationTranslucency();
+ } else {
+ mNotificationStackScroller.performOnAnimationFinished(
+ mHeadsUpExistenceChangedRunnable);
+ }
+ }
+ }
+
+ @Override
+ public void OnHeadsUpPinnedChanged(ExpandableNotificationRow headsUp, boolean isHeadsUp) {
+ if (isHeadsUp) {
+ mNotificationStackScroller.generateHeadsUpAnimation(headsUp, true);
+ }
+ }
+
+ @Override
+ public void OnHeadsUpStateChanged(NotificationData.Entry entry, boolean isHeadsUp) {
+ mNotificationStackScroller.generateHeadsUpAnimation(entry.row, isHeadsUp);
+ }
+
+ @Override
+ protected boolean isShadeCollapsed() {
+ return mExpandedHeight == 0;
+ }
+
+ @Override
+ public void setHeadsUpManager(HeadsUpManager headsUpManager) {
+ super.setHeadsUpManager(headsUpManager);
+ mHeadsUpTouchHelper.bind(headsUpManager, mNotificationStackScroller, this);
+ }
+
+ public void setTrackingHeadsUp(boolean tracking) {
+ if (tracking) {
+ // otherwise we update the state when the expansion is finished
+ mNotificationStackScroller.setTrackingHeadsUp(true);
+ mExpandingFromHeadsUp = true;
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationsQuickSettingsContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationsQuickSettingsContainer.java
index a03c297..cbb71c5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationsQuickSettingsContainer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationsQuickSettingsContainer.java
@@ -37,6 +37,7 @@ public class NotificationsQuickSettingsContainer extends FrameLayout
private View mStackScroller;
private View mKeyguardStatusBar;
private boolean mInflated;
+ private boolean mQsExpanded;
public NotificationsQuickSettingsContainer(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -64,26 +65,29 @@ public class NotificationsQuickSettingsContainer extends FrameLayout
boolean userSwitcherVisible = mInflated && mUserSwitcher.getVisibility() == View.VISIBLE;
boolean statusBarVisible = mKeyguardStatusBar.getVisibility() == View.VISIBLE;
+ View stackQsTop = mQsExpanded ? mStackScroller : mScrollView;
+ View stackQsBottom = !mQsExpanded ? mStackScroller : mScrollView;
// Invert the order of the scroll view and user switcher such that the notifications receive
// touches first but the panel gets drawn above.
if (child == mScrollView) {
- return super.drawChild(canvas, mStackScroller, drawingTime);
- } else if (child == mStackScroller) {
- return super.drawChild(canvas,
- userSwitcherVisible && statusBarVisible ? mUserSwitcher
+ return super.drawChild(canvas, userSwitcherVisible && statusBarVisible ? mUserSwitcher
: statusBarVisible ? mKeyguardStatusBar
: userSwitcherVisible ? mUserSwitcher
- : mScrollView,
+ : stackQsBottom, drawingTime);
+ } else if (child == mStackScroller) {
+ return super.drawChild(canvas,
+ userSwitcherVisible && statusBarVisible ? mKeyguardStatusBar
+ : statusBarVisible || userSwitcherVisible ? stackQsBottom
+ : stackQsTop,
drawingTime);
} else if (child == mUserSwitcher) {
return super.drawChild(canvas,
- userSwitcherVisible && statusBarVisible ? mKeyguardStatusBar
- : mScrollView,
+ userSwitcherVisible && statusBarVisible ? stackQsBottom
+ : stackQsTop,
drawingTime);
} else if (child == mKeyguardStatusBar) {
return super.drawChild(canvas,
- userSwitcherVisible && statusBarVisible ? mScrollView
- : mScrollView,
+ stackQsTop,
drawingTime);
}else {
return super.drawChild(canvas, child, drawingTime);
@@ -97,4 +101,11 @@ public class NotificationsQuickSettingsContainer extends FrameLayout
mInflated = true;
}
}
+
+ public void setQsExpanded(boolean expanded) {
+ if (mQsExpanded != expanded) {
+ mQsExpanded = expanded;
+ invalidate();
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
index c6e1be9..240438a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
@@ -157,8 +157,7 @@ public class PanelBar extends FrameLayout {
if (DEBUG) LOG("panelExpansionChanged: start state=%d panel=%s", mState, panel.getName());
mPanelExpandedFractionSum = 0f;
for (PanelView pv : mPanels) {
- boolean visible = pv.getExpandedHeight() > 0;
- pv.setVisibility(visible ? View.VISIBLE : View.GONE);
+ pv.setVisibility(expanded ? View.VISIBLE : View.INVISIBLE);
// adjust any other panels that may be partially visible
if (expanded) {
if (mState == STATE_CLOSED) {
@@ -167,7 +166,7 @@ public class PanelBar extends FrameLayout {
}
fullyClosed = false;
final float thisFrac = pv.getExpandedFraction();
- mPanelExpandedFractionSum += (visible ? thisFrac : 0);
+ mPanelExpandedFractionSum += thisFrac;
if (DEBUG) LOG("panelExpansionChanged: -> %s: f=%.1f", pv.getName(), thisFrac);
if (panel == pv) {
if (thisFrac == 1f) fullyOpenedPanel = panel;
@@ -196,7 +195,6 @@ public class PanelBar extends FrameLayout {
} else {
pv.resetViews();
pv.setExpandedFraction(0); // just in case
- pv.setVisibility(View.GONE);
pv.cancelPeek();
}
}
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 4bbf690..ddce9d5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -38,6 +38,7 @@ import com.android.systemui.R;
import com.android.systemui.doze.DozeLog;
import com.android.systemui.statusbar.FlingAnimationUtils;
import com.android.systemui.statusbar.StatusBarState;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -45,6 +46,7 @@ import java.io.PrintWriter;
public abstract class PanelView extends FrameLayout {
public static final boolean DEBUG = PanelBar.DEBUG;
public static final String TAG = PanelView.class.getSimpleName();
+ protected HeadsUpManager mHeadsUpManager;
private final void logf(String fmt, Object... args) {
Log.v(TAG, (mViewName != null ? (mViewName + ": ") : "") + String.format(fmt, args));
@@ -232,18 +234,15 @@ public abstract class PanelView extends FrameLayout {
final float y = event.getY(pointerIndex);
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
- mGestureWaitForTouchSlop = mExpandedHeight == 0f;
+ mGestureWaitForTouchSlop = isShadeCollapsed();
}
boolean waitForTouchSlop = hasConflictingGestures() || mGestureWaitForTouchSlop;
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
- mInitialTouchY = y;
- mInitialTouchX = x;
- mInitialOffsetOnTouch = mExpandedHeight;
- mTouchSlopExceeded = false;
+ startExpandMotion(x, y, false /* startTracking */, mExpandedHeight);
mJustPeeked = false;
- mPanelClosedOnDown = mExpandedHeight == 0.0f;
+ mPanelClosedOnDown = isShadeCollapsed();
mHasLayoutedSinceDown = false;
mUpdateFlingOnLayout = false;
mMotionAborted = false;
@@ -261,7 +260,7 @@ public abstract class PanelView extends FrameLayout {
|| mPeekPending || mPeekAnimator != null;
onTrackingStarted();
}
- if (mExpandedHeight == 0) {
+ if (isShadeCollapsed()) {
schedulePeek();
}
break;
@@ -274,9 +273,7 @@ public abstract class PanelView extends FrameLayout {
final float newY = event.getY(newIndex);
final float newX = event.getX(newIndex);
mTrackingPointer = event.getPointerId(newIndex);
- mInitialOffsetOnTouch = mExpandedHeight;
- mInitialTouchY = newY;
- mInitialTouchX = newX;
+ startExpandMotion(newX, newY, true /* startTracking */, mExpandedHeight);
}
break;
case MotionEvent.ACTION_POINTER_DOWN:
@@ -297,9 +294,7 @@ public abstract class PanelView extends FrameLayout {
mTouchSlopExceeded = true;
if (waitForTouchSlop && !mTracking) {
if (!mJustPeeked && mInitialOffsetOnTouch != 0f) {
- mInitialOffsetOnTouch = mExpandedHeight;
- mInitialTouchX = x;
- mInitialTouchY = y;
+ startExpandMotion(x, y, false /* startTracking */, mExpandedHeight);
h = 0;
}
cancelHeightAnimator();
@@ -334,6 +329,17 @@ public abstract class PanelView extends FrameLayout {
return !waitForTouchSlop || mTracking;
}
+ protected void startExpandMotion(float newX, float newY, boolean startTracking,
+ float expandedHeight) {
+ mInitialOffsetOnTouch = expandedHeight;
+ mInitialTouchY = newY;
+ mInitialTouchX = newX;
+ if (startTracking) {
+ mTouchSlopExceeded = true;
+ onTrackingStarted();
+ }
+ }
+
private void endMotionEvent(MotionEvent event, float x, float y, boolean forceCancel) {
mTrackingPointer = -1;
if ((mTracking && mTouchSlopExceeded)
@@ -442,7 +448,7 @@ public abstract class PanelView extends FrameLayout {
mTouchSlopExceeded = false;
mJustPeeked = false;
mMotionAborted = false;
- mPanelClosedOnDown = mExpandedHeight == 0.0f;
+ mPanelClosedOnDown = isShadeCollapsed();
mHasLayoutedSinceDown = false;
mUpdateFlingOnLayout = false;
mTouchAboveFalsingThreshold = false;
@@ -474,12 +480,7 @@ public abstract class PanelView extends FrameLayout {
if (scrolledToBottom || mTouchStartedInEmptyArea) {
if (h < -mTouchSlop && h < -Math.abs(x - mInitialTouchX)) {
cancelHeightAnimator();
- mInitialOffsetOnTouch = mExpandedHeight;
- mInitialTouchY = y;
- mInitialTouchX = x;
- mTracking = true;
- mTouchSlopExceeded = true;
- onTrackingStarted();
+ startExpandMotion(x, y, true /* startTracking */, mExpandedHeight);
return true;
}
}
@@ -564,7 +565,10 @@ public abstract class PanelView extends FrameLayout {
protected void fling(float vel, boolean expand) {
cancelPeek();
float target = expand ? getMaxPanelHeight() : 0.0f;
+ flingToHeight(vel, expand, target);
+ }
+ protected void flingToHeight(float vel, boolean expand, float target) {
// Hack to make the expand transition look nice when clear all button is visible - we make
// the animation only to the last notification, and then jump to the maximum panel height so
// clear all just fades in and the decelerating motion is towards the last notification.
@@ -644,7 +648,7 @@ public abstract class PanelView extends FrameLayout {
mHasLayoutedSinceDown = true;
if (mUpdateFlingOnLayout) {
abortAnimations();
- fling(mUpdateFlingVelocity, true);
+ fling(mUpdateFlingVelocity, true /* expands */);
mUpdateFlingOnLayout = false;
}
}
@@ -655,7 +659,7 @@ public abstract class PanelView extends FrameLayout {
// If the user isn't actively poking us, let's update the height
if ((!mTracking || isTrackingBlocked())
&& mHeightAnimator == null
- && mExpandedHeight > 0
+ && !isShadeCollapsed()
&& currentMaxPanelHeight != mExpandedHeight
&& !mPeekPending
&& mPeekAnimator == null
@@ -805,7 +809,7 @@ public abstract class PanelView extends FrameLayout {
if (mExpanding) {
notifyExpandingFinished();
}
- setVisibility(VISIBLE);
+ notifyBarPanelExpansionChanged();
// Wait for window manager to pickup the change, so we know the maximum height of the panel
// then.
@@ -941,9 +945,9 @@ public abstract class PanelView extends FrameLayout {
return animator;
}
- private void notifyBarPanelExpansionChanged() {
+ protected void notifyBarPanelExpansionChanged() {
mBar.panelExpansionChanged(this, mExpandedFraction, mExpandedFraction > 0f || mPeekPending
- || mPeekAnimator != null);
+ || mPeekAnimator != null || mInstantExpanding || mHeadsUpManager.hasPinnedHeadsUp());
}
/**
@@ -1014,4 +1018,10 @@ public abstract class PanelView extends FrameLayout {
* @return the height of the clear all button, in pixels
*/
protected abstract int getClearAllHeight();
+
+ protected abstract boolean isShadeCollapsed();
+
+ public void setHeadsUpManager(HeadsUpManager headsUpManager) {
+ mHeadsUpManager = headsUpManager;
+ }
}
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 b0d6178..61e679a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -17,19 +17,6 @@
package com.android.systemui.statusbar.phone;
-import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
-import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SHOWN;
-import static android.app.StatusBarManager.WINDOW_STATE_HIDDEN;
-import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
-import static android.app.StatusBarManager.windowStateToString;
-import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT;
-import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT;
-import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
-import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
-import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSLUCENT;
-import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
-import static com.android.systemui.statusbar.phone.BarTransitions.MODE_WARNING;
-
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.NonNull;
@@ -86,13 +73,11 @@ import android.util.DisplayMetrics;
import android.util.EventLog;
import android.util.Log;
import android.view.Display;
-import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
-import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewStub;
import android.view.WindowManager;
@@ -115,13 +100,13 @@ import com.android.systemui.EventLogConstants;
import com.android.systemui.EventLogTags;
import com.android.systemui.Prefs;
import com.android.systemui.R;
+import com.android.systemui.assist.AssistGestureManager;
import com.android.systemui.doze.DozeHost;
import com.android.systemui.doze.DozeLog;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.qs.QSPanel;
import com.android.systemui.recents.ScreenPinningRequest;
import com.android.systemui.statusbar.ActivatableNotificationView;
-import com.android.systemui.assist.AssistGestureManager;
import com.android.systemui.statusbar.BackDropView;
import com.android.systemui.statusbar.BaseStatusBar;
import com.android.systemui.statusbar.CommandQueue;
@@ -137,7 +122,6 @@ import com.android.systemui.statusbar.NotificationOverflowContainer;
import com.android.systemui.statusbar.ScrimView;
import com.android.systemui.statusbar.SignalClusterView;
import com.android.systemui.statusbar.SpeedBumpView;
-import com.android.systemui.statusbar.StatusBarIconView;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.phone.UnlockMethodCache.OnUnlockMethodChangedListener;
import com.android.systemui.statusbar.policy.AccessibilityController;
@@ -147,7 +131,7 @@ import com.android.systemui.statusbar.policy.BluetoothControllerImpl;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import com.android.systemui.statusbar.policy.CastControllerImpl;
import com.android.systemui.statusbar.policy.FlashlightController;
-import com.android.systemui.statusbar.policy.HeadsUpNotificationView;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.HotspotControllerImpl;
import com.android.systemui.statusbar.policy.KeyButtonView;
import com.android.systemui.statusbar.policy.KeyguardMonitor;
@@ -172,11 +156,27 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.TreeSet;
+
+import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
+import static android.app.StatusBarManager.NAVIGATION_HINT_IME_SHOWN;
+import static android.app.StatusBarManager.WINDOW_STATE_HIDDEN;
+import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
+import static android.app.StatusBarManager.windowStateToString;
+import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT;
+import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT;
+import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
+import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
+import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSLUCENT;
+import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
+import static com.android.systemui.statusbar.phone.BarTransitions.MODE_WARNING;
public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
- DragDownHelper.DragDownCallback, ActivityStarter, OnUnlockMethodChangedListener {
+ DragDownHelper.DragDownCallback, ActivityStarter, OnUnlockMethodChangedListener,
+ HeadsUpManager.OnHeadsUpChangedListener {
static final String TAG = "PhoneStatusBar";
public static final boolean DEBUG = BaseStatusBar.DEBUG;
public static final boolean SPEW = false;
@@ -360,11 +360,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (wasUsing != mUseHeadsUp) {
if (!mUseHeadsUp) {
Log.d(TAG, "dismissing any existing heads up notification on disable event");
- setHeadsUpVisibility(false);
- mHeadsUpNotificationView.releaseImmediately();
- removeHeadsUpView();
- } else {
- addHeadsUpView();
+ mHeadsUpManager.releaseAllImmediately();
}
}
}
@@ -528,6 +524,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
};
private HashMap<ExpandableNotificationRow, List<ExpandableNotificationRow>> mTmpChildOrderMap
= new HashMap<>();
+ private HashSet<Entry> mHeadsUpEntriesToRemoveOnSwitch = new HashSet<>();
+ private RankingMap mLatestRankingMap;
@Override
public void start() {
@@ -598,7 +596,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
}
return mStatusBarWindow.onTouchEvent(event);
- }});
+ }
+ });
mStatusBarView = (PhoneStatusBarView) mStatusBarWindow.findViewById(R.id.status_bar);
mStatusBarView.setBar(this);
@@ -615,12 +614,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mNotificationPanel.setBackground(new FastColorDrawable(context.getColor(
R.color.notification_panel_solid_background)));
}
- if (ENABLE_HEADS_UP) {
- mHeadsUpNotificationView =
- (HeadsUpNotificationView) View.inflate(context, R.layout.heads_up, null);
- mHeadsUpNotificationView.setVisibility(View.GONE);
- mHeadsUpNotificationView.setBar(this);
- }
+
+ mHeadsUpManager = new HeadsUpManager(context, mNotificationPanel.getViewTreeObserver());
+ mHeadsUpManager.setBar(this);
+ mHeadsUpManager.addListener(this);
+ mHeadsUpManager.addListener(mNotificationPanel);
+ mNotificationPanel.setHeadsUpManager(mHeadsUpManager);
+ mNotificationData.setHeadsUpManager(mHeadsUpManager);
+
if (MULTIUSER_DEBUG) {
mNotificationPanelDebugText = (TextView) mNotificationPanel.findViewById(
R.id.header_debug_info);
@@ -667,6 +668,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mStackScroller.setLongPressListener(getNotificationLongClicker());
mStackScroller.setPhoneStatusBar(this);
mStackScroller.setGroupManager(mGroupManager);
+ mStackScroller.setHeadsUpManager(mHeadsUpManager);
mGroupManager.setOnGroupChangeListener(mStackScroller);
mKeyguardIconOverflowContainer =
@@ -699,7 +701,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
ScrimView scrimBehind = (ScrimView) mStatusBarWindow.findViewById(R.id.scrim_behind);
ScrimView scrimInFront = (ScrimView) mStatusBarWindow.findViewById(R.id.scrim_in_front);
- mScrimController = new ScrimController(scrimBehind, scrimInFront, mScrimSrcModeEnabled);
+ View headsUpScrim = mStatusBarWindow.findViewById(R.id.heads_up_scrim);
+ mScrimController = new ScrimController(scrimBehind, scrimInFront, headsUpScrim,
+ mScrimSrcModeEnabled);
+ mHeadsUpManager.addListener(mScrimController);
+ mStackScroller.setScrimController(mScrimController);
mScrimController.setBackDropView(mBackdrop);
mStatusBarView.setScrimController(mScrimController);
mDozeScrimController = new DozeScrimController(mScrimController, context);
@@ -1084,32 +1090,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
return lp;
}
- private void addHeadsUpView() {
- int headsUpHeight = mContext.getResources()
- .getDimensionPixelSize(R.dimen.heads_up_window_height);
- WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
- LayoutParams.MATCH_PARENT, headsUpHeight,
- WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL, // above the status bar!
- WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
- | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
- | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
- | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
- | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
- | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH,
- PixelFormat.TRANSLUCENT);
- lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
- lp.gravity = Gravity.TOP;
- lp.setTitle("Heads Up");
- lp.packageName = mContext.getPackageName();
- lp.windowAnimations = R.style.Animation_StatusBar_HeadsUp;
-
- mWindowManager.addView(mHeadsUpNotificationView, lp);
- }
-
- private void removeHeadsUpView() {
- mWindowManager.removeView(mHeadsUpNotificationView);
- }
-
public void addIcon(String slot, int index, int viewIndex, StatusBarIcon icon) {
mIconController.addSystemIcon(slot, index, viewIndex, icon);
}
@@ -1131,30 +1111,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
public void addNotification(StatusBarNotification notification, RankingMap ranking,
Entry oldEntry) {
if (DEBUG) Log.d(TAG, "addNotification key=" + notification.getKey());
- if (mUseHeadsUp && shouldInterrupt(notification)) {
- if (DEBUG) Log.d(TAG, "launching notification in heads up mode");
- Entry interruptionCandidate = oldEntry;
- if (interruptionCandidate == null) {
- final StatusBarIconView iconView = createIcon(notification);
- if (iconView == null) {
- return;
- }
- interruptionCandidate = new Entry(notification, iconView);
- }
- ViewGroup holder = mHeadsUpNotificationView.getHolder();
- if (inflateViewsForHeadsUp(interruptionCandidate, holder)) {
- // 1. Populate mHeadsUpNotificationView
- mHeadsUpNotificationView.showNotification(interruptionCandidate);
-
- // do not show the notification in the shade, yet.
- return;
- }
- }
Entry shadeEntry = createNotificationViews(notification);
if (shadeEntry == null) {
return;
}
+ if (mUseHeadsUp && shouldInterrupt(notification)) {
+ mHeadsUpManager.showNotification(shadeEntry);
+ }
if (notification.getNotification().fullScreenIntent != null) {
// Stop screensaver if the notification has a full-screen intent.
@@ -1175,18 +1139,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
setAreThereNotifications();
}
- public void displayNotificationFromHeadsUp(Entry shadeEntry) {
-
- // The notification comes from the headsup, let's inflate the normal layout again
- inflateViews(shadeEntry, mStackScroller);
- shadeEntry.setInterruption();
- shadeEntry.row.setHeadsUp(false);
-
- addNotificationViews(shadeEntry, null);
- // Recalculate the position of the sliding windows and the titles.
- setAreThereNotifications();
- }
-
@Override
protected void updateNotificationRanking(RankingMap ranking) {
mNotificationData.updateRanking(ranking);
@@ -1195,10 +1147,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
@Override
public void removeNotification(String key, RankingMap ranking) {
- if (ENABLE_HEADS_UP) {
- mHeadsUpNotificationView.removeNotification(key);
+ boolean defferRemoval = false;
+ if (mHeadsUpManager.isHeadsUp(key)) {
+ defferRemoval = !mHeadsUpManager.removeNotification(key);
+ }
+ if (defferRemoval) {
+ mLatestRankingMap = ranking;
+ mHeadsUpEntriesToRemoveOnSwitch.add(mHeadsUpManager.getEntry(key));
+ return;
}
-
StatusBarNotification old = removeNotificationViews(key, ranking);
if (SPEW) Log.d(TAG, "removeNotification key=" + key + " old=" + old);
@@ -1870,6 +1827,45 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
logStateToEventlog();
}
+ @Override
+ public void OnPinnedHeadsUpExistChanged(boolean exist, boolean changeImmediatly) {
+ if (exist) {
+ mStatusBarWindowManager.setHeadsUpShowing(true);
+ } else {
+ Runnable endRunnable = new Runnable() {
+ @Override
+ public void run() {
+ if (!mHeadsUpManager.hasPinnedHeadsUp()) {
+ mStatusBarWindowManager.setHeadsUpShowing(false);
+ }
+ }
+ };
+ if (changeImmediatly) {
+ endRunnable.run();
+ } else {
+ mStackScroller.performOnAnimationFinished(endRunnable);
+ }
+ }
+ }
+
+ @Override
+ public void OnHeadsUpPinnedChanged(ExpandableNotificationRow headsUp, boolean isHeadsUp) {
+ }
+
+ @Override
+ public void OnHeadsUpStateChanged(Entry entry, boolean isHeadsUp) {
+ if (!isHeadsUp && mHeadsUpEntriesToRemoveOnSwitch.contains(entry)) {
+ removeNotification(entry.key, mLatestRankingMap);
+ mHeadsUpEntriesToRemoveOnSwitch.remove(entry);
+ if (mHeadsUpEntriesToRemoveOnSwitch.isEmpty()) {
+ mLatestRankingMap = null;
+ }
+ } else {
+ updateNotificationRanking(null);
+ }
+
+ }
+
/**
* All changes to the status bar and notifications funnel through here and are batched.
*/
@@ -1886,15 +1882,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
case MSG_CLOSE_PANELS:
animateCollapsePanels();
break;
- case MSG_SHOW_HEADS_UP:
- setHeadsUpVisibility(true);
- break;
- case MSG_ESCALATE_HEADS_UP:
- escalateHeadsUp();
- case MSG_HIDE_HEADS_UP:
- mHeadsUpNotificationView.releaseImmediately();
- setHeadsUpVisibility(false);
- break;
case MSG_LAUNCH_TRANSITION_TIMEOUT:
onLaunchTransitionTimeout();
break;
@@ -1903,44 +1890,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
@Override
- public void scheduleHeadsUpDecay(long delay) {
- mHandler.removeMessages(MSG_HIDE_HEADS_UP);
- if (mHeadsUpNotificationView.isClearable()) {
- mHandler.sendEmptyMessageDelayed(MSG_HIDE_HEADS_UP, delay);
- }
- }
-
- @Override
- public void scheduleHeadsUpOpen() {
- mHandler.removeMessages(MSG_HIDE_HEADS_UP);
- mHandler.removeMessages(MSG_SHOW_HEADS_UP);
- mHandler.sendEmptyMessage(MSG_SHOW_HEADS_UP);
- }
-
- @Override
- public void scheduleHeadsUpClose() {
- mHandler.removeMessages(MSG_HIDE_HEADS_UP);
- if (mHeadsUpNotificationView.getVisibility() != View.GONE) {
- mHandler.sendEmptyMessage(MSG_HIDE_HEADS_UP);
- }
- }
-
- @Override
- public void scheduleHeadsUpEscalation() {
- mHandler.removeMessages(MSG_HIDE_HEADS_UP);
- mHandler.removeMessages(MSG_ESCALATE_HEADS_UP);
- mHandler.sendEmptyMessage(MSG_ESCALATE_HEADS_UP);
- }
-
- /** if the interrupting notification had a fullscreen intent, fire it now. */
- private void escalateHeadsUp() {
- if (mHeadsUpNotificationView.getEntry() != null) {
- final StatusBarNotification sbn = mHeadsUpNotificationView.getEntry().notification;
- mHeadsUpNotificationView.releaseImmediately();
+ public void escalateHeadsUp() {
+ TreeSet<HeadsUpManager.HeadsUpEntry> entries = mHeadsUpManager.getSortedEntries();
+ for (HeadsUpManager.HeadsUpEntry entry : entries) {
+ final StatusBarNotification sbn = entry.entry.notification;
final Notification notification = sbn.getNotification();
if (notification.fullScreenIntent != null) {
- if (DEBUG)
+ if (DEBUG) {
Log.d(TAG, "converting a heads up to fullScreen");
+ }
try {
EventLog.writeEvent(EventLogTags.SYSUI_HEADS_UP_ESCALATION,
sbn.getKey());
@@ -1949,6 +1907,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
}
}
+ mHeadsUpManager.releaseAllImmediately();
}
boolean panelsEnabled() {
@@ -2081,10 +2040,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
// Ensure the panel is fully collapsed (just in case; bug 6765842, 7260868)
mStatusBarView.collapseAllPanels(/*animate=*/ false, false /* delayed*/);
- // reset things to their proper state
- mStackScroller.setVisibility(View.VISIBLE);
- mNotificationPanel.setVisibility(View.GONE);
-
mNotificationPanel.closeQs();
mExpandedVisible = false;
@@ -2478,8 +2433,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
pw.println(Settings.Global.zenModeToString(mZenMode));
pw.print(" mUseHeadsUp=");
pw.println(mUseHeadsUp);
- pw.print(" interrupting package: ");
- pw.println(hunStateToString(mHeadsUpNotificationView.getEntry()));
dumpBarTransitions(pw, "mStatusBarView", mStatusBarView.getBarTransitions());
if (mNavigationBarView != null) {
pw.print(" mNavigationBarWindowState=");
@@ -2571,10 +2524,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (mSecurityController != null) {
mSecurityController.dump(fd, pw, args);
}
- if (mHeadsUpNotificationView != null) {
- mHeadsUpNotificationView.dump(fd, pw, args);
+ if (mHeadsUpManager != null) {
+ mHeadsUpManager.dump(fd, pw, args);
} else {
- pw.println(" mHeadsUpNotificationView: null");
+ pw.println(" mHeadsUpManager: null");
}
pw.println("SharedPreferences:");
@@ -2672,7 +2625,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
else if (Intent.ACTION_SCREEN_OFF.equals(action)) {
mScreenOn = false;
notifyNavigationBarScreenOn(false);
- notifyHeadsUpScreenOn(false);
+ notifyHeadsUpScreenOff();
finishBarAnimations();
resetUserExpandedStates();
}
@@ -2764,15 +2717,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mUserSetupObserver, mCurrentUserId);
}
- private void setHeadsUpVisibility(boolean vis) {
- if (!ENABLE_HEADS_UP) return;
- if (DEBUG) Log.v(TAG, (vis ? "showing" : "hiding") + " heads up window");
- EventLog.writeEvent(EventLogTags.SYSUI_HEADS_UP_STATUS,
- vis ? mHeadsUpNotificationView.getKey() : "",
- vis ? 1 : 0);
- mHeadsUpNotificationView.setVisibility(vis ? View.VISIBLE : View.GONE);
- }
-
/**
* Reload some of our resources when the configuration changes.
*
@@ -2791,9 +2735,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (mNotificationPanel != null) {
mNotificationPanel.updateResources();
}
- if (mHeadsUpNotificationView != null) {
- mHeadsUpNotificationView.updateResources();
- }
if (mBrightnessMirrorController != null) {
mBrightnessMirrorController.updateResources();
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index 0e8a794..e701783 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.phone;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
+import android.animation.PropertyValuesHolder;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Color;
@@ -29,13 +30,18 @@ import android.view.animation.Interpolator;
import com.android.systemui.R;
import com.android.systemui.statusbar.BackDropView;
+import com.android.systemui.statusbar.ExpandableNotificationRow;
+import com.android.systemui.statusbar.NotificationData;
import com.android.systemui.statusbar.ScrimView;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
+import com.android.systemui.statusbar.stack.StackStateAnimator;
/**
* Controls both the scrim behind the notifications and in front of the notifications (when a
* security method gets shown).
*/
-public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
+public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
+ HeadsUpManager.OnHeadsUpChangedListener {
public static final long ANIMATION_DURATION = 220;
private static final float SCRIM_BEHIND_ALPHA = 0.62f;
@@ -43,10 +49,13 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
private static final float SCRIM_BEHIND_ALPHA_UNLOCKING = 0.2f;
private static final float SCRIM_IN_FRONT_ALPHA = 0.75f;
private static final int TAG_KEY_ANIM = R.id.scrim;
+ private static final int TAG_HUN_START_ALPHA = R.id.hun_scrim_alpha_start;
+ private static final int TAG_HUN_END_ALPHA = R.id.hun_scrim_alpha_end;
private final ScrimView mScrimBehind;
private final ScrimView mScrimInFront;
private final UnlockMethodCache mUnlockMethodCache;
+ private final View mHeadsUpScrim;
private boolean mKeyguardShowing;
private float mFraction;
@@ -70,15 +79,22 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
private float mDozeBehindAlpha;
private float mCurrentInFrontAlpha;
private float mCurrentBehindAlpha;
+ private float mCurrentHeadsUpAlpha = 1;
+ private int mAmountOfPinnedHeadsUps;
+ private float mTopHeadsUpDragAmount;
+ private View mDraggedHeadsUpView;
- public ScrimController(ScrimView scrimBehind, ScrimView scrimInFront, boolean scrimSrcEnabled) {
+ public ScrimController(ScrimView scrimBehind, ScrimView scrimInFront, View headsUpScrim,
+ boolean scrimSrcEnabled) {
mScrimBehind = scrimBehind;
mScrimInFront = scrimInFront;
+ mHeadsUpScrim = headsUpScrim;
final Context context = scrimBehind.getContext();
mUnlockMethodCache = UnlockMethodCache.getInstance(context);
mLinearOutSlowInInterpolator = AnimationUtils.loadInterpolator(context,
android.R.interpolator.linear_out_slow_in);
mScrimSrcEnabled = scrimSrcEnabled;
+ updateHeadsUpScrim(false);
}
public void setKeyguardShowing(boolean showing) {
@@ -217,7 +233,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
}
}
- private void setScrimColor(ScrimView scrim, float alpha) {
+ private void setScrimColor(View scrim, float alpha) {
Object runningAnim = scrim.getTag(TAG_KEY_ANIM);
if (runningAnim instanceof ValueAnimator) {
((ValueAnimator) runningAnim).cancel();
@@ -236,25 +252,34 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
}
private float getCurrentScrimAlpha(View scrim) {
- return scrim == mScrimBehind ? mCurrentBehindAlpha : mCurrentInFrontAlpha;
+ return scrim == mScrimBehind ? mCurrentBehindAlpha
+ : scrim == mScrimInFront ? mCurrentInFrontAlpha
+ : mCurrentHeadsUpAlpha;
}
private void setCurrentScrimAlpha(View scrim, float alpha) {
if (scrim == mScrimBehind) {
mCurrentBehindAlpha = alpha;
- } else {
+ } else if (scrim == mScrimInFront) {
mCurrentInFrontAlpha = alpha;
+ } else {
+ alpha = Math.max(0.0f, Math.min(1.0f, alpha));
+ mCurrentHeadsUpAlpha = alpha;
}
}
- private void updateScrimColor(ScrimView scrim) {
+ private void updateScrimColor(View scrim) {
float alpha1 = getCurrentScrimAlpha(scrim);
- float alpha2 = getDozeAlpha(scrim);
- float alpha = 1 - (1 - alpha1) * (1 - alpha2);
- scrim.setScrimColor(Color.argb((int) (alpha * 255), 0, 0, 0));
+ if (scrim instanceof ScrimView) {
+ float alpha2 = getDozeAlpha(scrim);
+ float alpha = 1 - (1 - alpha1) * (1 - alpha2);
+ ((ScrimView) scrim).setScrimColor(Color.argb((int) (alpha * 255), 0, 0, 0));
+ } else {
+ scrim.setAlpha(alpha1);
+ }
}
- private void startScrimAnimation(final ScrimView scrim, float target) {
+ private void startScrimAnimation(final View scrim, float target) {
float current = getCurrentScrimAlpha(scrim);
ValueAnimator anim = ValueAnimator.ofFloat(current, target);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@@ -320,4 +345,84 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
boolean asSrc = mBackDropView.getVisibility() != View.VISIBLE && mScrimSrcEnabled;
mScrimBehind.setDrawAsSrc(asSrc);
}
+
+ @Override
+ public void OnPinnedHeadsUpExistChanged(boolean exist, boolean changeImmediatly) {
+ }
+
+ @Override
+ public void OnHeadsUpPinnedChanged(ExpandableNotificationRow headsUp, boolean isHeadsUp) {
+ if (isHeadsUp) {
+ mAmountOfPinnedHeadsUps++;
+ } else {
+ mAmountOfPinnedHeadsUps--;
+ if (headsUp == mDraggedHeadsUpView) {
+ mDraggedHeadsUpView = null;
+ mTopHeadsUpDragAmount = 0.0f;
+ }
+ }
+ updateHeadsUpScrim(true);
+ }
+
+ @Override
+ public void OnHeadsUpStateChanged(NotificationData.Entry entry, boolean isHeadsUp) {
+ }
+
+ private void updateHeadsUpScrim(boolean animate) {
+ float alpha = calculateHeadsUpAlpha();
+ ValueAnimator previousAnimator = StackStateAnimator.getChildTag(mHeadsUpScrim,
+ TAG_KEY_ANIM);
+ float animEndValue = -1;
+ if (previousAnimator != null) {
+ if ((animate || alpha == mCurrentHeadsUpAlpha)) {
+ // lets cancel any running animators
+ previousAnimator.cancel();
+ }
+ animEndValue = StackStateAnimator.getChildTag(mHeadsUpScrim,
+ TAG_HUN_START_ALPHA);
+ }
+ if (alpha != mCurrentHeadsUpAlpha && alpha != animEndValue) {
+ if (animate) {
+ startScrimAnimation(mHeadsUpScrim, alpha);
+ mHeadsUpScrim.setTag(TAG_HUN_START_ALPHA, mCurrentHeadsUpAlpha);
+ mHeadsUpScrim.setTag(TAG_HUN_END_ALPHA, alpha);
+ } else {
+ if (previousAnimator != null) {
+ float previousStartValue = StackStateAnimator.getChildTag(mHeadsUpScrim,
+ TAG_HUN_START_ALPHA);
+ float previousEndValue = StackStateAnimator.getChildTag(mHeadsUpScrim,
+ TAG_HUN_END_ALPHA);
+ // we need to increase all animation keyframes of the previous animator by the
+ // relative change to the end value
+ PropertyValuesHolder[] values = previousAnimator.getValues();
+ float relativeDiff = alpha - previousEndValue;
+ float newStartValue = previousStartValue + relativeDiff;
+ values[0].setFloatValues(newStartValue, alpha);
+ mHeadsUpScrim.setTag(TAG_HUN_START_ALPHA, newStartValue);
+ mHeadsUpScrim.setTag(TAG_HUN_END_ALPHA, alpha);
+ previousAnimator.setCurrentPlayTime(previousAnimator.getCurrentPlayTime());
+ } else {
+ // update the alpha directly
+ setCurrentScrimAlpha(mHeadsUpScrim, alpha);
+ updateScrimColor(mHeadsUpScrim);
+ }
+ }
+ }
+ }
+
+ public void setTopHeadsUpDragAmount(View draggedHeadsUpView, float topHeadsUpDragAmount) {
+ mTopHeadsUpDragAmount = topHeadsUpDragAmount;
+ mDraggedHeadsUpView = draggedHeadsUpView;
+ updateHeadsUpScrim(false);
+ }
+
+ private float calculateHeadsUpAlpha() {
+ if (mAmountOfPinnedHeadsUps >= 2) {
+ return 1.0f;
+ } else if (mAmountOfPinnedHeadsUps == 0) {
+ return 0.0f;
+ } else {
+ return 1.0f - mTopHeadsUpDragAmount;
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
index 63bbf97..84a9f64 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
@@ -130,7 +130,7 @@ public class StatusBarWindowManager {
private void applyHeight(State state) {
boolean expanded = state.isKeyguardShowingAndNotOccluded() || state.statusBarExpanded
- || state.keyguardFadingAway || state.bouncerShowing;
+ || state.keyguardFadingAway || state.bouncerShowing || state.headsUpShowing;
if (expanded) {
mLpChanged.height = ViewGroup.LayoutParams.MATCH_PARENT;
} else {
@@ -172,11 +172,20 @@ public class StatusBarWindowManager {
applyUserActivityTimeout(state);
applyInputFeatures(state);
applyFitsSystemWindows(state);
+ applyModalFlag(state);
if (mLp.copyFrom(mLpChanged) != 0) {
mWindowManager.updateViewLayout(mStatusBarView, mLp);
}
}
+ private void applyModalFlag(State state) {
+ if (state.headsUpShowing) {
+ mLpChanged.flags |= WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
+ } else {
+ mLpChanged.flags &= ~WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
+ }
+ }
+
public void setKeyguardShowing(boolean showing) {
mCurrentState.keyguardShowing = showing;
apply(mCurrentState);
@@ -218,6 +227,11 @@ public class StatusBarWindowManager {
apply(mCurrentState);
}
+ public void setHeadsUpShowing(boolean showing) {
+ mCurrentState.headsUpShowing = showing;
+ apply(mCurrentState);
+ }
+
/**
* @param state The {@link StatusBarState} of the status bar.
*/
@@ -235,6 +249,7 @@ public class StatusBarWindowManager {
boolean bouncerShowing;
boolean keyguardFadingAway;
boolean qsExpanded;
+ boolean headsUpShowing;
/**
* The {@link BaseStatusBar} state from the status bar.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
new file mode 100644
index 0000000..920a0a1
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java
@@ -0,0 +1,519 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.policy;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.database.ContentObserver;
+import android.os.Handler;
+import android.os.SystemClock;
+import android.provider.Settings;
+import android.util.ArrayMap;
+import android.util.Log;
+import android.util.Pools;
+import android.view.ViewTreeObserver;
+import android.view.accessibility.AccessibilityEvent;
+
+import com.android.systemui.R;
+import com.android.systemui.statusbar.ExpandableNotificationRow;
+import com.android.systemui.statusbar.NotificationData;
+import com.android.systemui.statusbar.phone.PhoneStatusBar;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Stack;
+import java.util.TreeSet;
+
+public class HeadsUpManager implements ViewTreeObserver.OnComputeInternalInsetsListener {
+ private static final String TAG = "HeadsUpManager";
+ private static final boolean DEBUG = false;
+ private static final String SETTING_HEADS_UP_SNOOZE_LENGTH_MS = "heads_up_snooze_length_ms";
+
+ private final int mHeadsUpNotificationDecay;
+ private final int mMinimumDisplayTime;
+
+ private final int mTouchSensitivityDelay;
+ private final ArrayMap<String, Long> mSnoozedPackages;
+ private final HashSet<OnHeadsUpChangedListener> mListeners = new HashSet<>();
+ private final int mDefaultSnoozeLengthMs;
+ private final Handler mHandler = new Handler();
+ private final Pools.Pool<HeadsUpEntry> mEntryPool = new Pools.Pool<HeadsUpEntry>() {
+
+ private Stack<HeadsUpEntry> mPoolObjects = new Stack<>();
+
+ @Override
+ public HeadsUpEntry acquire() {
+ if (!mPoolObjects.isEmpty()) {
+ return mPoolObjects.pop();
+ }
+ return new HeadsUpEntry();
+ }
+
+ @Override
+ public boolean release(HeadsUpEntry instance) {
+ instance.removeAutoCancelCallbacks();
+ mPoolObjects.push(instance);
+ return true;
+ }
+ };
+
+
+ private PhoneStatusBar mBar;
+ private int mSnoozeLengthMs;
+ private ContentObserver mSettingsObserver;
+ private HashMap<String, HeadsUpEntry> mHeadsUpEntries = new HashMap<>();
+ private TreeSet<HeadsUpEntry> mSortedEntries = new TreeSet<>();
+ private HashSet<String> mSwipedOutKeys = new HashSet<>();
+ private int mUser;
+ private Clock mClock;
+ private boolean mReleaseOnExpandFinish;
+ private boolean mTrackingHeadsUp;
+ private HashSet<NotificationData.Entry> mEntriesToRemoveAfterExpand = new HashSet<>();
+ private boolean mIsExpanded;
+ private boolean mHasPinnedHeadsUp;
+ private int[] mTmpTwoArray = new int[2];
+
+ public HeadsUpManager(final Context context, ViewTreeObserver observer) {
+ Resources resources = context.getResources();
+ mTouchSensitivityDelay = resources.getInteger(R.integer.heads_up_sensitivity_delay);
+ if (DEBUG) Log.v(TAG, "create() " + mTouchSensitivityDelay);
+ mSnoozedPackages = new ArrayMap<>();
+ mDefaultSnoozeLengthMs = resources.getInteger(R.integer.heads_up_default_snooze_length_ms);
+ mSnoozeLengthMs = mDefaultSnoozeLengthMs;
+ mMinimumDisplayTime = resources.getInteger(R.integer.heads_up_notification_minimum_time);
+ mHeadsUpNotificationDecay = resources.getInteger(R.integer.heads_up_notification_decay);
+ mClock = new Clock();
+
+ mSnoozeLengthMs = Settings.Global.getInt(context.getContentResolver(),
+ SETTING_HEADS_UP_SNOOZE_LENGTH_MS, mDefaultSnoozeLengthMs);
+ mSettingsObserver = new ContentObserver(mHandler) {
+ @Override
+ public void onChange(boolean selfChange) {
+ final int packageSnoozeLengthMs = Settings.Global.getInt(
+ context.getContentResolver(), SETTING_HEADS_UP_SNOOZE_LENGTH_MS, -1);
+ if (packageSnoozeLengthMs > -1 && packageSnoozeLengthMs != mSnoozeLengthMs) {
+ mSnoozeLengthMs = packageSnoozeLengthMs;
+ if (DEBUG) Log.v(TAG, "mSnoozeLengthMs = " + mSnoozeLengthMs);
+ }
+ }
+ };
+ context.getContentResolver().registerContentObserver(
+ Settings.Global.getUriFor(SETTING_HEADS_UP_SNOOZE_LENGTH_MS), false,
+ mSettingsObserver);
+ if (DEBUG) Log.v(TAG, "mSnoozeLengthMs = " + mSnoozeLengthMs);
+ observer.addOnComputeInternalInsetsListener(this);
+ }
+
+ public void setBar(PhoneStatusBar bar) {
+ mBar = bar;
+ }
+
+ public void addListener(OnHeadsUpChangedListener listener) {
+ mListeners.add(listener);
+ }
+
+ public PhoneStatusBar getBar() {
+ return mBar;
+ }
+
+ /**
+ * Called when posting a new notification to the heads up.
+ */
+ public void showNotification(NotificationData.Entry headsUp) {
+ if (DEBUG) Log.v(TAG, "showNotification");
+ addHeadsUpEntry(headsUp);
+ updateNotification(headsUp, true);
+ headsUp.setInterruption();
+ }
+
+ /**
+ * Called when updating or posting a notification to the heads up.
+ */
+ public void updateNotification(NotificationData.Entry headsUp, boolean alert) {
+ if (DEBUG) Log.v(TAG, "updateNotification");
+
+ headsUp.row.setChildrenExpanded(false /* expanded */, false /* animated */);
+ headsUp.row.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
+
+ if (alert) {
+ HeadsUpEntry headsUpEntry = mHeadsUpEntries.get(headsUp.key);
+ headsUpEntry.updateEntry();
+ setEntryToShade(headsUpEntry, mIsExpanded, false /* justAdded */, false);
+ }
+ }
+
+ private void addHeadsUpEntry(NotificationData.Entry entry) {
+ HeadsUpEntry headsUpEntry = mEntryPool.acquire();
+
+ // This will also add the entry to the sortedList
+ headsUpEntry.setEntry(entry);
+ mHeadsUpEntries.put(entry.key, headsUpEntry);
+ entry.row.setHeadsUp(true);
+ setEntryToShade(headsUpEntry, mIsExpanded /* inShade */, true /* justAdded */, false);
+ for (OnHeadsUpChangedListener listener : mListeners) {
+ listener.OnHeadsUpStateChanged(entry, true);
+ }
+ entry.row.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
+ }
+
+ private void setEntryToShade(HeadsUpEntry headsUpEntry, boolean inShade, boolean justAdded,
+ boolean forceImmediate) {
+ ExpandableNotificationRow row = headsUpEntry.entry.row;
+ if (row.isInShade() != inShade || justAdded) {
+ row.setInShade(inShade);
+ if (!justAdded || !inShade) {
+ updatePinnedHeadsUpState(forceImmediate);
+ for (OnHeadsUpChangedListener listener : mListeners) {
+ listener.OnHeadsUpPinnedChanged(row, !inShade);
+ }
+ }
+ }
+ }
+
+ private void removeHeadsUpEntry(NotificationData.Entry entry) {
+ HeadsUpEntry remove = mHeadsUpEntries.remove(entry.key);
+ mSortedEntries.remove(remove);
+ mEntryPool.release(remove);
+ entry.row.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
+ entry.row.setHeadsUp(false);
+ setEntryToShade(remove, true /* inShade */, false /* justAdded */,
+ false /* forceImmediate */);
+ for (OnHeadsUpChangedListener listener : mListeners) {
+ listener.OnHeadsUpStateChanged(entry, false);
+ }
+ }
+
+ private void updatePinnedHeadsUpState(boolean forceImmediate) {
+ boolean hasPinnedHeadsUp = hasPinnedHeadsUpInternal();
+ if (hasPinnedHeadsUp == mHasPinnedHeadsUp) {
+ return;
+ }
+ mHasPinnedHeadsUp = hasPinnedHeadsUp;
+ for (OnHeadsUpChangedListener listener :mListeners) {
+ listener.OnPinnedHeadsUpExistChanged(hasPinnedHeadsUp, forceImmediate);
+ }
+ }
+
+ /**
+ * React to the removal of the notification in the heads up.
+ *
+ * @return true if the notification was removed and false if it still needs to be kept around
+ * for a bit since it wasn't shown long enough
+ */
+ public boolean removeNotification(String key) {
+ if (DEBUG) Log.v(TAG, "remove");
+ if (wasShownLongEnough(key)) {
+ releaseImmediately(key);
+ return true;
+ } else {
+ getHeadsUpEntry(key).hideAsSoonAsPossible();
+ return false;
+ }
+ }
+
+ private boolean wasShownLongEnough(String key) {
+ HeadsUpEntry headsUpEntry = getHeadsUpEntry(key);
+ HeadsUpEntry topEntry = getTopEntry();
+ if (mSwipedOutKeys.contains(key)) {
+ // We always instantly dismiss views being manually swiped out.
+ mSwipedOutKeys.remove(key);
+ return true;
+ }
+ if (headsUpEntry != topEntry) {
+ return true;
+ }
+ return headsUpEntry.wasShownLongEnough();
+ }
+
+ public boolean isHeadsUp(String key) {
+ return mHeadsUpEntries.containsKey(key);
+ }
+
+
+ /**
+ * Push any current Heads Up notification down into the shade.
+ */
+ public void releaseAllImmediately() {
+ if (DEBUG) Log.v(TAG, "releaseAllImmediately");
+ HashSet<String> keys = new HashSet<>(mHeadsUpEntries.keySet());
+ for (String key: keys) {
+ releaseImmediately(key);
+ }
+ }
+
+ public void releaseImmediately(String key) {
+ HeadsUpEntry headsUpEntry = getHeadsUpEntry(key);
+ if (headsUpEntry == null) {
+ return;
+ }
+ NotificationData.Entry shadeEntry = headsUpEntry.entry;
+ removeHeadsUpEntry(shadeEntry);
+ }
+
+ public boolean isSnoozed(String packageName) {
+ final String key = snoozeKey(packageName, mUser);
+ Long snoozedUntil = mSnoozedPackages.get(key);
+ if (snoozedUntil != null) {
+ if (snoozedUntil > SystemClock.elapsedRealtime()) {
+ if (DEBUG) Log.v(TAG, key + " snoozed");
+ return true;
+ }
+ mSnoozedPackages.remove(packageName);
+ }
+ return false;
+ }
+
+ public void snooze() {
+ for (String key: mHeadsUpEntries.keySet()) {
+ HeadsUpEntry entry = mHeadsUpEntries.get(key);
+ String packageName = entry.entry.notification.getPackageName();
+ mSnoozedPackages.put(snoozeKey(packageName, mUser),
+ SystemClock.elapsedRealtime() + mSnoozeLengthMs);
+ }
+ mReleaseOnExpandFinish = true;
+ }
+
+ private static String snoozeKey(String packageName, int user) {
+ return user + "," + packageName;
+ }
+
+ private HeadsUpEntry getHeadsUpEntry(String key) {
+ return mHeadsUpEntries.get(key);
+ }
+
+ public NotificationData.Entry getEntry(String key) {
+ return mHeadsUpEntries.get(key).entry;
+ }
+
+ public TreeSet<HeadsUpEntry> getSortedEntries() {
+ return mSortedEntries;
+ }
+
+ public HeadsUpEntry getTopEntry() {
+ return mSortedEntries.isEmpty() ? null : mSortedEntries.first();
+ }
+
+ /**
+ * @param key the key of the touched notification
+ * @return whether the touch is valid and should not be discarded
+ */
+ public boolean shouldSwallowClick(String key) {
+ if (mClock.currentTimeMillis() < mHeadsUpEntries.get(key).postTime) {
+ return true;
+ }
+ return false;
+ }
+
+ public void onComputeInternalInsets(ViewTreeObserver.InternalInsetsInfo info) {
+ if (!mIsExpanded && mHasPinnedHeadsUp) {
+ int minX = Integer.MAX_VALUE;
+ int maxX = 0;
+ int minY = Integer.MAX_VALUE;
+ int maxY = 0;
+ for (HeadsUpEntry entry: mSortedEntries) {
+ ExpandableNotificationRow row = entry.entry.row;
+ if (!row.isInShade()) {
+ row.getLocationOnScreen(mTmpTwoArray);
+ minX = Math.min(minX, mTmpTwoArray[0]);
+ minY = Math.min(minY, 0);
+ maxX = Math.max(maxX, mTmpTwoArray[0] + row.getWidth());
+ maxY = Math.max(maxY, row.getHeadsUpHeight());
+ }
+ }
+
+ info.setTouchableInsets(ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_REGION);
+ info.touchableRegion.set(minX, minY, maxX, maxY);
+ }
+ }
+
+ public void setUser(int user) {
+ mUser = user;
+ }
+
+ public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ pw.println("HeadsUpManager state:");
+ pw.print(" mTouchSensitivityDelay="); pw.println(mTouchSensitivityDelay);
+ pw.print(" mSnoozeLengthMs="); pw.println(mSnoozeLengthMs);
+ pw.print(" now="); pw.println(SystemClock.elapsedRealtime());
+ pw.print(" mUser="); pw.println(mUser);
+ for (HeadsUpEntry entry: mSortedEntries) {
+ pw.print(" HeadsUpEntry="); pw.println(entry.entry);
+ }
+ int N = mSnoozedPackages.size();
+ pw.println(" snoozed packages: " + N);
+ for (int i = 0; i < N; i++) {
+ pw.print(" "); pw.print(mSnoozedPackages.valueAt(i));
+ pw.print(", "); pw.println(mSnoozedPackages.keyAt(i));
+ }
+ }
+
+ public boolean hasPinnedHeadsUp() {
+ return mHasPinnedHeadsUp;
+ }
+
+ private boolean hasPinnedHeadsUpInternal() {
+ for (String key: mHeadsUpEntries.keySet()) {
+ HeadsUpEntry entry = mHeadsUpEntries.get(key);
+ if (!entry.entry.row.isInShade()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void addSwipedOutKey(String key) {
+ mSwipedOutKeys.add(key);
+ }
+
+ public float getHighestPinnedHeadsUp() {
+ float max = 0;
+ for (HeadsUpEntry entry: mSortedEntries) {
+ if (!entry.entry.row.isInShade()) {
+ max = Math.max(max, entry.entry.row.getActualHeight());
+ }
+ }
+ return max;
+ }
+
+ public void releaseAllToShade() {
+ for (String key: mHeadsUpEntries.keySet()) {
+ HeadsUpEntry entry = mHeadsUpEntries.get(key);
+ setEntryToShade(entry, true /* toShade */, false /* justAdded */,
+ true /* forceImmediate */);
+ }
+ }
+
+ public void onExpandingFinished() {
+ if (mReleaseOnExpandFinish) {
+ releaseAllImmediately();
+ mReleaseOnExpandFinish = false;
+ } else {
+ for (NotificationData.Entry entry : mEntriesToRemoveAfterExpand) {
+ removeHeadsUpEntry(entry);
+ }
+ mEntriesToRemoveAfterExpand.clear();
+ }
+ }
+
+ public void setTrackingHeadsUp(boolean trackingHeadsUp) {
+ mTrackingHeadsUp = trackingHeadsUp;
+ }
+
+ public void setIsExpanded(boolean isExpanded) {
+ if (isExpanded != mIsExpanded) {
+ mIsExpanded = isExpanded;
+ if (isExpanded) {
+ releaseAllToShade();
+ }
+ }
+ }
+
+ public int getTopHeadsUpHeight() {
+ HeadsUpEntry topEntry = getTopEntry();
+ return topEntry != null ? topEntry.entry.row.getHeadsUpHeight() : 0;
+ }
+
+ public int compare(NotificationData.Entry a, NotificationData.Entry b) {
+ HeadsUpEntry aEntry = getHeadsUpEntry(a.key);
+ HeadsUpEntry bEntry = getHeadsUpEntry(b.key);
+ if (aEntry == null || bEntry == null) {
+ return aEntry == null ? 1 : -1;
+ }
+ return aEntry.compareTo(bEntry);
+ }
+
+ public class HeadsUpEntry implements Comparable<HeadsUpEntry> {
+ public NotificationData.Entry entry;
+ public long postTime;
+ public long earliestRemovaltime;
+ private Runnable mRemoveHeadsUpRunnable;
+
+ public void setEntry(final NotificationData.Entry entry) {
+ this.entry = entry;
+
+ // The actual post time will be just after the heads-up really slided in
+ postTime = mClock.currentTimeMillis() + mTouchSensitivityDelay;
+ mRemoveHeadsUpRunnable = new Runnable() {
+ @Override
+ public void run() {
+ if (!mTrackingHeadsUp) {
+ removeHeadsUpEntry(entry);
+ } else {
+ mEntriesToRemoveAfterExpand.add(entry);
+ }
+ }
+ };
+ updateEntry();
+ }
+
+ public void updateEntry() {
+ long currentTime = mClock.currentTimeMillis();
+ postTime = Math.max(postTime, currentTime);
+ long finishTime = postTime + mHeadsUpNotificationDecay;
+ long removeDelay = Math.max(finishTime - currentTime, mMinimumDisplayTime);
+ earliestRemovaltime = currentTime + mMinimumDisplayTime;
+ removeAutoCancelCallbacks();
+ mHandler.postDelayed(mRemoveHeadsUpRunnable, removeDelay);
+ updateSortOrder(HeadsUpEntry.this);
+ }
+
+ @Override
+ public int compareTo(HeadsUpEntry o) {
+ return postTime < o.postTime ? 1
+ : postTime == o.postTime ? 0
+ : -1;
+ }
+
+ public void removeAutoCancelCallbacks() {
+ mHandler.removeCallbacks(mRemoveHeadsUpRunnable);
+ }
+
+ public boolean wasShownLongEnough() {
+ return earliestRemovaltime < mClock.currentTimeMillis();
+ }
+
+ public void hideAsSoonAsPossible() {
+ removeAutoCancelCallbacks();
+ mHandler.postDelayed(mRemoveHeadsUpRunnable,
+ earliestRemovaltime - mClock.currentTimeMillis());
+ }
+ }
+
+ /**
+ * Update the sorted heads up order.
+ *
+ * @param headsUpEntry the headsUp that changed
+ */
+ private void updateSortOrder(HeadsUpEntry headsUpEntry) {
+ mSortedEntries.remove(headsUpEntry);
+ mSortedEntries.add(headsUpEntry);
+ }
+
+ public static class Clock {
+ public long currentTimeMillis() {
+ return SystemClock.elapsedRealtime();
+ }
+ }
+
+ public interface OnHeadsUpChangedListener {
+ void OnPinnedHeadsUpExistChanged(boolean exist, boolean changeImmediatly);
+ void OnHeadsUpPinnedChanged(ExpandableNotificationRow headsUp, boolean isHeadsUp);
+ void OnHeadsUpStateChanged(NotificationData.Entry entry, boolean isHeadsUp);
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java
deleted file mode 100644
index 1e40bab..0000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java
+++ /dev/null
@@ -1,622 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.policy;
-
-import android.content.Context;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.database.ContentObserver;
-import android.graphics.Outline;
-import android.graphics.Rect;
-import android.os.SystemClock;
-import android.provider.Settings;
-import android.util.ArrayMap;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewConfiguration;
-import android.view.ViewGroup;
-import android.view.ViewOutlineProvider;
-import android.view.ViewTreeObserver;
-import android.view.accessibility.AccessibilityEvent;
-import android.widget.FrameLayout;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.systemui.ExpandHelper;
-import com.android.systemui.Gefingerpoken;
-import com.android.systemui.R;
-import com.android.systemui.SwipeHelper;
-import com.android.systemui.statusbar.ExpandableView;
-import com.android.systemui.statusbar.NotificationData;
-import com.android.systemui.statusbar.phone.PhoneStatusBar;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-
-public class HeadsUpNotificationView extends FrameLayout implements SwipeHelper.Callback, ExpandHelper.Callback,
- ViewTreeObserver.OnComputeInternalInsetsListener {
- private static final String TAG = "HeadsUpNotificationView";
- private static final boolean DEBUG = false;
- private static final boolean SPEW = DEBUG;
- private static final String SETTING_HEADS_UP_SNOOZE_LENGTH_MS = "heads_up_snooze_length_ms";
-
- Rect mTmpRect = new Rect();
- int[] mTmpTwoArray = new int[2];
-
- private final int mHeadsUpNotificationDecay;
- private final int mMinimumDisplayTime;
-
- private final int mTouchSensitivityDelay;
- private final float mMaxAlpha = 1f;
- private final ArrayMap<String, Long> mSnoozedPackages;
- private final int mDefaultSnoozeLengthMs;
-
- private SwipeHelper mSwipeHelper;
- private EdgeSwipeHelper mEdgeSwipeHelper;
-
- private PhoneStatusBar mBar;
-
- private long mLingerUntilMs;
- private long mStartTouchTime;
- private ViewGroup mContentHolder;
- private int mSnoozeLengthMs;
- private ContentObserver mSettingsObserver;
-
- private NotificationData.Entry mHeadsUp;
- private int mUser;
- private String mMostRecentPackageName;
- private boolean mTouched;
- private Clock mClock;
-
- public static class Clock {
- public long currentTimeMillis() {
- return SystemClock.elapsedRealtime();
- }
- }
-
- public HeadsUpNotificationView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public HeadsUpNotificationView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- Resources resources = context.getResources();
- mTouchSensitivityDelay = resources.getInteger(R.integer.heads_up_sensitivity_delay);
- if (DEBUG) Log.v(TAG, "create() " + mTouchSensitivityDelay);
- mSnoozedPackages = new ArrayMap<>();
- mDefaultSnoozeLengthMs = resources.getInteger(R.integer.heads_up_default_snooze_length_ms);
- mSnoozeLengthMs = mDefaultSnoozeLengthMs;
- mMinimumDisplayTime = resources.getInteger(R.integer.heads_up_notification_minimum_time);
- mHeadsUpNotificationDecay = resources.getInteger(R.integer.heads_up_notification_decay);
- mClock = new Clock();
- }
-
- @VisibleForTesting
- public HeadsUpNotificationView(Context context, Clock clock, SwipeHelper swipeHelper,
- EdgeSwipeHelper edgeSwipeHelper, int headsUpNotificationDecay, int minimumDisplayTime,
- int touchSensitivityDelay, int snoozeLength) {
- super(context, null);
- mClock = clock;
- mSwipeHelper = swipeHelper;
- mEdgeSwipeHelper = edgeSwipeHelper;
- mMinimumDisplayTime = minimumDisplayTime;
- mHeadsUpNotificationDecay = headsUpNotificationDecay;
- mTouchSensitivityDelay = touchSensitivityDelay;
- mSnoozedPackages = new ArrayMap<>();
- mDefaultSnoozeLengthMs = snoozeLength;
- }
-
- public void updateResources() {
- if (mContentHolder != null) {
- final LayoutParams lp = (LayoutParams) mContentHolder.getLayoutParams();
- lp.width = getResources().getDimensionPixelSize(R.dimen.notification_panel_width);
- lp.gravity = getResources().getInteger(R.integer.notification_panel_layout_gravity);
- mContentHolder.setLayoutParams(lp);
- }
- }
-
- public void setBar(PhoneStatusBar bar) {
- mBar = bar;
- }
-
- public PhoneStatusBar getBar() {
- return mBar;
- }
-
- public ViewGroup getHolder() {
- return mContentHolder;
- }
-
- /**
- * Called when posting a new notification to the heads up.
- */
- public void showNotification(NotificationData.Entry headsUp) {
- if (DEBUG) Log.v(TAG, "showNotification");
- if (mHeadsUp != null) {
- // bump any previous heads up back to the shade
- releaseImmediately();
- }
- mTouched = false;
- updateNotification(headsUp, true);
- mLingerUntilMs = mClock.currentTimeMillis() + mMinimumDisplayTime;
- }
-
- /**
- * Called when updating or posting a notification to the heads up.
- */
- public void updateNotification(NotificationData.Entry headsUp, boolean alert) {
- if (DEBUG) Log.v(TAG, "updateNotification");
-
- if (mHeadsUp == headsUp) {
- resetViewForHeadsup();
- // This is an in-place update. Noting more to do.
- return;
- }
-
- mHeadsUp = headsUp;
-
- if (mContentHolder != null) {
- mContentHolder.removeAllViews();
- }
-
- if (mHeadsUp != null) {
- mMostRecentPackageName = mHeadsUp.notification.getPackageName();
- if (mHeadsUp.row != null) {
- resetViewForHeadsup();
- }
-
- mStartTouchTime = SystemClock.elapsedRealtime() + mTouchSensitivityDelay;
- if (mContentHolder != null) { // only null in tests and before we are attached to a window
- mContentHolder.setX(0);
- mContentHolder.setVisibility(View.VISIBLE);
- mContentHolder.setAlpha(mMaxAlpha);
- mContentHolder.addView(mHeadsUp.row);
- sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
-
- mSwipeHelper.snapChild(mContentHolder, 1f);
- }
-
- mHeadsUp.setInterruption();
- }
- if (alert) {
- // Make sure the heads up window is open.
- mBar.scheduleHeadsUpOpen();
- mBar.scheduleHeadsUpDecay(mHeadsUpNotificationDecay);
- }
- }
-
- private void resetViewForHeadsup() {
- if (mHeadsUp.row.areChildrenExpanded()) {
- mHeadsUp.row.setChildrenExpanded(false /* expanded */, false /* animated */);
- }
- mHeadsUp.row.setSystemExpanded(true);
- mHeadsUp.row.setSensitive(false);
- mHeadsUp.row.setHeadsUp(true);
- mHeadsUp.row.setTranslationY(0);
- mHeadsUp.row.setTranslationZ(0);
- mHeadsUp.row.setHideSensitive(
- false, false /* animated */, 0 /* delay */, 0 /* duration */);
- }
-
- /**
- * Possibly enter the lingering state by delaying the closing of the window.
- *
- * @return true if the notification has entered the lingering state.
- */
- private boolean startLingering(boolean removed) {
- final long now = mClock.currentTimeMillis();
- if (!mTouched && mHeadsUp != null && now < mLingerUntilMs) {
- if (removed) {
- mHeadsUp = null;
- }
- mBar.scheduleHeadsUpDecay(mLingerUntilMs - now);
- return true;
- }
- return false;
- }
-
- /**
- * React to the removal of the notification in the heads up.
- */
- public void removeNotification(String key) {
- if (DEBUG) Log.v(TAG, "remove");
- if (mHeadsUp == null || !mHeadsUp.key.equals(key)) {
- return;
- }
- if (!startLingering(/* removed */ true)) {
- mHeadsUp = null;
- releaseImmediately();
- }
- }
-
- /**
- * Ask for any current Heads Up notification to be pushed down into the shade.
- */
- public void release() {
- if (DEBUG) Log.v(TAG, "release");
- if (!startLingering(/* removed */ false)) {
- releaseImmediately();
- }
- }
-
- /**
- * Push any current Heads Up notification down into the shade.
- */
- public void releaseImmediately() {
- if (DEBUG) Log.v(TAG, "releaseImmediately");
- if (mHeadsUp != null) {
- mContentHolder.removeView(mHeadsUp.row);
- mBar.displayNotificationFromHeadsUp(mHeadsUp);
- }
- mHeadsUp = null;
- mBar.scheduleHeadsUpClose();
- }
-
- @Override
- protected void onVisibilityChanged(View changedView, int visibility) {
- super.onVisibilityChanged(changedView, visibility);
- if (DEBUG) Log.v(TAG, "onVisibilityChanged: " + visibility);
- if (changedView.getVisibility() == VISIBLE) {
- mStartTouchTime = mClock.currentTimeMillis() + mTouchSensitivityDelay;
- sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
- }
- }
-
- public boolean isSnoozed(String packageName) {
- final String key = snoozeKey(packageName, mUser);
- Long snoozedUntil = mSnoozedPackages.get(key);
- if (snoozedUntil != null) {
- if (snoozedUntil > SystemClock.elapsedRealtime()) {
- if (DEBUG) Log.v(TAG, key + " snoozed");
- return true;
- }
- mSnoozedPackages.remove(packageName);
- }
- return false;
- }
-
- private void snooze() {
- if (mMostRecentPackageName != null) {
- mSnoozedPackages.put(snoozeKey(mMostRecentPackageName, mUser),
- SystemClock.elapsedRealtime() + mSnoozeLengthMs);
- }
- releaseImmediately();
- }
-
- private static String snoozeKey(String packageName, int user) {
- return user + "," + packageName;
- }
-
- public boolean isShowing(String key) {
- return mHeadsUp != null && mHeadsUp.key.equals(key);
- }
-
- public NotificationData.Entry getEntry() {
- return mHeadsUp;
- }
-
- public boolean isClearable() {
- return mHeadsUp == null || mHeadsUp.notification.isClearable();
- }
-
- // ViewGroup methods
-
-private static final ViewOutlineProvider CONTENT_HOLDER_OUTLINE_PROVIDER =
- new ViewOutlineProvider() {
- @Override
- public void getOutline(View view, Outline outline) {
- int outlineLeft = view.getPaddingLeft();
- int outlineTop = view.getPaddingTop();
-
- // Apply padding to shadow.
- outline.setRect(outlineLeft, outlineTop,
- view.getWidth() - outlineLeft - view.getPaddingRight(),
- view.getHeight() - outlineTop - view.getPaddingBottom());
- }
- };
-
- @Override
- public void onAttachedToWindow() {
- final ViewConfiguration viewConfiguration = ViewConfiguration.get(getContext());
- float touchSlop = viewConfiguration.getScaledTouchSlop();
- mSwipeHelper = new SwipeHelper(SwipeHelper.X, this, getContext());
- mSwipeHelper.setMaxSwipeProgress(mMaxAlpha);
- mEdgeSwipeHelper = new EdgeSwipeHelper(this, touchSlop);
-
- int minHeight = getResources().getDimensionPixelSize(R.dimen.notification_min_height);
- int maxHeight = getResources().getDimensionPixelSize(R.dimen.notification_max_height);
-
- mContentHolder = (ViewGroup) findViewById(R.id.content_holder);
- mContentHolder.setOutlineProvider(CONTENT_HOLDER_OUTLINE_PROVIDER);
-
- mSnoozeLengthMs = Settings.Global.getInt(mContext.getContentResolver(),
- SETTING_HEADS_UP_SNOOZE_LENGTH_MS, mDefaultSnoozeLengthMs);
- mSettingsObserver = new ContentObserver(getHandler()) {
- @Override
- public void onChange(boolean selfChange) {
- final int packageSnoozeLengthMs = Settings.Global.getInt(
- mContext.getContentResolver(), SETTING_HEADS_UP_SNOOZE_LENGTH_MS, -1);
- if (packageSnoozeLengthMs > -1 && packageSnoozeLengthMs != mSnoozeLengthMs) {
- mSnoozeLengthMs = packageSnoozeLengthMs;
- if (DEBUG) Log.v(TAG, "mSnoozeLengthMs = " + mSnoozeLengthMs);
- }
- }
- };
- mContext.getContentResolver().registerContentObserver(
- Settings.Global.getUriFor(SETTING_HEADS_UP_SNOOZE_LENGTH_MS), false,
- mSettingsObserver);
- if (DEBUG) Log.v(TAG, "mSnoozeLengthMs = " + mSnoozeLengthMs);
-
- if (mHeadsUp != null) {
- // whoops, we're on already!
- showNotification(mHeadsUp);
- }
-
- getViewTreeObserver().addOnComputeInternalInsetsListener(this);
- }
-
-
- @Override
- protected void onDetachedFromWindow() {
- mContext.getContentResolver().unregisterContentObserver(mSettingsObserver);
- }
-
- @Override
- public boolean onInterceptTouchEvent(MotionEvent ev) {
- if (DEBUG) Log.v(TAG, "onInterceptTouchEvent()");
- if (mClock.currentTimeMillis() < mStartTouchTime) {
- return true;
- }
- mTouched = true;
- return mEdgeSwipeHelper.onInterceptTouchEvent(ev)
- || mSwipeHelper.onInterceptTouchEvent(ev)
- || mHeadsUp == null // lingering
- || super.onInterceptTouchEvent(ev);
- }
-
- // View methods
-
- @Override
- public void onDraw(android.graphics.Canvas c) {
- super.onDraw(c);
- if (DEBUG) {
- //Log.d(TAG, "onDraw: canvas height: " + c.getHeight() + "px; measured height: "
- // + getMeasuredHeight() + "px");
- c.save();
- c.clipRect(6, 6, c.getWidth() - 6, getMeasuredHeight() - 6,
- android.graphics.Region.Op.DIFFERENCE);
- c.drawColor(0xFFcc00cc);
- c.restore();
- }
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent ev) {
- if (mClock.currentTimeMillis() < mStartTouchTime) {
- return false;
- }
-
- final boolean wasRemoved = mHeadsUp == null;
- if (!wasRemoved) {
- mBar.scheduleHeadsUpDecay(mHeadsUpNotificationDecay);
- }
- return mEdgeSwipeHelper.onTouchEvent(ev)
- || mSwipeHelper.onTouchEvent(ev)
- || wasRemoved
- || super.onTouchEvent(ev);
- }
-
- @Override
- protected void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- float densityScale = getResources().getDisplayMetrics().density;
- mSwipeHelper.setDensityScale(densityScale);
- float pagingTouchSlop = ViewConfiguration.get(getContext()).getScaledPagingTouchSlop();
- mSwipeHelper.setPagingTouchSlop(pagingTouchSlop);
- }
-
- // ExpandHelper.Callback methods
-
- @Override
- public ExpandableView getChildAtRawPosition(float x, float y) {
- return getChildAtPosition(x, y);
- }
-
- @Override
- public ExpandableView getChildAtPosition(float x, float y) {
- return mHeadsUp == null ? null : mHeadsUp.row;
- }
-
- @Override
- public boolean canChildBeExpanded(View v) {
- return mHeadsUp != null && mHeadsUp.row == v && mHeadsUp.row.isExpandable();
- }
-
- @Override
- public void setUserExpandedChild(View v, boolean userExpanded) {
- if (mHeadsUp != null && mHeadsUp.row == v) {
- mHeadsUp.row.setUserExpanded(userExpanded);
- }
- }
-
- @Override
- public void setUserLockedChild(View v, boolean userLocked) {
- if (mHeadsUp != null && mHeadsUp.row == v) {
- mHeadsUp.row.setUserLocked(userLocked);
- }
- }
-
- @Override
- public void expansionStateChanged(boolean isExpanding) {
-
- }
-
- // SwipeHelper.Callback methods
-
- @Override
- public boolean canChildBeDismissed(View v) {
- return true;
- }
-
- @Override
- public boolean isAntiFalsingNeeded() {
- return false;
- }
-
- @Override
- public float getFalsingThresholdFactor() {
- return 1.0f;
- }
-
- @Override
- public void onChildDismissed(View v) {
- Log.v(TAG, "User swiped heads up to dismiss");
- if (mHeadsUp != null && mHeadsUp.notification.isClearable()) {
- mBar.onNotificationClear(mHeadsUp.notification);
- mHeadsUp = null;
- }
- releaseImmediately();
- }
-
- @Override
- public void onBeginDrag(View v) {
- }
-
- @Override
- public void onDragCancelled(View v) {
- mContentHolder.setAlpha(mMaxAlpha); // sometimes this isn't quite reset
- }
-
- @Override
- public void onChildSnappedBack(View animView) {
- }
-
- @Override
- public boolean updateSwipeProgress(View animView, boolean dismissable, float swipeProgress) {
- getBackground().setAlpha((int) (255 * swipeProgress));
- return false;
- }
-
- @Override
- public View getChildAtPosition(MotionEvent ev) {
- return mContentHolder;
- }
-
- @Override
- public View getChildContentView(View v) {
- return mContentHolder;
- }
-
- @Override
- public void onComputeInternalInsets(ViewTreeObserver.InternalInsetsInfo info) {
- mContentHolder.getLocationOnScreen(mTmpTwoArray);
-
- info.setTouchableInsets(ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_REGION);
- info.touchableRegion.set(mTmpTwoArray[0], mTmpTwoArray[1],
- mTmpTwoArray[0] + mContentHolder.getWidth(),
- mTmpTwoArray[1] + mContentHolder.getHeight());
- }
-
- public void escalate() {
- mBar.scheduleHeadsUpEscalation();
- }
-
- public String getKey() {
- return mHeadsUp == null ? null : mHeadsUp.notification.getKey();
- }
-
- public void setUser(int user) {
- mUser = user;
- }
-
- public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- pw.println("HeadsUpNotificationView state:");
- pw.print(" mTouchSensitivityDelay="); pw.println(mTouchSensitivityDelay);
- pw.print(" mSnoozeLengthMs="); pw.println(mSnoozeLengthMs);
- pw.print(" mLingerUntilMs="); pw.println(mLingerUntilMs);
- pw.print(" mTouched="); pw.println(mTouched);
- pw.print(" mMostRecentPackageName="); pw.println(mMostRecentPackageName);
- pw.print(" mStartTouchTime="); pw.println(mStartTouchTime);
- pw.print(" now="); pw.println(SystemClock.elapsedRealtime());
- pw.print(" mUser="); pw.println(mUser);
- if (mHeadsUp == null) {
- pw.println(" mHeadsUp=null");
- } else {
- pw.print(" mHeadsUp="); pw.println(mHeadsUp.notification.getKey());
- }
- int N = mSnoozedPackages.size();
- pw.println(" snoozed packages: " + N);
- for (int i = 0; i < N; i++) {
- pw.print(" "); pw.print(mSnoozedPackages.valueAt(i));
- pw.print(", "); pw.println(mSnoozedPackages.keyAt(i));
- }
- }
-
- public static class EdgeSwipeHelper implements Gefingerpoken {
- private static final boolean DEBUG_EDGE_SWIPE = false;
- private final float mTouchSlop;
- private final HeadsUpNotificationView mHeadsUpView;
- private boolean mConsuming;
- private float mFirstY;
- private float mFirstX;
-
- public EdgeSwipeHelper(HeadsUpNotificationView headsUpView, float touchSlop) {
- mHeadsUpView = headsUpView;
- mTouchSlop = touchSlop;
- }
-
- @Override
- public boolean onInterceptTouchEvent(MotionEvent ev) {
- switch (ev.getActionMasked()) {
- case MotionEvent.ACTION_DOWN:
- if (DEBUG_EDGE_SWIPE) Log.d(TAG, "action down " + ev.getY());
- mFirstX = ev.getX();
- mFirstY = ev.getY();
- mConsuming = false;
- break;
-
- case MotionEvent.ACTION_MOVE:
- if (DEBUG_EDGE_SWIPE) Log.d(TAG, "action move " + ev.getY());
- final float dY = ev.getY() - mFirstY;
- final float daX = Math.abs(ev.getX() - mFirstX);
- final float daY = Math.abs(dY);
- if (!mConsuming && daX < daY && daY > mTouchSlop) {
- mHeadsUpView.snooze();
- if (dY > 0) {
- if (DEBUG_EDGE_SWIPE) Log.d(TAG, "found an open");
- mHeadsUpView.getBar().animateExpandNotificationsPanel();
- }
- mConsuming = true;
- }
- break;
-
- case MotionEvent.ACTION_UP:
- case MotionEvent.ACTION_CANCEL:
- if (DEBUG_EDGE_SWIPE) Log.d(TAG, "action done");
- mConsuming = false;
- break;
- }
- return mConsuming;
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent ev) {
- return mConsuming;
- }
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java
index 8e677f1..f2b971f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java
@@ -17,9 +17,13 @@
package com.android.systemui.statusbar.stack;
import android.view.View;
+
import com.android.systemui.statusbar.ActivatableNotificationView;
+import com.android.systemui.statusbar.ExpandableNotificationRow;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
import java.util.ArrayList;
+import java.util.TreeSet;
/**
* A global state to track all input states for the algorithm.
@@ -34,6 +38,12 @@ public class AmbientState {
private int mSpeedBumpIndex = -1;
private boolean mDark;
private boolean mHideSensitive;
+ private HeadsUpManager mHeadsUpManager;
+ private float mStackTranslation;
+ private int mLayoutHeight;
+ private int mTopPadding;
+ private boolean mShadeExpanded;
+ private float mMaxHeadsUpTranslation;
public int getScrollY() {
return mScrollY;
@@ -115,4 +125,67 @@ public class AmbientState {
public void setSpeedBumpIndex(int speedBumpIndex) {
mSpeedBumpIndex = speedBumpIndex;
}
+
+ public void setHeadsUpManager(HeadsUpManager headsUpManager) {
+ mHeadsUpManager = headsUpManager;
+ }
+
+ public TreeSet<HeadsUpManager.HeadsUpEntry> getSortedHeadsUpEntries() {
+ return mHeadsUpManager.getSortedEntries();
+ }
+
+ public float getStackTranslation() {
+ return mStackTranslation;
+ }
+
+ public void setStackTranslation(float stackTranslation) {
+ mStackTranslation = stackTranslation;
+ }
+
+ public int getLayoutHeight() {
+ return mLayoutHeight;
+ }
+
+ public void setLayoutHeight(int layoutHeight) {
+ mLayoutHeight = layoutHeight;
+ }
+
+ public float getTopPadding() {
+ return mTopPadding;
+ }
+
+ public void setTopPadding(int topPadding) {
+ mTopPadding = topPadding;
+ }
+
+ public int getInnerHeight() {
+ return mLayoutHeight - mTopPadding - getTopHeadsUpPushIn();
+ }
+
+ private int getTopHeadsUpPushIn() {
+ ExpandableNotificationRow topHeadsUpEntry = getTopHeadsUpEntry();
+ return topHeadsUpEntry != null ? topHeadsUpEntry.getHeadsUpHeight()
+ - topHeadsUpEntry.getMinHeight(): 0;
+ }
+
+ public boolean isShadeExpanded() {
+ return mShadeExpanded;
+ }
+
+ public void setShadeExpanded(boolean shadeExpanded) {
+ mShadeExpanded = shadeExpanded;
+ }
+
+ public void setMaxHeadsUpTranslation(float maxHeadsUpTranslation) {
+ mMaxHeadsUpTranslation = maxHeadsUpTranslation;
+ }
+
+ public float getMaxHeadsUpTranslation() {
+ return mMaxHeadsUpTranslation;
+ }
+
+ public ExpandableNotificationRow getTopHeadsUpEntry() {
+ HeadsUpManager.HeadsUpEntry topEntry = mHeadsUpManager.getTopEntry();
+ return topEntry == null ? null : topEntry.entry.row;
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
index 2eafd57..f247488 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
@@ -24,6 +24,7 @@ import android.graphics.Paint;
import android.graphics.PointF;
import android.util.AttributeSet;
import android.util.Log;
+import android.util.Pair;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
@@ -47,6 +48,8 @@ import com.android.systemui.statusbar.StackScrollerDecorView;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.PhoneStatusBar;
+import com.android.systemui.statusbar.phone.ScrimController;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.ScrollAdapter;
import java.util.ArrayList;
@@ -121,15 +124,15 @@ public class NotificationStackScrollLayout extends ViewGroup
private StackScrollState mCurrentStackScrollState = new StackScrollState(this);
private AmbientState mAmbientState = new AmbientState();
private NotificationGroupManager mGroupManager;
- private ArrayList<View> mChildrenToAddAnimated = new ArrayList<View>();
- private ArrayList<View> mChildrenToRemoveAnimated = new ArrayList<View>();
- private ArrayList<View> mSnappedBackChildren = new ArrayList<View>();
- private ArrayList<View> mDragAnimPendingChildren = new ArrayList<View>();
- private ArrayList<View> mChildrenChangingPositions = new ArrayList<View>();
+ private ArrayList<View> mChildrenToAddAnimated = new ArrayList<>();
+ private ArrayList<View> mAddedHeadsUpChildren = new ArrayList<>();
+ private ArrayList<View> mChildrenToRemoveAnimated = new ArrayList<>();
+ private ArrayList<View> mSnappedBackChildren = new ArrayList<>();
+ private ArrayList<View> mDragAnimPendingChildren = new ArrayList<>();
+ private ArrayList<View> mChildrenChangingPositions = new ArrayList<>();
private HashSet<View> mFromMoreCardAdditions = new HashSet<>();
- private ArrayList<AnimationEvent> mAnimationEvents
- = new ArrayList<AnimationEvent>();
- private ArrayList<View> mSwipedOutViews = new ArrayList<View>();
+ private ArrayList<AnimationEvent> mAnimationEvents = new ArrayList<>();
+ private ArrayList<View> mSwipedOutViews = new ArrayList<>();
private final StackStateAnimator mStateAnimator = new StackStateAnimator(this);
private boolean mAnimationsEnabled;
private boolean mChangePositionInProgress;
@@ -143,7 +146,6 @@ public class NotificationStackScrollLayout extends ViewGroup
* The raw amount of the overScroll on the bottom, which is not rubber-banded.
*/
private float mOverScrolledBottomPixels;
-
private OnChildLocationsChangedListener mListener;
private OnOverscrollTopChangedListener mOverscrollTopChangedListener;
private ExpandableView.OnHeightChangedListener mOnHeightChangedListener;
@@ -171,7 +173,6 @@ public class NotificationStackScrollLayout extends ViewGroup
* Was the scroller scrolled to the top when the down motion was observed?
*/
private boolean mScrolledToTopOnFirstDown;
-
/**
* The minimal amount of over scroll which is needed in order to switch to the quick settings
* when over scrolling on a expanded card.
@@ -179,6 +180,7 @@ public class NotificationStackScrollLayout extends ViewGroup
private float mMinTopOverScrollToEscape;
private int mIntrinsicPadding;
private int mNotificationTopPadding;
+ private float mStackTranslation;
private float mTopPaddingOverflow;
private boolean mDontReportNextOverScroll;
private boolean mRequestViewResizeAnimationOnLayout;
@@ -202,9 +204,9 @@ public class NotificationStackScrollLayout extends ViewGroup
private ViewGroup mScrollView;
private boolean mInterceptDelegateEnabled;
private boolean mDelegateToScrollView;
+
private boolean mDisallowScrollingInThisMotion;
private long mGoToFullShadeDelay;
-
private ViewTreeObserver.OnPreDrawListener mChildrenUpdater
= new ViewTreeObserver.OnPreDrawListener() {
@Override
@@ -219,6 +221,12 @@ public class NotificationStackScrollLayout extends ViewGroup
private int[] mTempInt2 = new int[2];
private boolean mGenerateChildOrderChangedEvent;
private boolean mRemoveAnimationEnabled;
+ private HashSet<Runnable> mAnimationFinishedRunnables = new HashSet<>();
+ private HashSet<Pair<ExpandableNotificationRow, Boolean>> mHeadsUpChangeAnimations
+ = new HashSet<>();
+ private HeadsUpManager mHeadsUpManager;
+ private boolean mTrackingHeadsUp;
+ private ScrimController mScrimController;
public NotificationStackScrollLayout(Context context) {
this(context, null);
@@ -404,8 +412,8 @@ public class NotificationStackScrollLayout extends ViewGroup
}
private void updateAlgorithmHeightAndPadding() {
- mStackScrollAlgorithm.setLayoutHeight(getLayoutHeight());
- mStackScrollAlgorithm.setTopPadding(mTopPadding);
+ mAmbientState.setLayoutHeight(getLayoutHeight());
+ mAmbientState.setTopPadding(mTopPadding);
}
/**
@@ -478,9 +486,13 @@ public class NotificationStackScrollLayout extends ViewGroup
int newStackHeight = (int) height;
int minStackHeight = getMinStackHeight();
int stackHeight;
- if (newStackHeight - mTopPadding - mTopPaddingOverflow >= minStackHeight
+ float paddingOffset;
+ boolean trackingHeadsUp = mTrackingHeadsUp;
+ int normalExpandPositionStart = trackingHeadsUp ? mHeadsUpManager.getTopHeadsUpHeight()
+ : minStackHeight;
+ if (newStackHeight - mTopPadding - mTopPaddingOverflow >= normalExpandPositionStart
|| getNotGoneChildCount() == 0) {
- setTranslationY(mTopPaddingOverflow);
+ paddingOffset = mTopPaddingOverflow;
stackHeight = newStackHeight;
} else {
@@ -492,9 +504,13 @@ public class NotificationStackScrollLayout extends ViewGroup
float partiallyThere = (newStackHeight - mTopPadding - mTopPaddingOverflow)
/ minStackHeight;
partiallyThere = Math.max(0, partiallyThere);
- translationY += (1 - partiallyThere) * (mBottomStackPeekSize +
- mCollapseSecondCardPadding);
- setTranslationY(translationY - mTopPadding);
+ if (!trackingHeadsUp) {
+ translationY += (1 - partiallyThere) * (mBottomStackPeekSize +
+ mCollapseSecondCardPadding);
+ } else {
+ translationY = (int) (height - mHeadsUpManager.getTopHeadsUpHeight());
+ }
+ paddingOffset = translationY - mTopPadding;
stackHeight = (int) (height - (translationY - mTopPadding));
}
if (stackHeight != mCurrentStackHeight) {
@@ -502,6 +518,19 @@ public class NotificationStackScrollLayout extends ViewGroup
updateAlgorithmHeightAndPadding();
requestChildrenUpdate();
}
+ setStackTranslation(paddingOffset);
+ }
+
+ public float getStackTranslation() {
+ return mStackTranslation;
+ }
+
+ private void setStackTranslation(float stackTranslation) {
+ if (stackTranslation != mStackTranslation) {
+ mStackTranslation = stackTranslation;
+ mAmbientState.setStackTranslation(stackTranslation);
+ requestChildrenUpdate();
+ }
}
/**
@@ -543,11 +572,6 @@ public class NotificationStackScrollLayout extends ViewGroup
if (mDismissAllInProgress) {
return;
}
- if (DEBUG) Log.v(TAG, "onChildDismissed: " + v);
- final View veto = v.findViewById(R.id.veto);
- if (veto != null && veto.getVisibility() != View.GONE) {
- veto.performClick();
- }
setSwipingInProgress(false);
if (mDragAnimPendingChildren.contains(v)) {
// We start the swipe and finish it in the same frame, we don't want any animation
@@ -556,6 +580,17 @@ public class NotificationStackScrollLayout extends ViewGroup
}
mSwipedOutViews.add(v);
mAmbientState.onDragFinished(v);
+ if (v instanceof ExpandableNotificationRow) {
+ ExpandableNotificationRow row = (ExpandableNotificationRow) v;
+ if (row.isHeadsUp()) {
+ mHeadsUpManager.addSwipedOutKey(row.getStatusBarNotification().getKey());
+ }
+ }
+ final View veto = v.findViewById(R.id.veto);
+ if (veto != null && veto.getVisibility() != View.GONE) {
+ veto.performClick();
+ }
+ if (DEBUG) Log.v(TAG, "onChildDismissed: " + v);
}
@Override
@@ -575,28 +610,48 @@ public class NotificationStackScrollLayout extends ViewGroup
@Override
public boolean updateSwipeProgress(View animView, boolean dismissable, float swipeProgress) {
+ if (isPinnedHeadsUp(animView) && canChildBeDismissed(animView)) {
+ mScrimController.setTopHeadsUpDragAmount(animView,
+ Math.min(Math.abs(swipeProgress - 1.0f), 1.0f));
+ }
return false;
}
- @Override
- public float getFalsingThresholdFactor() {
- return mPhoneStatusBar.isScreenOnComingFromTouch() ? 1.5f : 1.0f;
- }
-
public void onBeginDrag(View v) {
setSwipingInProgress(true);
mAmbientState.onBeginDrag(v);
- if (mAnimationsEnabled) {
+ if (mAnimationsEnabled && !isPinnedHeadsUp(v)) {
mDragAnimPendingChildren.add(v);
mNeedsAnimation = true;
}
requestChildrenUpdate();
}
+ public boolean isPinnedHeadsUp(View v) {
+ if (v instanceof ExpandableNotificationRow) {
+ ExpandableNotificationRow row = (ExpandableNotificationRow) v;
+ return row.isHeadsUp() && !row.isInShade();
+ }
+ return false;
+ }
+
+ private boolean isHeadsUp(View v) {
+ if (v instanceof ExpandableNotificationRow) {
+ ExpandableNotificationRow row = (ExpandableNotificationRow) v;
+ return row.isHeadsUp();
+ }
+ return false;
+ }
+
public void onDragCancelled(View v) {
setSwipingInProgress(false);
}
+ @Override
+ public float getFalsingThresholdFactor() {
+ return mPhoneStatusBar.isScreenOnComingFromTouch() ? 1.5f : 1.0f;
+ }
+
public View getChildAtPosition(MotionEvent ev) {
return getChildAtPosition(ev.getX(), ev.getY());
}
@@ -657,6 +712,10 @@ public class NotificationStackScrollLayout extends ViewGroup
if (touchY >= top && touchY <= bottom && touchX >= left && touchX <= right) {
if (slidingChild instanceof ExpandableNotificationRow) {
ExpandableNotificationRow row = (ExpandableNotificationRow) slidingChild;
+ if (row.isHeadsUp() && !row.isInShade()
+ && mHeadsUpManager.getTopEntry().entry.row != row) {
+ continue;
+ }
return row.getViewAtPosition(touchY - childTop);
}
return slidingChild;
@@ -667,7 +726,8 @@ public class NotificationStackScrollLayout extends ViewGroup
public boolean canChildBeExpanded(View v) {
return v instanceof ExpandableNotificationRow
- && ((ExpandableNotificationRow) v).isExpandable();
+ && ((ExpandableNotificationRow) v).isExpandable()
+ && !((ExpandableNotificationRow) v).isHeadsUp();
}
public void setUserExpandedChild(View v, boolean userExpanded) {
@@ -1343,12 +1403,9 @@ public class NotificationStackScrollLayout extends ViewGroup
// add the padding before this element
height += mPaddingBetweenElements;
}
- if (child instanceof ExpandableNotificationRow) {
- ExpandableNotificationRow row = (ExpandableNotificationRow) child;
- height += row.getIntrinsicHeight();
- } else if (child instanceof ExpandableView) {
+ if (child instanceof ExpandableView) {
ExpandableView expandableView = (ExpandableView) child;
- height += expandableView.getActualHeight();
+ height += expandableView.getIntrinsicHeight();
}
}
}
@@ -1713,16 +1770,17 @@ public class NotificationStackScrollLayout extends ViewGroup
}
private void updateNotificationAnimationStates() {
- boolean running = mIsExpanded && mAnimationsEnabled;
+ boolean running = mAnimationsEnabled;
int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
View child = getChildAt(i);
+ running &= mIsExpanded || isPinnedHeadsUp(child);
updateAnimationState(running, child);
}
}
private void updateAnimationState(View child) {
- updateAnimationState(mAnimationsEnabled && mIsExpanded, child);
+ updateAnimationState((mAnimationsEnabled || isPinnedHeadsUp(child)) && mIsExpanded, child);
}
@@ -1752,6 +1810,10 @@ public class NotificationStackScrollLayout extends ViewGroup
}
mNeedsAnimation = true;
}
+ if (isHeadsUp(child)) {
+ mAddedHeadsUpChildren.add(child);
+ mChildrenToAddAnimated.remove(child);
+ }
}
/**
@@ -1790,6 +1852,7 @@ public class NotificationStackScrollLayout extends ViewGroup
}
private void generateChildHierarchyEvents() {
+ generateHeadsUpAnimationEvents();
generateChildRemovalEvents();
generateChildAdditionEvents();
generatePositionChangeEvents();
@@ -1807,6 +1870,40 @@ public class NotificationStackScrollLayout extends ViewGroup
mNeedsAnimation = false;
}
+ private void generateHeadsUpAnimationEvents() {
+ for (Pair<ExpandableNotificationRow, Boolean> eventPair : mHeadsUpChangeAnimations) {
+ ExpandableNotificationRow row = eventPair.first;
+ boolean isHeadsUp = eventPair.second;
+ int type = AnimationEvent.ANIMATION_TYPE_HEADS_UP_OTHER;
+ boolean onBottom = false;
+ if (!mIsExpanded && !isHeadsUp) {
+ type = AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR;
+ } else if (mAddedHeadsUpChildren.contains(row) || (!row.isInShade() && !mIsExpanded)) {
+ if (!row.isInShade() || shouldHunAppearFromBottom(row)) {
+ // Our custom add animation
+ type = AnimationEvent.ANIMATION_TYPE_HEADS_UP_APPEAR;
+ } else {
+ // Normal add animation
+ type = AnimationEvent.ANIMATION_TYPE_ADD;
+ }
+ onBottom = row.isInShade();
+ }
+ AnimationEvent event = new AnimationEvent(row, type);
+ event.headsUpFromBottom = onBottom;
+ mAnimationEvents.add(event);
+ }
+ mHeadsUpChangeAnimations.clear();
+ mAddedHeadsUpChildren.clear();
+ }
+
+ private boolean shouldHunAppearFromBottom(ExpandableNotificationRow row) {
+ StackViewState viewState = mCurrentStackScrollState.getViewStateForView(row);
+ if (viewState.yTranslation + viewState.height < mAmbientState.getMaxHeadsUpTranslation()) {
+ return false;
+ }
+ return true;
+ }
+
private void generateGroupExpansionEvent() {
// Generate a group expansion/collapsing event if there is such a group at all
if (mExpandedGroupView != null) {
@@ -2182,6 +2279,10 @@ public class NotificationStackScrollLayout extends ViewGroup
public void onChildAnimationFinished() {
requestChildrenUpdate();
+ for (Runnable runnable : mAnimationFinishedRunnables) {
+ runnable.run();
+ }
+ mAnimationFinishedRunnables.clear();
}
/**
@@ -2283,7 +2384,7 @@ public class NotificationStackScrollLayout extends ViewGroup
* @return the y position of the first notification
*/
public float getNotificationsTopY() {
- return mTopPadding + getTranslationY();
+ return mTopPadding + getStackTranslation();
}
@Override
@@ -2470,7 +2571,7 @@ public class NotificationStackScrollLayout extends ViewGroup
max = bottom;
}
}
- return max + getTranslationY();
+ return max + getStackTranslation();
}
/**
@@ -2579,6 +2680,50 @@ public class NotificationStackScrollLayout extends ViewGroup
}
}
+ public void performOnAnimationFinished(Runnable runnable) {
+ mAnimationFinishedRunnables.add(runnable);
+ }
+
+ public void setHeadsUpManager(HeadsUpManager headsUpManager) {
+ mHeadsUpManager = headsUpManager;
+ mAmbientState.setHeadsUpManager(headsUpManager);
+ mStackScrollAlgorithm.setHeadsUpManager(headsUpManager);
+ }
+
+ public void generateHeadsUpAnimation(ExpandableNotificationRow row, boolean isHeadsUp) {
+ if (mAnimationsEnabled) {
+ mHeadsUpChangeAnimations.add(new Pair<>(row, isHeadsUp));
+ mNeedsAnimation = true;
+ requestChildrenUpdate();
+ }
+ }
+
+ public void setShadeExpanded(boolean shadeExpanded) {
+ mAmbientState.setShadeExpanded(shadeExpanded);
+ mStateAnimator.setShadeExpanded(shadeExpanded);
+ }
+
+ /**
+ * Set the boundary for the bottom heads up position. The heads up will always be above this
+ * position.
+ *
+ * @param height the height of the screen
+ * @param bottomBarHeight the height of the bar on the bottom
+ */
+ public void setHeadsUpBoundaries(int height, int bottomBarHeight) {
+ mAmbientState.setMaxHeadsUpTranslation(height - bottomBarHeight);
+ mStateAnimator.setHeadsUpAppearHeightBottom(height);
+ requestChildrenUpdate();
+ }
+
+ public void setTrackingHeadsUp(boolean trackingHeadsUp) {
+ mTrackingHeadsUp = trackingHeadsUp;
+ }
+
+ public void setScrimController(ScrimController scrimController) {
+ mScrimController = scrimController;
+ }
+
/**
* A listener that is notified when some child locations might have changed.
*/
@@ -2723,6 +2868,30 @@ public class NotificationStackScrollLayout extends ViewGroup
.animateY()
.animateZ(),
+ // ANIMATION_TYPE_HEADS_UP_APPEAR
+ new AnimationFilter()
+ .animateAlpha()
+ .animateHeight()
+ .animateTopInset()
+ .animateY()
+ .animateZ(),
+
+ // ANIMATION_TYPE_HEADS_UP_DISAPPEAR
+ new AnimationFilter()
+ .animateAlpha()
+ .animateHeight()
+ .animateTopInset()
+ .animateY()
+ .animateZ(),
+
+ // ANIMATION_TYPE_HEADS_UP_OTHER
+ new AnimationFilter()
+ .animateAlpha()
+ .animateHeight()
+ .animateTopInset()
+ .animateY()
+ .animateZ(),
+
// ANIMATION_TYPE_EVERYTHING
new AnimationFilter()
.animateAlpha()
@@ -2780,6 +2949,15 @@ public class NotificationStackScrollLayout extends ViewGroup
// ANIMATION_TYPE_GROUP_EXPANSION_CHANGED
StackStateAnimator.ANIMATION_DURATION_EXPAND_CLICKED,
+ // ANIMATION_TYPE_HEADS_UP_APPEAR
+ StackStateAnimator.ANIMATION_DURATION_HEADS_UP_APPEAR,
+
+ // ANIMATION_TYPE_HEADS_UP_DISAPPEAR
+ StackStateAnimator.ANIMATION_DURATION_HEADS_UP_DISAPPEAR,
+
+ // ANIMATION_TYPE_HEADS_UP_OTHER
+ StackStateAnimator.ANIMATION_DURATION_STANDARD,
+
// ANIMATION_TYPE_EVERYTHING
StackStateAnimator.ANIMATION_DURATION_STANDARD,
};
@@ -2798,7 +2976,10 @@ public class NotificationStackScrollLayout extends ViewGroup
static final int ANIMATION_TYPE_HIDE_SENSITIVE = 11;
static final int ANIMATION_TYPE_VIEW_RESIZE = 12;
static final int ANIMATION_TYPE_GROUP_EXPANSION_CHANGED = 13;
- static final int ANIMATION_TYPE_EVERYTHING = 14;
+ static final int ANIMATION_TYPE_HEADS_UP_APPEAR = 14;
+ static final int ANIMATION_TYPE_HEADS_UP_DISAPPEAR = 15;
+ static final int ANIMATION_TYPE_HEADS_UP_OTHER = 16;
+ static final int ANIMATION_TYPE_EVERYTHING = 17;
static final int DARK_ANIMATION_ORIGIN_INDEX_ABOVE = -1;
static final int DARK_ANIMATION_ORIGIN_INDEX_BELOW = -2;
@@ -2810,6 +2991,7 @@ public class NotificationStackScrollLayout extends ViewGroup
final long length;
View viewAfterChangingView;
int darkAnimationOriginIndex;
+ boolean headsUpFromBottom;
AnimationEvent(View view, int type) {
this(view, type, LENGTHS[type]);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
index e7bf47b..d98bcfe 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
@@ -25,9 +25,11 @@ import android.view.ViewGroup;
import com.android.systemui.R;
import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.ExpandableView;
+import com.android.systemui.statusbar.policy.HeadsUpManager;
import java.util.ArrayList;
import java.util.List;
+import java.util.TreeSet;
/**
* The Algorithm of the {@link com.android.systemui.statusbar.stack
@@ -54,11 +56,6 @@ public class StackScrollAlgorithm {
private StackIndentationFunctor mTopStackIndentationFunctor;
private StackIndentationFunctor mBottomStackIndentationFunctor;
- private int mLayoutHeight;
-
- /** mLayoutHeight - mTopPadding */
- private int mInnerHeight;
- private int mTopPadding;
private StackScrollAlgorithmState mTempAlgorithmState = new StackScrollAlgorithmState();
private boolean mIsExpansionChanging;
private int mFirstChildMaxHeight;
@@ -74,6 +71,7 @@ public class StackScrollAlgorithm {
private boolean mIsSmallScreen;
private int mMaxNotificationHeight;
private boolean mScaleDimmed;
+ private HeadsUpManager mHeadsUpManager;
public StackScrollAlgorithm(Context context) {
initConstants(context);
@@ -157,20 +155,20 @@ public class StackScrollAlgorithm {
scrollY = Math.max(0, scrollY);
algorithmState.scrollY = (int) (scrollY + mCollapsedSize + bottomOverScroll);
- updateVisibleChildren(resultState, algorithmState);
+ updateVisibleChildren(resultState, algorithmState, ambientState);
// Phase 1:
- findNumberOfItemsInTopStackAndUpdateState(resultState, algorithmState);
+ findNumberOfItemsInTopStackAndUpdateState(resultState, algorithmState, ambientState);
// Phase 2:
- updatePositionsForState(resultState, algorithmState);
+ updatePositionsForState(resultState, algorithmState, ambientState);
// Phase 3:
updateZValuesForState(resultState, algorithmState);
handleDraggedViews(ambientState, resultState, algorithmState);
updateDimmedActivatedHideSensitive(ambientState, resultState, algorithmState);
- updateClipping(resultState, algorithmState);
+ updateClipping(resultState, algorithmState, ambientState);
updateSpeedBumpState(resultState, algorithmState, ambientState.getSpeedBumpIndex());
getNotificationChildrenStates(resultState, algorithmState);
}
@@ -201,7 +199,7 @@ public class StackScrollAlgorithm {
}
private void updateClipping(StackScrollState resultState,
- StackScrollAlgorithmState algorithmState) {
+ StackScrollAlgorithmState algorithmState, AmbientState ambientState) {
float previousNotificationEnd = 0;
float previousNotificationStart = 0;
boolean previousNotificationIsSwiped = false;
@@ -242,7 +240,7 @@ public class StackScrollAlgorithm {
// otherwise we would clip to a transparent view.
previousNotificationStart = newYTranslation + state.clipTopAmount * state.scale;
previousNotificationEnd = newNotificationEnd;
- previousNotificationIsSwiped = child.getTranslationX() != 0;
+ previousNotificationIsSwiped = ambientState.getDraggedViews().contains(child);
}
}
}
@@ -314,7 +312,9 @@ public class StackScrollAlgorithm {
StackViewState viewState = resultState.getViewStateForView(
nextChild);
// The child below the dragged one must be fully visible
- viewState.alpha = 1;
+ if (!isPinnedHeadsUpView(draggedView) || isPinnedHeadsUpView(nextChild)) {
+ viewState.alpha = 1;
+ }
}
// Lets set the alpha to the one it currently has, as its currently being dragged
@@ -325,27 +325,41 @@ public class StackScrollAlgorithm {
}
}
+ private boolean isPinnedHeadsUpView(View view) {
+ if (view instanceof ExpandableNotificationRow) {
+ ExpandableNotificationRow row = (ExpandableNotificationRow) view;
+ return row.isHeadsUp() && !row.isInShade();
+ }
+ return false;
+ }
+
/**
* Update the visible children on the state.
*/
private void updateVisibleChildren(StackScrollState resultState,
- StackScrollAlgorithmState state) {
+ StackScrollAlgorithmState state, AmbientState ambientState) {
ViewGroup hostView = resultState.getHostView();
int childCount = hostView.getChildCount();
state.visibleChildren.clear();
state.visibleChildren.ensureCapacity(childCount);
int notGoneIndex = 0;
+ TreeSet<HeadsUpManager.HeadsUpEntry> headsUpEntries
+ = ambientState.getSortedHeadsUpEntries();
+ for (HeadsUpManager.HeadsUpEntry entry: headsUpEntries) {
+ ExpandableView v = entry.entry.row;
+ notGoneIndex = updateNotGoneIndex(resultState, state, notGoneIndex, v);
+ }
for (int i = 0; i < childCount; i++) {
ExpandableView v = (ExpandableView) hostView.getChildAt(i);
if (v.getVisibility() != View.GONE) {
- StackViewState viewState = resultState.getViewStateForView(v);
- viewState.notGoneIndex = notGoneIndex;
- state.visibleChildren.add(v);
- notGoneIndex++;
-
- // handle the notgoneIndex for the children as well
if (v instanceof ExpandableNotificationRow) {
ExpandableNotificationRow row = (ExpandableNotificationRow) v;
+ if (row.isHeadsUp()) {
+ continue;
+ }
+ notGoneIndex = updateNotGoneIndex(resultState, state, notGoneIndex, v);
+
+ // handle the notgoneIndex for the children as well
List<ExpandableNotificationRow> children =
row.getNotificationChildren();
if (row.areChildrenExpanded() && children != null) {
@@ -358,22 +372,35 @@ public class StackScrollAlgorithm {
}
}
}
+ } else {
+ notGoneIndex = updateNotGoneIndex(resultState, state, notGoneIndex, v);
}
}
}
}
+ private int updateNotGoneIndex(StackScrollState resultState,
+ StackScrollAlgorithmState state, int notGoneIndex,
+ ExpandableView v) {
+ StackViewState viewState = resultState.getViewStateForView(v);
+ viewState.notGoneIndex = notGoneIndex;
+ state.visibleChildren.add(v);
+ notGoneIndex++;
+ return notGoneIndex;
+ }
+
/**
* Determine the positions for the views. This is the main part of the algorithm.
*
- * @param resultState The result state to update if a change to the properties of a child occurs
+ * @param resultState The result state to update if a change to the properties of a child occurs
* @param algorithmState The state in which the current pass of the algorithm is currently in
+ * @param ambientState The current ambient state
*/
private void updatePositionsForState(StackScrollState resultState,
- StackScrollAlgorithmState algorithmState) {
+ StackScrollAlgorithmState algorithmState, AmbientState ambientState) {
// The starting position of the bottom stack peek
- float bottomPeekStart = mInnerHeight - mBottomStackPeekSize;
+ float bottomPeekStart = ambientState.getInnerHeight() - mBottomStackPeekSize;
// The position where the bottom stack starts.
float bottomStackStart = bottomPeekStart - mBottomStackSlowDownLength;
@@ -384,13 +411,17 @@ public class StackScrollAlgorithm {
// How far in is the element currently transitioning into the bottom stack.
float yPositionInScrollView = 0.0f;
+ // If we have a heads-up higher than the collapsed height we need to add the difference to
+ // the padding of all other elements, i.e push in the top stack slightly.
+ ExpandableNotificationRow topHeadsUpEntry = ambientState.getTopHeadsUpEntry();
+
int childCount = algorithmState.visibleChildren.size();
int numberOfElementsCompletelyIn = (int) algorithmState.itemsInTopStack;
for (int i = 0; i < childCount; i++) {
ExpandableView child = algorithmState.visibleChildren.get(i);
StackViewState childViewState = resultState.getViewStateForView(child);
childViewState.location = StackViewState.LOCATION_UNKNOWN;
- int childHeight = getMaxAllowedChildHeight(child);
+ int childHeight = getMaxAllowedChildHeight(child, ambientState);
float yPositionInScrollViewAfterElement = yPositionInScrollView
+ childHeight
+ mPaddingBetweenElements;
@@ -427,7 +458,8 @@ public class StackScrollAlgorithm {
bottomPeekStart, childViewState.yTranslation, childViewState,
childHeight);
}
- clampPositionToBottomStackStart(childViewState, childViewState.height);
+ clampPositionToBottomStackStart(childViewState, childViewState.height,
+ ambientState);
} else if (nextYPosition >= bottomStackStart) {
// Case 2:
// We are in the bottom stack.
@@ -435,7 +467,7 @@ public class StackScrollAlgorithm {
// According to the regular scroll view we are fully translated out of the
// bottom of the screen so we are fully in the bottom stack
updateStateForChildFullyInBottomStack(algorithmState,
- bottomStackStart, childViewState, childHeight);
+ bottomStackStart, childViewState, childHeight, ambientState);
} else {
// According to the regular scroll view we are currently translating out of /
// into the bottom of the screen
@@ -447,7 +479,7 @@ public class StackScrollAlgorithm {
// Case 3:
// We are in the regular scroll area.
childViewState.location = StackViewState.LOCATION_MAIN_AREA;
- clampYTranslation(childViewState, childHeight);
+ clampYTranslation(childViewState, childHeight, ambientState);
}
// The first card is always rendered.
@@ -468,7 +500,44 @@ public class StackScrollAlgorithm {
currentYPosition = childViewState.yTranslation + childHeight + mPaddingBetweenElements;
yPositionInScrollView = yPositionInScrollViewAfterElement;
- childViewState.yTranslation += mTopPadding;
+ if (ambientState.isShadeExpanded() && topHeadsUpEntry != null
+ && child != topHeadsUpEntry) {
+ childViewState.yTranslation += topHeadsUpEntry.getHeadsUpHeight() - mCollapsedSize;
+ }
+ childViewState.yTranslation += ambientState.getTopPadding()
+ + ambientState.getStackTranslation();
+ }
+ updateHeadsUpStates(resultState, ambientState);
+ }
+
+ private void updateHeadsUpStates(StackScrollState resultState, AmbientState ambientState) {
+ TreeSet<HeadsUpManager.HeadsUpEntry> headsUpEntries = ambientState.getSortedHeadsUpEntries();
+ for (HeadsUpManager.HeadsUpEntry entry: headsUpEntries) {
+ ExpandableNotificationRow row = entry.entry.row;
+ StackViewState childState = resultState.getViewStateForView(row);
+ ExpandableNotificationRow topHeadsUpEntry = ambientState.getTopHeadsUpEntry();
+ boolean isTopEntry = topHeadsUpEntry == row;
+ if (!row.isInShade()) {
+ childState.yTranslation = 0;
+ childState.height = row.getHeadsUpHeight();
+ if (!isTopEntry) {
+ // Ensure that a headsUp is never below the topmost headsUp
+ StackViewState topState = resultState.getViewStateForView(topHeadsUpEntry);
+ childState.height = row.getHeadsUpHeight();
+ childState.yTranslation = topState.yTranslation + topState.height
+ - childState.height;
+ }
+ } else if (mIsExpanded) {
+ if (isTopEntry) {
+ childState.height += row.getHeadsUpHeight() - mCollapsedSize;
+ }
+ childState.height = Math.max(childState.height, row.getHeadsUpHeight());
+ // Ensure that the heads up is always visible even when scrolled of from the bottom
+ float bottomPosition = ambientState.getMaxHeadsUpTranslation() - childState.height;
+ childState.yTranslation = Math.min(childState.yTranslation,
+ bottomPosition);
+ }
+
}
}
@@ -478,8 +547,9 @@ public class StackScrollAlgorithm {
* @param childViewState the view state of the child
* @param childHeight the height of this child
*/
- private void clampYTranslation(StackViewState childViewState, int childHeight) {
- clampPositionToBottomStackStart(childViewState, childHeight);
+ private void clampYTranslation(StackViewState childViewState, int childHeight,
+ AmbientState ambientState) {
+ clampPositionToBottomStackStart(childViewState, childHeight, ambientState);
clampPositionToTopStackEnd(childViewState, childHeight);
}
@@ -491,14 +561,15 @@ public class StackScrollAlgorithm {
* @param childHeight the height of this child
*/
private void clampPositionToBottomStackStart(StackViewState childViewState,
- int childHeight) {
+ int childHeight, AmbientState ambientState) {
childViewState.yTranslation = Math.min(childViewState.yTranslation,
- mInnerHeight - mBottomStackPeekSize - mCollapseSecondCardPadding - childHeight);
+ ambientState.getInnerHeight() - mBottomStackPeekSize - mCollapseSecondCardPadding
+ - childHeight);
}
/**
* Clamp the yTranslation of the child up such that its end is at lest on the end of the top
- * stack.get
+ * stack.
*
* @param childViewState the view state of the child
* @param childHeight the height of this child
@@ -509,9 +580,14 @@ public class StackScrollAlgorithm {
mCollapsedSize - childHeight);
}
- private int getMaxAllowedChildHeight(View child) {
+ private int getMaxAllowedChildHeight(View child, AmbientState ambientState) {
if (child instanceof ExpandableNotificationRow) {
ExpandableNotificationRow row = (ExpandableNotificationRow) child;
+ if (ambientState == null && row.isHeadsUp()
+ || ambientState != null && ambientState.getTopHeadsUpEntry() == child) {
+ int extraSize = row.getIntrinsicHeight() - row.getHeadsUpHeight();
+ return mCollapsedSize + extraSize;
+ }
return row.getIntrinsicHeight();
} else if (child instanceof ExpandableView) {
ExpandableView expandableView = (ExpandableView) child;
@@ -548,8 +624,7 @@ public class StackScrollAlgorithm {
private void updateStateForChildFullyInBottomStack(StackScrollAlgorithmState algorithmState,
float transitioningPositionStart, StackViewState childViewState,
- int childHeight) {
-
+ int childHeight, AmbientState ambientState) {
float currentYPosition;
algorithmState.itemsInBottomStack += 1.0f;
if (algorithmState.itemsInBottomStack < MAX_ITEMS_IN_BOTTOM_STACK) {
@@ -567,7 +642,7 @@ public class StackScrollAlgorithm {
childViewState.alpha = 1.0f - algorithmState.partialInBottom;
}
childViewState.location = StackViewState.LOCATION_BOTTOM_STACK_HIDDEN;
- currentYPosition = mInnerHeight;
+ currentYPosition = ambientState.getInnerHeight();
}
childViewState.yTranslation = currentYPosition - childHeight;
clampPositionToTopStackEnd(childViewState, childHeight);
@@ -629,7 +704,7 @@ public class StackScrollAlgorithm {
* @param algorithmState The state in which the current pass of the algorithm is currently in
*/
private void findNumberOfItemsInTopStackAndUpdateState(StackScrollState resultState,
- StackScrollAlgorithmState algorithmState) {
+ StackScrollAlgorithmState algorithmState, AmbientState ambientState) {
// The y Position if the element would be in a regular scrollView
float yPositionInScrollView = 0.0f;
@@ -639,7 +714,7 @@ public class StackScrollAlgorithm {
for (int i = 0; i < childCount; i++) {
ExpandableView child = algorithmState.visibleChildren.get(i);
StackViewState childViewState = resultState.getViewStateForView(child);
- int childHeight = getMaxAllowedChildHeight(child);
+ int childHeight = getMaxAllowedChildHeight(child, ambientState);
float yPositionInScrollViewAfterElement = yPositionInScrollView
+ childHeight
+ mPaddingBetweenElements;
@@ -647,7 +722,7 @@ public class StackScrollAlgorithm {
if (i == 0 && algorithmState.scrollY <= mCollapsedSize) {
// The starting position of the bottom stack peek
- int bottomPeekStart = mInnerHeight - mBottomStackPeekSize -
+ int bottomPeekStart = ambientState.getInnerHeight() - mBottomStackPeekSize -
mCollapseSecondCardPadding;
// Collapse and expand the first child while the shade is being expanded
float maxHeight = mIsExpansionChanging && child == mFirstChildWhileExpanding
@@ -744,21 +819,6 @@ public class StackScrollAlgorithm {
}
}
- public void setLayoutHeight(int layoutHeight) {
- this.mLayoutHeight = layoutHeight;
- updateInnerHeight();
- }
-
- public void setTopPadding(int topPadding) {
- mTopPadding = topPadding;
- updateInnerHeight();
- }
-
- private void updateInnerHeight() {
- mInnerHeight = mLayoutHeight - mTopPadding;
- }
-
-
/**
* Update whether the device is very small, i.e. Notifications can be in both the top and the
* bottom stack at the same time
@@ -788,6 +848,13 @@ public class StackScrollAlgorithm {
// current height or the end value of the animation.
mFirstChildMaxHeight = StackStateAnimator.getFinalActualHeight(
mFirstChildWhileExpanding);
+ if (mFirstChildWhileExpanding instanceof ExpandableNotificationRow) {
+ ExpandableNotificationRow row =
+ (ExpandableNotificationRow) mFirstChildWhileExpanding;
+ if (row.isHeadsUp()) {
+ mFirstChildMaxHeight += mCollapsedSize - row.getHeadsUpHeight();
+ }
+ }
} else {
updateFirstChildMaxSizeToMaxHeight();
}
@@ -809,7 +876,7 @@ public class StackScrollAlgorithm {
int oldBottom) {
if (mFirstChildWhileExpanding != null) {
mFirstChildMaxHeight = getMaxAllowedChildHeight(
- mFirstChildWhileExpanding);
+ mFirstChildWhileExpanding, null);
} else {
mFirstChildMaxHeight = 0;
}
@@ -817,7 +884,7 @@ public class StackScrollAlgorithm {
}
});
} else {
- mFirstChildMaxHeight = getMaxAllowedChildHeight(mFirstChildWhileExpanding);
+ mFirstChildMaxHeight = getMaxAllowedChildHeight(mFirstChildWhileExpanding, null);
}
}
@@ -830,6 +897,9 @@ public class StackScrollAlgorithm {
}
private View findFirstVisibleChild(ViewGroup container) {
+ if (mHeadsUpManager != null && mHeadsUpManager.getTopEntry() != null) {
+ return mHeadsUpManager.getTopEntry().entry.row;
+ }
int childCount = container.getChildCount();
for (int i = 0; i < childCount; i++) {
View child = container.getChildAt(i);
@@ -870,6 +940,10 @@ public class StackScrollAlgorithm {
}
}
+ public void setHeadsUpManager(HeadsUpManager headsUpManager) {
+ mHeadsUpManager = headsUpManager;
+ }
+
class StackScrollAlgorithmState {
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java
index b249fbf..f5d94c8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java
@@ -21,9 +21,11 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.ValueAnimator;
+import android.graphics.Path;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
+import android.view.animation.PathInterpolator;
import com.android.systemui.R;
import com.android.systemui.statusbar.ExpandableNotificationRow;
@@ -32,7 +34,6 @@ import com.android.systemui.statusbar.SpeedBumpView;
import java.util.ArrayList;
import java.util.HashSet;
-import java.util.Set;
import java.util.Stack;
/**
@@ -45,6 +46,8 @@ public class StackStateAnimator {
public static final int ANIMATION_DURATION_APPEAR_DISAPPEAR = 464;
public static final int ANIMATION_DURATION_EXPAND_CLICKED = 360;
public static final int ANIMATION_DURATION_DIMMED_ACTIVATED = 220;
+ public static final int ANIMATION_DURATION_HEADS_UP_APPEAR = 650;
+ public static final int ANIMATION_DURATION_HEADS_UP_DISAPPEAR = 230;
public static final int ANIMATION_DELAY_PER_ELEMENT_INTERRUPTING = 80;
public static final int ANIMATION_DELAY_PER_ELEMENT_EXPAND_CHILDREN = 54;
public static final int ANIMATION_DELAY_PER_ELEMENT_MANUAL = 32;
@@ -73,12 +76,15 @@ public class StackStateAnimator {
private static final int TAG_START_TOP_INSET = R.id.top_inset_animator_start_value_tag;
private final Interpolator mFastOutSlowInInterpolator;
+ private final Interpolator mHeadsUpAppearInterpolator;
private final int mGoToFullShadeAppearingTranslation;
public NotificationStackScrollLayout mHostLayout;
private ArrayList<NotificationStackScrollLayout.AnimationEvent> mNewEvents =
new ArrayList<>();
private ArrayList<View> mNewAddChildren = new ArrayList<>();
- private Set<Animator> mAnimatorSet = new HashSet<>();
+ private HashSet<View> mHeadsUpAppearChildren = new HashSet<>();
+ private HashSet<View> mHeadsUpDisappearChildren = new HashSet<>();
+ private HashSet<Animator> mAnimatorSet = new HashSet<>();
private Stack<AnimatorListenerAdapter> mAnimationListenerPool = new Stack<>();
private AnimationFilter mAnimationFilter = new AnimationFilter();
private long mCurrentLength;
@@ -86,10 +92,12 @@ public class StackStateAnimator {
/** The current index for the last child which was not added in this event set. */
private int mCurrentLastNotAddedIndex;
-
private ValueAnimator mTopOverScrollAnimator;
private ValueAnimator mBottomOverScrollAnimator;
private ExpandableNotificationRow mChildExpandingView;
+ private StackViewState mTmpState = new StackViewState();
+ private int mHeadsUpAppearHeightBottom;
+ private boolean mShadeExpanded;
public StackStateAnimator(NotificationStackScrollLayout hostLayout) {
mHostLayout = hostLayout;
@@ -98,6 +106,25 @@ public class StackStateAnimator {
mGoToFullShadeAppearingTranslation =
hostLayout.getContext().getResources().getDimensionPixelSize(
R.dimen.go_to_full_shade_appearing_translation);
+ Path path = new Path();
+ path.moveTo(0, 0);
+ float x1 = 250f;
+ float x2 = 150f;
+ float x3 = 100f;
+ float y1 = 90f;
+ float y2 = 78f;
+ float y3 = 80f;
+ float xTot = (x1 + x2 + x3);
+ path.cubicTo(x1 * 0.9f / xTot, 0f,
+ x1 * 0.8f / xTot, y1 / y3,
+ x1 / xTot , y1 / y3);
+ path.cubicTo((x1 + x2 * 0.4f) / xTot, y1 / y3,
+ (x1 + x2 * 0.2f) / xTot, y2 / y3,
+ (x1 + x2) / xTot, y2 / y3);
+ path.cubicTo((x1 + x2 + x3 * 0.4f) / xTot, y2 / y3,
+ (x1 + x2 + x3 * 0.2f) / xTot, 1f,
+ 1f, 1f);
+ mHeadsUpAppearInterpolator = new PathInterpolator(path);
}
public boolean isRunning() {
@@ -119,7 +146,8 @@ public class StackStateAnimator {
final ExpandableView child = (ExpandableView) mHostLayout.getChildAt(i);
StackViewState viewState = finalState.getViewStateForView(child);
- if (viewState == null || child.getVisibility() == View.GONE) {
+ if (viewState == null || child.getVisibility() == View.GONE
+ || applyWithoutAnimation(child, viewState, finalState)) {
continue;
}
@@ -130,11 +158,39 @@ public class StackStateAnimator {
// no child has preformed any animation, lets finish
onAnimationFinished();
}
+ mHeadsUpAppearChildren.clear();
+ mHeadsUpDisappearChildren.clear();
mNewEvents.clear();
mNewAddChildren.clear();
mChildExpandingView = null;
}
+ /**
+ * Determines if a view should not perform an animation and applies it directly.
+ *
+ * @return true if no animation should be performed
+ */
+ private boolean applyWithoutAnimation(ExpandableView child, StackViewState viewState,
+ StackScrollState finalState) {
+ if (mShadeExpanded) {
+ return false;
+ }
+ if (getChildTag(child, TAG_ANIMATOR_TRANSLATION_Y) != null) {
+ // A Y translation animation is running
+ return false;
+ }
+ if (mHeadsUpDisappearChildren.contains(child) || mHeadsUpAppearChildren.contains(child)) {
+ // This is a heads up animation
+ return false;
+ }
+ if (mHostLayout.isPinnedHeadsUp(child)) {
+ // This is another headsUp which might move. Let's animate!
+ return false;
+ }
+ finalState.applyState(child, viewState);
+ return true;
+ }
+
private int findLastNotAddedIndex(StackScrollState finalState) {
int childCount = mHostLayout.getChildCount();
for (int i = childCount - 1; i >= 0; i--) {
@@ -616,7 +672,9 @@ public class StackStateAnimator {
ObjectAnimator animator = ObjectAnimator.ofFloat(child, View.TRANSLATION_Y,
child.getTranslationY(), newEndValue);
- animator.setInterpolator(mFastOutSlowInInterpolator);
+ Interpolator interpolator = mHeadsUpAppearChildren.contains(child) ?
+ mHeadsUpAppearInterpolator :mFastOutSlowInInterpolator;
+ animator.setInterpolator(interpolator);
long newDuration = cancelAnimatorAndGetNewDuration(duration, previousAnimator);
animator.setDuration(newDuration);
if (delay > 0 && (previousAnimator == null || !previousAnimator.isRunning())) {
@@ -731,7 +789,7 @@ public class StackStateAnimator {
};
}
- private static <T> T getChildTag(View child, int tag) {
+ public static <T> T getChildTag(View child, int tag) {
return (T) child.getTag(tag);
}
@@ -828,6 +886,22 @@ public class StackStateAnimator {
ExpandableNotificationRow row = (ExpandableNotificationRow) event.changingView;
row.prepareExpansionChanged(finalState);
mChildExpandingView = row;
+ } else if (event.animationType == NotificationStackScrollLayout
+ .AnimationEvent.ANIMATION_TYPE_HEADS_UP_APPEAR) {
+ // This item is added, initialize it's properties.
+ StackViewState viewState = finalState.getViewStateForView(changingView);
+ mTmpState.copyFrom(viewState);
+ if (event.headsUpFromBottom) {
+ mTmpState.yTranslation = mHeadsUpAppearHeightBottom;
+ } else {
+ mTmpState.yTranslation = -mTmpState.height;
+ }
+ mHeadsUpAppearChildren.add(changingView);
+ finalState.applyState(changingView, mTmpState);
+ } else if (event.animationType == NotificationStackScrollLayout
+ .AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR) {
+ // This item is added, initialize it's properties.
+ mHeadsUpDisappearChildren.add(changingView);
}
mNewEvents.add(event);
}
@@ -893,4 +967,12 @@ public class StackStateAnimator {
return getChildTag(view, TAG_END_HEIGHT);
}
}
+
+ public void setHeadsUpAppearHeightBottom(int headsUpAppearHeightBottom) {
+ mHeadsUpAppearHeightBottom = headsUpAppearHeightBottom;
+ }
+
+ public void setShadeExpanded(boolean shadeExpanded) {
+ mShadeExpanded = shadeExpanded;
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
index c272e48..78122d6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
@@ -123,19 +123,7 @@ public class TvStatusBar extends BaseStatusBar {
}
@Override
- public void scheduleHeadsUpDecay(long delay) {
- }
-
- @Override
- public void scheduleHeadsUpOpen() {
- }
-
- @Override
- public void scheduleHeadsUpEscalation() {
- }
-
- @Override
- public void scheduleHeadsUpClose() {
+ public void escalateHeadsUp() {
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java b/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java
index 5771d22..818f5ee 100644
--- a/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java
+++ b/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Google Inc.
+ * Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,424 +17,293 @@
package com.android.systemui.usb;
import android.app.Notification;
+import android.app.Notification.Action;
import android.app.NotificationManager;
import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
-import android.content.res.Resources;
-import android.os.Environment;
-import android.os.Handler;
-import android.os.HandlerThread;
+import android.content.IntentFilter;
import android.os.UserHandle;
+import android.os.storage.DiskInfo;
import android.os.storage.StorageEventListener;
import android.os.storage.StorageManager;
-import android.os.storage.StorageVolume;
-import android.provider.Settings;
+import android.os.storage.VolumeInfo;
import android.util.Log;
+import com.android.internal.R;
import com.android.systemui.SystemUI;
+import java.util.List;
+
public class StorageNotification extends SystemUI {
private static final String TAG = "StorageNotification";
- private static final boolean DEBUG = false;
-
- private static final boolean POP_UMS_ACTIVITY_ON_CONNECT = true;
-
- /**
- * The notification that is shown when a USB mass storage host
- * is connected.
- * <p>
- * This is lazily created, so use {@link #setUsbStorageNotification()}.
- */
- private Notification mUsbStorageNotification;
-
- /**
- * The notification that is shown when the following media events occur:
- * - Media is being checked
- * - Media is blank (or unknown filesystem)
- * - Media is corrupt
- * - Media is safe to unmount
- * - Media is missing
- * <p>
- * This is lazily created, so use {@link #setMediaStorageNotification()}.
- */
- private Notification mMediaStorageNotification;
- private boolean mUmsAvailable;
+
+ private static final int NOTIF_ID = 0x53544f52; // STOR
+
+ private static final String ACTION_SNOOZE_VOLUME = "com.android.systemui.action.SNOOZE_VOLUME";
+
+ // TODO: delay some notifications to avoid bumpy fast operations
+ // TODO: annoy user when private media is missing
+
+ private NotificationManager mNotificationManager;
private StorageManager mStorageManager;
- private Handler mAsyncEventHandler;
+ private final StorageEventListener mListener = new StorageEventListener() {
+ @Override
+ public void onVolumeStateChanged(VolumeInfo vol, int oldState, int newState) {
+ onVolumeStateChangedInternal(vol, oldState, newState);
+ }
- private class StorageNotificationEventListener extends StorageEventListener {
- public void onUsbMassStorageConnectionChanged(final boolean connected) {
- mAsyncEventHandler.post(new Runnable() {
- @Override
- public void run() {
- onUsbMassStorageConnectionChangedAsync(connected);
- }
- });
+ @Override
+ public void onVolumeMetadataChanged(VolumeInfo vol) {
+ // Avoid kicking notifications when getting early metadata before
+ // mounted. If already mounted, we're being kicked because of a
+ // nickname or init'ed change.
+ if (vol.getState() == VolumeInfo.STATE_MOUNTED) {
+ onVolumeStateChangedInternal(vol, vol.getState(), vol.getState());
+ }
}
- public void onStorageStateChanged(final String path,
- final String oldState, final String newState) {
- mAsyncEventHandler.post(new Runnable() {
- @Override
- public void run() {
- onStorageStateChangedAsync(path, oldState, newState);
- }
- });
+ };
+
+ private final BroadcastReceiver mSnoozeReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ // TODO: kick this onto background thread
+ final String volId = intent.getStringExtra(VolumeInfo.EXTRA_VOLUME_ID);
+ mStorageManager.setVolumeSnoozed(volId, true);
}
- }
+ };
@Override
public void start() {
- mStorageManager = (StorageManager) mContext.getSystemService(Context.STORAGE_SERVICE);
- final boolean connected = mStorageManager.isUsbMassStorageConnected();
- if (DEBUG) Log.d(TAG, String.format( "Startup with UMS connection %s (media state %s)",
- mUmsAvailable, Environment.getExternalStorageState()));
-
- HandlerThread thr = new HandlerThread("SystemUI StorageNotification");
- thr.start();
- mAsyncEventHandler = new Handler(thr.getLooper());
-
- StorageNotificationEventListener listener = new StorageNotificationEventListener();
- listener.onUsbMassStorageConnectionChanged(connected);
- mStorageManager.registerListener(listener);
- }
+ mNotificationManager = mContext.getSystemService(NotificationManager.class);
+
+ mStorageManager = mContext.getSystemService(StorageManager.class);
+ mStorageManager.registerListener(mListener);
+
+ mContext.registerReceiver(mSnoozeReceiver, new IntentFilter(ACTION_SNOOZE_VOLUME),
+ android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS, null);
- private void onUsbMassStorageConnectionChangedAsync(boolean connected) {
- mUmsAvailable = connected;
- /*
- * Even though we may have a UMS host connected, we the SD card
- * may not be in a state for export.
- */
- String st = Environment.getExternalStorageState();
-
- if (DEBUG) Log.i(TAG, String.format("UMS connection changed to %s (media state %s)",
- connected, st));
-
- if (connected && (st.equals(
- Environment.MEDIA_REMOVED) || st.equals(Environment.MEDIA_CHECKING))) {
- /*
- * No card or card being checked = don't display
- */
- connected = false;
+ // Kick current state into place
+ final List<VolumeInfo> vols = mStorageManager.getVolumes();
+ for (VolumeInfo vol : vols) {
+ onVolumeStateChangedInternal(vol, vol.getState(), vol.getState());
}
- updateUsbMassStorageNotification(connected);
}
- private void onStorageStateChangedAsync(String path, String oldState, String newState) {
- if (DEBUG) Log.i(TAG, String.format(
- "Media {%s} state changed from {%s} -> {%s}", path, oldState, newState));
- if (newState.equals(Environment.MEDIA_SHARED)) {
- /*
- * Storage is now shared. Modify the UMS notification
- * for stopping UMS.
- */
- Intent intent = new Intent();
- intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);
- PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
- setUsbStorageNotification(
- com.android.internal.R.string.usb_storage_stop_notification_title,
- com.android.internal.R.string.usb_storage_stop_notification_message,
- com.android.internal.R.drawable.stat_sys_warning, false, true, pi);
- } else if (newState.equals(Environment.MEDIA_CHECKING)) {
- /*
- * Storage is now checking. Update media notification and disable
- * UMS notification.
- */
- setMediaStorageNotification(
- com.android.internal.R.string.ext_media_checking_notification_title,
- com.android.internal.R.string.ext_media_checking_notification_message,
- com.android.internal.R.drawable.stat_notify_sdcard_prepare, true, false, null);
- updateUsbMassStorageNotification(false);
- } else if (newState.equals(Environment.MEDIA_MOUNTED)) {
- /*
- * Storage is now mounted. Dismiss any media notifications,
- * and enable UMS notification if connected.
- */
- setMediaStorageNotification(0, 0, 0, false, false, null);
- updateUsbMassStorageNotification(mUmsAvailable);
- } else if (newState.equals(Environment.MEDIA_UNMOUNTED)) {
- /*
- * Storage is now unmounted. We may have been unmounted
- * because the user is enabling/disabling UMS, in which case we don't
- * want to display the 'safe to unmount' notification.
- */
- if (!mStorageManager.isUsbMassStorageEnabled()) {
- if (oldState.equals(Environment.MEDIA_SHARED)) {
- /*
- * The unmount was due to UMS being enabled. Dismiss any
- * media notifications, and enable UMS notification if connected
- */
- setMediaStorageNotification(0, 0, 0, false, false, null);
- updateUsbMassStorageNotification(mUmsAvailable);
- } else {
- /*
- * Show safe to unmount media notification, and enable UMS
- * notification if connected.
- */
- if (Environment.isExternalStorageRemovable()) {
- setMediaStorageNotification(
- com.android.internal.R.string.ext_media_safe_unmount_notification_title,
- com.android.internal.R.string.ext_media_safe_unmount_notification_message,
- com.android.internal.R.drawable.stat_notify_sdcard, true, true, null);
- } else {
- // This device does not have removable storage, so
- // don't tell the user they can remove it.
- setMediaStorageNotification(0, 0, 0, false, false, null);
- }
- updateUsbMassStorageNotification(mUmsAvailable);
- }
- } else {
- /*
- * The unmount was due to UMS being enabled. Dismiss any
- * media notifications, and disable the UMS notification
- */
- setMediaStorageNotification(0, 0, 0, false, false, null);
- updateUsbMassStorageNotification(false);
- }
- } else if (newState.equals(Environment.MEDIA_NOFS)) {
- /*
- * Storage has no filesystem. Show blank media notification,
- * and enable UMS notification if connected.
- */
- Intent intent = new Intent();
- intent.setClass(mContext, com.android.internal.app.ExternalMediaFormatActivity.class);
- intent.putExtra(StorageVolume.EXTRA_STORAGE_VOLUME,
- getVolumeByPath(mStorageManager.getVolumeList(), path));
- PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
-
- setMediaStorageNotification(
- com.android.internal.R.string.ext_media_nofs_notification_title,
- com.android.internal.R.string.ext_media_nofs_notification_message,
- com.android.internal.R.drawable.stat_notify_sdcard_usb, true, false, pi);
- updateUsbMassStorageNotification(mUmsAvailable);
- } else if (newState.equals(Environment.MEDIA_UNMOUNTABLE)) {
- /*
- * Storage is corrupt. Show corrupt media notification,
- * and enable UMS notification if connected.
- */
- Intent intent = new Intent();
- intent.setClass(mContext, com.android.internal.app.ExternalMediaFormatActivity.class);
- intent.putExtra(StorageVolume.EXTRA_STORAGE_VOLUME,
- getVolumeByPath(mStorageManager.getVolumeList(), path));
- PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
-
- setMediaStorageNotification(
- com.android.internal.R.string.ext_media_unmountable_notification_title,
- com.android.internal.R.string.ext_media_unmountable_notification_message,
- com.android.internal.R.drawable.stat_notify_sdcard_usb, true, false, pi);
- updateUsbMassStorageNotification(mUmsAvailable);
- } else if (newState.equals(Environment.MEDIA_REMOVED)) {
- /*
- * Storage has been removed. Show nomedia media notification,
- * and disable UMS notification regardless of connection state.
- */
- setMediaStorageNotification(
- com.android.internal.R.string.ext_media_nomedia_notification_title,
- com.android.internal.R.string.ext_media_nomedia_notification_message,
- com.android.internal.R.drawable.stat_notify_sdcard_usb,
- true, false, null);
- updateUsbMassStorageNotification(false);
- } else if (newState.equals(Environment.MEDIA_BAD_REMOVAL)) {
- /*
- * Storage has been removed unsafely. Show bad removal media notification,
- * and disable UMS notification regardless of connection state.
- */
- setMediaStorageNotification(
- com.android.internal.R.string.ext_media_badremoval_notification_title,
- com.android.internal.R.string.ext_media_badremoval_notification_message,
- com.android.internal.R.drawable.stat_sys_warning,
- true, true, null);
- updateUsbMassStorageNotification(false);
- } else {
- Log.w(TAG, String.format("Ignoring unknown state {%s}", newState));
+ public void onVolumeStateChangedInternal(VolumeInfo vol, int oldState, int newState) {
+ // We only care about public volumes
+ if (vol.getType() != VolumeInfo.TYPE_PUBLIC) {
+ return;
}
- }
- /**
- * Get the corresponding StorageVolume object for a specific path.
- */
- private final StorageVolume getVolumeByPath(StorageVolume[] volumes, String path) {
- for (StorageVolume volume : volumes) {
- if (volume.getPath().equals(path)) {
- return volume;
- }
+ Log.d(TAG, vol.toString());
+
+ // New state means we tear down any old notifications
+ mNotificationManager.cancelAsUser(vol.getId(), NOTIF_ID, UserHandle.ALL);
+
+ switch (newState) {
+ case VolumeInfo.STATE_UNMOUNTED:
+ onVolumeUnmounted(vol);
+ break;
+ case VolumeInfo.STATE_MOUNTING:
+ onVolumeMounting(vol);
+ break;
+ case VolumeInfo.STATE_MOUNTED:
+ onVolumeMounted(vol);
+ break;
+ case VolumeInfo.STATE_FORMATTING:
+ onVolumeFormatting(vol);
+ break;
+ case VolumeInfo.STATE_UNMOUNTING:
+ onVolumeUnmounting(vol);
+ break;
+ case VolumeInfo.STATE_UNMOUNTABLE:
+ onVolumeUnmountable(vol);
+ break;
+ case VolumeInfo.STATE_REMOVED:
+ onVolumeRemoved(vol);
+ break;
}
- Log.w(TAG, "No storage found");
- return null;
}
- /**
- * Update the state of the USB mass storage notification
- */
- void updateUsbMassStorageNotification(boolean available) {
-
- if (available) {
- Intent intent = new Intent();
- intent.setClass(mContext, com.android.systemui.usb.UsbStorageActivity.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-
- PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0);
- setUsbStorageNotification(
- com.android.internal.R.string.usb_storage_notification_title,
- com.android.internal.R.string.usb_storage_notification_message,
- com.android.internal.R.drawable.stat_sys_data_usb,
- false, true, pi);
- } else {
- setUsbStorageNotification(0, 0, 0, false, false, null);
- }
+ private void onVolumeUnmounted(VolumeInfo vol) {
+ // Ignored
}
- /**
- * Sets the USB storage notification.
- */
- private synchronized void setUsbStorageNotification(int titleId, int messageId, int icon,
- boolean sound, boolean visible, PendingIntent pi) {
+ private void onVolumeMounting(VolumeInfo vol) {
+ final DiskInfo disk = mStorageManager.findDiskById(vol.getDiskId());
+ final CharSequence title = mContext.getString(
+ R.string.ext_media_checking_notification_title, disk.getDescription());
+ final CharSequence text = mContext.getString(
+ R.string.ext_media_checking_notification_message, disk.getDescription());
+
+ final Notification notif = buildNotificationBuilder(title, text)
+ .setSmallIcon(R.drawable.stat_notify_sdcard_prepare)
+ .setCategory(Notification.CATEGORY_PROGRESS)
+ .setPriority(Notification.PRIORITY_LOW)
+ .setOngoing(true)
+ .build();
+
+ mNotificationManager.notifyAsUser(vol.getId(), NOTIF_ID, notif, UserHandle.ALL);
+ }
- if (!visible && mUsbStorageNotification == null) {
- return;
+ private void onVolumeMounted(VolumeInfo vol) {
+ // Don't annoy when user dismissed in past
+ if (vol.isSnoozed()) return;
+
+ final DiskInfo disk = mStorageManager.findDiskById(vol.getDiskId());
+ final Notification notif;
+ if (disk.isAdoptable() && !vol.isInited()) {
+ final CharSequence title = disk.getDescription();
+ final CharSequence text = mContext.getString(
+ R.string.ext_media_new_notification_message, disk.getDescription());
+
+ notif = buildNotificationBuilder(title, text)
+ .setSmallIcon(R.drawable.stat_notify_sdcard)
+ .addAction(new Action(0, mContext.getString(R.string.ext_media_init_action),
+ buildInitPendingIntent(vol)))
+ .addAction(new Action(0, mContext.getString(R.string.ext_media_unmount_action),
+ buildUnmountPendingIntent(vol)))
+ .setDeleteIntent(buildSnoozeIntent(vol))
+ .setCategory(Notification.CATEGORY_SYSTEM)
+ .build();
+
+ } else {
+ final CharSequence title = disk.getDescription();
+ final CharSequence text = mContext.getString(
+ R.string.ext_media_ready_notification_message, disk.getDescription());
+
+ notif = buildNotificationBuilder(title, text)
+ .setSmallIcon(R.drawable.stat_notify_sdcard)
+ .addAction(new Action(0, mContext.getString(R.string.ext_media_browse_action),
+ buildBrowsePendingIntent(vol)))
+ .addAction(new Action(0, mContext.getString(R.string.ext_media_unmount_action),
+ buildUnmountPendingIntent(vol)))
+ .setDeleteIntent(buildSnoozeIntent(vol))
+ .setCategory(Notification.CATEGORY_SYSTEM)
+ .setPriority(Notification.PRIORITY_LOW)
+ .build();
}
- NotificationManager notificationManager = (NotificationManager) mContext
- .getSystemService(Context.NOTIFICATION_SERVICE);
+ mNotificationManager.notifyAsUser(vol.getId(), NOTIF_ID, notif, UserHandle.ALL);
+ }
- if (notificationManager == null) {
- return;
- }
+ private void onVolumeFormatting(VolumeInfo vol) {
+ // Ignored
+ }
- if (visible) {
- Resources r = Resources.getSystem();
- CharSequence title = r.getText(titleId);
- CharSequence message = r.getText(messageId);
+ private void onVolumeUnmounting(VolumeInfo vol) {
+ final DiskInfo disk = mStorageManager.findDiskById(vol.getDiskId());
+ final CharSequence title = mContext.getString(
+ R.string.ext_media_unmounting_notification_title, disk.getDescription());
+ final CharSequence text = mContext.getString(
+ R.string.ext_media_unmounting_notification_message, disk.getDescription());
+
+ final Notification notif = buildNotificationBuilder(title, text)
+ .setSmallIcon(R.drawable.stat_notify_sdcard_prepare)
+ .setCategory(Notification.CATEGORY_PROGRESS)
+ .setPriority(Notification.PRIORITY_LOW)
+ .setOngoing(true)
+ .build();
+
+ mNotificationManager.notifyAsUser(vol.getId(), NOTIF_ID, notif, UserHandle.ALL);
+ }
- if (mUsbStorageNotification == null) {
- mUsbStorageNotification = new Notification();
- mUsbStorageNotification.icon = icon;
- mUsbStorageNotification.when = 0;
- }
+ private void onVolumeUnmountable(VolumeInfo vol) {
+ final DiskInfo disk = mStorageManager.findDiskById(vol.getDiskId());
+ final CharSequence title = mContext.getString(
+ R.string.ext_media_unmountable_notification_title, disk.getDescription());
+ final CharSequence text = mContext.getString(
+ R.string.ext_media_unmountable_notification_message, disk.getDescription());
- if (sound) {
- mUsbStorageNotification.defaults |= Notification.DEFAULT_SOUND;
- } else {
- mUsbStorageNotification.defaults &= ~Notification.DEFAULT_SOUND;
- }
+ final Notification notif = buildNotificationBuilder(title, text)
+ .setSmallIcon(R.drawable.stat_notify_sdcard)
+ .setContentIntent(buildDetailsPendingIntent(vol))
+ .setCategory(Notification.CATEGORY_ERROR)
+ .build();
- mUsbStorageNotification.flags = Notification.FLAG_ONGOING_EVENT;
+ mNotificationManager.notifyAsUser(vol.getId(), NOTIF_ID, notif, UserHandle.ALL);
+ }
- mUsbStorageNotification.tickerText = title;
- if (pi == null) {
- Intent intent = new Intent();
- pi = PendingIntent.getBroadcastAsUser(mContext, 0, intent, 0,
- UserHandle.CURRENT);
- }
- mUsbStorageNotification.color = mContext.getColor(
- com.android.internal.R.color.system_notification_accent_color);
- mUsbStorageNotification.setLatestEventInfo(mContext, title, message, pi);
- mUsbStorageNotification.visibility = Notification.VISIBILITY_PUBLIC;
- mUsbStorageNotification.category = Notification.CATEGORY_SYSTEM;
-
- final boolean adbOn = 1 == Settings.Global.getInt(
- mContext.getContentResolver(),
- Settings.Global.ADB_ENABLED,
- 0);
-
- if (POP_UMS_ACTIVITY_ON_CONNECT && !adbOn) {
- // Pop up a full-screen alert to coach the user through enabling UMS. The average
- // user has attached the device to USB either to charge the phone (in which case
- // this is harmless) or transfer files, and in the latter case this alert saves
- // several steps (as well as subtly indicates that you shouldn't mix UMS with other
- // activities on the device).
- //
- // If ADB is enabled, however, we suppress this dialog (under the assumption that a
- // developer (a) knows how to enable UMS, and (b) is probably using USB to install
- // builds or use adb commands.
- mUsbStorageNotification.fullScreenIntent = pi;
- }
+ private void onVolumeRemoved(VolumeInfo vol) {
+ if (!vol.isPrimary()) {
+ // Ignore non-primary media
+ return;
}
- final int notificationId = mUsbStorageNotification.icon;
- if (visible) {
- notificationManager.notifyAsUser(null, notificationId, mUsbStorageNotification,
- UserHandle.ALL);
- } else {
- notificationManager.cancelAsUser(null, notificationId, UserHandle.ALL);
- }
- }
+ final DiskInfo disk = mStorageManager.findDiskById(vol.getDiskId());
+ final CharSequence title = mContext.getString(
+ R.string.ext_media_nomedia_notification_title, disk.getDescription());
+ final CharSequence text = mContext.getString(
+ R.string.ext_media_nomedia_notification_message, disk.getDescription());
- private synchronized boolean getMediaStorageNotificationDismissable() {
- if ((mMediaStorageNotification != null) &&
- ((mMediaStorageNotification.flags & Notification.FLAG_AUTO_CANCEL) ==
- Notification.FLAG_AUTO_CANCEL))
- return true;
+ final Notification notif = buildNotificationBuilder(title, text)
+ .setSmallIcon(R.drawable.stat_notify_sdcard)
+ .setCategory(Notification.CATEGORY_ERROR)
+ .build();
- return false;
+ mNotificationManager.notifyAsUser(vol.getId(), NOTIF_ID, notif, UserHandle.ALL);
}
- /**
- * Sets the media storage notification.
- */
- private synchronized void setMediaStorageNotification(int titleId, int messageId, int icon, boolean visible,
- boolean dismissable, PendingIntent pi) {
-
- if (!visible && mMediaStorageNotification == null) {
- return;
- }
+ private Notification.Builder buildNotificationBuilder(CharSequence title, CharSequence text) {
+ return new Notification.Builder(mContext)
+ .setColor(mContext.getColor(R.color.system_notification_accent_color))
+ .setContentTitle(title)
+ .setContentText(text)
+ .setStyle(new Notification.BigTextStyle().bigText(text))
+ .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setLocalOnly(true);
+ }
- NotificationManager notificationManager = (NotificationManager) mContext
- .getSystemService(Context.NOTIFICATION_SERVICE);
+ private PendingIntent buildInitPendingIntent(VolumeInfo vol) {
+ final Intent intent = new Intent();
+ intent.setClassName("com.android.settings",
+ "com.android.settings.deviceinfo.StorageWizardInit");
+ intent.putExtra(VolumeInfo.EXTRA_VOLUME_ID, vol.getId());
- if (notificationManager == null) {
- return;
- }
+ final int requestKey = vol.getId().hashCode();
+ return PendingIntent.getActivityAsUser(mContext, requestKey, intent,
+ PendingIntent.FLAG_CANCEL_CURRENT, null, UserHandle.CURRENT);
+ }
- if (mMediaStorageNotification != null && visible) {
- /*
- * Dismiss the previous notification - we're about to
- * re-use it.
- */
- final int notificationId = mMediaStorageNotification.icon;
- notificationManager.cancel(notificationId);
- }
+ private PendingIntent buildUnmountPendingIntent(VolumeInfo vol) {
+ final Intent intent = new Intent();
+ intent.setClassName("com.android.settings",
+ "com.android.settings.deviceinfo.StorageUnmountReceiver");
+ intent.putExtra(VolumeInfo.EXTRA_VOLUME_ID, vol.getId());
- if (visible) {
- Resources r = Resources.getSystem();
- CharSequence title = r.getText(titleId);
- CharSequence message = r.getText(messageId);
+ final int requestKey = vol.getId().hashCode();
+ return PendingIntent.getBroadcastAsUser(mContext, requestKey, intent,
+ PendingIntent.FLAG_CANCEL_CURRENT, UserHandle.CURRENT);
+ }
- if (mMediaStorageNotification == null) {
- mMediaStorageNotification = new Notification();
- mMediaStorageNotification.when = 0;
- }
+ private PendingIntent buildBrowsePendingIntent(VolumeInfo vol) {
+ final Intent intent = vol.buildBrowseIntent();
- mMediaStorageNotification.defaults &= ~Notification.DEFAULT_SOUND;
+ final int requestKey = vol.getId().hashCode();
+ return PendingIntent.getActivityAsUser(mContext, requestKey, intent,
+ PendingIntent.FLAG_CANCEL_CURRENT, null, UserHandle.CURRENT);
+ }
- if (dismissable) {
- mMediaStorageNotification.flags = Notification.FLAG_AUTO_CANCEL;
- } else {
- mMediaStorageNotification.flags = Notification.FLAG_ONGOING_EVENT;
- }
+ private PendingIntent buildDetailsPendingIntent(VolumeInfo vol) {
+ final Intent intent = new Intent();
+ intent.setClassName("com.android.settings",
+ "com.android.settings.Settings$StorageVolumeSettingsActivity");
+ intent.putExtra(VolumeInfo.EXTRA_VOLUME_ID, vol.getId());
- mMediaStorageNotification.tickerText = title;
- if (pi == null) {
- Intent intent = new Intent();
- pi = PendingIntent.getBroadcastAsUser(mContext, 0, intent, 0,
- UserHandle.CURRENT);
- }
+ final int requestKey = vol.getId().hashCode();
+ return PendingIntent.getActivityAsUser(mContext, requestKey, intent,
+ PendingIntent.FLAG_CANCEL_CURRENT, null, UserHandle.CURRENT);
+ }
- mMediaStorageNotification.icon = icon;
- mMediaStorageNotification.color = mContext.getColor(
- com.android.internal.R.color.system_notification_accent_color);
- mMediaStorageNotification.setLatestEventInfo(mContext, title, message, pi);
- mMediaStorageNotification.visibility = Notification.VISIBILITY_PUBLIC;
- mMediaStorageNotification.category = Notification.CATEGORY_SYSTEM;
- }
+ private PendingIntent buildSnoozeIntent(VolumeInfo vol) {
+ final Intent intent = new Intent(ACTION_SNOOZE_VOLUME);
+ intent.putExtra(VolumeInfo.EXTRA_VOLUME_ID, vol.getId());
- final int notificationId = mMediaStorageNotification.icon;
- if (visible) {
- notificationManager.notifyAsUser(null, notificationId,
- mMediaStorageNotification, UserHandle.ALL);
- } else {
- notificationManager.cancelAsUser(null, notificationId, UserHandle.ALL);
- }
+ final int requestKey = vol.getId().hashCode();
+ return PendingIntent.getBroadcastAsUser(mContext, requestKey, intent,
+ PendingIntent.FLAG_CANCEL_CURRENT, UserHandle.CURRENT);
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HeadsUpNotificationTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HeadsUpNotificationTest.java
deleted file mode 100644
index e8a80d9..0000000
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HeadsUpNotificationTest.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.systemui.statusbar.policy;
-
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Mockito.inOrder;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.when;
-
-import android.app.Notification;
-import android.os.*;
-import android.service.notification.StatusBarNotification;
-import com.android.systemui.SwipeHelper;
-import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.ExpandableNotificationRow;
-import com.android.systemui.statusbar.NotificationData;
-import com.android.systemui.statusbar.phone.PhoneStatusBar;
-
-import org.mockito.ArgumentCaptor;
-import org.mockito.InOrder;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-
-/**
- * Test the Heads Up Notification.
- *
- * Specifically the policy that a notificaiton must remain visibile for a minimum period of time.
- */
-public class HeadsUpNotificationTest extends SysuiTestCase {
- private static final String TAG = "HeadsUpNotificationTest";
-
- private static int TOUCH_SENSITIVITY = 100;
- private static int NOTIFICATION_DECAY = 10000;
- private static int MINIMUM_DISPLAY_TIME = 3000;
- private static int SNOOZE_TIME = 60000;
- private static long TOO_SOON = 1000L; // less than MINIMUM_DISPLAY_TIME
- private static long LATER = 5000L; // more than MINIMUM_DISPLAY_TIME
- private static long REMAINING_VISIBILITY = MINIMUM_DISPLAY_TIME - TOO_SOON;
-
- protected HeadsUpNotificationView mHeadsUp;
-
- @Mock protected PhoneStatusBar mMockStatusBar;
- @Mock private HeadsUpNotificationView.Clock mClock;
- @Mock private SwipeHelper mMockSwipeHelper;
- @Mock private HeadsUpNotificationView.EdgeSwipeHelper mMockEdgeSwipeHelper;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- MockitoAnnotations.initMocks(this);
-
- mHeadsUp = new HeadsUpNotificationView(mContext,
- mClock, mMockSwipeHelper, mMockEdgeSwipeHelper,
- NOTIFICATION_DECAY, MINIMUM_DISPLAY_TIME, TOUCH_SENSITIVITY, SNOOZE_TIME);
- mHeadsUp.setBar(mMockStatusBar);
- }
-
- private NotificationData.Entry makeNotification(String key) {
- StatusBarNotification sbn = mock(StatusBarNotification.class);
- when(sbn.getKey()).thenReturn(key);
- return new NotificationData.Entry(sbn, null);
- }
-
- public void testPostAndDecay() {
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpClose();
- Mockito.verify(mMockStatusBar, times(1)).scheduleHeadsUpOpen();
- ArgumentCaptor<Long> decayArg = ArgumentCaptor.forClass(Long.class);
- Mockito.verify(mMockStatusBar).scheduleHeadsUpDecay(decayArg.capture());
- // New notification gets a full decay time.
- assertEquals(NOTIFICATION_DECAY, (long) decayArg.getValue());
- }
-
- public void testPostAndDeleteTooSoon() {
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(TOO_SOON);
- mHeadsUp.removeNotification(a.key);
- ArgumentCaptor<Long> decayArg = ArgumentCaptor.forClass(Long.class);
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpClose();
- Mockito.verify(mMockStatusBar).scheduleHeadsUpDecay(decayArg.capture());
- // Leave the window up for the balance of the minumum time.
- assertEquals(REMAINING_VISIBILITY, (long) decayArg.getValue());
- }
-
- public void testPostAndDeleteLater() {
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(LATER);
- mHeadsUp.removeNotification(a.key);
- // Delete closes immediately if the minimum time window is satisfied.
- Mockito.verify(mMockStatusBar, times(1)).scheduleHeadsUpClose();
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpDecay(anyInt());
- }
-
- // This is a bad test. It should not care that there is a call to scheduleHeadsUpClose(),
- // but it happens that there will be one, so it is important that it happen before the
- // call to scheduleHeadsUpOpen(), so that the final state is open.
- // Maybe mMockStatusBar should instead be a fake that tracks the open/closed state.
- public void testPostAndReplaceTooSoon() {
- InOrder callOrder = inOrder(mMockStatusBar);
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(TOO_SOON);
- NotificationData.Entry b = makeNotification("b");
- mHeadsUp.showNotification(b);
- Mockito.verify(mMockStatusBar, times(1)).scheduleHeadsUpClose();
- ArgumentCaptor<Long> decayArg = ArgumentCaptor.forClass(Long.class);
- Mockito.verify(mMockStatusBar, times(1)).scheduleHeadsUpDecay(decayArg.capture());
- // New notification gets a full decay time.
- assertEquals(NOTIFICATION_DECAY, (long) decayArg.getValue());
-
- // Make sure close was called before open, so that the heads up stays open.
- callOrder.verify(mMockStatusBar).scheduleHeadsUpClose();
- callOrder.verify(mMockStatusBar).scheduleHeadsUpOpen();
- }
-
- public void testPostAndUpdateAlertAgain() {
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(TOO_SOON);
- mHeadsUp.updateNotification(a, true);
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpClose();
- ArgumentCaptor<Long> decayArg = ArgumentCaptor.forClass(Long.class);
- Mockito.verify(mMockStatusBar, times(1)).scheduleHeadsUpDecay(decayArg.capture());
- // Alert again gets a full decay time.
- assertEquals(NOTIFICATION_DECAY, (long) decayArg.getValue());
- }
-
- public void testPostAndUpdateAlertAgainFastFail() {
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(TOO_SOON);
- NotificationData.Entry a_prime = makeNotification("a");
- mHeadsUp.updateNotification(a_prime, true);
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpClose();
- ArgumentCaptor<Long> decayArg = ArgumentCaptor.forClass(Long.class);
- Mockito.verify(mMockStatusBar, times(1)).scheduleHeadsUpDecay(decayArg.capture());
- // Alert again gets a full decay time.
- assertEquals(NOTIFICATION_DECAY, (long) decayArg.getValue());
- }
-
- public void testPostAndUpdateNoAlertAgain() {
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(TOO_SOON);
- mHeadsUp.updateNotification(a, false);
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpClose();
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpDecay(anyInt());
- }
-
- public void testPostAndUpdateNoAlertAgainFastFail() {
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(TOO_SOON);
- NotificationData.Entry a_prime = makeNotification("a");
- mHeadsUp.updateNotification(a_prime, false);
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpClose();
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpDecay(anyInt());
- }
-
- public void testPostAndUpdateLowPriorityTooSoon() {
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(TOO_SOON);
- mHeadsUp.release();
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpClose();
- ArgumentCaptor<Long> decayArg = ArgumentCaptor.forClass(Long.class);
- Mockito.verify(mMockStatusBar, times(1)).scheduleHeadsUpDecay(decayArg.capture());
- // Down grade on update leaves the window up for the balance of the minumum time.
- assertEquals(REMAINING_VISIBILITY, (long) decayArg.getValue());
- }
-
- public void testPostAndUpdateLowPriorityTooSoonFastFail() {
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(TOO_SOON);
- NotificationData.Entry a_prime = makeNotification("a");
- mHeadsUp.updateNotification(a_prime, false);
- mHeadsUp.release();
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpClose();
- ArgumentCaptor<Long> decayArg = ArgumentCaptor.forClass(Long.class);
- Mockito.verify(mMockStatusBar, times(1)).scheduleHeadsUpDecay(decayArg.capture());
- // Down grade on update leaves the window up for the balance of the minumum time.
- assertEquals(REMAINING_VISIBILITY, (long) decayArg.getValue());
- }
-
- public void testPostAndUpdateLowPriorityLater() {
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(LATER);
- mHeadsUp.release();
- // Down grade on update closes immediately if the minimum time window is satisfied.
- Mockito.verify(mMockStatusBar, times(1)).scheduleHeadsUpClose();
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpDecay(anyInt());
- }
-
- public void testPostAndUpdateLowPriorityLaterFastFail() {
- when(mClock.currentTimeMillis()).thenReturn(0L);
- NotificationData.Entry a = makeNotification("a");
- mHeadsUp.showNotification(a);
- reset(mMockStatusBar);
-
- when(mClock.currentTimeMillis()).thenReturn(LATER);
- NotificationData.Entry a_prime = makeNotification("a");
- mHeadsUp.updateNotification(a_prime, false);
- mHeadsUp.release();
- // Down grade on update closes immediately if the minimum time window is satisfied.
- Mockito.verify(mMockStatusBar, times(1)).scheduleHeadsUpClose();
- Mockito.verify(mMockStatusBar, never()).scheduleHeadsUpDecay(anyInt());
- }
-}
diff --git a/rs/java/android/renderscript/AllocationAdapter.java b/rs/java/android/renderscript/AllocationAdapter.java
index 35d59dd..9bfd6ec 100644
--- a/rs/java/android/renderscript/AllocationAdapter.java
+++ b/rs/java/android/renderscript/AllocationAdapter.java
@@ -208,7 +208,7 @@ public class AllocationAdapter extends Allocation {
}
/**
- *
+ * @hide
*/
public void setArray(int arrayNum, int arrayVal) {
if (mAdaptedAllocation.getType().getArray(arrayNum) == 0) {
diff --git a/rs/java/android/renderscript/RenderScript.java b/rs/java/android/renderscript/RenderScript.java
index 7c927fd..e7f210b 100644
--- a/rs/java/android/renderscript/RenderScript.java
+++ b/rs/java/android/renderscript/RenderScript.java
@@ -951,6 +951,17 @@ public class RenderScript {
rsnScriptIntrinsicBLAS_Z(mContext, id, func, TransA, TransB, Side, Uplo, Diag, M, N, K, alphaX, alphaY, A, B, betaX, betaY, C, incX, incY, KL, KU);
}
+ native void rsnScriptIntrinsicBLAS_BNNM(long con, long id, int M, int N, int K,
+ long A, int a_offset, long B, int b_offset, long C, int c_offset,
+ int c_mult_int);
+ synchronized void nScriptIntrinsicBLAS_BNNM(long id, int M, int N, int K,
+ long A, int a_offset, long B, int b_offset, long C, int c_offset,
+ int c_mult_int) {
+ validate();
+ rsnScriptIntrinsicBLAS_BNNM(mContext, id, M, N, K, A, a_offset, B, b_offset, C, c_offset, c_mult_int);
+ }
+
+
long mDev;
long mContext;
diff --git a/rs/java/android/renderscript/ScriptIntrinsicBLAS.java b/rs/java/android/renderscript/ScriptIntrinsicBLAS.java
index 90d2300..16b7033 100644
--- a/rs/java/android/renderscript/ScriptIntrinsicBLAS.java
+++ b/rs/java/android/renderscript/ScriptIntrinsicBLAS.java
@@ -176,6 +176,9 @@ public final class ScriptIntrinsicBLAS extends ScriptIntrinsic {
private static final int RsBlas_zherk = 141;
private static final int RsBlas_zher2k = 142;
+ // BLAS extensions start here
+ private static final int RsBlas_bnnm = 1000;
+
/**
*/
public static ScriptIntrinsicBLAS create(RenderScript rs) {
@@ -1485,5 +1488,23 @@ public final class ScriptIntrinsicBLAS extends ScriptIntrinsic {
}
+ /**
+ *
+ * 8-bit GEMM-like operation for neural networks
+ *
+ * @hide
+ **/
+ public void BNNM(Allocation A, int a_offset, Allocation B, int b_offset, Allocation C, int c_offset, int c_mult) {
+ validateL3(Element.U8(mRS), NO_TRANSPOSE, TRANSPOSE, 0, A, B, C);
+
+ int M = -1, N = -1, K = -1;
+ M = A.getType().getY();
+ N = B.getType().getY();
+ K = A.getType().getX();
+
+
+ mRS.nScriptIntrinsicBLAS_BNNM(getID(mRS), M, N, K, A.getID(mRS), a_offset, B.getID(mRS), b_offset, C.getID(mRS), c_offset, c_mult);
+
+ }
}
diff --git a/rs/java/android/renderscript/Type.java b/rs/java/android/renderscript/Type.java
index cc9b58b..dc23785 100644
--- a/rs/java/android/renderscript/Type.java
+++ b/rs/java/android/renderscript/Type.java
@@ -150,6 +150,7 @@ public class Type extends BaseObj {
}
/**
+ * @hide
* Return the dimension of the specified array.
*
* @param arrayNum The array dimension to query
@@ -169,6 +170,7 @@ public class Type extends BaseObj {
}
/**
+ * @hide
* Return the number of array dimensions.
*
* @return int
@@ -382,6 +384,7 @@ public class Type extends BaseObj {
}
/**
+ * @hide
* Adds an array dimension to the builder
*
* @param dim
diff --git a/rs/jni/Android.mk b/rs/jni/Android.mk
index 94f0859..0658620 100644
--- a/rs/jni/Android.mk
+++ b/rs/jni/Android.mk
@@ -25,6 +25,7 @@ LOCAL_C_INCLUDES += \
$(JNI_H_INCLUDE) \
frameworks/rs \
frameworks/base/core/jni \
+ frameworks/base/libs/hwui \
$(rs_generated_include_dir)
LOCAL_CFLAGS += -Wno-unused-parameter -std=c++11
diff --git a/rs/jni/android_renderscript_RenderScript.cpp b/rs/jni/android_renderscript_RenderScript.cpp
index 49afa6d..ae48a5f 100644
--- a/rs/jni/android_renderscript_RenderScript.cpp
+++ b/rs/jni/android_renderscript_RenderScript.cpp
@@ -579,6 +579,32 @@ nScriptIntrinsicBLAS_Z(JNIEnv *_env, jobject _this, jlong con, jlong id, jint fu
static void
+nScriptIntrinsicBLAS_BNNM(JNIEnv *_env, jobject _this, jlong con, jlong id, jint M, jint N, jint K,
+ jlong A, jint a_offset, jlong B, jint b_offset, jlong C, jint c_offset,
+ jint c_mult_int) {
+ RsBlasCall call;
+ memset(&call, 0, sizeof(call));
+ call.func = RsBlas_bnnm;
+ call.M = M;
+ call.N = N;
+ call.K = K;
+ call.a_offset = a_offset;
+ call.b_offset = b_offset;
+ call.c_offset = c_offset;
+ call.c_mult_int = c_mult_int;
+
+ RsAllocation in_allocs[3];
+ in_allocs[0] = (RsAllocation)A;
+ in_allocs[1] = (RsAllocation)B;
+ in_allocs[2] = (RsAllocation)C;
+
+ rsScriptForEachMulti((RsContext)con, (RsScript)id, 0,
+ in_allocs, sizeof(in_allocs), nullptr,
+ &call, sizeof(call), nullptr, 0);
+}
+
+
+static void
nAssignName(JNIEnv *_env, jobject _this, jlong con, jlong obj, jbyteArray str)
{
if (kLogApi) {
@@ -2417,6 +2443,8 @@ static JNINativeMethod methods[] = {
{"rsnScriptIntrinsicBLAS_Complex", "(JJIIIIIIIIIFFJJFFJIIII)V", (void*)nScriptIntrinsicBLAS_Complex },
{"rsnScriptIntrinsicBLAS_Z", "(JJIIIIIIIIIDDJJDDJIIII)V", (void*)nScriptIntrinsicBLAS_Z },
+{"rsnScriptIntrinsicBLAS_BNNM", "(JJIIIJIJIJII)V", (void*)nScriptIntrinsicBLAS_BNNM },
+
{"rsnProgramStoreCreate", "(JZZZZZZIII)J", (void*)nProgramStoreCreate },
{"rsnProgramBindConstants", "(JJIJ)V", (void*)nProgramBindConstants },
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index bb5ff1b..82a77d2 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -3154,6 +3154,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
case WindowManager.LayoutParams.TYPE_APPLICATION_PANEL:
case WindowManager.LayoutParams.TYPE_APPLICATION_STARTING:
case WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL:
+ case WindowManager.LayoutParams.TYPE_APPLICATION_ABOVE_SUB_PANEL:
case WindowManager.LayoutParams.TYPE_BASE_APPLICATION:
case WindowManager.LayoutParams.TYPE_PHONE:
case WindowManager.LayoutParams.TYPE_PRIORITY_PHONE:
diff --git a/services/core/java/com/android/server/AssetAtlasService.java b/services/core/java/com/android/server/AssetAtlasService.java
index 66cc29a..26f4232 100644
--- a/services/core/java/com/android/server/AssetAtlasService.java
+++ b/services/core/java/com/android/server/AssetAtlasService.java
@@ -199,11 +199,6 @@ public class AssetAtlasService extends IAssetAtlas.Stub {
private final ArrayList<Bitmap> mBitmaps;
private final int mPixelCount;
- private long mNativeBitmap;
-
- // Used for debugging only
- private Bitmap mAtlasBitmap;
-
Renderer(ArrayList<Bitmap> bitmaps, int pixelCount) {
mBitmaps = bitmaps;
mPixelCount = pixelCount;
@@ -258,8 +253,9 @@ public class AssetAtlasService extends IAssetAtlas.Stub {
// We always render the atlas into a bitmap. This bitmap is then
// uploaded into the GraphicBuffer using OpenGL to swizzle the content
- final Canvas canvas = acquireCanvas(buffer.getWidth(), buffer.getHeight());
- if (canvas == null) return false;
+ final Bitmap atlasBitmap = Bitmap.createBitmap(
+ buffer.getWidth(), buffer.getHeight(), Bitmap.Config.ARGB_8888);
+ final Canvas canvas = new Canvas(atlasBitmap);
final Atlas.Entry entry = new Atlas.Entry();
@@ -268,108 +264,78 @@ public class AssetAtlasService extends IAssetAtlas.Stub {
int mapIndex = 0;
boolean result = false;
- try {
- final long startRender = System.nanoTime();
- final int count = mBitmaps.size();
-
- for (int i = 0; i < count; i++) {
- final Bitmap bitmap = mBitmaps.get(i);
- if (atlas.pack(bitmap.getWidth(), bitmap.getHeight(), entry) != null) {
- // We have more bitmaps to pack than the current configuration
- // says, we were most likely not able to detect a change in the
- // list of preloaded drawables, abort and delete the configuration
- if (mapIndex >= mAtlasMap.length) {
- deleteDataFile();
- break;
- }
+ final long startRender = System.nanoTime();
+ final int count = mBitmaps.size();
- canvas.save();
- canvas.translate(entry.x, entry.y);
- if (entry.rotated) {
- canvas.translate(bitmap.getHeight(), 0.0f);
- canvas.rotate(90.0f);
- }
- canvas.drawBitmap(bitmap, 0.0f, 0.0f, null);
- canvas.restore();
- atlasMap[mapIndex++] = bitmap.getSkBitmap();
- atlasMap[mapIndex++] = entry.x;
- atlasMap[mapIndex++] = entry.y;
- atlasMap[mapIndex++] = entry.rotated ? 1 : 0;
+ for (int i = 0; i < count; i++) {
+ final Bitmap bitmap = mBitmaps.get(i);
+ if (atlas.pack(bitmap.getWidth(), bitmap.getHeight(), entry) != null) {
+ // We have more bitmaps to pack than the current configuration
+ // says, we were most likely not able to detect a change in the
+ // list of preloaded drawables, abort and delete the configuration
+ if (mapIndex >= mAtlasMap.length) {
+ deleteDataFile();
+ break;
}
- }
- final long endRender = System.nanoTime();
- if (mNativeBitmap != 0) {
- result = nUploadAtlas(buffer, mNativeBitmap);
- }
-
- final long endUpload = System.nanoTime();
- if (DEBUG_ATLAS) {
- float renderDuration = (endRender - startRender) / 1000.0f / 1000.0f;
- float uploadDuration = (endUpload - endRender) / 1000.0f / 1000.0f;
- Log.d(LOG_TAG, String.format("Rendered atlas in %.2fms (%.2f+%.2fms)",
- renderDuration + uploadDuration, renderDuration, uploadDuration));
+ canvas.save();
+ canvas.translate(entry.x, entry.y);
+ if (entry.rotated) {
+ canvas.translate(bitmap.getHeight(), 0.0f);
+ canvas.rotate(90.0f);
+ }
+ canvas.drawBitmap(bitmap, 0.0f, 0.0f, null);
+ canvas.restore();
+ atlasMap[mapIndex++] = bitmap.refSkPixelRef();
+ atlasMap[mapIndex++] = entry.x;
+ atlasMap[mapIndex++] = entry.y;
+ atlasMap[mapIndex++] = entry.rotated ? 1 : 0;
}
+ }
- } finally {
- releaseCanvas(canvas);
+ final long endRender = System.nanoTime();
+ releaseCanvas(canvas, atlasBitmap);
+ result = nUploadAtlas(buffer, atlasBitmap);
+ atlasBitmap.recycle();
+ final long endUpload = System.nanoTime();
+
+ if (DEBUG_ATLAS) {
+ float renderDuration = (endRender - startRender) / 1000.0f / 1000.0f;
+ float uploadDuration = (endUpload - endRender) / 1000.0f / 1000.0f;
+ Log.d(LOG_TAG, String.format("Rendered atlas in %.2fms (%.2f+%.2fms)",
+ renderDuration + uploadDuration, renderDuration, uploadDuration));
}
return result;
}
/**
- * Returns a Canvas for the specified buffer. If {@link #DEBUG_ATLAS_TEXTURE}
- * is turned on, the returned Canvas will render into a local bitmap that
- * will then be saved out to disk for debugging purposes.
- * @param width
- * @param height
- */
- private Canvas acquireCanvas(int width, int height) {
- if (DEBUG_ATLAS_TEXTURE) {
- mAtlasBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
- return new Canvas(mAtlasBitmap);
- } else {
- Canvas canvas = new Canvas();
- mNativeBitmap = nAcquireAtlasCanvas(canvas, width, height);
- return canvas;
- }
- }
-
- /**
* Releases the canvas used to render into the buffer. Calling this method
* will release any resource previously acquired. If {@link #DEBUG_ATLAS_TEXTURE}
* is turend on, calling this method will write the content of the atlas
* to disk in /data/system/atlas.png for debugging.
*/
- private void releaseCanvas(Canvas canvas) {
+ private void releaseCanvas(Canvas canvas, Bitmap atlasBitmap) {
+ canvas.setBitmap(null);
if (DEBUG_ATLAS_TEXTURE) {
- canvas.setBitmap(null);
File systemDirectory = new File(Environment.getDataDirectory(), "system");
File dataFile = new File(systemDirectory, "atlas.png");
try {
FileOutputStream out = new FileOutputStream(dataFile);
- mAtlasBitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
+ atlasBitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
out.close();
} catch (FileNotFoundException e) {
// Ignore
} catch (IOException e) {
// Ignore
}
-
- mAtlasBitmap.recycle();
- mAtlasBitmap = null;
- } else {
- nReleaseAtlasCanvas(canvas, mNativeBitmap);
}
}
}
- private static native long nAcquireAtlasCanvas(Canvas canvas, int width, int height);
- private static native void nReleaseAtlasCanvas(Canvas canvas, long bitmap);
- private static native boolean nUploadAtlas(GraphicBuffer buffer, long bitmap);
+ private static native boolean nUploadAtlas(GraphicBuffer buffer, Bitmap bitmap);
@Override
public boolean isCompatible(int ppid) {
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 26362a4..484908d 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -163,6 +163,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
private static final String NETWORK_RESTORE_DELAY_PROP_NAME =
"android.telephony.apn-restore";
+ // How long to wait before putting up a "This network doesn't have an Internet connection,
+ // connect anyway?" dialog after the user selects a network that doesn't validate.
+ private static final int PROMPT_UNVALIDATED_DELAY_MS = 8 * 1000;
+
// How long to delay to removal of a pending intent based request.
// See Settings.Secure.CONNECTIVITY_RELEASE_PENDING_INTENT_DELAY_MS
private final int mReleasePendingIntentDelayMs;
@@ -326,6 +330,19 @@ public class ConnectivityService extends IConnectivityManager.Stub
*/
private static final int EVENT_RELEASE_NETWORK_REQUEST_WITH_INTENT = 27;
+ /**
+ * used to specify whether a network should be used even if unvalidated.
+ * arg1 = whether to accept the network if it's unvalidated (1 or 0)
+ * arg2 = whether to remember this choice in the future (1 or 0)
+ * obj = network
+ */
+ private static final int EVENT_SET_ACCEPT_UNVALIDATED = 28;
+
+ /**
+ * used to ask the user to confirm a connection to an unvalidated network.
+ * obj = network
+ */
+ private static final int EVENT_PROMPT_UNVALIDATED = 29;
/** Handler used for internal events. */
final private InternalHandler mHandler;
@@ -1870,6 +1887,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
loge("ERROR: created network explicitly selected.");
}
nai.networkMisc.explicitlySelected = true;
+ nai.networkMisc.acceptUnvalidated = (boolean) msg.obj;
break;
}
case NetworkMonitor.EVENT_NETWORK_TESTED: {
@@ -1893,6 +1911,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
android.net.NetworkAgent.CMD_REPORT_NETWORK_STATUS,
(valid ? NetworkAgent.VALID_NETWORK : NetworkAgent.INVALID_NETWORK),
0, null);
+
+ // TODO: trigger a NetworkCapabilities update so that the dialog can know
+ // that the network is now validated and close itself.
}
break;
}
@@ -2256,6 +2277,91 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
}
+ public void setAcceptUnvalidated(Network network, boolean accept, boolean always) {
+ enforceConnectivityInternalPermission();
+ mHandler.sendMessage(mHandler.obtainMessage(EVENT_SET_ACCEPT_UNVALIDATED,
+ accept ? 1 : 0, always ? 1: 0, network));
+ }
+
+ private void handleSetAcceptUnvalidated(Network network, boolean accept, boolean always) {
+ if (DBG) log("handleSetAcceptUnvalidated network=" + network +
+ " accept=" + accept + " always=" + always);
+
+ NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network);
+ if (nai == null) {
+ // Nothing to do.
+ return;
+ }
+
+ if (nai.everValidated) {
+ // The network validated while the dialog box was up. Don't make any changes. There's a
+ // TODO in the dialog code to make it go away if the network validates; once that's
+ // implemented, taking action here will be confusing.
+ return;
+ }
+
+ if (!nai.networkMisc.explicitlySelected) {
+ Slog.wtf(TAG, "BUG: setAcceptUnvalidated non non-explicitly selected network");
+ }
+
+ if (accept != nai.networkMisc.acceptUnvalidated) {
+ int oldScore = nai.getCurrentScore();
+ nai.networkMisc.acceptUnvalidated = accept;
+ rematchAllNetworksAndRequests(nai, oldScore);
+ sendUpdatedScoreToFactories(nai);
+ }
+
+ if (always) {
+ nai.asyncChannel.sendMessage(
+ NetworkAgent.CMD_SAVE_ACCEPT_UNVALIDATED, accept ? 1 : 0);
+ }
+
+ // TODO: should we also disconnect from the network if accept is false?
+ }
+
+ private void scheduleUnvalidatedPrompt(NetworkAgentInfo nai) {
+ mHandler.sendMessageDelayed(
+ mHandler.obtainMessage(EVENT_PROMPT_UNVALIDATED, nai.network),
+ PROMPT_UNVALIDATED_DELAY_MS);
+ }
+
+ private void handlePromptUnvalidated(Network network) {
+ NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network);
+
+ // Only prompt if the network is unvalidated and was explicitly selected by the user, and if
+ // we haven't already been told to switch to it regardless of whether it validated or not.
+ if (nai == null || nai.everValidated ||
+ !nai.networkMisc.explicitlySelected || nai.networkMisc.acceptUnvalidated) {
+ return;
+ }
+
+ // TODO: What should we do if we've already switched to this network because we had no
+ // better option? There are two obvious alternatives.
+ //
+ // 1. Decide that there's no point prompting because this is our only usable network.
+ // However, because we didn't prompt, if later on a validated network comes along, we'll
+ // either a) silently switch to it - bad if the user wanted to connect to stay on this
+ // unvalidated network - or b) prompt the user at that later time - bad because the user
+ // might not understand why they are now being prompted.
+ //
+ // 2. Always prompt the user, even if we have no other network to use. The user could then
+ // try to find an alternative network to join (remember, if we got here, then the user
+ // selected this network manually). This is bad because the prompt isn't really very
+ // useful.
+ //
+ // For now we do #1, but we can revisit that later.
+ if (isDefaultNetwork(nai)) {
+ return;
+ }
+
+ Intent intent = new Intent(ConnectivityManager.ACTION_PROMPT_UNVALIDATED);
+ intent.putExtra(ConnectivityManager.EXTRA_NETWORK, network);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setClassName("com.android.settings",
+ "com.android.settings.wifi.WifiNoInternetDialog");
+ mContext.startActivityAsUser(intent, UserHandle.CURRENT);
+ }
+
private class InternalHandler extends Handler {
public InternalHandler(Looper looper) {
super(looper);
@@ -2326,6 +2432,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
handleReleaseNetworkRequest((NetworkRequest) msg.obj, msg.arg1);
break;
}
+ case EVENT_SET_ACCEPT_UNVALIDATED: {
+ handleSetAcceptUnvalidated((Network) msg.obj, msg.arg1 != 0, msg.arg2 != 0);
+ break;
+ }
+ case EVENT_PROMPT_UNVALIDATED: {
+ handlePromptUnvalidated((Network) msg.obj);
+ break;
+ }
case EVENT_SYSTEM_READY: {
for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
nai.networkMonitor.systemReady = true;
@@ -4125,6 +4239,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
notifyIfacesChanged();
notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_PRECHECK);
networkAgent.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_CONNECTED);
+ scheduleUnvalidatedPrompt(networkAgent);
if (networkAgent.isVPN()) {
// Temporarily disable the default proxy (not global).
synchronized (mProxyLock) {
diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java
index cac2f5c..4c937f7 100644
--- a/services/core/java/com/android/server/MountService.java
+++ b/services/core/java/com/android/server/MountService.java
@@ -16,6 +16,13 @@
package com.android.server;
+import static com.android.internal.util.XmlUtils.readIntAttribute;
+import static com.android.internal.util.XmlUtils.readStringAttribute;
+import static com.android.internal.util.XmlUtils.writeIntAttribute;
+import static com.android.internal.util.XmlUtils.writeStringAttribute;
+import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
+import static org.xmlpull.v1.XmlPullParser.START_TAG;
+
import android.Manifest;
import android.app.ActivityManagerNative;
import android.app.AppOpsManager;
@@ -55,9 +62,13 @@ import android.os.storage.StorageVolume;
import android.os.storage.VolumeInfo;
import android.text.TextUtils;
import android.util.ArrayMap;
+import android.util.AtomicFile;
+import android.util.DebugUtils;
import android.util.Log;
import android.util.Slog;
+import android.util.Xml;
+import libcore.io.IoUtils;
import libcore.util.EmptyArray;
import libcore.util.HexEncoding;
@@ -66,14 +77,21 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IMediaContainerService;
import com.android.internal.os.SomeArgs;
import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Preconditions;
import com.android.server.NativeDaemonConnector.Command;
import com.android.server.NativeDaemonConnector.SensitiveArg;
import com.android.server.pm.PackageManagerService;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlSerializer;
+
import java.io.File;
import java.io.FileDescriptor;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
@@ -214,6 +232,57 @@ class MountService extends IMountService.Stub
public static final int FstrimCompleted = 700;
}
+ private static final String TAG_VOLUMES = "volumes";
+ private static final String TAG_VOLUME = "volume";
+ private static final String ATTR_TYPE = "type";
+ private static final String ATTR_FS_UUID = "fsUuid";
+ private static final String ATTR_NICKNAME = "nickname";
+ private static final String ATTR_USER_FLAGS = "userFlags";
+
+ private final AtomicFile mMetadataFile;
+
+ private static class VolumeMetadata {
+ public final int type;
+ public final String fsUuid;
+ public String nickname;
+ public int userFlags;
+
+ public VolumeMetadata(int type, String fsUuid) {
+ this.type = type;
+ this.fsUuid = Preconditions.checkNotNull(fsUuid);
+ }
+
+ public static VolumeMetadata read(XmlPullParser in) throws IOException {
+ final int type = readIntAttribute(in, ATTR_TYPE);
+ final String fsUuid = readStringAttribute(in, ATTR_FS_UUID);
+ final VolumeMetadata meta = new VolumeMetadata(type, fsUuid);
+ meta.nickname = readStringAttribute(in, ATTR_NICKNAME);
+ meta.userFlags = readIntAttribute(in, ATTR_USER_FLAGS);
+ return meta;
+ }
+
+ public static void write(XmlSerializer out, VolumeMetadata meta) throws IOException {
+ out.startTag(null, TAG_VOLUME);
+ writeIntAttribute(out, ATTR_TYPE, meta.type);
+ writeStringAttribute(out, ATTR_FS_UUID, meta.fsUuid);
+ writeStringAttribute(out, ATTR_NICKNAME, meta.nickname);
+ writeIntAttribute(out, ATTR_USER_FLAGS, meta.userFlags);
+ out.endTag(null, TAG_VOLUME);
+ }
+
+ public void dump(IndentingPrintWriter pw) {
+ pw.println("VolumeMetadata:");
+ pw.increaseIndent();
+ pw.printPair("type", DebugUtils.valueToString(VolumeInfo.class, "TYPE_", type));
+ pw.printPair("fsUuid", fsUuid);
+ pw.printPair("nickname", nickname);
+ pw.printPair("userFlags",
+ DebugUtils.flagsToString(VolumeInfo.class, "USER_FLAG_", userFlags));
+ pw.decreaseIndent();
+ pw.println();
+ }
+ }
+
/**
* <em>Never</em> hold the lock while performing downcalls into vold, since
* unsolicited events can suddenly appear to update data structures.
@@ -222,11 +291,18 @@ class MountService extends IMountService.Stub
@GuardedBy("mLock")
private int[] mStartedUsers = EmptyArray.INT;
+
+ /** Map from disk ID to disk */
@GuardedBy("mLock")
private ArrayMap<String, DiskInfo> mDisks = new ArrayMap<>();
+ /** Map from volume ID to disk */
@GuardedBy("mLock")
private ArrayMap<String, VolumeInfo> mVolumes = new ArrayMap<>();
+ /** Map from UUID to metadata */
+ @GuardedBy("mLock")
+ private ArrayMap<String, VolumeMetadata> mMetadata = new ArrayMap<>();
+
private DiskInfo findDiskById(String id) {
synchronized (mLock) {
final DiskInfo disk = mDisks.get(id);
@@ -260,6 +336,15 @@ class MountService extends IMountService.Stub
throw new IllegalArgumentException("No volume found for path " + path);
}
+ private VolumeMetadata findOrCreateMetadataLocked(VolumeInfo vol) {
+ VolumeMetadata meta = mMetadata.get(vol.fsUuid);
+ if (meta == null) {
+ meta = new VolumeMetadata(vol.type, vol.fsUuid);
+ mMetadata.put(meta.fsUuid, meta);
+ }
+ return meta;
+ }
+
private static int sNextMtpIndex = 1;
private static int allocateMtpIndex(String volId) {
@@ -740,19 +825,29 @@ class MountService extends IMountService.Stub
}
case VoldResponseCode.DISK_VOLUME_CREATED: {
if (cooked.length != 3) break;
- final DiskInfo disk = mDisks.get(cooked[1]);
+ final String diskId = cooked[1];
final String volId = cooked[2];
+ final DiskInfo disk = mDisks.get(diskId);
if (disk != null) {
- disk.volumes = ArrayUtils.appendElement(String.class, disk.volumes, volId);
+ disk.volumeIds = ArrayUtils.appendElement(String.class, disk.volumeIds, volId);
+ }
+ final VolumeInfo vol = mVolumes.get(volId);
+ if (vol != null) {
+ vol.diskId = diskId;
}
break;
}
case VoldResponseCode.DISK_VOLUME_DESTROYED: {
if (cooked.length != 3) break;
- final DiskInfo disk = mDisks.get(cooked[1]);
+ final String diskId = cooked[1];
final String volId = cooked[2];
+ final DiskInfo disk = mDisks.get(diskId);
if (disk != null) {
- disk.volumes = ArrayUtils.removeElement(String.class, disk.volumes, volId);
+ disk.volumeIds = ArrayUtils.removeElement(String.class, disk.volumeIds, volId);
+ }
+ final VolumeInfo vol = mVolumes.get(volId);
+ if (vol != null) {
+ vol.diskId = null;
}
break;
}
@@ -789,6 +884,7 @@ class MountService extends IMountService.Stub
if (vol != null) {
vol.fsType = cooked[2];
}
+ mCallbacks.notifyVolumeMetadataChanged(vol.clone());
break;
}
case VoldResponseCode.VOLUME_FS_UUID_CHANGED: {
@@ -797,6 +893,8 @@ class MountService extends IMountService.Stub
if (vol != null) {
vol.fsUuid = cooked[2];
}
+ refreshMetadataLocked();
+ mCallbacks.notifyVolumeMetadataChanged(vol.clone());
break;
}
case VoldResponseCode.VOLUME_FS_LABEL_CHANGED: {
@@ -805,6 +903,7 @@ class MountService extends IMountService.Stub
if (vol != null) {
vol.fsLabel = cooked[2];
}
+ mCallbacks.notifyVolumeMetadataChanged(vol.clone());
break;
}
case VoldResponseCode.VOLUME_PATH_CHANGED: {
@@ -891,6 +990,25 @@ class MountService extends IMountService.Stub
}
}
+ /**
+ * Refresh latest metadata into any currently active {@link VolumeInfo}.
+ */
+ private void refreshMetadataLocked() {
+ final int size = mVolumes.size();
+ for (int i = 0; i < size; i++) {
+ final VolumeInfo vol = mVolumes.valueAt(i);
+ final VolumeMetadata meta = mMetadata.get(vol.fsUuid);
+
+ if (meta != null) {
+ vol.nickname = meta.nickname;
+ vol.userFlags = meta.userFlags;
+ } else {
+ vol.nickname = null;
+ vol.userFlags = 0;
+ }
+ }
+ }
+
private void enforcePermission(String perm) {
mContext.enforceCallingOrSelfPermission(perm, perm);
}
@@ -939,6 +1057,13 @@ class MountService extends IMountService.Stub
mLastMaintenance = mLastMaintenanceFile.lastModified();
}
+ mMetadataFile = new AtomicFile(
+ new File(Environment.getSystemSecureDirectory(), "storage.xml"));
+
+ synchronized (mLock) {
+ readMetadataLocked();
+ }
+
/*
* Create the connection to vold with a maximum queue of twice the
* amount of containers we'd ever expect to have. This keeps an
@@ -962,6 +1087,61 @@ class MountService extends IMountService.Stub
mHandler.obtainMessage(H_SYSTEM_READY).sendToTarget();
}
+ private void readMetadataLocked() {
+ mMetadata.clear();
+
+ FileInputStream fis = null;
+ try {
+ fis = mMetadataFile.openRead();
+ final XmlPullParser in = Xml.newPullParser();
+ in.setInput(fis, null);
+
+ int type;
+ while ((type = in.next()) != END_DOCUMENT) {
+ if (type == START_TAG) {
+ final String tag = in.getName();
+ if (TAG_VOLUME.equals(tag)) {
+ final VolumeMetadata meta = VolumeMetadata.read(in);
+ mMetadata.put(meta.fsUuid, meta);
+ }
+ }
+ }
+ } catch (FileNotFoundException e) {
+ // Missing metadata is okay, probably first boot
+ } catch (IOException e) {
+ Slog.wtf(TAG, "Failed reading metadata", e);
+ } catch (XmlPullParserException e) {
+ Slog.wtf(TAG, "Failed reading metadata", e);
+ } finally {
+ IoUtils.closeQuietly(fis);
+ }
+ }
+
+ private void writeMetadataLocked() {
+ FileOutputStream fos = null;
+ try {
+ fos = mMetadataFile.startWrite();
+
+ XmlSerializer out = new FastXmlSerializer();
+ out.setOutput(fos, "utf-8");
+ out.startDocument(null, true);
+ out.startTag(null, TAG_VOLUMES);
+ final int size = mMetadata.size();
+ for (int i = 0; i < size; i++) {
+ final VolumeMetadata meta = mMetadata.valueAt(i);
+ VolumeMetadata.write(out, meta);
+ }
+ out.endTag(null, TAG_VOLUMES);
+ out.endDocument();
+
+ mMetadataFile.finishWrite(fos);
+ } catch (IOException e) {
+ if (fos != null) {
+ mMetadataFile.failWrite(fos);
+ }
+ }
+ }
+
/**
* Exposed API calls below here
*/
@@ -1116,6 +1296,36 @@ class MountService extends IMountService.Stub
}
@Override
+ public void setVolumeNickname(String volId, String nickname) {
+ enforcePermission(android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);
+ waitForReady();
+
+ synchronized (mLock) {
+ final VolumeInfo vol = findVolumeById(volId);
+ final VolumeMetadata meta = findOrCreateMetadataLocked(vol);
+ meta.nickname = nickname;
+ refreshMetadataLocked();
+ writeMetadataLocked();
+ mCallbacks.notifyVolumeMetadataChanged(vol.clone());
+ }
+ }
+
+ @Override
+ public void setVolumeUserFlags(String volId, int flags, int mask) {
+ enforcePermission(android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);
+ waitForReady();
+
+ synchronized (mLock) {
+ final VolumeInfo vol = findVolumeById(volId);
+ final VolumeMetadata meta = findOrCreateMetadataLocked(vol);
+ meta.userFlags = (meta.userFlags & ~mask) | (flags & mask);
+ refreshMetadataLocked();
+ writeMetadataLocked();
+ mCallbacks.notifyVolumeMetadataChanged(vol.clone());
+ }
+ }
+
+ @Override
public int[] getStorageUsers(String path) {
enforcePermission(android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);
waitForReady();
@@ -1899,7 +2109,12 @@ class MountService extends IMountService.Stub
}
@Override
- public VolumeInfo[] getVolumes() {
+ public VolumeInfo[] getVolumes(int flags) {
+ if ((flags & StorageManager.FLAG_ALL_METADATA) != 0) {
+ // TODO: implement support for returning all metadata
+ throw new UnsupportedOperationException();
+ }
+
synchronized (mLock) {
final VolumeInfo[] res = new VolumeInfo[mVolumes.size()];
for (int i = 0; i < mVolumes.size(); i++) {
@@ -2412,6 +2627,7 @@ class MountService extends IMountService.Stub
private static class Callbacks extends Handler {
private static final int MSG_STORAGE_STATE_CHANGED = 1;
private static final int MSG_VOLUME_STATE_CHANGED = 2;
+ private static final int MSG_VOLUME_METADATA_CHANGED = 3;
private final RemoteCallbackList<IMountServiceListener>
mCallbacks = new RemoteCallbackList<>();
@@ -2455,6 +2671,10 @@ class MountService extends IMountService.Stub
callback.onVolumeStateChanged((VolumeInfo) args.arg1, args.argi2, args.argi3);
break;
}
+ case MSG_VOLUME_METADATA_CHANGED: {
+ callback.onVolumeMetadataChanged((VolumeInfo) args.arg1);
+ break;
+ }
}
}
@@ -2473,6 +2693,12 @@ class MountService extends IMountService.Stub
args.argi3 = newState;
obtainMessage(MSG_VOLUME_STATE_CHANGED, args).sendToTarget();
}
+
+ private void notifyVolumeMetadataChanged(VolumeInfo vol) {
+ final SomeArgs args = SomeArgs.obtain();
+ args.arg1 = vol;
+ obtainMessage(MSG_VOLUME_METADATA_CHANGED, args).sendToTarget();
+ }
}
@Override
@@ -2529,6 +2755,15 @@ class MountService extends IMountService.Stub
vol.dump(pw);
}
pw.decreaseIndent();
+
+ pw.println();
+ pw.println("Metadata:");
+ pw.increaseIndent();
+ for (int i = 0; i < mMetadata.size(); i++) {
+ final VolumeMetadata meta = mMetadata.valueAt(i);
+ meta.dump(pw);
+ }
+ pw.decreaseIndent();
}
pw.println();
diff --git a/services/core/java/com/android/server/Watchdog.java b/services/core/java/com/android/server/Watchdog.java
index 794e1b0..772a15c 100644
--- a/services/core/java/com/android/server/Watchdog.java
+++ b/services/core/java/com/android/server/Watchdog.java
@@ -46,7 +46,6 @@ import java.util.ArrayList;
/** This class calls its monitor every minute. Killing this process if they don't return **/
public class Watchdog extends Thread {
static final String TAG = "Watchdog";
- static final boolean localLOGV = false || false;
// Set this to true to use debug default values.
static final boolean DB = false;
@@ -73,7 +72,7 @@ public class Watchdog extends Thread {
static Watchdog sWatchdog;
/* This handler will be used to post message back onto the main thread */
- final ArrayList<HandlerChecker> mHandlerCheckers = new ArrayList<HandlerChecker>();
+ final ArrayList<HandlerChecker> mHandlerCheckers = new ArrayList<>();
final HandlerChecker mMonitorChecker;
ContentResolver mResolver;
ActivityManagerService mActivity;
@@ -191,6 +190,17 @@ public class Watchdog extends Thread {
}
}
+ /** Monitor for checking the availability of binder threads. The monitor will block until
+ * there is a binder thread available to process in coming IPCs to make sure other processes
+ * can still communicate with the service.
+ */
+ private static final class BinderThreadMonitor implements Watchdog.Monitor {
+ @Override
+ public void monitor() {
+ Binder.blockUntilThreadAvailable();
+ }
+ }
+
public interface Monitor {
void monitor();
}
@@ -228,6 +238,9 @@ public class Watchdog extends Thread {
// And the display thread.
mHandlerCheckers.add(new HandlerChecker(DisplayThread.getHandler(),
"display thread", DEFAULT_TIMEOUT));
+
+ // Initialize monitor for Binder threads.
+ addMonitor(new BinderThreadMonitor());
}
public void init(Context context, ActivityManagerService activity) {
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index b606353..f25808b 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -26,10 +26,14 @@ import static com.android.internal.util.XmlUtils.readLongAttribute;
import static com.android.internal.util.XmlUtils.writeBooleanAttribute;
import static com.android.internal.util.XmlUtils.writeIntAttribute;
import static com.android.internal.util.XmlUtils.writeLongAttribute;
-import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
+import static com.android.server.Watchdog.NATIVE_STACKS_OF_INTEREST;
import static com.android.server.am.ActivityManagerDebugConfig.*;
+import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
import static com.android.server.am.TaskRecord.INVALID_TASK_ID;
-import static com.android.server.Watchdog.NATIVE_STACKS_OF_INTEREST;
+import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_DONT_LOCK;
+import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_LAUNCHABLE;
+import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_PINNABLE;
+import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_WHITELISTED;
import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
import static org.xmlpull.v1.XmlPullParser.START_TAG;
@@ -3982,13 +3986,13 @@ public final class ActivityManagerService extends ActivityManagerNative
if (rootR == null) {
Slog.w(TAG, "Finishing task with all activities already finished");
}
- // Do not allow task to finish in Lock Task mode.
- if (tr == mStackSupervisor.mLockTaskModeTask) {
- if (rootR == r) {
- Slog.i(TAG, "Not finishing task in lock task mode");
- mStackSupervisor.showLockTaskToast();
- return false;
- }
+ // Do not allow task to finish if last task in lockTask mode. Launchable apps can
+ // finish themselves.
+ if (tr.mLockTaskAuth != LOCK_TASK_AUTH_LAUNCHABLE && rootR == r &&
+ mStackSupervisor.isLastLockedTask(tr)) {
+ Slog.i(TAG, "Not finishing task in lock task mode");
+ mStackSupervisor.showLockTaskToast();
+ return false;
}
if (mController != null) {
// Find the first activity that is not finishing.
@@ -4142,20 +4146,18 @@ public final class ActivityManagerService extends ActivityManagerNative
final long origId = Binder.clearCallingIdentity();
try {
ActivityRecord r = ActivityRecord.isInStackLocked(token);
-
- ActivityRecord rootR = r.task.getRootActivity();
- // Do not allow task to finish in Lock Task mode.
- if (r.task == mStackSupervisor.mLockTaskModeTask) {
- if (rootR == r) {
- mStackSupervisor.showLockTaskToast();
- return false;
- }
+ if (r == null) {
+ return false;
}
- boolean res = false;
- if (r != null) {
- res = r.task.stack.finishActivityAffinityLocked(r);
+
+ // Do not allow the last non-launchable task to finish in Lock Task mode.
+ final TaskRecord task = r.task;
+ if (task.mLockTaskAuth != LOCK_TASK_AUTH_LAUNCHABLE &&
+ mStackSupervisor.isLastLockedTask(task) && task.getRootActivity() == r) {
+ mStackSupervisor.showLockTaskToast();
+ return false;
}
- return res;
+ return task.stack.finishActivityAffinityLocked(r);
} finally {
Binder.restoreCallingIdentity(origId);
}
@@ -8336,9 +8338,9 @@ public final class ActivityManagerService extends ActivityManagerNative
final long origId = Binder.clearCallingIdentity();
try {
int taskId = ActivityRecord.getTaskForActivityLocked(token, !nonRoot);
- if (taskId >= 0) {
- if ((mStackSupervisor.mLockTaskModeTask != null)
- && (mStackSupervisor.mLockTaskModeTask.taskId == taskId)) {
+ final TaskRecord task = mRecentTasks.taskForIdLocked(taskId);
+ if (task != null) {
+ if (mStackSupervisor.isLockedTask(task)) {
mStackSupervisor.showLockTaskToast();
return false;
}
@@ -8520,47 +8522,45 @@ public final class ActivityManagerService extends ActivityManagerNative
@Override
public void updateLockTaskPackages(int userId, String[] packages) {
- if (Binder.getCallingUid() != Process.SYSTEM_UID) {
+ final int callingUid = Binder.getCallingUid();
+ if (callingUid != 0 && callingUid != Process.SYSTEM_UID) {
throw new SecurityException("updateLockTaskPackage called from non-system process");
}
synchronized (this) {
mLockTaskPackages.put(userId, packages);
+ mStackSupervisor.onLockTaskPackagesUpdatedLocked();
}
}
- private boolean isLockTaskAuthorizedLocked(String pkg) {
- String[] packages = mLockTaskPackages.get(mCurrentUserId);
- if (packages == null) {
- return false;
- }
- for (int i = packages.length - 1; i >= 0; --i) {
- if (pkg.equals(packages[i])) {
- return true;
- }
- }
- return false;
- }
void startLockTaskModeLocked(TaskRecord task) {
- final String pkg = task.intent.getComponent().getPackageName();
+ if (task.mLockTaskAuth == LOCK_TASK_AUTH_DONT_LOCK) {
+ return;
+ }
+
// isSystemInitiated is used to distinguish between locked and pinned mode, as pinned mode
// is initiated by system after the pinning request was shown and locked mode is initiated
// by an authorized app directly
- boolean isSystemInitiated = Binder.getCallingUid() == Process.SYSTEM_UID;
+ final int callingUid = Binder.getCallingUid();
+ boolean isSystemInitiated = callingUid == Process.SYSTEM_UID;
long ident = Binder.clearCallingIdentity();
try {
- if (!isSystemInitiated && !isLockTaskAuthorizedLocked(pkg)) {
- StatusBarManagerInternal statusBarManager =
- LocalServices.getService(StatusBarManagerInternal.class);
- if (statusBarManager != null) {
- statusBarManager.showScreenPinningRequest();
+ final ActivityStack stack = mStackSupervisor.getFocusedStack();
+ if (!isSystemInitiated) {
+ task.mLockTaskUid = callingUid;
+ if (task.mLockTaskAuth == LOCK_TASK_AUTH_PINNABLE) {
+ // startLockTask() called by app and task mode is lockTaskModeDefault.
+ StatusBarManagerInternal statusBarManager =
+ LocalServices.getService(StatusBarManagerInternal.class);
+ if (statusBarManager != null) {
+ statusBarManager.showScreenPinningRequest();
+ }
+ return;
}
- return;
- }
- final ActivityStack stack = mStackSupervisor.getFocusedStack();
- if (!isSystemInitiated && (stack == null || task != stack.topTask())) {
- throw new IllegalArgumentException("Invalid task, not in foreground");
+ if (stack == null || task != stack.topTask()) {
+ throw new IllegalArgumentException("Invalid task, not in foreground");
+ }
}
mStackSupervisor.setLockTaskModeLocked(task, isSystemInitiated ?
ActivityManager.LOCK_TASK_MODE_PINNED :
@@ -8614,23 +8614,15 @@ public final class ActivityManagerService extends ActivityManagerNative
@Override
public void stopLockTaskMode() {
- // Verify that the user matches the package of the intent for the TaskRecord
- // we are locked to or systtem. This will ensure the same caller for startLockTaskMode
- // and stopLockTaskMode.
- final int callingUid = Binder.getCallingUid();
- if (callingUid != Process.SYSTEM_UID) {
- try {
- String pkg =
- mStackSupervisor.mLockTaskModeTask.intent.getComponent().getPackageName();
- int uid = mContext.getPackageManager().getPackageUid(pkg,
- Binder.getCallingUserHandle().getIdentifier());
- if (uid != callingUid) {
- throw new SecurityException("Invalid uid, expected " + uid);
- }
- } catch (NameNotFoundException e) {
- Log.d(TAG, "stopLockTaskMode " + e);
- return;
- }
+ final TaskRecord lockTask = mStackSupervisor.getLockedTaskLocked();
+ if (lockTask == null) {
+ // Our work here is done.
+ return;
+ }
+ // Ensure the same caller for startLockTaskMode and stopLockTaskMode.
+ if (getLockTaskModeState() == ActivityManager.LOCK_TASK_MODE_LOCKED &&
+ Binder.getCallingUid() != lockTask.mLockTaskUid) {
+ throw new SecurityException("Invalid uid, expected " + lockTask.mLockTaskUid);
}
long ident = Binder.clearCallingIdentity();
try {
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index 2362d28..6210d60 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -2875,7 +2875,7 @@ final class ActivityStack {
}
if (endTask) {
- mStackSupervisor.endLockTaskModeIfTaskEnding(task);
+ mStackSupervisor.removeLockedTaskLocked(task);
}
} else if (r.state != ActivityState.PAUSING) {
// If the activity is PAUSING, we will complete the finish once
@@ -3674,8 +3674,7 @@ final class ActivityStack {
}
Slog.i(TAG, "moveTaskToBack: " + tr);
-
- mStackSupervisor.endLockTaskModeIfTaskEnding(tr);
+ mStackSupervisor.removeLockedTaskLocked(tr);
// If we have a watcher, preflight the move before committing to it. First check
// for *other* available tasks, but if none are available, then try again allowing the
@@ -4240,7 +4239,7 @@ final class ActivityStack {
*/
void removeTask(TaskRecord task, String reason, boolean notMoving) {
if (notMoving) {
- mStackSupervisor.endLockTaskModeIfTaskEnding(task);
+ mStackSupervisor.removeLockedTaskLocked(task);
mWindowManager.removeTask(task.taskId);
}
@@ -4345,4 +4344,10 @@ final class ActivityStack {
mFullscreen = Configuration.EMPTY.equals(mOverrideConfig);
return !mOverrideConfig.equals(oldConfig);
}
+
+ void onLockTaskPackagesUpdatedLocked() {
+ for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
+ mTaskHistory.get(taskNdx).setLockTaskAuth();
+ }
+ }
}
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index c2f6bfd..6908483 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -17,10 +17,14 @@
package com.android.server.am;
import static android.Manifest.permission.START_ANY_ACTIVITY;
+import static android.app.ActivityManager.LOCK_TASK_MODE_LOCKED;
+import static android.app.ActivityManager.LOCK_TASK_MODE_NONE;
+import static android.app.ActivityManager.LOCK_TASK_MODE_PINNED;
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static com.android.server.am.ActivityManagerDebugConfig.*;
import static com.android.server.am.ActivityManagerService.FIRST_SUPERVISOR_STACK_MSG;
@@ -28,6 +32,10 @@ import static com.android.server.am.ActivityRecord.HOME_ACTIVITY_TYPE;
import static com.android.server.am.ActivityRecord.RECENTS_ACTIVITY_TYPE;
import static com.android.server.am.ActivityRecord.APPLICATION_ACTIVITY_TYPE;
import static com.android.server.am.ActivityStack.ActivityState.*;
+import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_DONT_LOCK;
+import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_LAUNCHABLE;
+import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_PINNABLE;
+import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_WHITELISTED;
import android.app.Activity;
import android.app.ActivityManager;
@@ -261,17 +269,17 @@ public final class ActivityStackSupervisor implements DisplayListener {
// TODO: Add listener for removal of references.
/** Mapping from (ActivityStack/TaskStack).mStackId to their current state */
- private SparseArray<ActivityContainer> mActivityContainers = new SparseArray<ActivityContainer>();
+ private SparseArray<ActivityContainer> mActivityContainers = new SparseArray<>();
/** Mapping from displayId to display current state */
- private final SparseArray<ActivityDisplay> mActivityDisplays =
- new SparseArray<ActivityDisplay>();
+ private final SparseArray<ActivityDisplay> mActivityDisplays = new SparseArray<>();
InputManagerInternal mInputManagerInternal;
- /** If non-null then the task specified remains in front and no other tasks may be started
- * until the task exits or #stopLockTaskMode() is called. */
- TaskRecord mLockTaskModeTask;
+ /** The chain of tasks in lockTask mode. The current frontmost task is at the top, and tasks
+ * may be finished until there is only one entry left. If this is empty the system is not
+ * in lockTask mode. */
+ ArrayList<TaskRecord> mLockTaskModeTasks = new ArrayList<>();
/** Store the current lock task mode. Possible values:
* {@link ActivityManager#LOCK_TASK_MODE_NONE}, {@link ActivityManager#LOCK_TASK_MODE_LOCKED},
* {@link ActivityManager#LOCK_TASK_MODE_PINNED}
@@ -282,8 +290,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
*/
private LockTaskNotify mLockTaskNotify;
- final ArrayList<PendingActivityLaunch> mPendingActivityLaunches
- = new ArrayList<PendingActivityLaunch>();
+ final ArrayList<PendingActivityLaunch> mPendingActivityLaunches = new ArrayList<>();
/** Used to keep resumeTopActivityLocked() from being entered recursively */
boolean inResumeTopActivity;
@@ -796,7 +803,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
final ActivityStack stack = stacks.get(stackNdx);
- ArrayList<RunningTaskInfo> stackTaskList = new ArrayList<RunningTaskInfo>();
+ ArrayList<RunningTaskInfo> stackTaskList = new ArrayList<>();
runningTaskLists.add(stackTaskList);
stack.getTasksLocked(stackTaskList, callingUid, allowed);
}
@@ -894,8 +901,8 @@ public final class ActivityStackSupervisor implements DisplayListener {
intent = new Intent(intent);
// Collect information about the target of the Intent.
- ActivityInfo aInfo = resolveActivity(intent, resolvedType, startFlags,
- profilerInfo, userId);
+ ActivityInfo aInfo =
+ resolveActivity(intent, resolvedType, startFlags, profilerInfo, userId);
ActivityContainer container = (ActivityContainer)iContainer;
synchronized (mService) {
@@ -1170,7 +1177,12 @@ public final class ActivityStackSupervisor implements DisplayListener {
mService.updateLruProcessLocked(app, true, null);
mService.updateOomAdjLocked();
- final ActivityStack stack = r.task.stack;
+ final TaskRecord task = r.task;
+ if (task.mLockTaskAuth == LOCK_TASK_AUTH_LAUNCHABLE) {
+ setLockTaskModeLocked(task, LOCK_TASK_MODE_LOCKED, "lockTaskLaunchMode attribute");
+ }
+
+ final ActivityStack stack = task.stack;
try {
if (app.thread == null) {
throw new RemoteException();
@@ -1187,11 +1199,11 @@ public final class ActivityStackSupervisor implements DisplayListener {
if (andResume) {
EventLog.writeEvent(EventLogTags.AM_RESTART_ACTIVITY,
r.userId, System.identityHashCode(r),
- r.task.taskId, r.shortComponentName);
+ task.taskId, r.shortComponentName);
}
if (r.isHomeActivity() && r.isNotResolverActivity()) {
// Home process is the root process of the task.
- mService.mHomeProcess = r.task.mActivities.get(0).app;
+ mService.mHomeProcess = task.mActivities.get(0).app;
}
mService.ensurePackageDexOpt(r.intent.getComponent().getPackageName());
r.sleeping = false;
@@ -1233,7 +1245,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
app.thread.scheduleLaunchActivity(new Intent(r.intent), r.appToken,
System.identityHashCode(r), r.info, new Configuration(mService.mConfiguration),
new Configuration(stack.mOverrideConfig), r.compat, r.launchedFromPackage,
- r.task.voiceInteractor, app.repProcState, r.icicle, r.persistentState, results,
+ task.voiceInteractor, app.repProcState, r.icicle, r.persistentState, results,
newIntents, !andResume, mService.isNextTransitionForward(), profilerInfo);
if ((app.info.privateFlags&ApplicationInfo.PRIVATE_FLAG_CANT_SAVE_STATE) != 0) {
@@ -1946,7 +1958,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
if ((launchFlags&Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) != 0) {
intentActivity = targetStack.resetTaskIfNeededLocked(intentActivity, r);
}
- if ((startFlags&ActivityManager.START_FLAG_ONLY_IF_NEEDED) != 0) {
+ if ((startFlags & ActivityManager.START_FLAG_ONLY_IF_NEEDED) != 0) {
// We don't need to start a new activity, and
// the client said not to do anything if that
// is the case, so this is it! And for paranoia, make
@@ -1964,8 +1976,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
}
return ActivityManager.START_RETURN_INTENT_TO_CALLER;
}
- if ((launchFlags &
- (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK))
+ if ((launchFlags & (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK))
== (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK)) {
// The caller has requested to completely replace any
// existing task with its new activity. Well that should
@@ -2128,10 +2139,6 @@ public final class ActivityStackSupervisor implements DisplayListener {
// Should this be considered a new task?
if (r.resultTo == null && inTask == null && !addingToTask
&& (launchFlags & Intent.FLAG_ACTIVITY_NEW_TASK) != 0) {
- if (isLockTaskModeViolation(reuseTask)) {
- Slog.e(TAG, "Attempted Lock Task Mode violation r=" + r);
- return ActivityManager.START_RETURN_LOCK_TASK_MODE_VIOLATION;
- }
newTask = true;
targetStack = computeStackFocus(r, newTask);
targetStack.moveToFront("startingNewTask");
@@ -2147,6 +2154,10 @@ public final class ActivityStackSupervisor implements DisplayListener {
} else {
r.setTask(reuseTask, taskToAffiliate);
}
+ if (isLockTaskModeViolation(r.task)) {
+ Slog.e(TAG, "Attempted Lock Task Mode violation r=" + r);
+ return ActivityManager.START_RETURN_LOCK_TASK_MODE_VIOLATION;
+ }
if (!movedHome) {
if ((launchFlags &
(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_TASK_ON_HOME))
@@ -3292,6 +3303,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
pw.print(prefix); pw.println("mCurTaskId=" + mCurTaskId);
pw.print(prefix); pw.println("mUserStackInFront=" + mUserStackInFront);
pw.print(prefix); pw.println("mActivityContainers=" + mActivityContainers);
+ pw.print(prefix); pw.println("mLockTaskModeTasks" + mLockTaskModeTasks);
}
ArrayList<ActivityRecord> getDumpActivitiesLocked(String name) {
@@ -3592,6 +3604,32 @@ public final class ActivityStackSupervisor implements DisplayListener {
return list;
}
+ TaskRecord getLockedTaskLocked() {
+ final int top = mLockTaskModeTasks.size() - 1;
+ if (top >= 0) {
+ return mLockTaskModeTasks.get(top);
+ }
+ return null;
+ }
+
+ boolean isLockedTask(TaskRecord task) {
+ return mLockTaskModeTasks.contains(task);
+ }
+
+ boolean isLastLockedTask(TaskRecord task) {
+ return mLockTaskModeTasks.size() == 1 && mLockTaskModeTasks.contains(task);
+ }
+
+ void removeLockedTaskLocked(final TaskRecord task) {
+ if (mLockTaskModeTasks.remove(task) && mLockTaskModeTasks.isEmpty()) {
+ // Last one.
+ final Message lockTaskMsg = Message.obtain();
+ lockTaskMsg.arg1 = task.userId;
+ lockTaskMsg.what = LOCK_TASK_END_MSG;
+ mHandler.sendMessage(lockTaskMsg);
+ }
+ }
+
void showLockTaskToast() {
mLockTaskNotify.showToast(mLockTaskModeState);
}
@@ -3599,42 +3637,93 @@ public final class ActivityStackSupervisor implements DisplayListener {
void setLockTaskModeLocked(TaskRecord task, int lockTaskModeState, String reason) {
if (task == null) {
// Take out of lock task mode if necessary
- if (mLockTaskModeTask != null) {
- final Message lockTaskMsg = Message.obtain();
- lockTaskMsg.arg1 = mLockTaskModeTask.userId;
- lockTaskMsg.what = LOCK_TASK_END_MSG;
- mLockTaskModeTask = null;
- mHandler.sendMessage(lockTaskMsg);
+ final TaskRecord lockedTask = getLockedTaskLocked();
+ if (lockedTask != null) {
+ removeLockedTaskLocked(lockedTask);
+ if (!mLockTaskModeTasks.isEmpty()) {
+ // There are locked tasks remaining, can only finish this task, not unlock it.
+ lockedTask.performClearTaskLocked();
+ resumeTopActivitiesLocked();
+ return;
+ }
}
return;
}
+
+ // Should have already been checked, but do it again.
+ if (task.mLockTaskAuth == LOCK_TASK_AUTH_DONT_LOCK) {
+ return;
+ }
if (isLockTaskModeViolation(task)) {
- Slog.e(TAG, "setLockTaskMode: Attempt to start a second Lock Task Mode task.");
+ Slog.e(TAG, "setLockTaskMode: Attempt to start an unauthorized lock task.");
return;
}
- mLockTaskModeTask = task;
+
+ if (mLockTaskModeTasks.isEmpty()) {
+ // First locktask.
+ final Message lockTaskMsg = Message.obtain();
+ lockTaskMsg.obj = task.intent.getComponent().getPackageName();
+ lockTaskMsg.arg1 = task.userId;
+ lockTaskMsg.what = LOCK_TASK_START_MSG;
+ lockTaskMsg.arg2 = lockTaskModeState;
+ mHandler.sendMessage(lockTaskMsg);
+ }
+ // Add it or move it to the top.
+ mLockTaskModeTasks.remove(task);
+ mLockTaskModeTasks.add(task);
+
+ if (task.mLockTaskUid == -1) {
+ task.mLockTaskUid = task.mCallingUid;
+ }
findTaskToMoveToFrontLocked(task, 0, null, reason);
resumeTopActivitiesLocked();
-
- final Message lockTaskMsg = Message.obtain();
- lockTaskMsg.obj = mLockTaskModeTask.intent.getComponent().getPackageName();
- lockTaskMsg.arg1 = mLockTaskModeTask.userId;
- lockTaskMsg.what = LOCK_TASK_START_MSG;
- lockTaskMsg.arg2 = lockTaskModeState;
- mHandler.sendMessage(lockTaskMsg);
}
boolean isLockTaskModeViolation(TaskRecord task) {
- return mLockTaskModeTask != null && mLockTaskModeTask != task;
+ if (getLockedTaskLocked() == task) {
+ return false;
+ }
+ final int lockTaskAuth = task.mLockTaskAuth;
+ switch (lockTaskAuth) {
+ case LOCK_TASK_AUTH_DONT_LOCK:
+ return !mLockTaskModeTasks.isEmpty();
+ case LOCK_TASK_AUTH_LAUNCHABLE:
+ case LOCK_TASK_AUTH_WHITELISTED:
+ return false;
+ case LOCK_TASK_AUTH_PINNABLE:
+ // Pinnable tasks can't be launched on top of locktask tasks.
+ return !mLockTaskModeTasks.isEmpty();
+ default:
+ Slog.w(TAG, "isLockTaskModeViolation: invalid lockTaskAuth value=" + lockTaskAuth);
+ return true;
+ }
}
- void endLockTaskModeIfTaskEnding(TaskRecord task) {
- if (mLockTaskModeTask != null && mLockTaskModeTask == task) {
- final Message lockTaskMsg = Message.obtain();
- lockTaskMsg.arg1 = mLockTaskModeTask.userId;
- lockTaskMsg.what = LOCK_TASK_END_MSG;
- mLockTaskModeTask = null;
- mHandler.sendMessage(lockTaskMsg);
+ void onLockTaskPackagesUpdatedLocked() {
+ boolean didSomething = false;
+ for (int taskNdx = mLockTaskModeTasks.size() - 1; taskNdx >= 0; --taskNdx) {
+ final TaskRecord lockedTask = mLockTaskModeTasks.get(taskNdx);
+ if (lockedTask.mLockTaskMode != LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED) {
+ continue;
+ }
+ final boolean wasLaunchable = lockedTask.mLockTaskAuth == LOCK_TASK_AUTH_LAUNCHABLE;
+ lockedTask.setLockTaskAuth();
+ if (wasLaunchable && lockedTask.mLockTaskAuth != LOCK_TASK_AUTH_LAUNCHABLE) {
+ // Lost whitelisting authorization. End it now.
+ removeLockedTaskLocked(lockedTask);
+ lockedTask.performClearTaskLocked();
+ didSomething = true;
+ }
+ }
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ stack.onLockTaskPackagesUpdatedLocked();
+ }
+ }
+ if (didSomething) {
+ resumeTopActivitiesLocked();
}
}
@@ -3734,11 +3823,10 @@ public final class ActivityStackSupervisor implements DisplayListener {
mLockTaskModeState = msg.arg2;
if (getStatusBarService() != null) {
int flags = 0;
- if (mLockTaskModeState == ActivityManager.LOCK_TASK_MODE_LOCKED) {
+ if (mLockTaskModeState == LOCK_TASK_MODE_LOCKED) {
flags = StatusBarManager.DISABLE_MASK
& (~StatusBarManager.DISABLE_BACK);
- } else if (mLockTaskModeState ==
- ActivityManager.LOCK_TASK_MODE_PINNED) {
+ } else if (mLockTaskModeState == LOCK_TASK_MODE_PINNED) {
flags = StatusBarManager.DISABLE_MASK
& (~StatusBarManager.DISABLE_BACK)
& (~StatusBarManager.DISABLE_HOME)
@@ -3776,8 +3864,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
boolean shouldLockKeyguard = Settings.Secure.getInt(
mService.mContext.getContentResolver(),
Settings.Secure.LOCK_TO_APP_EXIT_LOCKED) != 0;
- if (mLockTaskModeState == ActivityManager.LOCK_TASK_MODE_PINNED &&
- shouldLockKeyguard) {
+ if (mLockTaskModeState == LOCK_TASK_MODE_PINNED && shouldLockKeyguard) {
mWindowManager.lockNow(null);
mWindowManager.dismissKeyguard();
new LockPatternUtils(mService.mContext)
@@ -3789,7 +3876,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
} catch (RemoteException ex) {
throw new RuntimeException(ex);
} finally {
- mLockTaskModeState = ActivityManager.LOCK_TASK_MODE_NONE;
+ mLockTaskModeState = LOCK_TASK_MODE_NONE;
}
} break;
case CONTAINER_CALLBACK_TASK_LIST_EMPTY: {
diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java
index 82e6d47..790a78d 100644
--- a/services/core/java/com/android/server/am/TaskRecord.java
+++ b/services/core/java/com/android/server/am/TaskRecord.java
@@ -18,6 +18,10 @@ package com.android.server.am;
import static android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT;
import static android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_ALWAYS;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_DEFAULT;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_NEVER;
import static com.android.server.am.ActivityManagerDebugConfig.*;
import static com.android.server.am.ActivityRecord.HOME_ACTIVITY_TYPE;
import static com.android.server.am.ActivityRecord.APPLICATION_ACTIVITY_TYPE;
@@ -121,6 +125,20 @@ final class TaskRecord {
boolean mResizeable; // Activities in the task resizeable. Based on the resizable setting of
// the root activity.
+ int mLockTaskMode; // Which tasklock mode to launch this task in. One of
+ // ActivityManager.LOCK_TASK_LAUNCH_MODE_*
+ /** Can't be put in lockTask mode. */
+ final static int LOCK_TASK_AUTH_DONT_LOCK = 0;
+ /** Can enter lockTask with user approval if not already in lockTask. */
+ final static int LOCK_TASK_AUTH_PINNABLE = 1;
+ /** Starts in LOCK_TASK_MODE_LOCKED automatically. Can start over existing lockTask task. */
+ final static int LOCK_TASK_AUTH_LAUNCHABLE = 2;
+ /** Enters LOCK_TASK_MODE_LOCKED via startLockTask(), enters LOCK_TASK_MODE_PINNED from
+ * Overview. Can start over existing lockTask task. */
+ final static int LOCK_TASK_AUTH_WHITELISTED = 3;
+ int mLockTaskAuth = LOCK_TASK_AUTH_PINNABLE;
+
+ int mLockTaskUid = -1; // The uid of the application that called startLockTask().
// This represents the last resolved activity values for this task
// NOTE: This value needs to be persisted with each task
@@ -186,6 +204,8 @@ final class TaskRecord {
voiceInteractor = _voiceInteractor;
isAvailable = true;
mActivities = new ArrayList<>();
+ mCallingUid = info.applicationInfo.uid;
+ mCallingPackage = info.packageName;
setIntent(_intent, info);
}
@@ -201,12 +221,12 @@ final class TaskRecord {
voiceInteractor = null;
isAvailable = true;
mActivities = new ArrayList<>();
+ mCallingUid = info.applicationInfo.uid;
+ mCallingPackage = info.packageName;
setIntent(_intent, info);
taskType = ActivityRecord.APPLICATION_ACTIVITY_TYPE;
isPersistable = true;
- mCallingUid = info.applicationInfo.uid;
- mCallingPackage = info.packageName;
// Clamp to [1, max].
maxRecents = Math.min(Math.max(info.maxRecents, 1),
ActivityManager.getMaxAppRecentsLimitStatic());
@@ -215,8 +235,6 @@ final class TaskRecord {
mTaskToReturnTo = HOME_ACTIVITY_TYPE;
userId = UserHandle.getUserId(info.applicationInfo.uid);
lastTaskDescription = _taskDescription;
- mCallingUid = info.applicationInfo.uid;
- mCallingPackage = info.packageName;
}
private TaskRecord(ActivityManagerService service, int _taskId, Intent _intent,
@@ -278,9 +296,9 @@ final class TaskRecord {
/** Sets the original intent, and the calling uid and package. */
void setIntent(ActivityRecord r) {
- setIntent(r.intent, r.info);
mCallingUid = r.launchedFromUid;
mCallingPackage = r.launchedFromPackage;
+ setIntent(r.intent, r.info);
}
/** Sets the original intent, _without_ updating the calling uid or package. */
@@ -362,6 +380,8 @@ final class TaskRecord {
autoRemoveRecents = false;
}
mResizeable = info.resizeable;
+ mLockTaskMode = info.lockTaskLaunchMode;
+ setLockTaskAuth();
}
void setTaskToReturnTo(int taskToReturnTo) {
@@ -716,6 +736,53 @@ final class TaskRecord {
performClearTaskAtIndexLocked(0);
}
+ private boolean isPrivileged() {
+ final ProcessRecord proc = mService.mProcessNames.get(mCallingPackage, mCallingUid);
+ if (proc != null) {
+ return (proc.info.privateFlags & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0;
+ }
+ return false;
+ }
+
+ void setLockTaskAuth() {
+ switch (mLockTaskMode) {
+ case LOCK_TASK_LAUNCH_MODE_DEFAULT:
+ mLockTaskAuth = isLockTaskWhitelistedLocked() ?
+ LOCK_TASK_AUTH_WHITELISTED : LOCK_TASK_AUTH_PINNABLE;
+ break;
+
+ case LOCK_TASK_LAUNCH_MODE_NEVER:
+ mLockTaskAuth = isPrivileged() ?
+ LOCK_TASK_AUTH_DONT_LOCK : LOCK_TASK_AUTH_PINNABLE;
+ break;
+
+ case LOCK_TASK_LAUNCH_MODE_ALWAYS:
+ mLockTaskAuth = isPrivileged() ?
+ LOCK_TASK_AUTH_LAUNCHABLE: LOCK_TASK_AUTH_PINNABLE;
+ break;
+
+ case LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED:
+ mLockTaskAuth = isLockTaskWhitelistedLocked() ?
+ LOCK_TASK_AUTH_LAUNCHABLE : LOCK_TASK_AUTH_PINNABLE;
+ break;
+ }
+ }
+
+ boolean isLockTaskWhitelistedLocked() {
+ if (mCallingPackage == null) {
+ return false;
+ }
+ String[] packages = mService.mLockTaskPackages.get(userId);
+ if (packages == null) {
+ return false;
+ }
+ for (int i = packages.length - 1; i >= 0; --i) {
+ if (mCallingPackage.equals(packages[i])) {
+ return true;
+ }
+ }
+ return false;
+ }
boolean isHomeTask() {
return taskType == HOME_ACTIVITY_TYPE;
}
diff --git a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
index 2d1f939..8a7c902 100644
--- a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
+++ b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
@@ -71,7 +71,10 @@ public class NetworkAgentInfo {
private static final int UNVALIDATED_SCORE_PENALTY = 40;
// Score for explicitly connected network.
- private static final int EXPLICITLY_SELECTED_NETWORK_SCORE = 100;
+ //
+ // This ensures that a) the explicitly selected network is never trumped by anything else, and
+ // b) the explicitly selected network is never torn down.
+ private static final int MAXIMUM_NETWORK_SCORE = 100;
// The list of NetworkRequests being satisfied by this Network.
public final SparseArray<NetworkRequest> networkRequests = new SparseArray<NetworkRequest>();
@@ -123,13 +126,18 @@ public class NetworkAgentInfo {
// score. The NetworkScore class would provide a nice place to centralize score constants
// so they are not scattered about the transports.
- int score = currentScore;
+ // If this network is explicitly selected and the user has decided to use it even if it's
+ // unvalidated, give it the maximum score. Also give it the maximum score if it's explicitly
+ // selected and we're trying to see what its score could be. This ensures that we don't tear
+ // down an explicitly selected network before the user gets a chance to prefer it when
+ // a higher-scoring network (e.g., Ethernet) is available.
+ if (networkMisc.explicitlySelected && (networkMisc.acceptUnvalidated || pretendValidated)) {
+ return MAXIMUM_NETWORK_SCORE;
+ }
+ int score = currentScore;
if (!everValidated && !pretendValidated) score -= UNVALIDATED_SCORE_PENALTY;
if (score < 0) score = 0;
-
- if (networkMisc.explicitlySelected) score = EXPLICITLY_SELECTED_NETWORK_SCORE;
-
return score;
}
@@ -156,7 +164,9 @@ public class NetworkAgentInfo {
networkCapabilities + "} Score{" + getCurrentScore() + "} " +
"everValidated{" + everValidated + "} lastValidated{" + lastValidated + "} " +
"created{" + created + "} " +
- "explicitlySelected{" + networkMisc.explicitlySelected + "} }";
+ "explicitlySelected{" + networkMisc.explicitlySelected + "} " +
+ "acceptUnvalidated{" + networkMisc.acceptUnvalidated + "} " +
+ "}";
}
public String name() {
diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java
index 4173b78..7cccef2 100644
--- a/services/core/java/com/android/server/content/SyncManager.java
+++ b/services/core/java/com/android/server/content/SyncManager.java
@@ -1190,7 +1190,7 @@ public class SyncManager {
while (operationIterator.hasNext()) {
final SyncOperation op = operationIterator.next();
if (op.appIdle
- && getPackageName(op.target).equals(packageName)
+ && (packageName == null || getPackageName(op.target).equals(packageName))
&& (userId == UserHandle.USER_ALL || op.target.userId == userId)) {
op.appIdle = false;
clearBackoffSetting(op);
diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java
index c150b60..0ca0c0e 100644
--- a/services/core/java/com/android/server/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java
@@ -39,6 +39,7 @@ import static android.Manifest.permission.USE_FINGERPRINT;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
/**
@@ -51,9 +52,9 @@ import java.util.List;
public class FingerprintService extends SystemService {
private static final String TAG = "FingerprintService";
private static final boolean DEBUG = true;
- private ClientData mAuthClient = null;
- private ClientData mEnrollClient = null;
- private ClientData mRemoveClient = null;
+ private ClientMonitor mAuthClient = null;
+ private ClientMonitor mEnrollClient = null;
+ private ClientMonitor mRemoveClient = null;
private static final int MSG_NOTIFY = 10;
@@ -63,7 +64,6 @@ public class FingerprintService extends SystemService {
// Must agree with the list in fingerprint.h
private static final int FINGERPRINT_ERROR = -1;
private static final int FINGERPRINT_ACQUIRED = 1;
- private static final int FINGERPRINT_PROCESSED = 2;
private static final int FINGERPRINT_TEMPLATE_ENROLLING = 3;
private static final int FINGERPRINT_TEMPLATE_REMOVED = 4;
private static final int FINGERPRINT_AUTHENTICATED = 5;
@@ -83,80 +83,21 @@ public class FingerprintService extends SystemService {
};
private Context mContext;
private int mHalDeviceId;
+ private int mFailedAttempts;
+ private final Runnable mLockoutReset = new Runnable() {
+ @Override
+ public void run() {
+ resetFailedAttempts();
+ }
+ };
private static final int STATE_IDLE = 0;
private static final int STATE_AUTHENTICATING = 1;
private static final int STATE_ENROLLING = 2;
private static final int STATE_REMOVING = 3;
private static final long MS_PER_SEC = 1000;
-
- private class ClientData {
- IBinder token;
- IFingerprintServiceReceiver receiver;
- int userId;
- long opId;
- private TokenWatcher tokenWatcher;
- public ClientData(IBinder token, long opId, IFingerprintServiceReceiver receiver,
- int userId) {
- this.token = token;
- this.opId = opId;
- this.receiver = receiver;
- this.userId = userId;
- tokenWatcher = new TokenWatcher(token);
- try {
- token.linkToDeath(tokenWatcher, 0);
- } catch (RemoteException e) {
- Slog.w(TAG, "caught remote exception in linkToDeath: ", e);
- }
- }
-
- IBinder getToken() {
- return tokenWatcher.getToken();
- }
-
- public void destroy() {
- token.unlinkToDeath(tokenWatcher, 0);
- tokenWatcher.token = null;
- }
- }
-
- private class TokenWatcher implements IBinder.DeathRecipient {
- WeakReference<IBinder> token;
-
- TokenWatcher(IBinder token) {
- this.token = new WeakReference<IBinder>(token);
- }
-
- IBinder getToken() {
- return token.get();
- }
-
- public void binderDied() {
- if (mAuthClient != null & mAuthClient.token == token)
- mAuthClient = null;
- if (mEnrollClient != null && mEnrollClient.token == token)
- mEnrollClient = null;
- this.token = null;
- }
-
- protected void finalize() throws Throwable {
- try {
- if (token != null) {
- if (DEBUG) Slog.w(TAG, "removing leaked reference: " + token);
- if (mAuthClient != null && mAuthClient.token == token) {
- mAuthClient.destroy();
- mAuthClient = null;
- }
- if (mEnrollClient != null && mEnrollClient.token == token) {
- mAuthClient.destroy();
- mEnrollClient = null;
- }
- }
- } finally {
- super.finalize();
- }
- }
- }
+ private static final long FAIL_LOCKOUT_TIMEOUT_MS = 30*1000;
+ private static final int MAX_FAILED_ATTEMPTS = 5;
public FingerprintService(Context context) {
super(context);
@@ -166,11 +107,11 @@ public class FingerprintService extends SystemService {
// TODO: Move these into separate process
// JNI methods to communicate from FingerprintService to HAL
- static native int nativeEnroll(long challenge, int groupId, int timeout);
+ static native int nativeEnroll(byte [] token, int groupId, int timeout);
static native long nativePreEnroll();
static native int nativeStopEnrollment();
static native int nativeAuthenticate(long sessionId, int groupId);
- static native int nativeStopAuthentication(long sessionId);
+ static native int nativeStopAuthentication();
static native int nativeRemove(int fingerId, int groupId);
static native int nativeOpenHal();
static native int nativeCloseHal();
@@ -201,82 +142,62 @@ public class FingerprintService extends SystemService {
Slog.v(TAG, "handleNotify(type=" + type + ", arg1=" + arg1 + ", arg2=" + arg2 + ")"
+ ", mAuthClients = " + mAuthClient + ", mEnrollClient = " + mEnrollClient);
if (mEnrollClient != null) {
- try {
- final IBinder token = mEnrollClient.token;
- if (doNotify(mEnrollClient, type, arg1, arg2, arg3)) {
- stopEnrollment(token);
- }
- } catch (RemoteException e) {
- Slog.e(TAG, "can't send message to mEnrollClient. Did it die?", e);
- mEnrollClient.destroy();
- mEnrollClient = null;
+ final IBinder token = mEnrollClient.token;
+ if (doNotify(mEnrollClient, type, arg1, arg2, arg3)) {
+ stopEnrollment(token);
}
}
if (mAuthClient != null) {
- try {
- final IBinder token = mAuthClient.getToken();
- if (doNotify(mAuthClient, type, arg1, arg2, arg3)) {
- stopAuthentication(token);
- }
- } catch (RemoteException e) {
- Slog.e(TAG, "can't send message to mAuthClient. Did it die?", e);
- mAuthClient.destroy();
- mAuthClient = null;
+ final IBinder token = mAuthClient.token;
+ if (doNotify(mAuthClient, type, arg1, arg2, arg3)) {
+ stopAuthentication(token);
}
}
if (mRemoveClient != null) {
- try {
- if (doNotify(mRemoveClient, type, arg1, arg2, arg3)) {
- mRemoveClient.destroy();
- mRemoveClient = null;
- }
- } catch (RemoteException e) {
- Slog.e(TAG, "can't send message to mRemoveClient. Did it die?", e);
- mRemoveClient.destroy();
- mRemoveClient = null;
+ if (doNotify(mRemoveClient, type, arg1, arg2, arg3)) {
+ removeClient(mRemoveClient);
}
}
}
// Returns true if the operation is done, i.e. authentication completed
- boolean doNotify(ClientData clientData, int type, int arg1, int arg2, int arg3)
- throws RemoteException {
- if (clientData.receiver == null) {
- if (DEBUG) Slog.v(TAG, "receiver not registered!!");
- return false;
- }
+ boolean doNotify(ClientMonitor clientMonitor, int type, int arg1, int arg2, int arg3) {
ContentResolver contentResolver = mContext.getContentResolver();
boolean operationCompleted = false;
switch (type) {
case FINGERPRINT_ERROR:
- clientData.receiver.onError(mHalDeviceId, arg1 /* error */);
- if (arg1 == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
- if (mEnrollClient != null) {
- mEnrollClient.destroy();
- mEnrollClient = null;
- }
- if (mAuthClient != null) {
- mAuthClient.destroy();
- mAuthClient = null;
- }
+ {
+ final int error = arg1;
+ clientMonitor.sendError(error);
+ removeClient(clientMonitor);
+ operationCompleted = true; // any error means the operation is done
}
- operationCompleted = true; // any error means the operation is done
break;
case FINGERPRINT_ACQUIRED:
- clientData.receiver.onAcquired(mHalDeviceId, arg1 /* acquireInfo */);
+ clientMonitor.sendAcquired(arg1 /* acquireInfo */);
break;
- case FINGERPRINT_PROCESSED:
- clientData.receiver.onProcessed(mHalDeviceId, arg1 /* fpId */, arg2 /* gpId */);
- operationCompleted = true; // we either got a positive or negative match
+ case FINGERPRINT_AUTHENTICATED:
+ {
+ final int fpId = arg1;
+ final int groupId = arg2;
+ clientMonitor.sendAuthenticated(fpId, groupId);
+ if (fpId == 0) {
+ if (clientMonitor == mAuthClient) {
+ operationCompleted = handleFailedAttempt(clientMonitor);
+ }
+ } else {
+ mLockoutReset.run(); // a valid fingerprint resets lockout
+ }
+ }
break;
case FINGERPRINT_TEMPLATE_ENROLLING:
{
final int fpId = arg1;
final int groupId = arg2;
final int remaining = arg3;
- clientData.receiver.onEnrollResult(mHalDeviceId, fpId, groupId, remaining);
+ clientMonitor.sendEnrollResult(fpId, groupId, remaining);
if (remaining == 0) {
- addTemplateForUser(clientData, contentResolver, fpId);
+ addTemplateForUser(clientMonitor, contentResolver, fpId);
operationCompleted = true; // enroll completed
}
}
@@ -285,11 +206,11 @@ public class FingerprintService extends SystemService {
{
final int fingerId = arg1;
final int groupId = arg2;
- removeTemplateForUser(clientData, contentResolver, fingerId);
+ removeTemplateForUser(clientMonitor, contentResolver, fingerId);
if (fingerId == 0) {
operationCompleted = true; // remove completed
} else {
- clientData.receiver.onRemoved(mHalDeviceId, fingerId, groupId);
+ clientMonitor.sendRemoved(fingerId, groupId);
}
}
break;
@@ -297,24 +218,60 @@ public class FingerprintService extends SystemService {
return operationCompleted;
}
- private void removeTemplateForUser(ClientData clientData, ContentResolver contentResolver,
+ private void removeClient(ClientMonitor clientMonitor) {
+ if (clientMonitor == null) return;
+ clientMonitor.destroy();
+ if (clientMonitor == mAuthClient) {
+ mAuthClient = null;
+ } else if (clientMonitor == mEnrollClient) {
+ mEnrollClient = null;
+ } else if (clientMonitor == mRemoveClient) {
+ mRemoveClient = null;
+ }
+ }
+
+ private boolean inLockoutMode() {
+ return mFailedAttempts > MAX_FAILED_ATTEMPTS;
+ }
+
+ private void resetFailedAttempts() {
+ if (DEBUG) Slog.v(TAG, "Reset fingerprint lockout");
+ mFailedAttempts = 0;
+ }
+
+ private boolean handleFailedAttempt(ClientMonitor clientMonitor) {
+ mFailedAttempts++;
+ if (mFailedAttempts > MAX_FAILED_ATTEMPTS) {
+ // Failing multiple times will continue to push out the lockout time.
+ mHandler.removeCallbacks(mLockoutReset);
+ mHandler.postDelayed(mLockoutReset, FAIL_LOCKOUT_TIMEOUT_MS);
+ if (clientMonitor != null
+ && !clientMonitor.sendError(FingerprintManager.FINGERPRINT_ERROR_LOCKOUT)) {
+ Slog.w(TAG, "Cannot send lockout message to client");
+ }
+ return true;
+ }
+ return false;
+ }
+
+ private void removeTemplateForUser(ClientMonitor clientMonitor, ContentResolver contentResolver,
final int fingerId) {
FingerprintUtils.removeFingerprintIdForUser(fingerId, contentResolver,
- clientData.userId);
+ clientMonitor.userId);
}
- private void addTemplateForUser(ClientData clientData, ContentResolver contentResolver,
+ private void addTemplateForUser(ClientMonitor clientMonitor, ContentResolver contentResolver,
final int fingerId) {
FingerprintUtils.addFingerprintIdForUser(contentResolver, fingerId,
- clientData.userId);
+ clientMonitor.userId);
}
- void startEnrollment(IBinder token, long opId,
- int groupId, IFingerprintServiceReceiver receiver, int flags) {
+ void startEnrollment(IBinder token, byte[] cryptoToken, int groupId,
+ IFingerprintServiceReceiver receiver, int flags) {
stopPendingOperations();
- mEnrollClient = new ClientData(token, opId, receiver, groupId);
+ mEnrollClient = new ClientMonitor(token, receiver, groupId);
final int timeout = (int) (ENROLLMENT_TIMEOUT_MS / MS_PER_SEC);
- final int result = nativeEnroll(opId, groupId, timeout);
+ final int result = nativeEnroll(cryptoToken, groupId, timeout);
if (result != 0) {
Slog.w(TAG, "startEnroll failed, result=" + result);
}
@@ -335,8 +292,11 @@ public class FingerprintService extends SystemService {
}
void stopEnrollment(IBinder token) {
- if (mEnrollClient == null || mEnrollClient.token != token) return;
+ final ClientMonitor client = mEnrollClient;
+ if (client == null || client.token != token) return;
int result = nativeStopEnrollment();
+ client.sendError(FingerprintManager.FINGERPRINT_ERROR_CANCELED);
+ removeClient(mEnrollClient);
if (result != 0) {
Slog.w(TAG, "startEnrollCancel failed, result=" + result);
}
@@ -345,7 +305,15 @@ public class FingerprintService extends SystemService {
void startAuthentication(IBinder token, long opId, int groupId,
IFingerprintServiceReceiver receiver, int flags) {
stopPendingOperations();
- mAuthClient = new ClientData(token, opId, receiver, groupId);
+ mAuthClient = new ClientMonitor(token, receiver, groupId);
+ if (inLockoutMode()) {
+ Slog.v(TAG, "In lockout mode; disallowing authentication");
+ if (!mAuthClient.sendError(FingerprintManager.FINGERPRINT_ERROR_LOCKOUT)) {
+ Slog.w(TAG, "Cannot send timeout message to client");
+ }
+ mAuthClient = null;
+ return;
+ }
final int timeout = (int) (ENROLLMENT_TIMEOUT_MS / MS_PER_SEC);
final int result = nativeAuthenticate(opId, groupId);
if (result != 0) {
@@ -354,8 +322,11 @@ public class FingerprintService extends SystemService {
}
void stopAuthentication(IBinder token) {
- if (mAuthClient == null || mAuthClient.token != token) return;
- int result = nativeStopAuthentication(mAuthClient.opId);
+ final ClientMonitor client = mAuthClient;
+ if (client == null || client.token != token) return;
+ int result = nativeStopAuthentication();
+ client.sendError(FingerprintManager.FINGERPRINT_ERROR_CANCELED);
+ removeClient(mAuthClient);
if (result != 0) {
Slog.w(TAG, "stopAuthentication failed, result=" + result);
}
@@ -363,7 +334,7 @@ public class FingerprintService extends SystemService {
void startRemove(IBinder token, int fingerId, int userId,
IFingerprintServiceReceiver receiver) {
- mRemoveClient = new ClientData(token, 0, receiver, userId);
+ mRemoveClient = new ClientMonitor(token, receiver, userId);
// The fingerprint template ids will be removed when we get confirmation from the HAL
final int result = nativeRemove(fingerId, userId);
if (result != 0) {
@@ -387,22 +358,124 @@ public class FingerprintService extends SystemService {
return result;
}
+ public boolean hasEnrolledFingerprints(int groupId) {
+ ContentResolver resolver = mContext.getContentResolver();
+ return FingerprintUtils.getFingerprintIdsForUser(resolver, groupId).length > 0;
+ }
+
void checkPermission(String permission) {
getContext().enforceCallingOrSelfPermission(permission,
"Must have " + permission + " permission.");
}
- private static final class Message {
+ private class ClientMonitor implements IBinder.DeathRecipient {
IBinder token;
- long opId;
- int groupId;
- int flags;
+ WeakReference<IFingerprintServiceReceiver> receiver;
+ int userId;
- public Message(IBinder token, long challenge, int groupId, int flags) {
+ public ClientMonitor(IBinder token, IFingerprintServiceReceiver receiver, int userId) {
this.token = token;
- this.opId = challenge;
- this.groupId = groupId;
- this.flags = flags;
+ this.receiver = new WeakReference<IFingerprintServiceReceiver>(receiver);
+ this.userId = userId;
+ try {
+ token.linkToDeath(this, 0);
+ } catch (RemoteException e) {
+ Slog.w(TAG, "caught remote exception in linkToDeath: ", e);
+ }
+ }
+
+ public void destroy() {
+ if (token != null) {
+ token.unlinkToDeath(this, 0);
+ token = null;
+ }
+ receiver = null;
+ }
+
+ public void binderDied() {
+ token = null;
+ removeClient(this);
+ }
+
+ protected void finalize() throws Throwable {
+ try {
+ if (token != null) {
+ if (DEBUG) Slog.w(TAG, "removing leaked reference: " + token);
+ removeClient(this);
+ }
+ } finally {
+ super.finalize();
+ }
+ }
+
+ private boolean sendRemoved(int fingerId, int groupId) {
+ IFingerprintServiceReceiver rx = receiver.get();
+ if (rx != null) {
+ try {
+ rx.onRemoved(mHalDeviceId, fingerId, groupId);
+ return true;
+ } catch (RemoteException e) {
+ if (DEBUG) Slog.v(TAG, "Failed to invoke sendRemoved:", e);
+ }
+ }
+ removeClient(this);
+ return false;
+ }
+
+ private boolean sendEnrollResult(int fpId, int groupId, int remaining) {
+ IFingerprintServiceReceiver rx = receiver.get();
+ if (rx != null) {
+ try {
+ rx.onEnrollResult(mHalDeviceId, fpId, groupId, remaining);
+ return true;
+ } catch (RemoteException e) {
+ if (DEBUG) Slog.v(TAG, "Failed to invoke sendEnrollResult:", e);
+ }
+ }
+ removeClient(this);
+ return false;
+ }
+
+ private boolean sendAuthenticated(int fpId, int groupId) {
+ IFingerprintServiceReceiver rx = receiver.get();
+ if (rx != null) {
+ try {
+ rx.onAuthenticated(mHalDeviceId, fpId, groupId);
+ return true;
+ } catch (RemoteException e) {
+ if (DEBUG) Slog.v(TAG, "Failed to invoke sendProcessed:", e);
+ }
+ }
+ removeClient(this);
+ return false;
+ }
+
+ private boolean sendAcquired(int acquiredInfo) {
+ IFingerprintServiceReceiver rx = receiver.get();
+ if (rx != null) {
+ try {
+ rx.onAcquired(mHalDeviceId, acquiredInfo);
+ return true;
+ } catch (RemoteException e) {
+ if (DEBUG) Slog.v(TAG, "Failed to invoke sendAcquired:", e);
+ }
+ }
+ removeClient(this);
+ return false;
+ }
+
+ private boolean sendError(int error) {
+ IFingerprintServiceReceiver rx = receiver.get();
+ if (rx != null) {
+ try {
+ rx.onError(mHalDeviceId, error);
+ return true;
+ } catch (RemoteException e) {
+ if (DEBUG) Slog.v(TAG, "Failed to invoke sendError:", e);
+ }
+ }
+ removeClient(this);
+ return false;
}
}
@@ -415,13 +488,14 @@ public class FingerprintService extends SystemService {
@Override
// Binder call
- public void enroll(final IBinder token, final long opid, final int groupId,
+ public void enroll(final IBinder token, final byte[] cryptoToken, final int groupId,
final IFingerprintServiceReceiver receiver, final int flags) {
checkPermission(MANAGE_FINGERPRINT);
+ final byte [] cryptoClone = Arrays.copyOf(cryptoToken, cryptoToken.length);
mHandler.post(new Runnable() {
@Override
public void run() {
- startEnrollment(token, opid, groupId, receiver, flags);
+ startEnrollment(token, cryptoClone, groupId, receiver, flags);
}
});
}
@@ -503,6 +577,13 @@ public class FingerprintService extends SystemService {
checkPermission(USE_FINGERPRINT);
return FingerprintService.this.getEnrolledFingerprints(groupId);
}
+
+ @Override
+ // Binder call
+ public boolean hasEnrolledFingerprints(int groupId) {
+ checkPermission(USE_FINGERPRINT);
+ return FingerprintService.this.hasEnrolledFingerprints(groupId);
+ }
}
@Override
diff --git a/services/core/java/com/android/server/location/FlpHardwareProvider.java b/services/core/java/com/android/server/location/FlpHardwareProvider.java
index 834dff2..1fb22be 100644
--- a/services/core/java/com/android/server/location/FlpHardwareProvider.java
+++ b/services/core/java/com/android/server/location/FlpHardwareProvider.java
@@ -42,11 +42,13 @@ import android.util.Log;
* {@hide}
*/
public class FlpHardwareProvider {
+ private static final int FIRST_VERSION_WITH_FLUSH_LOCATIONS = 2;
private GeofenceHardwareImpl mGeofenceHardwareSink = null;
private IFusedLocationHardwareSink mLocationSink = null;
// Capabilities provided by FlpCallbacks
private boolean mHaveBatchingCapabilities;
private int mBatchingCapabilities;
+ private int mVersion;
private static FlpHardwareProvider sSingletonInstance = null;
@@ -150,6 +152,11 @@ public class FlpHardwareProvider {
}
}
+ private void setVersion(int version) {
+ mVersion = version;
+ getGeofenceHardwareSink().setVersion(version);
+ }
+
private void maybeSendCapabilities() {
IFusedLocationHardwareSink sink;
boolean haveBatchingCapabilities;
@@ -366,7 +373,12 @@ public class FlpHardwareProvider {
@Override
public void flushBatchedLocations() {
- nativeFlushBatchedLocations();
+ if (mVersion >= FIRST_VERSION_WITH_FLUSH_LOCATIONS) {
+ nativeFlushBatchedLocations();
+ } else {
+ Log.wtf(TAG,
+ "Tried to call flushBatchedLocations on an unsupported implementation");
+ }
}
@Override
@@ -388,6 +400,11 @@ public class FlpHardwareProvider {
public void injectDeviceContext(int deviceEnabledContext) {
nativeInjectDeviceContext(deviceEnabledContext);
}
+
+ @Override
+ public int getVersion() {
+ return mVersion;
+ }
};
private final IFusedGeofenceHardware mGeofenceHardwareService =
diff --git a/services/core/java/com/android/server/location/FusedLocationHardwareSecure.java b/services/core/java/com/android/server/location/FusedLocationHardwareSecure.java
index e49c411..a08d326 100644
--- a/services/core/java/com/android/server/location/FusedLocationHardwareSecure.java
+++ b/services/core/java/com/android/server/location/FusedLocationHardwareSecure.java
@@ -122,4 +122,10 @@ public class FusedLocationHardwareSecure extends IFusedLocationHardware.Stub {
checkPermissions();
mLocationHardware.flushBatchedLocations();
}
+
+ @Override
+ public int getVersion() throws RemoteException {
+ checkPermissions();
+ return mLocationHardware.getVersion();
+ }
}
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 4cf2909..997d546 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -29,9 +29,11 @@ import android.app.AppGlobals;
import android.app.AppOpsManager;
import android.app.IActivityManager;
import android.app.INotificationManager;
+import android.app.INotificationManagerCallback;
import android.app.ITransientNotification;
import android.app.Notification;
import android.app.NotificationManager;
+import android.app.NotificationManager.Policy;
import android.app.PendingIntent;
import android.app.StatusBarManager;
import android.content.BroadcastReceiver;
@@ -227,6 +229,8 @@ public class NotificationManagerService extends SystemService {
new ArrayMap<String, NotificationRecord>();
final ArrayList<ToastRecord> mToastQueue = new ArrayList<ToastRecord>();
final ArrayMap<String, NotificationRecord> mSummaryByGroupKey = new ArrayMap<>();
+ private final ArrayMap<String, Policy.Token> mPolicyTokens = new ArrayMap<>();
+
// The last key in this list owns the hardware.
ArrayList<String> mLights = new ArrayList<>();
@@ -893,6 +897,13 @@ public class NotificationManagerService extends SystemService {
updateInterruptionFilterLocked();
}
}
+
+ @Override
+ void onPolicyChanged() {
+ getContext().sendBroadcast(
+ new Intent(NotificationManager.ACTION_NOTIFICATION_POLICY_CHANGED)
+ .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY));
+ }
});
final File systemDir = new File(Environment.getDataDirectory(), "system");
mPolicyFile = new AtomicFile(new File(systemDir, "notification_policy.xml"));
@@ -1551,6 +1562,18 @@ public class NotificationManagerService extends SystemService {
message);
}
+ private void enforcePolicyToken(Policy.Token token, String method) {
+ if (!checkPolicyToken(token)) {
+ Slog.w(TAG, "Invalid notification policy token calling " + method);
+ throw new SecurityException("Invalid notification policy token");
+ }
+ }
+
+ private boolean checkPolicyToken(Policy.Token token) {
+ return mPolicyTokens.containsValue(token)
+ || mListeners.mPolicyTokens.containsValue(token);
+ }
+
@Override
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
@@ -1586,24 +1609,73 @@ public class NotificationManagerService extends SystemService {
enforceSystemOrSystemUIOrVolume("INotificationManager.isSystemConditionProviderEnabled");
return mConditionProviders.isSystemProviderEnabled(path);
}
- };
- private String[] getActiveNotificationKeys(INotificationListener token) {
- final ManagedServiceInfo info = mListeners.checkServiceTokenLocked(token);
- final ArrayList<String> keys = new ArrayList<String>();
- if (info.isEnabledForCurrentProfiles()) {
- synchronized (mNotificationList) {
- final int N = mNotificationList.size();
- for (int i = 0; i < N; i++) {
- final StatusBarNotification sbn = mNotificationList.get(i).sbn;
- if (info.enabledAndUserMatches(sbn.getUserId())) {
- keys.add(sbn.getKey());
+ @Override
+ public Policy.Token getPolicyTokenFromListener(INotificationListener listener) {
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return mListeners.getPolicyToken(listener);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void requestNotificationPolicyToken(String pkg,
+ INotificationManagerCallback callback) throws RemoteException {
+ if (callback == null) {
+ Slog.w(TAG, "requestNotificationPolicyToken: no callback specified");
+ return;
+ }
+ if (pkg == null) {
+ Slog.w(TAG, "requestNotificationPolicyToken denied: no package specified");
+ callback.onPolicyToken(null);
+ return;
+ }
+ Policy.Token token = null;
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ synchronized (mNotificationList) {
+ token = mPolicyTokens.get(pkg);
+ if (token == null) {
+ token = new Policy.Token(new Binder());
+ mPolicyTokens.put(pkg, token);
}
+ if (DBG) Slog.w(TAG, "requestNotificationPolicyToken granted for " + pkg);
}
+ } finally {
+ Binder.restoreCallingIdentity(identity);
}
+ callback.onPolicyToken(token);
+ }
+
+ @Override
+ public boolean isNotificationPolicyTokenValid(String pkg, Policy.Token token) {
+ return checkPolicyToken(token);
}
- return keys.toArray(new String[keys.size()]);
- }
+
+ @Override
+ public Policy getNotificationPolicy(Policy.Token token) {
+ enforcePolicyToken(token, "getNotificationPolicy");
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return mZenModeHelper.getNotificationPolicy();
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void setNotificationPolicy(Policy.Token token, Policy policy) {
+ enforcePolicyToken(token, "setNotificationPolicy");
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ mZenModeHelper.setNotificationPolicy(policy);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+ };
private String disableNotificationEffects(NotificationRecord record) {
if (mDisableNotificationEffects) {
@@ -1718,6 +1790,10 @@ public class NotificationManagerService extends SystemService {
pw.print(listener.component);
}
pw.println(')');
+ pw.print(" mPolicyTokens.keys: ");
+ pw.println(TextUtils.join(",", mPolicyTokens.keySet()));
+ pw.print(" mListeners.mPolicyTokens.keys: ");
+ pw.println(TextUtils.join(",", mListeners.mPolicyTokens.keySet()));
}
pw.println("\n Condition providers:");
@@ -2970,12 +3046,18 @@ public class NotificationManagerService extends SystemService {
public class NotificationListeners extends ManagedServices {
private final ArraySet<ManagedServiceInfo> mLightTrimListeners = new ArraySet<>();
+ private final ArrayMap<ComponentName, Policy.Token> mPolicyTokens = new ArrayMap<>();
private boolean mNotificationGroupsDesired;
public NotificationListeners() {
super(getContext(), mHandler, mNotificationList, mUserProfiles);
}
+ public Policy.Token getPolicyToken(INotificationListener listener) {
+ final ManagedServiceInfo info = checkServiceTokenLocked(listener);
+ return info == null ? null : mPolicyTokens.get(info.component);
+ }
+
@Override
protected Config getConfig() {
Config c = new Config();
@@ -3000,6 +3082,7 @@ public class NotificationManagerService extends SystemService {
synchronized (mNotificationList) {
updateNotificationGroupsDesiredLocked();
update = makeRankingUpdateLocked(info);
+ mPolicyTokens.put(info.component, new Policy.Token(new Binder()));
}
try {
listener.onListenerConnected(update);
@@ -3016,6 +3099,7 @@ public class NotificationManagerService extends SystemService {
}
mLightTrimListeners.remove(removed);
updateNotificationGroupsDesiredLocked();
+ mPolicyTokens.remove(removed.component);
}
public void setOnNotificationPostedTrimLocked(ManagedServiceInfo info, int trim) {
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 40218bb..9cb8af5 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -21,6 +21,7 @@ import static android.media.AudioAttributes.USAGE_NOTIFICATION;
import static android.media.AudioAttributes.USAGE_NOTIFICATION_RINGTONE;
import android.app.AppOpsManager;
+import android.app.NotificationManager.Policy;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
@@ -57,6 +58,7 @@ import org.xmlpull.v1.XmlSerializer;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
+import java.util.Objects;
/**
* NotificationManagerService helper for functionality related to zen mode.
@@ -230,6 +232,21 @@ public class ZenModeHelper {
mConfig.writeXml(out);
}
+ public Policy getNotificationPolicy() {
+ return getNotificationPolicy(mConfig);
+ }
+
+ private static Policy getNotificationPolicy(ZenModeConfig config) {
+ return config == null ? null : config.toNotificationPolicy();
+ }
+
+ public void setNotificationPolicy(Policy policy) {
+ if (policy == null || mConfig == null) return;
+ final ZenModeConfig newConfig = mConfig.copy();
+ newConfig.applyNotificationPolicy(policy);
+ setConfig(newConfig, "setNotificationPolicy");
+ }
+
public ZenModeConfig getConfig() {
return mConfig;
}
@@ -247,8 +264,13 @@ public class ZenModeHelper {
if (config.equals(mConfig)) return true;
if (DEBUG) Log.d(TAG, "setConfig reason=" + reason);
ZenLog.traceConfig(mConfig, config);
+ final boolean policyChanged = !Objects.equals(getNotificationPolicy(mConfig),
+ getNotificationPolicy(config));
mConfig = config;
dispatchOnConfigChanged();
+ if (policyChanged){
+ dispatchOnPolicyChanged();
+ }
final String val = Integer.toString(mConfig.hashCode());
Global.putString(mContext.getContentResolver(), Global.ZEN_MODE_CONFIG_ETAG, val);
if (!evaluateZenMode(reason, setRingerMode)) {
@@ -355,6 +377,12 @@ public class ZenModeHelper {
}
}
+ private void dispatchOnPolicyChanged() {
+ for (Callback callback : mCallbacks) {
+ callback.onPolicyChanged();
+ }
+ }
+
private void dispatchOnZenModeChanged() {
for (Callback callback : mCallbacks) {
callback.onZenModeChanged();
@@ -617,6 +645,7 @@ public class ZenModeHelper {
public static class Callback {
void onConfigChanged() {}
void onZenModeChanged() {}
+ void onPolicyChanged() {}
}
}
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 936840a..fce01e5 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -183,6 +183,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
static final int APPLICATION_MEDIA_OVERLAY_SUBLAYER = -1;
static final int APPLICATION_PANEL_SUBLAYER = 1;
static final int APPLICATION_SUB_PANEL_SUBLAYER = 2;
+ static final int APPLICATION_ABOVE_SUB_PANEL_SUBLAYER = 3;
static public final String SYSTEM_DIALOG_REASON_KEY = "reason";
static public final String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS = "globalactions";
@@ -2015,6 +2016,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
return APPLICATION_MEDIA_OVERLAY_SUBLAYER;
case TYPE_APPLICATION_SUB_PANEL:
return APPLICATION_SUB_PANEL_SUBLAYER;
+ case TYPE_APPLICATION_ABOVE_SUB_PANEL:
+ return APPLICATION_ABOVE_SUB_PANEL_SUBLAYER;
}
Log.e(TAG, "Unknown sub-window type: " + type);
return 0;
diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java
index 75c33af..1a52933 100644
--- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java
+++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java
@@ -145,6 +145,9 @@ public class KeyguardServiceDelegate {
if (mKeyguardState.bootCompleted) {
mKeyguardService.onBootCompleted();
}
+ if (mKeyguardState.occluded) {
+ mKeyguardService.setOccluded(mKeyguardState.occluded);
+ }
}
@Override
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
index f6df757..184224b 100644
--- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
@@ -79,7 +79,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub {
public void binderDied() {
Slog.i(TAG, "binder died for pkg=" + pkg);
- disableInternal(userId, 0, token, pkg);
+ disableForUser(0, token, pkg, userId);
token.unlinkToDeath(this, 0);
}
}
@@ -194,10 +194,11 @@ public class StatusBarManagerService extends IStatusBarService.Stub {
@Override
public void disable(int what, IBinder token, String pkg) {
- disableInternal(mCurrentUserId, what, token, pkg);
+ disableForUser(what, token, pkg, mCurrentUserId);
}
- private void disableInternal(int userId, int what, IBinder token, String pkg) {
+ @Override
+ public void disableForUser(int what, IBinder token, String pkg, int userId) {
enforceStatusBar();
synchronized (mLock) {
diff --git a/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java b/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
index 1135dfe..8fc979c 100644
--- a/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
+++ b/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
@@ -16,29 +16,21 @@
package com.android.server.updates;
+import com.android.server.EventLogTags;
+
import android.content.BroadcastReceiver;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
-import android.provider.Settings;
-import android.util.Base64;
import android.util.EventLog;
import android.util.Slog;
-import com.android.server.EventLogTags;
-
-import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
-import java.io.InputStream;
import java.io.IOException;
-import java.security.cert.CertificateException;
-import java.security.cert.CertificateFactory;
-import java.security.cert.X509Certificate;
+import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import java.security.Signature;
import libcore.io.IoUtils;
import libcore.io.Streams;
@@ -48,11 +40,8 @@ public class ConfigUpdateInstallReceiver extends BroadcastReceiver {
private static final String TAG = "ConfigUpdateInstallReceiver";
private static final String EXTRA_REQUIRED_HASH = "REQUIRED_HASH";
- private static final String EXTRA_SIGNATURE = "SIGNATURE";
private static final String EXTRA_VERSION_NUMBER = "VERSION";
- private static final String UPDATE_CERTIFICATE_KEY = "config_update_certificate";
-
protected final File updateDir;
protected final File updateContent;
protected final File updateVersion;
@@ -71,16 +60,12 @@ public class ConfigUpdateInstallReceiver extends BroadcastReceiver {
@Override
public void run() {
try {
- // get the certificate from Settings.Secure
- X509Certificate cert = getCert(context.getContentResolver());
// get the content path from the extras
byte[] altContent = getAltContent(context, intent);
// get the version from the extras
int altVersion = getVersionFromIntent(intent);
// get the previous value from the extras
String altRequiredHash = getRequiredHashFromIntent(intent);
- // get the signature from the extras
- String altSig = getSignatureFromIntent(intent);
// get the version currently being used
int currentVersion = getCurrentVersion();
// get the hash of the currently used value
@@ -90,10 +75,6 @@ public class ConfigUpdateInstallReceiver extends BroadcastReceiver {
} else if (!verifyPreviousHash(currentHash, altRequiredHash)) {
EventLog.writeEvent(EventLogTags.CONFIG_INSTALL_FAILED,
"Current hash did not match required value");
- } else if (!verifySignature(altContent, altVersion, altRequiredHash, altSig,
- cert)) {
- EventLog.writeEvent(EventLogTags.CONFIG_INSTALL_FAILED,
- "Signature did not verify");
} else {
// install the new content
Slog.i(TAG, "Found new update, installing...");
@@ -114,20 +95,6 @@ public class ConfigUpdateInstallReceiver extends BroadcastReceiver {
}.start();
}
- private X509Certificate getCert(ContentResolver cr) {
- // get the cert from settings
- String cert = Settings.Secure.getString(cr, UPDATE_CERTIFICATE_KEY);
- // convert it into a real certificate
- try {
- byte[] derCert = Base64.decode(cert.getBytes(), Base64.DEFAULT);
- InputStream istream = new ByteArrayInputStream(derCert);
- CertificateFactory cf = CertificateFactory.getInstance("X.509");
- return (X509Certificate) cf.generateCertificate(istream);
- } catch (CertificateException e) {
- throw new IllegalStateException("Got malformed certificate from settings, ignoring");
- }
- }
-
private Uri getContentFromIntent(Intent i) {
Uri data = i.getData();
if (data == null) {
@@ -152,14 +119,6 @@ public class ConfigUpdateInstallReceiver extends BroadcastReceiver {
return extraValue.trim();
}
- private String getSignatureFromIntent(Intent i) {
- String extraValue = i.getStringExtra(EXTRA_SIGNATURE);
- if (extraValue == null) {
- throw new IllegalStateException("Missing required signature, ignoring.");
- }
- return extraValue.trim();
- }
-
private int getCurrentVersion() throws NumberFormatException {
try {
String strVersion = IoUtils.readFileAsString(updateVersion.getCanonicalPath()).trim();
@@ -215,16 +174,6 @@ public class ConfigUpdateInstallReceiver extends BroadcastReceiver {
return current.equals(required);
}
- private boolean verifySignature(byte[] content, int version, String requiredPrevious,
- String signature, X509Certificate cert) throws Exception {
- Signature signer = Signature.getInstance("SHA512withRSA");
- signer.initVerify(cert);
- signer.update(content);
- signer.update(Long.toString(version).getBytes());
- signer.update(requiredPrevious.getBytes());
- return signer.verify(Base64.decode(signature.getBytes(), Base64.DEFAULT));
- }
-
protected void writeUpdate(File dir, File file, byte[] content) throws IOException {
FileOutputStream out = null;
File tmp = null;
diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java
index ae8832a..91ce739 100644
--- a/services/core/java/com/android/server/wm/AccessibilityController.java
+++ b/services/core/java/com/android/server/wm/AccessibilityController.java
@@ -339,6 +339,7 @@ final class AccessibilityController {
case WindowManager.LayoutParams.TYPE_APPLICATION_PANEL:
case WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA:
case WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL:
+ case WindowManager.LayoutParams.TYPE_APPLICATION_ABOVE_SUB_PANEL:
case WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG:
case WindowManager.LayoutParams.TYPE_SEARCH_BAR:
case WindowManager.LayoutParams.TYPE_PHONE:
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java
index 55dd911..bb53534 100644
--- a/services/core/java/com/android/server/wm/InputMonitor.java
+++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -148,7 +148,7 @@ final class InputMonitor implements InputManagerService.WindowManagerCallbacks {
if (timeout >= 0) {
// The activity manager declined to abort dispatching.
// Wait a bit longer and timeout again later.
- return timeout;
+ return timeout * 1000000L; // nanoseconds
}
} catch (RemoteException ex) {
}
diff --git a/services/core/jni/Android.mk b/services/core/jni/Android.mk
index 6448de2..a5546cf 100644
--- a/services/core/jni/Android.mk
+++ b/services/core/jni/Android.mk
@@ -33,10 +33,12 @@ LOCAL_C_INCLUDES += \
$(JNI_H_INCLUDE) \
frameworks/base/services \
frameworks/base/libs \
+ frameworks/base/libs/hwui \
frameworks/base/core/jni \
frameworks/native/services \
libcore/include \
libcore/include/libsuspend \
+ system/security/keystore/include \
$(call include-path-for, libhardware)/hardware \
$(call include-path-for, libhardware_legacy)/hardware_legacy \
@@ -48,6 +50,7 @@ LOCAL_SHARED_LIBRARIES += \
liblog \
libhardware \
libhardware_legacy \
+ libkeystore_binder \
libnativehelper \
libutils \
libui \
diff --git a/services/core/jni/com_android_server_AssetAtlasService.cpp b/services/core/jni/com_android_server_AssetAtlasService.cpp
index e4f242e..8f4fb51 100644
--- a/services/core/jni/com_android_server_AssetAtlasService.cpp
+++ b/services/core/jni/com_android_server_AssetAtlasService.cpp
@@ -47,40 +47,9 @@ namespace android {
#define FENCE_TIMEOUT 2000000000
// ----------------------------------------------------------------------------
-// JNI Helpers
-// ----------------------------------------------------------------------------
-
-static struct {
- jmethodID setNativeBitmap;
-} gCanvasClassInfo;
-
-#define INVOKEV(object, method, ...) \
- env->CallVoidMethod(object, method, __VA_ARGS__)
-
-// ----------------------------------------------------------------------------
// Canvas management
// ----------------------------------------------------------------------------
-static jlong com_android_server_AssetAtlasService_acquireCanvas(JNIEnv* env, jobject,
- jobject canvas, jint width, jint height) {
-
- SkBitmap* bitmap = new SkBitmap;
- bitmap->allocN32Pixels(width, height);
- bitmap->eraseColor(0);
- INVOKEV(canvas, gCanvasClassInfo.setNativeBitmap, reinterpret_cast<jlong>(bitmap));
-
- return reinterpret_cast<jlong>(bitmap);
-}
-
-static void com_android_server_AssetAtlasService_releaseCanvas(JNIEnv* env, jobject,
- jobject canvas, jlong bitmapHandle) {
-
- SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
- INVOKEV(canvas, gCanvasClassInfo.setNativeBitmap, (jlong)0);
-
- delete bitmap;
-}
-
#define CLEANUP_GL_AND_RETURN(result) \
if (fence != EGL_NO_SYNC_KHR) eglDestroySyncKHR(display, fence); \
if (image) eglDestroyImageKHR(display, image); \
@@ -93,9 +62,12 @@ static void com_android_server_AssetAtlasService_releaseCanvas(JNIEnv* env, jobj
return result;
static jboolean com_android_server_AssetAtlasService_upload(JNIEnv* env, jobject,
- jobject graphicBuffer, jlong bitmapHandle) {
+ jobject graphicBuffer, jobject bitmapHandle) {
+
+ SkBitmap bitmap;
+ GraphicsJNI::getSkBitmap(env, bitmapHandle, &bitmap);
+ SkAutoLockPixels alp(bitmap);
- SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
// The goal of this method is to copy the bitmap into the GraphicBuffer
// using the GPU to swizzle the texture content
sp<GraphicBuffer> buffer(graphicBufferForJavaObject(env, graphicBuffer));
@@ -186,9 +158,9 @@ static jboolean com_android_server_AssetAtlasService_upload(JNIEnv* env, jobject
}
// Upload the content of the bitmap in the GraphicBuffer
- glPixelStorei(GL_UNPACK_ALIGNMENT, bitmap->bytesPerPixel());
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, bitmap->width(), bitmap->height(),
- GL_RGBA, GL_UNSIGNED_BYTE, bitmap->getPixels());
+ glPixelStorei(GL_UNPACK_ALIGNMENT, bitmap.bytesPerPixel());
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, bitmap.width(), bitmap.height(),
+ GL_RGBA, GL_UNSIGNED_BYTE, bitmap.getPixels());
if (glGetError() != GL_NO_ERROR) {
ALOGW("Could not upload to texture");
CLEANUP_GL_AND_RETURN(JNI_FALSE);
@@ -233,20 +205,11 @@ static jboolean com_android_server_AssetAtlasService_upload(JNIEnv* env, jobject
const char* const kClassPathName = "com/android/server/AssetAtlasService";
static JNINativeMethod gMethods[] = {
- { "nAcquireAtlasCanvas", "(Landroid/graphics/Canvas;II)J",
- (void*) com_android_server_AssetAtlasService_acquireCanvas },
- { "nReleaseAtlasCanvas", "(Landroid/graphics/Canvas;J)V",
- (void*) com_android_server_AssetAtlasService_releaseCanvas },
- { "nUploadAtlas", "(Landroid/view/GraphicBuffer;J)Z",
+ { "nUploadAtlas", "(Landroid/view/GraphicBuffer;Landroid/graphics/Bitmap;)Z",
(void*) com_android_server_AssetAtlasService_upload },
};
int register_android_server_AssetAtlasService(JNIEnv* env) {
- jclass clazz;
-
- FIND_CLASS(clazz, "android/graphics/Canvas");
- GET_METHOD_ID(gCanvasClassInfo.setNativeBitmap, clazz, "setNativeBitmap", "(J)V");
-
return jniRegisterNativeMethods(env, kClassPathName, gMethods, NELEM(gMethods));
}
diff --git a/services/core/jni/com_android_server_fingerprint_FingerprintService.cpp b/services/core/jni/com_android_server_fingerprint_FingerprintService.cpp
index e1c4e27..5a86923 100644
--- a/services/core/jni/com_android_server_fingerprint_FingerprintService.cpp
+++ b/services/core/jni/com_android_server_fingerprint_FingerprintService.cpp
@@ -22,12 +22,20 @@
#include <android_runtime/AndroidRuntime.h>
#include <android_runtime/Log.h>
#include <android_os_MessageQueue.h>
+#include <binder/IServiceManager.h>
+#include <utils/String16.h>
+#include <utils/Looper.h>
+#include <keystore/IKeystoreService.h>
+#include <keystore/keystore.h> // for error code
+
#include <hardware/hardware.h>
#include <hardware/fingerprint.h>
+#include <hardware/hw_auth_token.h>
+
#include <utils/Log.h>
-#include <utils/Looper.h>
#include "core_jni_helpers.h"
+
namespace android {
static const uint16_t kVersion = HARDWARE_MODULE_API_VERSION(2, 0);
@@ -60,6 +68,23 @@ public:
}
};
+static void notifyKeystore(uint8_t *auth_token, size_t auth_token_length) {
+ if (auth_token != NULL && auth_token_length > 0) {
+ // TODO: cache service?
+ sp<IServiceManager> sm = defaultServiceManager();
+ sp<IBinder> binder = sm->getService(String16("android.security.keystore"));
+ sp<IKeystoreService> service = interface_cast<IKeystoreService>(binder);
+ if (service != NULL) {
+ status_t ret = service->addAuthToken(auth_token, auth_token_length);
+ if (ret != ResponseCode::NO_ERROR) {
+ ALOGE("Falure sending auth token to KeyStore: %d", ret);
+ }
+ } else {
+ ALOGE("Unable to communicate with KeyStore");
+ }
+ }
+}
+
// Called by the HAL to notify us of fingerprint events
static void hal_notify_callback(fingerprint_msg_t msg) {
uint32_t arg1 = 0;
@@ -72,9 +97,13 @@ static void hal_notify_callback(fingerprint_msg_t msg) {
case FINGERPRINT_ACQUIRED:
arg1 = msg.data.acquired.acquired_info;
break;
- case FINGERPRINT_PROCESSED:
- arg1 = msg.data.processed.finger.fid;
- arg2 = msg.data.processed.finger.gid;
+ case FINGERPRINT_AUTHENTICATED:
+ arg1 = msg.data.authenticated.finger.fid;
+ arg2 = msg.data.authenticated.finger.gid;
+ if (arg1 != 0) {
+ notifyKeystore(reinterpret_cast<uint8_t *>(&msg.data.authenticated.hat),
+ sizeof(msg.data.authenticated.hat));
+ }
break;
case FINGERPRINT_TEMPLATE_ENROLLING:
arg1 = msg.data.enroll.finger.fid;
@@ -101,15 +130,23 @@ static void nativeInit(JNIEnv *env, jobject clazz, jobject mQueue, jobject callb
gLooper = android_os_MessageQueue_getMessageQueue(env, mQueue)->getLooper();
}
-static jint nativeEnroll(JNIEnv* env, jobject clazz, jlong challenge, jint groupId, jint timeout) {
+static jint nativeEnroll(JNIEnv* env, jobject clazz, jbyteArray token, jint groupId, jint timeout) {
ALOG(LOG_VERBOSE, LOG_TAG, "nativeEnroll(gid=%d, timeout=%d)\n", groupId, timeout);
- int ret = gContext.device->enroll(gContext.device, groupId, timeout);
+ const int tokenSize = env->GetArrayLength(token);
+ jbyte* tokenData = env->GetByteArrayElements(token, 0);
+ if (tokenSize != sizeof(hw_auth_token_t)) {
+ ALOG(LOG_VERBOSE, LOG_TAG, "nativeEnroll() : invalid token size %d\n", tokenSize);
+ return -1;
+ }
+ int ret = gContext.device->enroll(gContext.device,
+ reinterpret_cast<const hw_auth_token_t*>(tokenData), groupId, timeout);
+ env->ReleaseByteArrayElements(token, tokenData, 0);
return reinterpret_cast<jint>(ret);
}
-static jint nativePreEnroll(JNIEnv* env, jobject clazz) {
+static jlong nativePreEnroll(JNIEnv* env, jobject clazz) {
uint64_t ret = gContext.device->pre_enroll(gContext.device);
- ALOG(LOG_VERBOSE, LOG_TAG, "nativePreEnroll(), result = %" PRId64 "\n", ret);
+ // ALOG(LOG_VERBOSE, LOG_TAG, "nativePreEnroll(), result = %llx", ret);
return reinterpret_cast<jlong>((int64_t)ret);
}
@@ -125,7 +162,7 @@ static jint nativeAuthenticate(JNIEnv* env, jobject clazz, jlong sessionId, jint
return reinterpret_cast<jint>(ret);
}
-static jint nativeStopAuthentication(JNIEnv* env, jobject clazz, jlong sessionId) {
+static jint nativeStopAuthentication(JNIEnv* env, jobject clazz) {
ALOG(LOG_VERBOSE, LOG_TAG, "nativeStopAuthentication()\n");
int ret = gContext.device->cancel(gContext.device);
return reinterpret_cast<jint>(ret);
@@ -194,11 +231,12 @@ static jint nativeCloseHal(JNIEnv* env, jobject clazz) {
// ----------------------------------------------------------------------------
+
// TODO: clean up void methods
static const JNINativeMethod g_methods[] = {
{ "nativeAuthenticate", "(JI)I", (void*)nativeAuthenticate },
- { "nativeStopAuthentication", "(J)I", (void*)nativeStopAuthentication },
- { "nativeEnroll", "(JII)I", (void*)nativeEnroll },
+ { "nativeStopAuthentication", "()I", (void*)nativeStopAuthentication },
+ { "nativeEnroll", "([BII)I", (void*)nativeEnroll },
{ "nativePreEnroll", "()J", (void*)nativePreEnroll },
{ "nativeStopEnrollment", "()I", (void*)nativeStopEnrollment },
{ "nativeRemove", "(II)I", (void*)nativeRemove },
diff --git a/services/core/jni/com_android_server_location_FlpHardwareProvider.cpp b/services/core/jni/com_android_server_location_FlpHardwareProvider.cpp
index 852b5e9..2ca5f5a 100644
--- a/services/core/jni/com_android_server_location_FlpHardwareProvider.cpp
+++ b/services/core/jni/com_android_server_location_FlpHardwareProvider.cpp
@@ -31,6 +31,7 @@ static jobject sCallbacksObj = NULL;
static JNIEnv *sCallbackEnv = NULL;
static hw_device_t* sHardwareDevice = NULL;
+static jmethodID sSetVersion = NULL;
static jmethodID sOnLocationReport = NULL;
static jmethodID sOnDataReport = NULL;
static jmethodID sOnBatchingCapabilities = NULL;
@@ -141,6 +142,14 @@ static int SetThreadEvent(ThreadEvent event) {
}
ALOGV("Callback thread attached: %p", sCallbackEnv);
+
+ // Send the version to the upper layer.
+ sCallbackEnv->CallVoidMethod(
+ sCallbacksObj,
+ sSetVersion,
+ sFlpInterface->size == sizeof(FlpLocationInterface) ? 2 : 1
+ );
+ CheckExceptions(sCallbackEnv, __FUNCTION__);
break;
}
case DISASSOCIATE_JVM:
@@ -176,6 +185,10 @@ static void ClassInit(JNIEnv* env, jclass clazz) {
sFlpInterface = NULL;
// get references to the Java provider methods
+ sSetVersion = env->GetMethodID(
+ clazz,
+ "setVersion",
+ "(I)V");
sOnLocationReport = env->GetMethodID(
clazz,
"onLocationReport",
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index c5e1933..e22a2cc 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -32,6 +32,7 @@ import android.app.IActivityManager;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
+import android.app.StatusBarManager;
import android.app.admin.DeviceAdminInfo;
import android.app.admin.DeviceAdminReceiver;
import android.app.admin.DevicePolicyManager;
@@ -102,6 +103,7 @@ import android.view.IWindowManager;
import com.android.internal.R;
import com.android.internal.os.storage.ExternalStorageFormatter;
+import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.JournaledFile;
import com.android.internal.util.Preconditions;
@@ -152,7 +154,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
private static final String DEVICE_POLICIES_XML = "device_policies.xml";
- private static final String LOCK_TASK_COMPONENTS_XML = "lock-task-component";
+ private static final String TAG_LOCK_TASK_COMPONENTS = "lock-task-component";
+
+ private static final String TAG_STATUS_BAR = "statusbar";
+
+ private static final String ATTR_ENABLED = "enabled";
private static final int REQUEST_EXPIRE_PASSWORD = 5571;
@@ -172,6 +178,12 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
private static final String ATTR_DELEGATED_CERT_INSTALLER = "delegated-cert-installer";
+ private static final int STATUS_BAR_DISABLE_MASK =
+ StatusBarManager.DISABLE_EXPAND |
+ StatusBarManager.DISABLE_NOTIFICATION_ICONS |
+ StatusBarManager.DISABLE_NOTIFICATION_ALERTS |
+ StatusBarManager.DISABLE_SEARCH;
+
private static final Set<String> DEVICE_OWNER_USER_RESTRICTIONS;
static {
DEVICE_OWNER_USER_RESTRICTIONS = new HashSet();
@@ -237,6 +249,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
// Stores and loads state on device and profile owners.
private DeviceOwner mDeviceOwner;
+ private final Binder mToken = new Binder();
+
/**
* Whether or not device admin feature is supported. If it isn't return defaults for all
* public methods.
@@ -287,6 +301,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
// This is the list of component allowed to start lock task mode.
final List<String> mLockTaskPackages = new ArrayList<>();
+ boolean mStatusBarEnabledState = true;
+
ComponentName mRestrictionsProvider;
String mDelegatedCertInstallerPackage;
@@ -1429,9 +1445,15 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
for (int i=0; i<policy.mLockTaskPackages.size(); i++) {
String component = policy.mLockTaskPackages.get(i);
- out.startTag(null, LOCK_TASK_COMPONENTS_XML);
+ out.startTag(null, TAG_LOCK_TASK_COMPONENTS);
out.attribute(null, "name", component);
- out.endTag(null, LOCK_TASK_COMPONENTS_XML);
+ out.endTag(null, TAG_LOCK_TASK_COMPONENTS);
+ }
+
+ if (!policy.mStatusBarEnabledState) {
+ out.startTag(null, TAG_STATUS_BAR);
+ out.attribute(null, ATTR_ENABLED, Boolean.toString(policy.mStatusBarEnabledState));
+ out.endTag(null, TAG_STATUS_BAR);
}
out.endTag(null, "policies");
@@ -1552,9 +1574,13 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
policy.mActivePasswordNonLetter = Integer.parseInt(
parser.getAttributeValue(null, "nonletter"));
XmlUtils.skipCurrentTag(parser);
- } else if (LOCK_TASK_COMPONENTS_XML.equals(tag)) {
+ } else if (TAG_LOCK_TASK_COMPONENTS.equals(tag)) {
policy.mLockTaskPackages.add(parser.getAttributeValue(null, "name"));
XmlUtils.skipCurrentTag(parser);
+ } else if (TAG_STATUS_BAR.equals(tag)) {
+ policy.mStatusBarEnabledState = Boolean.parseBoolean(
+ parser.getAttributeValue(null, ATTR_ENABLED));
+ XmlUtils.skipCurrentTag(parser);
} else {
Slog.w(LOG_TAG, "Unknown tag: " + tag);
XmlUtils.skipCurrentTag(parser);
@@ -1612,10 +1638,13 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
private void updateLockTaskPackagesLocked(DevicePolicyData policy, int userId) {
IActivityManager am = ActivityManagerNative.getDefault();
+ long ident = Binder.clearCallingIdentity();
try {
am.updateLockTaskPackages(userId, policy.mLockTaskPackages.toArray(new String[0]));
} catch (RemoteException e) {
// Not gonna happen.
+ } finally {
+ Binder.restoreCallingIdentity(ident);
}
}
@@ -1679,7 +1708,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
if (!mHasFeature) {
return;
}
- getUserData(UserHandle.USER_OWNER);
+ DevicePolicyData policy = getUserData(UserHandle.USER_OWNER);
loadDeviceOwner();
cleanUpOldUsers();
// Register an observer for watching for user setup complete.
@@ -1696,6 +1725,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
getScreenCaptureDisabled(null, userHandle));
}
+ if (mDeviceOwner != null && mDeviceOwner.hasDeviceOwner()
+ && !policy.mStatusBarEnabledState) {
+ setStatusBarEnabledStateInternal(STATUS_BAR_DISABLE_MASK, UserHandle.USER_OWNER);
+ }
}
private void cleanUpOldUsers() {
@@ -5817,12 +5850,12 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
final int userId = UserHandle.getCallingUserId();
LockPatternUtils utils = new LockPatternUtils(mContext);
- // disallow disabling the keyguard if a password is currently set
- if (!enabled && utils.isSecure(userId)) {
- return false;
- }
long ident = Binder.clearCallingIdentity();
try {
+ // disallow disabling the keyguard if a password is currently set
+ if (!enabled && utils.isSecure(userId)) {
+ return false;
+ }
utils.setLockScreenDisabled(!enabled, userId);
} finally {
Binder.restoreCallingIdentity(ident);
@@ -5830,6 +5863,38 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
return true;
}
+ @Override
+ public void setStatusBarEnabledState(ComponentName who, boolean enabled) {
+ int userId = UserHandle.getCallingUserId();
+ synchronized (this) {
+ getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER);
+ DevicePolicyData policy = getUserData(userId);
+ if (policy.mStatusBarEnabledState != enabled) {
+ policy.mStatusBarEnabledState = enabled;
+ setStatusBarEnabledStateInternal(
+ enabled ? StatusBarManager.DISABLE_NONE : STATUS_BAR_DISABLE_MASK,
+ userId);
+ saveSettingsLocked(userId);
+ }
+ }
+ }
+
+ private void setStatusBarEnabledStateInternal(int flags, int userId) {
+ long ident = Binder.clearCallingIdentity();
+ try {
+ IStatusBarService statusBarService = IStatusBarService.Stub.asInterface(
+ ServiceManager.checkService(Context.STATUS_BAR_SERVICE));
+ if (statusBarService != null) {
+ statusBarService.disableForUser(flags, mToken,
+ mDeviceOwner.getDeviceOwnerPackageName(), userId);
+ }
+ } catch (RemoteException e) {
+ Slog.e(LOG_TAG, "Failed to disable the status bar", e);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
/**
* We need to update the internal state of whether a user has completed setup once. After
* that, we ignore any changes that reset the Settings.Secure.USER_SETUP_COMPLETE changes
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
index 8a28d51..7dce83e 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
@@ -393,12 +393,9 @@ public class VoiceInteractionManagerService extends SystemService {
throw new SecurityException(
"Caller is not the current voice interaction service");
}
- final int callingPid = Binder.getCallingPid();
- final int callingUid = Binder.getCallingUid();
final long caller = Binder.clearCallingIdentity();
try {
- mImpl.showSessionLocked(callingPid, callingUid, args, flags,
- null /* showCallback */);
+ mImpl.showSessionLocked(args, flags, null /* showCallback */);
} finally {
Binder.restoreCallingIdentity(caller);
}
@@ -432,12 +429,9 @@ public class VoiceInteractionManagerService extends SystemService {
Slog.w(TAG, "showSessionFromSession without running voice interaction service");
return false;
}
- final int callingPid = Binder.getCallingPid();
- final int callingUid = Binder.getCallingUid();
final long caller = Binder.clearCallingIdentity();
try {
- return mImpl.showSessionLocked(callingPid, callingUid, sessionArgs, flags,
- null /* showCallback */);
+ return mImpl.showSessionLocked(sessionArgs, flags, null /* showCallback */);
} finally {
Binder.restoreCallingIdentity(caller);
}
@@ -506,11 +500,9 @@ public class VoiceInteractionManagerService extends SystemService {
Slog.w(TAG, "finish without running voice interaction service");
return;
}
- final int callingPid = Binder.getCallingPid();
- final int callingUid = Binder.getCallingUid();
final long caller = Binder.clearCallingIdentity();
try {
- mImpl.finishLocked(callingPid, callingUid, token);
+ mImpl.finishLocked(token);
} finally {
Binder.restoreCallingIdentity(caller);
}
@@ -708,11 +700,9 @@ public class VoiceInteractionManagerService extends SystemService {
+ "service");
return;
}
- final int callingPid = Binder.getCallingPid();
- final int callingUid = Binder.getCallingUid();
final long caller = Binder.clearCallingIdentity();
try {
- mImpl.showSessionLocked(callingPid, callingUid, new Bundle() /* sessionArgs */,
+ mImpl.showSessionLocked(new Bundle() /* sessionArgs */,
VoiceInteractionService.START_SOURCE_ASSIST_GESTURE
| VoiceInteractionService.START_WITH_ASSIST
| VoiceInteractionService.START_WITH_SCREENSHOT,
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
index bca757b..61ec162 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl.java
@@ -135,11 +135,11 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
mContext.registerReceiver(mBroadcastReceiver, filter, null, handler);
}
- public boolean showSessionLocked(int callingPid, int callingUid, Bundle args, int flags,
+ public boolean showSessionLocked(Bundle args, int flags,
IVoiceInteractionSessionShowCallback showCallback) {
if (mActiveSession == null) {
mActiveSession = new VoiceInteractionSessionConnection(mLock, mSessionComponentName,
- mUser, mContext, this, callingPid, callingUid);
+ mUser, mContext, this, mInfo.getServiceInfo().applicationInfo.uid);
}
return mActiveSession.showLocked(args, flags, showCallback);
}
@@ -196,7 +196,7 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
}
}
- public void finishLocked(int callingPid, int callingUid, IBinder token) {
+ public void finishLocked(IBinder token) {
if (mActiveSession == null || token != mActiveSession.mToken) {
Slog.w(TAG, "finish does not match active session");
return;
@@ -267,7 +267,7 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
@Override
public void sessionConnectionGone(VoiceInteractionSessionConnection connection) {
synchronized (mLock) {
- finishLocked(connection.mCallingPid, connection.mCallingUid, connection.mToken);
+ finishLocked(connection.mToken);
}
}
}
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
index fb83956..9634ab8 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
@@ -59,7 +59,6 @@ final class VoiceInteractionSessionConnection implements ServiceConnection {
final int mUser;
final Context mContext;
final Callback mCallback;
- final int mCallingPid;
final int mCallingUid;
final IActivityManager mAm;
final IWindowManager mIWindowManager;
@@ -139,13 +138,12 @@ final class VoiceInteractionSessionConnection implements ServiceConnection {
};
public VoiceInteractionSessionConnection(Object lock, ComponentName component, int user,
- Context context, Callback callback, int callingPid, int callingUid) {
+ Context context, Callback callback, int callingUid) {
mLock = lock;
mSessionComponentName = component;
mUser = user;
mContext = context;
mCallback = callback;
- mCallingPid = callingPid;
mCallingUid = callingUid;
mAm = ActivityManagerNative.getDefault();
mIWindowManager = IWindowManager.Stub.asInterface(
diff --git a/telecomm/java/android/telecom/AudioState.java b/telecomm/java/android/telecom/AudioState.java
index 9c03319..465c5f4 100644
--- a/telecomm/java/android/telecom/AudioState.java
+++ b/telecomm/java/android/telecom/AudioState.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
@@ -25,9 +24,7 @@ import java.util.Locale;
/**
* Encapsulates the telecom audio state, including the current audio routing, supported audio
* routing and mute.
- * @hide
*/
-@SystemApi
public final class AudioState implements Parcelable {
/** Direct the audio stream through the device's earpiece. */
public static final int ROUTE_EARPIECE = 0x00000001;
@@ -47,21 +44,13 @@ public final class AudioState implements Parcelable {
*/
public static final int ROUTE_WIRED_OR_EARPIECE = ROUTE_EARPIECE | ROUTE_WIRED_HEADSET;
- /** Bit mask of all possible audio routes.
- *
- * @hide
- */
- public static final int ROUTE_ALL = ROUTE_EARPIECE | ROUTE_BLUETOOTH | ROUTE_WIRED_HEADSET |
+ /** Bit mask of all possible audio routes. */
+ private static final int ROUTE_ALL = ROUTE_EARPIECE | ROUTE_BLUETOOTH | ROUTE_WIRED_HEADSET |
ROUTE_SPEAKER;
- /** Note: Deprecated, please do not use if possible. */
- @SystemApi public final boolean isMuted;
-
- /** Note: Deprecated, please do not use if possible. */
- @SystemApi public final int route;
-
- /** Note: Deprecated, please do not use if possible. */
- @SystemApi public final int supportedRouteMask;
+ private final boolean isMuted;
+ private final int route;
+ private final int supportedRouteMask;
public AudioState(boolean muted, int route, int supportedRouteMask) {
this.isMuted = muted;
@@ -97,7 +86,6 @@ public final class AudioState implements Parcelable {
audioRouteToString(supportedRouteMask));
}
- /** @hide */
public static String audioRouteToString(int route) {
if (route == 0 || (route & ~ROUTE_ALL) != 0x0) {
return "UNKNOWN";
diff --git a/telecomm/java/android/telecom/AuthenticatorService.java b/telecomm/java/android/telecom/AuthenticatorService.java
index 7aa105d..1e43c71 100644
--- a/telecomm/java/android/telecom/AuthenticatorService.java
+++ b/telecomm/java/android/telecom/AuthenticatorService.java
@@ -19,7 +19,6 @@ import android.accounts.AbstractAccountAuthenticator;
import android.accounts.Account;
import android.accounts.AccountAuthenticatorResponse;
import android.accounts.NetworkErrorException;
-import android.annotation.SystemApi;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
@@ -32,7 +31,6 @@ import android.os.IBinder;
*
* @hide
*/
-@SystemApi
public class AuthenticatorService extends Service {
private static Authenticator mAuthenticator;
diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java
index 5051309..33a7fe1 100644
--- a/telecomm/java/android/telecom/Call.java
+++ b/telecomm/java/android/telecom/Call.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.net.Uri;
import android.os.Bundle;
@@ -30,10 +29,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
* Represents an ongoing phone call that the in-call app should present to the user.
- *
- * {@hide}
*/
-@SystemApi
public final class Call {
/**
* The state of a {@code Call} when newly created.
@@ -91,8 +87,6 @@ public final class Call {
* The key to retrieve the optional {@code PhoneAccount}s Telecom can bundle with its Call
* extras. Used to pass the phone accounts to display on the front end to the user in order to
* select phone accounts to (for example) place a call.
- *
- * @hide
*/
public static final String AVAILABLE_PHONE_ACCOUNTS = "selectPhoneAccountAccounts";
@@ -142,38 +136,32 @@ public final class Call {
/**
* Local device supports receiving video.
- * @hide
*/
public static final int CAPABILITY_SUPPORTS_VT_LOCAL_RX = 0x00000100;
/**
* Local device supports transmitting video.
- * @hide
*/
public static final int CAPABILITY_SUPPORTS_VT_LOCAL_TX = 0x00000200;
/**
* Local device supports bidirectional video calling.
- * @hide
*/
public static final int CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL =
CAPABILITY_SUPPORTS_VT_LOCAL_RX | CAPABILITY_SUPPORTS_VT_LOCAL_TX;
/**
* Remote device supports receiving video.
- * @hide
*/
public static final int CAPABILITY_SUPPORTS_VT_REMOTE_RX = 0x00000400;
/**
* Remote device supports transmitting video.
- * @hide
*/
public static final int CAPABILITY_SUPPORTS_VT_REMOTE_TX = 0x00000800;
/**
* Remote device supports bidirectional video calling.
- * @hide
*/
public static final int CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL =
CAPABILITY_SUPPORTS_VT_REMOTE_RX | CAPABILITY_SUPPORTS_VT_REMOTE_TX;
@@ -191,27 +179,21 @@ public final class Call {
/**
* Whether the call is a generic conference, where we do not know the precise state of
* participants in the conference (eg. on CDMA).
- *
- * @hide
*/
public static final int CAPABILITY_GENERIC_CONFERENCE = 0x00004000;
/**
* Call is using high definition audio.
- * @hide
*/
public static final int CAPABILITY_HIGH_DEF_AUDIO = 0x00008000;
/**
* Call is using WIFI.
- * @hide
*/
public static final int CAPABILITY_WIFI = 0x00010000;
/**
* Indicates that the current device callback number should be shown.
- *
- * @hide
*/
public static final int CAPABILITY_SHOW_CALLBACK_NUMBER = 0x00020000;
@@ -259,7 +241,6 @@ public final class Call {
* @param capabilities A bit field of capabilities.
* @param capability The capability to check capabilities for.
* @return Whether the specified capability is supported.
- * @hide
*/
public static boolean can(int capabilities, int capability) {
return (capabilities & capability) != 0;
@@ -270,7 +251,6 @@ public final class Call {
*
* @param capability The capability to check capabilities for.
* @return Whether the specified capability is supported.
- * @hide
*/
public boolean can(int capability) {
return can(mCallCapabilities, capability);
@@ -417,7 +397,7 @@ public final class Call {
* periodically, but user interfaces should not rely on this to display any "call time
* clock".
*/
- public long getConnectTimeMillis() {
+ public final long getConnectTimeMillis() {
return mConnectTimeMillis;
}
@@ -593,7 +573,6 @@ public final class Call {
*
* @param call The {@code Call} invoking this method.
* @param videoCall The {@code Call.VideoCall} associated with the {@code Call}.
- * @hide
*/
public void onVideoCallChanged(Call call, InCallService.VideoCall videoCall) {}
@@ -846,7 +825,6 @@ public final class Call {
* Obtains an object that can be used to display video from this {@code Call}.
*
* @return An {@code Call.VideoCall}.
- * @hide
*/
public InCallService.VideoCall getVideoCall() {
return mVideoCall;
diff --git a/telecomm/java/android/telecom/CallProperties.java b/telecomm/java/android/telecom/CallProperties.java
index b1b82e2..1721a392e 100644
--- a/telecomm/java/android/telecom/CallProperties.java
+++ b/telecomm/java/android/telecom/CallProperties.java
@@ -18,7 +18,6 @@ package android.telecom;
/**
* Defines properties of a phone call which may be affected by changes to the call.
- * @hide
*/
public class CallProperties {
/** Call is currently in a conference call. */
diff --git a/telecomm/java/android/telecom/CallState.java b/telecomm/java/android/telecom/CallState.java
index bd9223a..5584226 100644
--- a/telecomm/java/android/telecom/CallState.java
+++ b/telecomm/java/android/telecom/CallState.java
@@ -16,17 +16,12 @@
package android.telecom;
-import android.annotation.SystemApi;
-
/**
* Defines call-state constants of the different states in which a call can exist. Although states
* have the notion of normal transitions, due to the volatile nature of telephony systems, code
* that uses these states should be resilient to unexpected state changes outside of what is
* considered traditional.
- *
- * {@hide}
*/
-@SystemApi
public final class CallState {
private CallState() {}
diff --git a/telecomm/java/android/telecom/CameraCapabilities.java b/telecomm/java/android/telecom/CameraCapabilities.java
index 6eaf6a2..6242956 100644
--- a/telecomm/java/android/telecom/CameraCapabilities.java
+++ b/telecomm/java/android/telecom/CameraCapabilities.java
@@ -21,7 +21,6 @@ import android.os.Parcelable;
/**
* Represents the camera capabilities important to a Video Telephony provider.
- * @hide
*/
public final class CameraCapabilities implements Parcelable {
@@ -46,7 +45,7 @@ public final class CameraCapabilities implements Parcelable {
private final float mMaxZoom;
/**
- * Create a call camera capabilities instance that doesn't support zoom.
+ * Create a call camera capabilities instance.
*
* @param width The width of the camera video (in pixels).
* @param height The height of the camera video (in pixels).
@@ -56,7 +55,8 @@ public final class CameraCapabilities implements Parcelable {
}
/**
- * Create a call camera capabilities instance.
+ * Create a call camera capabilities instance that optionally
+ * supports zoom.
*
* @param width The width of the camera video (in pixels).
* @param height The height of the camera video (in pixels).
diff --git a/telecomm/java/android/telecom/Conference.java b/telecomm/java/android/telecom/Conference.java
index ddaedcd..15a1da1 100644
--- a/telecomm/java/android/telecom/Conference.java
+++ b/telecomm/java/android/telecom/Conference.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.telecom.Connection.VideoProvider;
import java.util.ArrayList;
@@ -29,16 +28,14 @@ import java.util.concurrent.CopyOnWriteArraySet;
/**
* Represents a conference call which can contain any number of {@link Connection} objects.
- * @hide
*/
-@SystemApi
public abstract class Conference implements IConferenceable {
/**
* Used to indicate that the conference connection time is not specified. If not specified,
* Telecom will set the connect time.
*/
- public static long CONNECT_TIME_NOT_SPECIFIED = 0;
+ public static final long CONNECT_TIME_NOT_SPECIFIED = 0;
/** @hide */
public abstract static class Listener {
@@ -63,7 +60,7 @@ public abstract class Conference implements IConferenceable {
private final List<Connection> mUnmodifiableConferenceableConnections =
Collections.unmodifiableList(mConferenceableConnections);
- protected PhoneAccountHandle mPhoneAccount;
+ private PhoneAccountHandle mPhoneAccount;
private AudioState mAudioState;
private int mState = Connection.STATE_NEW;
private DisconnectCause mDisconnectCause;
@@ -116,11 +113,6 @@ public abstract class Conference implements IConferenceable {
return mState;
}
- /** @hide */
- @Deprecated public final int getCapabilities() {
- return getConnectionCapabilities();
- }
-
/**
* Returns the capabilities of a conference. See {@code CAPABILITY_*} constants in class
* {@link Connection} for valid values.
@@ -301,11 +293,6 @@ public abstract class Conference implements IConferenceable {
return mDisconnectCause;
}
- /** @hide */
- @Deprecated public final void setCapabilities(int connectionCapabilities) {
- setConnectionCapabilities(connectionCapabilities);
- }
-
/**
* Sets the capabilities of a conference. See {@code CAPABILITY_*} constants of class
* {@link Connection} for valid values.
@@ -497,7 +484,7 @@ public abstract class Conference implements IConferenceable {
*
* @return The time the {@code Conference} has been connected.
*/
- public long getConnectTimeMillis() {
+ public final long getConnectTimeMillis() {
return mConnectTimeMillis;
}
diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java
index 77d74b3..4762031 100644
--- a/telecomm/java/android/telecom/Connection.java
+++ b/telecomm/java/android/telecom/Connection.java
@@ -19,7 +19,6 @@ package android.telecom;
import com.android.internal.telecom.IVideoCallback;
import com.android.internal.telecom.IVideoProvider;
-import android.annotation.SystemApi;
import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
@@ -44,9 +43,7 @@ import java.util.concurrent.ConcurrentHashMap;
* Implementations are then responsible for updating the state of the {@code Connection}, and
* must call {@link #destroy()} to signal to the framework that the {@code Connection} is no
* longer used and associated resources may be recovered.
- * @hide
*/
-@SystemApi
public abstract class Connection implements IConferenceable {
public static final int STATE_INITIALIZING = 0;
@@ -386,7 +383,6 @@ public abstract class Connection implements IConferenceable {
public void onCallSubstateChanged(Connection c, int substate) {}
}
- /** @hide */
public static abstract class VideoProvider {
/**
@@ -1004,11 +1000,6 @@ public abstract class Connection implements IConferenceable {
return mConnectionCapabilities;
}
- /** @hide */
- @SystemApi @Deprecated public final int getCallCapabilities() {
- return getConnectionCapabilities();
- }
-
/**
* Sets the value of the {@link #getAddress()} property.
*
@@ -1144,7 +1135,6 @@ public abstract class Connection implements IConferenceable {
}
}
- /** @hide */
public final VideoProvider getVideoProvider() {
return mVideoProvider;
}
@@ -1212,11 +1202,6 @@ public abstract class Connection implements IConferenceable {
}
}
- /** @hide */
- @SystemApi @Deprecated public final void setCallCapabilities(int connectionCapabilities) {
- setConnectionCapabilities(connectionCapabilities);
- }
-
/**
* Sets the connection's capabilities as a bit mask of the {@code CAPABILITY_*} constants.
*
@@ -1606,6 +1591,7 @@ public abstract class Connection implements IConferenceable {
/**
* Notifies listeners that a conference call has been started.
+ * @hide
*/
protected void notifyConferenceStarted() {
for (Listener l : mListeners) {
diff --git a/telecomm/java/android/telecom/ConnectionRequest.java b/telecomm/java/android/telecom/ConnectionRequest.java
index f691c17..71b481b 100644
--- a/telecomm/java/android/telecom/ConnectionRequest.java
+++ b/telecomm/java/android/telecom/ConnectionRequest.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcel;
@@ -25,9 +24,7 @@ import android.os.Parcelable;
/**
* Simple data container encapsulating a request to some entity to
* create a new {@link Connection}.
- * @hide
*/
-@SystemApi
public final class ConnectionRequest implements Parcelable {
// TODO: Token to limit recursive invocations
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index 0c719cd..e36d32b 100644
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -17,7 +17,6 @@
package android.telecom;
import android.annotation.SdkConstant;
-import android.annotation.SystemApi;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
@@ -72,9 +71,7 @@ import java.util.concurrent.ConcurrentHashMap;
* receives call-commands such as answer, reject, hold and disconnect.
* <p>
* When there are no more live calls, telecom will unbind from the {@code ConnectionService}.
- * @hide
*/
-@SystemApi
public abstract class ConnectionService extends Service {
/**
* The {@link Intent} that must be declared as handled by the service.
diff --git a/telecomm/java/android/telecom/DisconnectCause.java b/telecomm/java/android/telecom/DisconnectCause.java
index 130d676..73bcd0c 100644
--- a/telecomm/java/android/telecom/DisconnectCause.java
+++ b/telecomm/java/android/telecom/DisconnectCause.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
import android.media.ToneGenerator;
@@ -30,9 +29,7 @@ import java.util.Objects;
* user. It is the responsibility of the {@link ConnectionService} to provide localized versions of
* the label and description. It also may contain a reason for the disconnect, which is intended for
* logging and not for display to the user.
- * @hide
*/
-@SystemApi
public final class DisconnectCause implements Parcelable {
/** Disconnected because of an unknown or unspecified reason. */
diff --git a/telecomm/java/android/telecom/GatewayInfo.java b/telecomm/java/android/telecom/GatewayInfo.java
index 5b8e4ab..928570e 100644
--- a/telecomm/java/android/telecom/GatewayInfo.java
+++ b/telecomm/java/android/telecom/GatewayInfo.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
@@ -34,17 +33,13 @@ import android.text.TextUtils;
* <li> Call the appropriate gateway address.
* <li> Display information about how the call is being routed to the user.
* </ol>
- * @hide
*/
-@SystemApi
public class GatewayInfo implements Parcelable {
private final String mGatewayProviderPackageName;
private final Uri mGatewayAddress;
private final Uri mOriginalAddress;
- /** @hide */
- @SystemApi
public GatewayInfo(String packageName, Uri gatewayUri, Uri originalAddress) {
mGatewayProviderPackageName = packageName;
mGatewayAddress = gatewayUri;
diff --git a/telecomm/java/android/telecom/IConferenceable.java b/telecomm/java/android/telecom/IConferenceable.java
index 095d7cb..a9be20b 100644
--- a/telecomm/java/android/telecom/IConferenceable.java
+++ b/telecomm/java/android/telecom/IConferenceable.java
@@ -16,16 +16,11 @@
package android.telecom;
-import android.annotation.SystemApi;
-
/**
* Interface used to identify entities with which another entity can participate in a conference
* call with. The {@link ConnectionService} implementation will only recognize
* {@link IConferenceable}s which are {@link Connection}s or {@link Conference}s.
- *
- * @hide
*/
-@SystemApi
public interface IConferenceable {
}
diff --git a/telecomm/java/android/telecom/InCallService.java b/telecomm/java/android/telecom/InCallService.java
index c0c59fa..66072da 100644
--- a/telecomm/java/android/telecom/InCallService.java
+++ b/telecomm/java/android/telecom/InCallService.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.annotation.SdkConstant;
import android.app.Service;
import android.content.Intent;
@@ -36,10 +35,7 @@ import java.lang.String;
* This service is implemented by any app that wishes to provide the user-interface for managing
* phone calls. Telecom binds to this service while there exists a live (active or incoming) call,
* and uses it to notify the in-call app of any live and and recently disconnected calls.
- *
- * {@hide}
*/
-@SystemApi
public abstract class InCallService extends Service {
/**
@@ -177,7 +173,7 @@ public abstract class InCallService extends Service {
* if the {@code InCallService} is not in a state where it has an associated
* {@code Phone}.
*/
- public Phone getPhone() {
+ public final Phone getPhone() {
return mPhone;
}
@@ -205,7 +201,6 @@ public abstract class InCallService extends Service {
/**
* Class to invoke functionality related to video calls.
- * @hide
*/
public static abstract class VideoCall {
@@ -302,7 +297,6 @@ public abstract class InCallService extends Service {
/**
* Listener class which invokes callbacks after video call actions occur.
- * @hide
*/
public static abstract class Listener {
/**
diff --git a/telecomm/java/android/telecom/Phone.java b/telecomm/java/android/telecom/Phone.java
index 6344181..d9a9cdf 100644
--- a/telecomm/java/android/telecom/Phone.java
+++ b/telecomm/java/android/telecom/Phone.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.util.ArrayMap;
import java.util.Collections;
@@ -27,10 +26,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
* A unified virtual device providing a means of voice (and other) communication on a device.
- *
- * {@hide}
*/
-@SystemApi
public final class Phone {
public abstract static class Listener {
@@ -244,6 +240,8 @@ public final class Phone {
* become active, and the touch screen and display will be turned off when the user's face
* is detected to be in close proximity to the screen. This operation is a no-op on devices
* that do not have a proximity sensor.
+ *
+ * @hide
*/
public final void setProximitySensorOn() {
mInCallAdapter.turnProximitySensorOn();
@@ -257,6 +255,8 @@ public final class Phone {
* @param screenOnImmediately If true, the screen will be turned on immediately if it was
* previously off. Otherwise, the screen will only be turned on after the proximity sensor
* is no longer triggered.
+ *
+ * @hide
*/
public final void setProximitySensorOff(boolean screenOnImmediately) {
mInCallAdapter.turnProximitySensorOff(screenOnImmediately);
diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java
index 07f9053..bab460d 100644
--- a/telecomm/java/android/telecom/PhoneAccount.java
+++ b/telecomm/java/android/telecom/PhoneAccount.java
@@ -60,9 +60,7 @@ public class PhoneAccount implements Parcelable {
* if the user has explicitly selected it to be used as the default connection manager.
* <p>
* See {@link #getCapabilities}
- * @hide
*/
- @SystemApi
public static final int CAPABILITY_CONNECTION_MANAGER = 0x1;
/**
@@ -74,9 +72,7 @@ public class PhoneAccount implements Parcelable {
* <p>
* See {@link #getCapabilities}
* <p>
- * {@hide}
*/
- @SystemApi
public static final int CAPABILITY_CALL_PROVIDER = 0x2;
/**
@@ -203,13 +199,6 @@ public class PhoneAccount implements Parcelable {
mSupportedUriSchemes.addAll(phoneAccount.getSupportedUriSchemes());
}
- /** @hide */
- @SystemApi
- public Builder setAccountHandle(PhoneAccountHandle accountHandle) {
- mAccountHandle = accountHandle;
- return this;
- }
-
/**
* Sets the address. See {@link PhoneAccount#getAddress}.
*
@@ -333,9 +322,7 @@ public class PhoneAccount implements Parcelable {
*
* @param uriScheme The URI scheme.
* @return The builder.
- * @hide
*/
- @SystemApi
public Builder addSupportedUriScheme(String uriScheme) {
if (!TextUtils.isEmpty(uriScheme) && !mSupportedUriSchemes.contains(uriScheme)) {
this.mSupportedUriSchemes.add(uriScheme);
@@ -424,9 +411,7 @@ public class PhoneAccount implements Parcelable {
* Returns a builder initialized with the current {@link PhoneAccount} instance.
*
* @return The builder.
- * @hide
*/
- @SystemApi
public Builder toBuilder() { return new Builder(this); }
/**
diff --git a/telecomm/java/android/telecom/PhoneAccountHandle.java b/telecomm/java/android/telecom/PhoneAccountHandle.java
index 4600b72..60917b2 100644
--- a/telecomm/java/android/telecom/PhoneAccountHandle.java
+++ b/telecomm/java/android/telecom/PhoneAccountHandle.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.content.ComponentName;
import android.os.Parcel;
import android.os.Parcelable;
@@ -47,8 +46,6 @@ public class PhoneAccountHandle implements Parcelable {
this(componentName, id, Process.myUserHandle());
}
- /** @hide */
- @SystemApi
public PhoneAccountHandle(
ComponentName componentName,
String id,
@@ -91,9 +88,7 @@ public class PhoneAccountHandle implements Parcelable {
/**
* @return the {@link UserHandle} to use when connecting to this PhoneAccount.
- * @hide
*/
- @SystemApi
public UserHandle getUserHandle() {
return mUserHandle;
}
diff --git a/telecomm/java/android/telecom/RemoteConference.java b/telecomm/java/android/telecom/RemoteConference.java
index a8879ae..fba3ee3 100644
--- a/telecomm/java/android/telecom/RemoteConference.java
+++ b/telecomm/java/android/telecom/RemoteConference.java
@@ -18,7 +18,6 @@ package android.telecom;
import com.android.internal.telecom.IConnectionService;
-import android.annotation.SystemApi;
import android.os.RemoteException;
import java.util.ArrayList;
@@ -30,9 +29,7 @@ import java.util.concurrent.CopyOnWriteArraySet;
/**
* Represents a conference call which can contain any number of {@link Connection} objects.
- * @hide
*/
-@SystemApi
public final class RemoteConference {
public abstract static class Callback {
@@ -164,11 +161,6 @@ public final class RemoteConference {
return mState;
}
- /** @hide */
- @Deprecated public final int getCallCapabilities() {
- return getConnectionCapabilities();
- }
-
public final int getConnectionCapabilities() {
return mConnectionCapabilities;
}
diff --git a/telecomm/java/android/telecom/RemoteConnection.java b/telecomm/java/android/telecom/RemoteConnection.java
index be7a0a0..009ec5b 100644
--- a/telecomm/java/android/telecom/RemoteConnection.java
+++ b/telecomm/java/android/telecom/RemoteConnection.java
@@ -20,7 +20,6 @@ import com.android.internal.telecom.IConnectionService;
import com.android.internal.telecom.IVideoCallback;
import com.android.internal.telecom.IVideoProvider;
-import android.annotation.SystemApi;
import android.net.Uri;
import android.os.IBinder;
import android.os.RemoteException;
@@ -38,9 +37,7 @@ import java.util.concurrent.ConcurrentHashMap;
*
* @see ConnectionService#createRemoteOutgoingConnection(PhoneAccountHandle, ConnectionRequest)
* @see ConnectionService#createRemoteIncomingConnection(PhoneAccountHandle, ConnectionRequest)
- * @hide
*/
-@SystemApi
public final class RemoteConnection {
public static abstract class Callback {
@@ -73,11 +70,6 @@ public final class RemoteConnection {
*/
public void onRingbackRequested(RemoteConnection connection, boolean ringback) {}
- /** @hide */
- @Deprecated public void onCallCapabilitiesChanged(
- RemoteConnection connection,
- int callCapabilities) {}
-
/**
* Indicates that the call capabilities of this {@code RemoteConnection} have changed.
* See {@link #getConnectionCapabilities()}.
@@ -870,7 +862,6 @@ public final class RemoteConnection {
mConnectionCapabilities = connectionCapabilities;
for (Callback c : mCallbacks) {
c.onConnectionCapabilitiesChanged(this, connectionCapabilities);
- c.onCallCapabilitiesChanged(this, connectionCapabilities);
}
}
diff --git a/telecomm/java/android/telecom/StatusHints.java b/telecomm/java/android/telecom/StatusHints.java
index dd3a639..a32eae7 100644
--- a/telecomm/java/android/telecom/StatusHints.java
+++ b/telecomm/java/android/telecom/StatusHints.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
@@ -30,9 +29,7 @@ import java.util.Objects;
/**
* Contains status label and icon displayed in the in-call UI.
- * @hide
*/
-@SystemApi
public final class StatusHints implements Parcelable {
private final ComponentName mPackageName;
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index ab7864b..60b9cb9 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -55,8 +55,6 @@ public class TelecomManager {
* Input: get*Extra field {@link #EXTRA_PHONE_ACCOUNT_HANDLE} contains the component name of the
* {@link android.telecom.ConnectionService} that Telecom should bind to. Telecom will then
* ask the connection service for more information about the call prior to showing any UI.
- *
- * @hide
*/
public static final String ACTION_INCOMING_CALL = "android.telecom.action.INCOMING_CALL";
@@ -97,9 +95,7 @@ public class TelecomManager {
/**
* The {@link android.content.Intent} action used to show the settings page used to configure
* {@link PhoneAccount} preferences.
- * @hide
*/
- @SystemApi
public static final String ACTION_CHANGE_PHONE_ACCOUNTS =
"android.telecom.action.CHANGE_PHONE_ACCOUNTS";
@@ -145,10 +141,7 @@ public class TelecomManager {
* Optional extra for {@link #ACTION_INCOMING_CALL} containing a {@link Bundle} which contains
* metadata about the call. This {@link Bundle} will be returned to the
* {@link ConnectionService}.
- *
- * @hide
*/
- @SystemApi
public static final String EXTRA_INCOMING_CALL_EXTRAS =
"android.telecom.extra.INCOMING_CALL_EXTRAS";
@@ -221,9 +214,7 @@ public class TelecomManager {
* {@link ConnectionService}s which interact with {@link RemoteConnection}s should only populate
* this if the {@link android.telephony.TelephonyManager#getLine1Number()} value, as that is the
* user's expected caller ID.
- * @hide
*/
- @SystemApi
public static final String EXTRA_CALL_BACK_NUMBER = "android.telecom.extra.CALL_BACK_NUMBER";
/**
@@ -364,9 +355,7 @@ public class TelecomManager {
* @param uriScheme The URI scheme.
* @return The {@link PhoneAccountHandle} corresponding to the user-chosen default for outgoing
* phone calls for a specified URI scheme.
- * @hide
*/
- @SystemApi
public PhoneAccountHandle getDefaultOutgoingPhoneAccount(String uriScheme) {
try {
if (isServiceConnected()) {
@@ -419,7 +408,6 @@ public class TelecomManager {
* {@code null}, indicating that there currently exists no user-chosen default
* {@code PhoneAccount}.
* @return The phone account handle of the current sim call manager.
- * @hide
*/
public PhoneAccountHandle getSimCallManager() {
try {
@@ -532,19 +520,6 @@ public class TelecomManager {
}
/**
- * Determine whether the device has more than one account registered that can make and receive
- * phone calls.
- *
- * @return {@code true} if the device has more than one account registered and {@code false}
- * otherwise.
- * @hide
- */
- @SystemApi
- public boolean hasMultipleCallCapableAccounts() {
- return getCallCapablePhoneAccounts().size() > 1;
- }
-
- /**
* Returns a list of all {@link PhoneAccount}s registered for the calling package.
*
* @return A list of {@code PhoneAccountHandle} objects.
@@ -647,10 +622,7 @@ public class TelecomManager {
* {@link PhoneAccountHandle#getComponentName()} does not match the package name of the app.
*
* @param account The complete {@link PhoneAccount}.
- *
- * @hide
*/
- @SystemApi
public void registerPhoneAccount(PhoneAccount account) {
try {
if (isServiceConnected()) {
@@ -665,9 +637,7 @@ public class TelecomManager {
* Remove a {@link PhoneAccount} registration from the system.
*
* @param accountHandle A {@link PhoneAccountHandle} for the {@link PhoneAccount} to unregister.
- * @hide
*/
- @SystemApi
public void unregisterPhoneAccount(PhoneAccountHandle accountHandle) {
try {
if (isServiceConnected()) {
@@ -683,6 +653,15 @@ public class TelecomManager {
* @hide
*/
@SystemApi
+ public void clearPhoneAccounts() {
+ clearAccounts();
+ }
+ /**
+ * Remove all Accounts that belong to the calling package from the system.
+ * @deprecated Use {@link #clearPhoneAccounts()} instead.
+ * @hide
+ */
+ @SystemApi
public void clearAccounts() {
try {
if (isServiceConnected()) {
@@ -728,10 +707,7 @@ public class TelecomManager {
*
* @param accountHandle The handle for the account to check the voicemail number against
* @param number The number to look up.
- *
- * @hide
*/
- @SystemApi
public boolean isVoiceMailNumber(PhoneAccountHandle accountHandle, String number) {
try {
if (isServiceConnected()) {
@@ -748,10 +724,7 @@ public class TelecomManager {
*
* @param accountHandle The handle for the account to check for a voicemail number.
* @return {@code true} If the given phone account has a voicemail number.
- *
- * @hide
*/
- @SystemApi
public boolean hasVoiceMailNumber(PhoneAccountHandle accountHandle) {
try {
if (isServiceConnected()) {
@@ -768,10 +741,7 @@ public class TelecomManager {
*
* @param accountHandle The handle for the account retrieve a number for.
* @return A string representation of the line 1 phone number.
- *
- * @hide
*/
- @SystemApi
public String getLine1Number(PhoneAccountHandle accountHandle) {
try {
if (isServiceConnected()) {
@@ -881,10 +851,7 @@ public class TelecomManager {
/**
* Silences the ringer if a ringing call exists.
- *
- * @hide
*/
- @SystemApi
public void silenceRinger() {
try {
if (isServiceConnected()) {
@@ -945,9 +912,7 @@ public class TelecomManager {
* {@link #registerPhoneAccount}.
* @param extras A bundle that will be passed through to
* {@link ConnectionService#onCreateIncomingConnection}.
- * @hide
*/
- @SystemApi
public void addNewIncomingCall(PhoneAccountHandle phoneAccount, Bundle extras) {
try {
if (isServiceConnected()) {
@@ -1017,10 +982,8 @@ public class TelecomManager {
* @param accountHandle The handle for the account the MMI code should apply to.
* @param dialString The digits to dial.
* @return True if the digits were processed as an MMI code, false otherwise.
- * @hide
*/
- @SystemApi
- public boolean handleMmi(PhoneAccountHandle accountHandle, String dialString) {
+ public boolean handleMmi(String dialString, PhoneAccountHandle accountHandle) {
ITelecomService service = getTelecomService();
if (service != null) {
try {
@@ -1037,9 +1000,7 @@ public class TelecomManager {
* {@code null} to return a URI which will use the default account.
* @return The URI (with the content:// scheme) specific to the specified {@link PhoneAccount}
* for the the content retrieve.
- * @hide
*/
- @SystemApi
public Uri getAdnUriForPhoneAccount(PhoneAccountHandle accountHandle) {
ITelecomService service = getTelecomService();
if (service != null && accountHandle != null) {
diff --git a/telecomm/java/android/telecom/Voicemail.java b/telecomm/java/android/telecom/Voicemail.java
index 186c199..f5b8052 100644
--- a/telecomm/java/android/telecom/Voicemail.java
+++ b/telecomm/java/android/telecom/Voicemail.java
@@ -16,7 +16,6 @@
package android.telecom;
-import android.annotation.SystemApi;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
@@ -26,7 +25,6 @@ import android.os.Parcelable;
*
* @hide
*/
-@SystemApi
public class Voicemail implements Parcelable {
private final Long mTimestamp;
private final String mNumber;
@@ -277,4 +275,4 @@ public class Voicemail implements Parcelable {
mIsRead = in.readInt() > 0 ? true : false;
mHasContent = in.readInt() > 0 ? true : false;
}
-} \ No newline at end of file
+}
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index c5573ba..4486c95 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -160,7 +160,6 @@ public class TelephonyManager {
* Returns 1 for Single standby mode (Single SIM functionality)
* Returns 2 for Dual standby mode.(Dual SIM functionality)
*/
- /** {@hide} */
public int getPhoneCount() {
int phoneCount = 1;
switch (getMultiSimConfiguration()) {
@@ -682,7 +681,6 @@ public class TelephonyManager {
*
* @param slotId of which deviceID is returned
*/
- /** {@hide} */
public String getDeviceId(int slotId) {
// FIXME this assumes phoneId == slotId
try {
diff --git a/tests/LockTaskTests/Android.mk b/tests/LockTaskTests/Android.mk
new file mode 100644
index 0000000..ed58643
--- /dev/null
+++ b/tests/LockTaskTests/Android.mk
@@ -0,0 +1,15 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/system/priv-app
+
+LOCAL_PACKAGE_NAME := LockTaskTests
+LOCAL_CERTIFICATE := platform
+
+LOCAL_SRC_FILES := $(call all-Iaidl-files-under, src) $(call all-java-files-under, src)
+
+include $(BUILD_PACKAGE)
+
+# Use the following include to make our test apk.
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/LockTaskTests/AndroidManifest.xml b/tests/LockTaskTests/AndroidManifest.xml
new file mode 100644
index 0000000..f88744e
--- /dev/null
+++ b/tests/LockTaskTests/AndroidManifest.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.google.android.example.locktasktests"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk
+ android:minSdkVersion="22"
+ android:targetSdkVersion="22" />
+ <uses-permission android:name="android.permission.INTERNET"/>
+
+ <application
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name"
+ android:theme="@style/AppTheme"
+ android:allowBackup="true" >
+ <activity
+ android:name="com.google.android.example.locktasktests.MainActivity"
+ android:label="@string/app_name"
+ android:screenOrientation="portrait"
+ android:theme="@style/AppTheme" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ <activity
+ android:name="com.google.android.example.locktasktests.LockDefaultActivity"
+ android:label="@string/title_activity_default"
+ android:taskAffinity=""
+ android:documentLaunchMode="always"
+ android:lockTaskMode="lockTaskModeDefault" >
+ </activity>
+ <activity
+ android:name="com.google.android.example.locktasktests.LockTaskNeverActivity"
+ android:label="@string/title_activity_never"
+ android:taskAffinity=""
+ android:documentLaunchMode="always"
+ android:lockTaskMode="lockTaskModeNever" >
+ </activity>
+ <activity
+ android:name="com.google.android.example.locktasktests.LockWhitelistedActivity"
+ android:label="@string/title_activity_whitelist"
+ android:taskAffinity=""
+ android:documentLaunchMode="always"
+ android:lockTaskMode="lockTaskModeIfWhitelisted" >
+ </activity>
+ <activity
+ android:name="com.google.android.example.locktasktests.LockAtLaunchActivity"
+ android:label="@string/title_activity_always"
+ android:taskAffinity=""
+ android:documentLaunchMode="always"
+ android:lockTaskMode="lockTaskModeAlways" >
+ </activity>
+ </application>
+
+</manifest>
diff --git a/tests/LockTaskTests/res/drawable-hdpi/ic_launcher.png b/tests/LockTaskTests/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..288b665
--- /dev/null
+++ b/tests/LockTaskTests/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/tests/LockTaskTests/res/drawable-mdpi/ic_launcher.png b/tests/LockTaskTests/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..6ae570b
--- /dev/null
+++ b/tests/LockTaskTests/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/tests/LockTaskTests/res/drawable-xhdpi/ic_launcher.png b/tests/LockTaskTests/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..d4fb7cd
--- /dev/null
+++ b/tests/LockTaskTests/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/tests/LockTaskTests/res/drawable-xxhdpi/ic_launcher.png b/tests/LockTaskTests/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..85a6081
--- /dev/null
+++ b/tests/LockTaskTests/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/tests/LockTaskTests/res/layout/activity_launch.xml b/tests/LockTaskTests/res/layout/activity_launch.xml
new file mode 100644
index 0000000..b619743
--- /dev/null
+++ b/tests/LockTaskTests/res/layout/activity_launch.xml
@@ -0,0 +1,32 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/root_launch"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ tools:context="com.google.android.example.locktasktests.LaunchActivity" >
+
+ <Button
+ android:id="@+id/button_try_lock"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:onClick="onTryLock"
+ android:text="@string/try_lock" />
+ <Button
+ android:id="@+id/button_try_unlock"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:onClick="onTryUnlock"
+ android:text="@string/try_unlock" />
+ <Button
+ android:id="@+id/button_launch_main"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:onClick="onLaunchMain"
+ android:text="@string/launch_main" />
+
+</LinearLayout>
diff --git a/tests/LockTaskTests/res/layout/activity_main.xml b/tests/LockTaskTests/res/layout/activity_main.xml
new file mode 100644
index 0000000..c2e93c4
--- /dev/null
+++ b/tests/LockTaskTests/res/layout/activity_main.xml
@@ -0,0 +1,41 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/root_launch"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ tools:context="com.google.android.example.locktasktests.MainActivity" >
+ <Button
+ android:id="@+id/button_default"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:onClick="onButtonPressed"
+ android:text="@string/launch_default" />
+ <Button
+ android:id="@+id/button_never"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:onClick="onButtonPressed"
+ android:text="@string/launch_never" />
+ <Button
+ android:id="@+id/button_whitelist"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:onClick="onButtonPressed"
+ android:text="@string/launch_whitelist" />
+ <Button
+ android:id="@+id/button_always"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:onClick="onButtonPressed"
+ android:text="@string/launch_always" />
+
+</LinearLayout>
diff --git a/tests/LockTaskTests/res/values-v11/styles.xml b/tests/LockTaskTests/res/values-v11/styles.xml
new file mode 100644
index 0000000..3c02242
--- /dev/null
+++ b/tests/LockTaskTests/res/values-v11/styles.xml
@@ -0,0 +1,11 @@
+<resources>
+
+ <!--
+ Base application theme for API 11+. This theme completely replaces
+ AppBaseTheme from res/values/styles.xml on API 11+ devices.
+ -->
+ <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
+ <!-- API 11 theme customizations can go here. -->
+ </style>
+
+</resources>
diff --git a/tests/LockTaskTests/res/values-v14/styles.xml b/tests/LockTaskTests/res/values-v14/styles.xml
new file mode 100644
index 0000000..a91fd03
--- /dev/null
+++ b/tests/LockTaskTests/res/values-v14/styles.xml
@@ -0,0 +1,12 @@
+<resources>
+
+ <!--
+ Base application theme for API 14+. This theme completely replaces
+ AppBaseTheme from BOTH res/values/styles.xml and
+ res/values-v11/styles.xml on API 14+ devices.
+ -->
+ <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
+ <!-- API 14 theme customizations can go here. -->
+ </style>
+
+</resources>
diff --git a/tests/LockTaskTests/res/values-w820dp/dimens.xml b/tests/LockTaskTests/res/values-w820dp/dimens.xml
new file mode 100644
index 0000000..f3e7020
--- /dev/null
+++ b/tests/LockTaskTests/res/values-w820dp/dimens.xml
@@ -0,0 +1,10 @@
+<resources>
+
+ <!--
+ Example customization of dimensions originally defined in res/values/dimens.xml
+ (such as screen margins) for screens with more than 820dp of available width. This
+ would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively).
+ -->
+ <dimen name="activity_horizontal_margin">64dp</dimen>
+
+</resources>
diff --git a/tests/LockTaskTests/res/values/dimens.xml b/tests/LockTaskTests/res/values/dimens.xml
new file mode 100644
index 0000000..55c1e59
--- /dev/null
+++ b/tests/LockTaskTests/res/values/dimens.xml
@@ -0,0 +1,7 @@
+<resources>
+
+ <!-- Default screen margins, per the Android Design guidelines. -->
+ <dimen name="activity_horizontal_margin">16dp</dimen>
+ <dimen name="activity_vertical_margin">16dp</dimen>
+
+</resources>
diff --git a/tests/LockTaskTests/res/values/strings.xml b/tests/LockTaskTests/res/values/strings.xml
new file mode 100644
index 0000000..ae7768e
--- /dev/null
+++ b/tests/LockTaskTests/res/values/strings.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">Lock Task Tests</string>
+ <string name="title_activity_default">LockDefaultActivity</string>
+ <string name="title_activity_never">LockTaskNeverActivity</string>
+ <string name="title_activity_whitelist">LockWhitelistedActivity</string>
+ <string name="title_activity_always">LockAtLaunchActivity</string>
+ <string name="launch_default">android:lockTaskMode=\n
+ \"lockTaskModeDefault\"\n
+ Pinnable from Overview.</string>
+ <string name="launch_never">android:lockTaskMode=\n
+ \"lockTaskModeNever\"\n
+ Not Lockable or Pinnable.</string>
+ <string name="launch_whitelist">android:lockTaskMode=\n\"lockTaskModeIfWhitelisted\"\n
+ Lockable if whitelisted, Pinnable.\n
+ Use SampleDeviceOwner app to set whitelist.</string>
+ <string name="launch_always">android:lockTaskMode=\n
+ \"lockTaskModeAlways\"\n
+ Launches into lock mode.</string>
+ <string name="launch_main">launch MainActivity (as activity)"</string>
+ <string name="try_lock">Call startLockMode()</string>
+ <string name="try_unlock">Call stopLockMode()</string>
+
+</resources>
diff --git a/tests/LockTaskTests/res/values/styles.xml b/tests/LockTaskTests/res/values/styles.xml
new file mode 100644
index 0000000..6ce89c7
--- /dev/null
+++ b/tests/LockTaskTests/res/values/styles.xml
@@ -0,0 +1,20 @@
+<resources>
+
+ <!--
+ Base application theme, dependent on API level. This theme is replaced
+ by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
+ -->
+ <style name="AppBaseTheme" parent="android:Theme.Light">
+ <!--
+ Theme customizations available in newer API levels can go in
+ res/values-vXX/styles.xml, while customizations related to
+ backward-compatibility can go here.
+ -->
+ </style>
+
+ <!-- Application theme. -->
+ <style name="AppTheme" parent="AppBaseTheme">
+ <!-- All customizations that are NOT specific to a particular API-level can go here. -->
+ </style>
+
+</resources>
diff --git a/tests/LockTaskTests/src/com/google/android/example/locktasktests/LaunchActivity.java b/tests/LockTaskTests/src/com/google/android/example/locktasktests/LaunchActivity.java
new file mode 100644
index 0000000..1fc53cb
--- /dev/null
+++ b/tests/LockTaskTests/src/com/google/android/example/locktasktests/LaunchActivity.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.google.android.example.locktasktests;
+
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.EditText;
+
+public class LaunchActivity extends Activity {
+
+ EditText mEditText;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_launch);
+ setBackgroundOnLockTaskMode();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ setBackgroundOnLockTaskMode();
+ }
+
+ public void onTryLock(View view) {
+ startLockTask();
+ setBackgroundOnLockTaskMode();
+ }
+
+ public void onTryUnlock(View view) {
+ stopLockTask();
+ setBackgroundOnLockTaskMode();
+ }
+
+ public void onLaunchMain(View view) {
+ Intent intent = new Intent(this, MainActivity.class);
+ startActivity(intent);
+ }
+
+ private void setBackgroundOnLockTaskMode() {
+ ActivityManager activityManager =
+ (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
+ final int color =
+ activityManager.getLockTaskModeState() != ActivityManager.LOCK_TASK_MODE_NONE ?
+ 0xFFFFC0C0 : 0xFFFFFFFF;
+ findViewById(R.id.root_launch).setBackgroundColor(color);
+ }
+}
diff --git a/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockAtLaunchActivity.java b/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockAtLaunchActivity.java
new file mode 100644
index 0000000..4390c94
--- /dev/null
+++ b/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockAtLaunchActivity.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.google.android.example.locktasktests;
+
+public class LockAtLaunchActivity extends LaunchActivity {
+}
diff --git a/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockDefaultActivity.java b/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockDefaultActivity.java
new file mode 100644
index 0000000..7e57ab7
--- /dev/null
+++ b/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockDefaultActivity.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.google.android.example.locktasktests;
+
+public class LockDefaultActivity extends LaunchActivity {
+}
diff --git a/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockTaskNeverActivity.java b/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockTaskNeverActivity.java
new file mode 100644
index 0000000..69c2cbc
--- /dev/null
+++ b/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockTaskNeverActivity.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.google.android.example.locktasktests;
+
+public class LockTaskNeverActivity extends LaunchActivity {
+}
diff --git a/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockWhitelistedActivity.java b/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockWhitelistedActivity.java
new file mode 100644
index 0000000..387baa2
--- /dev/null
+++ b/tests/LockTaskTests/src/com/google/android/example/locktasktests/LockWhitelistedActivity.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.google.android.example.locktasktests;
+
+public class LockWhitelistedActivity extends LaunchActivity {
+}
diff --git a/tests/LockTaskTests/src/com/google/android/example/locktasktests/MainActivity.java b/tests/LockTaskTests/src/com/google/android/example/locktasktests/MainActivity.java
new file mode 100644
index 0000000..82fac03
--- /dev/null
+++ b/tests/LockTaskTests/src/com/google/android/example/locktasktests/MainActivity.java
@@ -0,0 +1,58 @@
+
+package com.google.android.example.locktasktests;
+
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+
+public class MainActivity extends Activity {
+
+ private final static String TAG = "LockTaskTests";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ setBackgroundOnLockTaskMode();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ setBackgroundOnLockTaskMode();
+ }
+
+ public void onButtonPressed(View v) {
+ Class activity = null;
+ switch (v.getId()) {
+ case R.id.button_default:
+ activity = LockDefaultActivity.class;
+ break;
+ case R.id.button_never:
+ activity = LockTaskNeverActivity.class;
+ break;
+ case R.id.button_whitelist:
+ activity = LockWhitelistedActivity.class;
+ break;
+ case R.id.button_always:
+ activity = LockAtLaunchActivity.class;
+ break;
+ }
+ Intent intent = new Intent(this, activity);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ }
+
+ private void setBackgroundOnLockTaskMode() {
+ ActivityManager activityManager =
+ (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
+ final int color =
+ activityManager.getLockTaskModeState() != ActivityManager.LOCK_TASK_MODE_NONE ?
+ 0xFFFFC0C0 : 0xFFFFFFFF;
+ findViewById(R.id.root_launch).setBackgroundColor(color);
+ }
+}
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 6ea0db2..c6f2991 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -194,6 +194,9 @@ public class WifiConfiguration implements Parcelable {
/** @hide */
public static final int DISABLED_BY_WIFI_MANAGER = 5;
+ /** @hide */
+ public static final int UNKNOWN_UID = -1;
+
/**
* The ID number that the supplicant uses to identify this
* network configuration entry. This must be passed as an argument
@@ -688,6 +691,14 @@ public class WifiConfiguration implements Parcelable {
}
/**
+ * The WiFi configuration is expected not to have Internet access (e.g., a wireless printer, a
+ * Chromecast hotspot, etc.). This will be set if the user explicitly confirms a connection to
+ * this configuration and selects "don't ask again".
+ * @hide
+ */
+ public boolean noInternetAccessExpected;
+
+ /**
* @hide
* Last time we blacklisted the configuration
*/
@@ -1131,7 +1142,10 @@ public class WifiConfiguration implements Parcelable {
if (creatorName != null) sbuf.append(" cname=" + creatorName);
if (lastUpdateUid != 0) sbuf.append(" luid=" + lastUpdateUid);
if (lastUpdateName != null) sbuf.append(" lname=" + lastUpdateName);
- sbuf.append("userApproved=" + userApprovedAsString(userApproved));
+ sbuf.append(" lcuid=" + lastConnectUid);
+ sbuf.append(" userApproved=" + userApprovedAsString(userApproved));
+ sbuf.append(" noInternetAccessExpected=" + noInternetAccessExpected);
+ sbuf.append(" ");
if (this.lastConnected != 0) {
sbuf.append('\n');
@@ -1542,6 +1556,7 @@ public class WifiConfiguration implements Parcelable {
dirty = source.dirty;
userApproved = source.userApproved;
numNoInternetAccessReports = source.numNoInternetAccessReports;
+ noInternetAccessExpected = source.noInternetAccessExpected;
}
}
@@ -1620,6 +1635,7 @@ public class WifiConfiguration implements Parcelable {
dest.writeInt(autoJoinBailedDueToLowRssi ? 1 : 0);
dest.writeInt(userApproved);
dest.writeInt(numNoInternetAccessReports);
+ dest.writeInt(noInternetAccessExpected ? 1 : 0);
}
/** Implement the Parcelable interface {@hide} */
@@ -1694,6 +1710,7 @@ public class WifiConfiguration implements Parcelable {
config.autoJoinBailedDueToLowRssi = in.readInt() != 0;
config.userApproved = in.readInt();
config.numNoInternetAccessReports = in.readInt();
+ config.noInternetAccessExpected = in.readInt() != 0;
return config;
}