summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt1
-rw-r--r--api/system-current.txt1
-rw-r--r--api/test-current.txt1
-rw-r--r--cmds/app_process/Android.mk7
-rw-r--r--core/java/android/app/BackStackRecord.java355
-rw-r--r--core/java/android/content/ContentProvider.java38
-rw-r--r--core/java/android/content/UriMatcher.java2
-rw-r--r--core/java/android/content/pm/LauncherApps.java34
-rw-r--r--core/java/android/widget/RatingBar.java4
-rwxr-xr-xcore/jni/android/graphics/Bitmap.cpp10
-rw-r--r--core/res/Android.mk18
-rw-r--r--core/res/res/color/watch_switch_thumb_color_material.xml5
-rw-r--r--core/res/res/values-af/strings.xml4
-rw-r--r--core/res/res/values-am/strings.xml4
-rw-r--r--core/res/res/values-ar/strings.xml4
-rw-r--r--core/res/res/values-az-rAZ/strings.xml4
-rw-r--r--core/res/res/values-b+sr+Latn/strings.xml4
-rw-r--r--core/res/res/values-be-rBY/strings.xml4
-rw-r--r--core/res/res/values-bg/strings.xml4
-rw-r--r--core/res/res/values-bn-rBD/strings.xml10
-rw-r--r--core/res/res/values-bs-rBA/strings.xml4
-rw-r--r--core/res/res/values-ca/strings.xml4
-rw-r--r--core/res/res/values-cs/strings.xml4
-rw-r--r--core/res/res/values-da/strings.xml4
-rw-r--r--core/res/res/values-de/strings.xml4
-rw-r--r--core/res/res/values-el/strings.xml4
-rw-r--r--core/res/res/values-en-rAU/strings.xml4
-rw-r--r--core/res/res/values-en-rGB/strings.xml4
-rw-r--r--core/res/res/values-en-rIN/strings.xml4
-rw-r--r--core/res/res/values-es-rUS/strings.xml4
-rw-r--r--core/res/res/values-es/strings.xml4
-rw-r--r--core/res/res/values-et-rEE/strings.xml4
-rw-r--r--core/res/res/values-eu-rES/strings.xml4
-rw-r--r--core/res/res/values-fa/strings.xml10
-rw-r--r--core/res/res/values-fi/strings.xml4
-rw-r--r--core/res/res/values-fr-rCA/strings.xml4
-rw-r--r--core/res/res/values-fr/strings.xml4
-rw-r--r--core/res/res/values-gl-rES/strings.xml8
-rw-r--r--core/res/res/values-gu-rIN/strings.xml4
-rw-r--r--core/res/res/values-hi/strings.xml4
-rw-r--r--core/res/res/values-hr/strings.xml4
-rw-r--r--core/res/res/values-hu/strings.xml4
-rw-r--r--core/res/res/values-hy-rAM/strings.xml4
-rw-r--r--core/res/res/values-in/strings.xml4
-rw-r--r--core/res/res/values-is-rIS/strings.xml4
-rw-r--r--core/res/res/values-it/strings.xml6
-rw-r--r--core/res/res/values-iw/strings.xml4
-rw-r--r--core/res/res/values-ja/strings.xml4
-rw-r--r--core/res/res/values-ka-rGE/strings.xml4
-rw-r--r--core/res/res/values-kk-rKZ/strings.xml4
-rw-r--r--core/res/res/values-km-rKH/strings.xml4
-rw-r--r--core/res/res/values-kn-rIN/strings.xml4
-rw-r--r--core/res/res/values-ko/strings.xml4
-rw-r--r--core/res/res/values-ky-rKG/strings.xml4
-rw-r--r--core/res/res/values-lo-rLA/strings.xml4
-rw-r--r--core/res/res/values-lt/strings.xml4
-rw-r--r--core/res/res/values-lv/strings.xml4
-rw-r--r--core/res/res/values-mk-rMK/strings.xml4
-rw-r--r--core/res/res/values-ml-rIN/strings.xml4
-rw-r--r--core/res/res/values-mn-rMN/strings.xml4
-rw-r--r--core/res/res/values-mr-rIN/strings.xml4
-rw-r--r--core/res/res/values-ms-rMY/strings.xml4
-rw-r--r--core/res/res/values-my-rMM/strings.xml4
-rw-r--r--core/res/res/values-nb/strings.xml4
-rw-r--r--core/res/res/values-ne-rNP/strings.xml4
-rw-r--r--core/res/res/values-nl/strings.xml6
-rw-r--r--core/res/res/values-pa-rIN/strings.xml4
-rw-r--r--core/res/res/values-pl/strings.xml4
-rw-r--r--core/res/res/values-pt-rBR/strings.xml4
-rw-r--r--core/res/res/values-pt-rPT/strings.xml4
-rw-r--r--core/res/res/values-pt/strings.xml4
-rw-r--r--core/res/res/values-ro/strings.xml4
-rw-r--r--core/res/res/values-ru/strings.xml12
-rw-r--r--core/res/res/values-si-rLK/strings.xml4
-rw-r--r--core/res/res/values-sk/strings.xml16
-rw-r--r--core/res/res/values-sl/strings.xml4
-rw-r--r--core/res/res/values-sq-rAL/strings.xml4
-rw-r--r--core/res/res/values-sr/strings.xml4
-rw-r--r--core/res/res/values-sv/strings.xml4
-rw-r--r--core/res/res/values-sw/strings.xml4
-rw-r--r--core/res/res/values-ta-rIN/strings.xml4
-rw-r--r--core/res/res/values-te-rIN/strings.xml4
-rw-r--r--core/res/res/values-th/strings.xml4
-rw-r--r--core/res/res/values-tl/strings.xml4
-rw-r--r--core/res/res/values-tr/strings.xml4
-rw-r--r--core/res/res/values-uk/strings.xml4
-rw-r--r--core/res/res/values-ur-rPK/strings.xml4
-rw-r--r--core/res/res/values-uz-rUZ/strings.xml6
-rw-r--r--core/res/res/values-vi/strings.xml4
-rw-r--r--core/res/res/values-zh-rCN/strings.xml5
-rw-r--r--core/res/res/values-zh-rHK/strings.xml4
-rw-r--r--core/res/res/values-zh-rTW/strings.xml4
-rw-r--r--core/res/res/values-zu/strings.xml4
-rw-r--r--core/res/res/values/public.xml21
-rw-r--r--core/tests/coretests/src/android/net/UriMatcherTest.java24
-rw-r--r--docs/html-intl/intl/es/training/articles/direct-boot.jd4
-rw-r--r--docs/html-intl/intl/es/training/articles/scoped-directory-access.jd4
-rw-r--r--docs/html-intl/intl/es/training/tv/playback/picture-in-picture.jd4
-rw-r--r--docs/html-intl/intl/es/training/tv/tif/content-recording.jd4
-rw-r--r--docs/html-intl/intl/in/training/articles/direct-boot.jd4
-rw-r--r--docs/html-intl/intl/in/training/articles/scoped-directory-access.jd4
-rw-r--r--docs/html-intl/intl/in/training/tv/playback/picture-in-picture.jd4
-rw-r--r--docs/html-intl/intl/in/training/tv/tif/content-recording.jd4
-rw-r--r--docs/html-intl/intl/ja/training/articles/direct-boot.jd4
-rw-r--r--docs/html-intl/intl/ja/training/articles/scoped-directory-access.jd4
-rw-r--r--docs/html-intl/intl/ja/training/tv/playback/picture-in-picture.jd4
-rw-r--r--docs/html-intl/intl/ja/training/tv/tif/content-recording.jd4
-rw-r--r--docs/html-intl/intl/ko/training/articles/direct-boot.jd4
-rw-r--r--docs/html-intl/intl/ko/training/articles/scoped-directory-access.jd4
-rw-r--r--docs/html-intl/intl/ko/training/tv/playback/picture-in-picture.jd4
-rw-r--r--docs/html-intl/intl/ko/training/tv/tif/content-recording.jd4
-rw-r--r--docs/html-intl/intl/pt-br/training/articles/direct-boot.jd4
-rw-r--r--docs/html-intl/intl/pt-br/training/articles/scoped-directory-access.jd4
-rw-r--r--docs/html-intl/intl/pt-br/training/tv/playback/picture-in-picture.jd4
-rw-r--r--docs/html-intl/intl/pt-br/training/tv/tif/content-recording.jd4
-rw-r--r--docs/html-intl/intl/ru/training/articles/direct-boot.jd4
-rw-r--r--docs/html-intl/intl/ru/training/articles/scoped-directory-access.jd4
-rw-r--r--docs/html-intl/intl/ru/training/tv/playback/picture-in-picture.jd4
-rw-r--r--docs/html-intl/intl/ru/training/tv/tif/content-recording.jd4
-rw-r--r--docs/html-intl/intl/vi/training/articles/direct-boot.jd4
-rw-r--r--docs/html-intl/intl/vi/training/articles/scoped-directory-access.jd4
-rw-r--r--docs/html-intl/intl/vi/training/tv/playback/picture-in-picture.jd4
-rw-r--r--docs/html-intl/intl/vi/training/tv/tif/content-recording.jd4
-rw-r--r--docs/html-intl/intl/zh-cn/training/articles/direct-boot.jd4
-rw-r--r--docs/html-intl/intl/zh-cn/training/articles/scoped-directory-access.jd4
-rw-r--r--docs/html-intl/intl/zh-cn/training/tv/playback/picture-in-picture.jd4
-rw-r--r--docs/html-intl/intl/zh-cn/training/tv/tif/content-recording.jd4
-rw-r--r--docs/html-intl/intl/zh-tw/training/articles/direct-boot.jd4
-rw-r--r--docs/html-intl/intl/zh-tw/training/articles/scoped-directory-access.jd4
-rw-r--r--docs/html-intl/intl/zh-tw/training/tv/playback/picture-in-picture.jd4
-rw-r--r--docs/html-intl/intl/zh-tw/training/tv/tif/content-recording.jd4
-rw-r--r--docs/html/_redirects.yaml8
-rw-r--r--docs/html/about/dashboards/index.jd50
-rw-r--r--docs/html/distribute/stories/apps/aftenposten.jd2
-rw-r--r--docs/html/distribute/stories/apps/el-mundo.jd2
-rw-r--r--docs/html/distribute/stories/apps/segundamano.jd2
-rw-r--r--docs/html/distribute/stories/games/glu-dh.jd (renamed from docs/html/distribute/stories/glu-dh.jd)0
-rw-r--r--docs/html/distribute/stories/games/tapps.jd (renamed from docs/html/distribute/stories/apps/tapps.jd)4
-rw-r--r--docs/html/distribute/stories/games/two-dots.jd77
-rw-r--r--docs/html/distribute/stories/games/upbeat-games.jd (renamed from docs/html/distribute/stories/apps/upbeat-games.jd)4
-rw-r--r--docs/html/distribute/stories/index.jd30
-rwxr-xr-xdocs/html/guide/topics/manifest/uses-feature-element.jd29
-rw-r--r--docs/html/topic/arc/_book.yaml9
-rw-r--r--docs/html/training/_book.yaml5
-rw-r--r--docs/html/training/safebrowsing/index.jd315
-rw-r--r--graphics/java/android/graphics/Bitmap.java7
-rw-r--r--graphics/java/android/graphics/Path.java1
-rw-r--r--keystore/java/android/security/keystore/KeyGenParameterSpec.java28
-rw-r--r--libs/hwui/TextureCache.cpp4
-rw-r--r--libs/hwui/TextureCache.h7
-rw-r--r--libs/hwui/renderthread/CanvasContext.cpp15
-rw-r--r--libs/hwui/renderthread/RenderProxy.cpp39
-rw-r--r--libs/hwui/renderthread/RenderProxy.h1
-rw-r--r--libs/usb/tests/accessorytest/audio.c2
-rw-r--r--media/java/android/media/ExifInterface.java146
-rw-r--r--packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml2
-rw-r--r--packages/SettingsLib/res/values-af/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-am/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ar/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-az-rAZ/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-b+sr+Latn/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-be-rBY/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-bg/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-bn-rBD/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-bs-rBA/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ca/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ca/strings.xml2
-rw-r--r--packages/SettingsLib/res/values-cs/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-da/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-de/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-el/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-en-rAU/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-en-rGB/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-en-rIN/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-es-rUS/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-es/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-et-rEE/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-eu-rES/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-fa/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-fi/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-fr-rCA/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-fr/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-gl-rES/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-gu-rIN/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-hi/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-hr/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-hu/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-hy-rAM/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-in/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-is-rIS/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-it/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-iw/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ja/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ka-rGE/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-kk-rKZ/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-km-rKH/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-kn-rIN/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ko/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ky-rKG/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-lo-rLA/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-lt/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-lv/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-mk-rMK/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ml-rIN/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-mn-rMN/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-mr-rIN/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ms-rMY/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-my-rMM/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-nb/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ne-rNP/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-nl/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-pa-rIN/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-pl/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-pt-rBR/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-pt-rPT/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-pt/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ro/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ru/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-si-rLK/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-sk/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-sl/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-sq-rAL/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-sr/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-sv/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-sw/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ta-rIN/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-te-rIN/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-th/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-tl/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-tr/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-uk/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-ur-rPK/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-uz-rUZ/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-vi/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-zh-rCN/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-zh-rHK/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-zh-rTW/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values-zu/arrays.xml6
-rw-r--r--packages/SettingsLib/res/values/arrays.xml4
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java10
-rw-r--r--packages/Shell/res/values-pl/strings.xml2
-rw-r--r--packages/Shell/res/values/strings.xml3
-rw-r--r--packages/Shell/src/com/android/shell/BugreportProgressService.java7
-rw-r--r--packages/Shell/src/com/android/shell/BugreportWarningActivity.java3
-rw-r--r--packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java2
-rw-r--r--packages/Shell/tests/src/com/android/shell/UiBot.java53
-rw-r--r--packages/SystemUI/res/drawable/lockscreen_fingerprint_error_state_to_fp.xml6
-rw-r--r--packages/SystemUI/res/drawable/lockscreen_fingerprint_fp_to_error_state.xml16
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/NightDisplayTile.java23
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java3
-rw-r--r--proto/src/metrics_constants.proto4
-rw-r--r--services/core/java/com/android/server/am/ActivityStack.java13
-rw-r--r--services/core/java/com/android/server/pm/ShortcutService.java40
-rw-r--r--services/core/java/com/android/server/power/PowerManagerService.java7
-rw-r--r--services/core/java/com/android/server/wm/AppWindowToken.java26
-rw-r--r--services/core/java/com/android/server/wm/WallpaperController.java23
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java12
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java43
-rw-r--r--services/core/java/com/android/server/wm/WindowSurfacePlacer.java29
-rw-r--r--tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java1
-rw-r--r--tools/aapt/Command.cpp27
-rw-r--r--tools/aapt2/Android.mk2
-rw-r--r--tools/aapt2/link/ManifestFixer.cpp4
-rw-r--r--tools/aapt2/remove-duplicates.py181
266 files changed, 1631 insertions, 1227 deletions
diff --git a/api/current.txt b/api/current.txt
index 778ef7b1d789..64838a4ef053 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -12295,6 +12295,7 @@ package android.graphics {
method public void addRoundRect(float, float, float, float, float, float, android.graphics.Path.Direction);
method public void addRoundRect(android.graphics.RectF, float[], android.graphics.Path.Direction);
method public void addRoundRect(float, float, float, float, float[], android.graphics.Path.Direction);
+ method public float[] approximate(float);
method public void arcTo(android.graphics.RectF, float, float, boolean);
method public void arcTo(android.graphics.RectF, float, float);
method public void arcTo(float, float, float, float, float, float, boolean);
diff --git a/api/system-current.txt b/api/system-current.txt
index b27c5f012978..c7a05b2cd826 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -12726,6 +12726,7 @@ package android.graphics {
method public void addRoundRect(float, float, float, float, float, float, android.graphics.Path.Direction);
method public void addRoundRect(android.graphics.RectF, float[], android.graphics.Path.Direction);
method public void addRoundRect(float, float, float, float, float[], android.graphics.Path.Direction);
+ method public float[] approximate(float);
method public void arcTo(android.graphics.RectF, float, float, boolean);
method public void arcTo(android.graphics.RectF, float, float);
method public void arcTo(float, float, float, float, float, float, boolean);
diff --git a/api/test-current.txt b/api/test-current.txt
index 9bb1a7dc7182..881d290536c5 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -12309,6 +12309,7 @@ package android.graphics {
method public void addRoundRect(float, float, float, float, float, float, android.graphics.Path.Direction);
method public void addRoundRect(android.graphics.RectF, float[], android.graphics.Path.Direction);
method public void addRoundRect(float, float, float, float, float[], android.graphics.Path.Direction);
+ method public float[] approximate(float);
method public void arcTo(android.graphics.RectF, float, float, boolean);
method public void arcTo(android.graphics.RectF, float, float);
method public void arcTo(float, float, float, float, float, float, boolean);
diff --git a/cmds/app_process/Android.mk b/cmds/app_process/Android.mk
index fae0400a1212..e530184b9c6a 100644
--- a/cmds/app_process/Android.mk
+++ b/cmds/app_process/Android.mk
@@ -12,7 +12,8 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
app_main.cpp
-LOCAL_LDFLAGS := -Wl,--version-script,art/sigchainlib/version-script.txt -Wl,--export-dynamic
+LOCAL_LDFLAGS_32 := -Wl,--version-script,art/sigchainlib/version-script32.txt -Wl,--export-dynamic
+LOCAL_LDFLAGS_64 := -Wl,--version-script,art/sigchainlib/version-script64.txt -Wl,--export-dynamic
LOCAL_SHARED_LIBRARIES := \
libdl \
@@ -58,7 +59,9 @@ LOCAL_SHARED_LIBRARIES := \
LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain
-LOCAL_LDFLAGS := -ldl -Wl,--version-script,art/sigchainlib/version-script.txt -Wl,--export-dynamic
+LOCAL_LDFLAGS := -ldl
+LOCAL_LDFLAGS_32 := -Wl,--version-script,art/sigchainlib/version-script32.txt -Wl,--export-dynamic
+LOCAL_LDFLAGS_64 := -Wl,--version-script,art/sigchainlib/version-script64.txt -Wl,--export-dynamic
LOCAL_CPPFLAGS := -std=c++11
LOCAL_MODULE := app_process__asan
diff --git a/core/java/android/app/BackStackRecord.java b/core/java/android/app/BackStackRecord.java
index 199e9aa0f615..f4f8d6936247 100644
--- a/core/java/android/app/BackStackRecord.java
+++ b/core/java/android/app/BackStackRecord.java
@@ -54,39 +54,22 @@ final class BackStackState implements Parcelable {
final ArrayList<String> mSharedElementTargetNames;
public BackStackState(FragmentManagerImpl fm, BackStackRecord bse) {
- int numRemoved = 0;
- BackStackRecord.Op op = bse.mHead;
- while (op != null) {
- if (op.removed != null) {
- numRemoved += op.removed.size();
- }
- op = op.next;
- }
- mOps = new int[bse.mNumOp * 7 + numRemoved];
+ final int numOps = bse.mOps.size();
+ mOps = new int[numOps * 6];
if (!bse.mAddToBackStack) {
throw new IllegalStateException("Not on back stack");
}
- op = bse.mHead;
int pos = 0;
- while (op != null) {
+ for (int opNum = 0; opNum < numOps; opNum++) {
+ final BackStackRecord.Op op = bse.mOps.get(opNum);
mOps[pos++] = op.cmd;
mOps[pos++] = op.fragment != null ? op.fragment.mIndex : -1;
mOps[pos++] = op.enterAnim;
mOps[pos++] = op.exitAnim;
mOps[pos++] = op.popEnterAnim;
mOps[pos++] = op.popExitAnim;
- if (op.removed != null) {
- final int N = op.removed.size();
- mOps[pos++] = N;
- for (int i = 0; i < N; i++) {
- mOps[pos++] = op.removed.get(i).mIndex;
- }
- } else {
- mOps[pos++] = 0;
- }
- op = op.next;
}
mTransition = bse.mTransition;
mTransitionStyle = bse.mTransitionStyle;
@@ -136,18 +119,6 @@ final class BackStackState implements Parcelable {
op.exitAnim = mOps[pos++];
op.popEnterAnim = mOps[pos++];
op.popExitAnim = mOps[pos++];
- final int N = mOps[pos++];
- if (N > 0) {
- op.removed = new ArrayList<Fragment>(N);
- for (int i = 0; i < N; i++) {
- if (FragmentManagerImpl.DEBUG) {
- Log.v(FragmentManagerImpl.TAG,
- "Instantiate " + bse + " set remove fragment #" + mOps[pos]);
- }
- Fragment r = fm.mActive.get(mOps[pos++]);
- op.removed.add(r);
- }
- }
bse.mEnterAnim = op.enterAnim;
bse.mExitAnim = op.exitAnim;
bse.mPopEnterAnim = op.popEnterAnim;
@@ -219,20 +190,15 @@ final class BackStackRecord extends FragmentTransaction implements
static final int OP_ATTACH = 7;
static final class Op {
- Op next;
- Op prev;
int cmd;
Fragment fragment;
int enterAnim;
int exitAnim;
int popEnterAnim;
int popExitAnim;
- ArrayList<Fragment> removed;
}
- Op mHead;
- Op mTail;
- int mNumOp;
+ ArrayList<Op> mOps = new ArrayList<>();
int mEnterAnim;
int mExitAnim;
int mPopEnterAnim;
@@ -320,13 +286,13 @@ final class BackStackRecord extends FragmentTransaction implements
}
}
- if (mHead != null) {
+ if (!mOps.isEmpty()) {
writer.print(prefix);
writer.println("Operations:");
String innerPrefix = prefix + " ";
- Op op = mHead;
- int num = 0;
- while (op != null) {
+ final int numOps = mOps.size();
+ for (int opNum = 0; opNum < numOps; opNum++) {
+ final Op op = mOps.get(opNum);
String cmdStr;
switch (op.cmd) {
case OP_NULL:
@@ -359,7 +325,7 @@ final class BackStackRecord extends FragmentTransaction implements
}
writer.print(prefix);
writer.print(" Op #");
- writer.print(num);
+ writer.print(opNum);
writer.print(": ");
writer.print(cmdStr);
writer.print(" ");
@@ -380,25 +346,6 @@ final class BackStackRecord extends FragmentTransaction implements
writer.println(Integer.toHexString(op.popExitAnim));
}
}
- if (op.removed != null && op.removed.size() > 0) {
- for (int i = 0; i < op.removed.size(); i++) {
- writer.print(innerPrefix);
- if (op.removed.size() == 1) {
- writer.print("Removed: ");
- } else {
- if (i == 0) {
- writer.println("Removed:");
- }
- writer.print(innerPrefix);
- writer.print(" #");
- writer.print(i);
- writer.print(": ");
- }
- writer.println(op.removed.get(i));
- }
- }
- op = op.next;
- num++;
}
}
}
@@ -434,18 +381,11 @@ final class BackStackRecord extends FragmentTransaction implements
}
void addOp(Op op) {
- if (mHead == null) {
- mHead = mTail = op;
- } else {
- op.prev = mTail;
- mTail.next = op;
- mTail = op;
- }
+ mOps.add(op);
op.enterAnim = mEnterAnim;
op.exitAnim = mExitAnim;
op.popEnterAnim = mPopEnterAnim;
op.popExitAnim = mPopExitAnim;
- mNumOp++;
}
public FragmentTransaction add(Fragment fragment, String tag) {
@@ -660,8 +600,9 @@ final class BackStackRecord extends FragmentTransaction implements
Log.v(TAG, "Bump nesting in " + this
+ " by " + amt);
}
- Op op = mHead;
- while (op != null) {
+ final int numOps = mOps.size();
+ for (int opNum = 0; opNum < numOps; opNum++) {
+ final Op op = mOps.get(opNum);
if (op.fragment != null) {
op.fragment.mBackStackNesting += amt;
if (FragmentManagerImpl.DEBUG) {
@@ -669,17 +610,6 @@ final class BackStackRecord extends FragmentTransaction implements
+ op.fragment + " to " + op.fragment.mBackStackNesting);
}
}
- if (op.removed != null) {
- for (int i = op.removed.size() - 1; i >= 0; i--) {
- Fragment r = op.removed.get(i);
- r.mBackStackNesting += amt;
- if (FragmentManagerImpl.DEBUG) {
- Log.v(TAG, "Bump nesting of "
- + r + " to " + r.mBackStackNesting);
- }
- }
- }
- op = op.next;
}
}
@@ -735,6 +665,7 @@ final class BackStackRecord extends FragmentTransaction implements
}
}
+ expandReplaceOps();
bumpBackStackNesting(1);
if (mManager.mCurState >= Fragment.CREATED) {
@@ -744,88 +675,38 @@ final class BackStackRecord extends FragmentTransaction implements
beginTransition(firstOutFragments, lastInFragments, false);
}
- Op op = mHead;
- while (op != null) {
+ final int numOps = mOps.size();
+ for (int opNum = 0; opNum < numOps; opNum++) {
+ final Op op = mOps.get(opNum);
+ Fragment f = op.fragment;
switch (op.cmd) {
- case OP_ADD: {
- Fragment f = op.fragment;
+ case OP_ADD:
f.mNextAnim = op.enterAnim;
mManager.addFragment(f, false);
- }
- break;
- case OP_REPLACE: {
- Fragment f = op.fragment;
- int containerId = f.mContainerId;
- if (mManager.mAdded != null) {
- for (int i = mManager.mAdded.size() - 1; i >= 0; i--) {
- Fragment old = mManager.mAdded.get(i);
- if (FragmentManagerImpl.DEBUG) {
- Log.v(TAG,
- "OP_REPLACE: adding=" + f + " old=" + old);
- }
- if (old.mContainerId == containerId) {
- if (old == f) {
- op.fragment = f = null;
- } else {
- if (op.removed == null) {
- op.removed = new ArrayList<Fragment>();
- }
- op.removed.add(old);
- old.mNextAnim = op.exitAnim;
- if (mAddToBackStack) {
- old.mBackStackNesting += 1;
- if (FragmentManagerImpl.DEBUG) {
- Log.v(TAG, "Bump nesting of "
- + old + " to " + old.mBackStackNesting);
- }
- }
- mManager.removeFragment(old, mTransition, mTransitionStyle);
- }
- }
- }
- }
- if (f != null) {
- f.mNextAnim = op.enterAnim;
- mManager.addFragment(f, false);
- }
- }
- break;
- case OP_REMOVE: {
- Fragment f = op.fragment;
+ break;
+ case OP_REMOVE:
f.mNextAnim = op.exitAnim;
mManager.removeFragment(f, mTransition, mTransitionStyle);
- }
- break;
- case OP_HIDE: {
- Fragment f = op.fragment;
+ break;
+ case OP_HIDE:
f.mNextAnim = op.exitAnim;
mManager.hideFragment(f, mTransition, mTransitionStyle);
- }
- break;
- case OP_SHOW: {
- Fragment f = op.fragment;
+ break;
+ case OP_SHOW:
f.mNextAnim = op.enterAnim;
mManager.showFragment(f, mTransition, mTransitionStyle);
- }
- break;
- case OP_DETACH: {
- Fragment f = op.fragment;
+ break;
+ case OP_DETACH:
f.mNextAnim = op.exitAnim;
mManager.detachFragment(f, mTransition, mTransitionStyle);
- }
- break;
- case OP_ATTACH: {
- Fragment f = op.fragment;
+ break;
+ case OP_ATTACH:
f.mNextAnim = op.enterAnim;
mManager.attachFragment(f, mTransition, mTransitionStyle);
- }
- break;
- default: {
+ break;
+ default:
throw new IllegalArgumentException("Unknown cmd: " + op.cmd);
- }
}
-
- op = op.next;
}
mManager.moveToState(mManager.mCurState, mTransition,
@@ -836,6 +717,72 @@ final class BackStackRecord extends FragmentTransaction implements
}
}
+ private void expandReplaceOps() {
+ final int numOps = mOps.size();
+
+ boolean hasReplace = false;
+ // Before we do anything, check to see if any replace operations exist:
+ for (int opNum = 0; opNum < numOps; opNum++) {
+ final Op op = mOps.get(opNum);
+ if (op.cmd == OP_REPLACE) {
+ hasReplace = true;
+ break;
+ }
+ }
+
+ if (!hasReplace) {
+ return; // nothing to expand
+ }
+
+ ArrayList<Fragment> added = (mManager.mAdded == null) ? new ArrayList<Fragment>() :
+ new ArrayList<>(mManager.mAdded);
+ for (int opNum = 0; opNum < mOps.size(); opNum++) {
+ final Op op = mOps.get(opNum);
+ switch (op.cmd) {
+ case OP_ADD:
+ case OP_ATTACH:
+ added.add(op.fragment);
+ break;
+ case OP_REMOVE:
+ case OP_DETACH:
+ added.remove(op.fragment);
+ break;
+ case OP_REPLACE: {
+ Fragment f = op.fragment;
+ int containerId = f.mContainerId;
+ boolean alreadyAdded = false;
+ for (int i = added.size() - 1; i >= 0; i--) {
+ Fragment old = added.get(i);
+ if (old.mContainerId == containerId) {
+ if (old == f) {
+ alreadyAdded = true;
+ } else {
+ Op removeOp = new Op();
+ removeOp.cmd = OP_REMOVE;
+ removeOp.fragment = old;
+ removeOp.enterAnim = op.enterAnim;
+ removeOp.popEnterAnim = op.popEnterAnim;
+ removeOp.exitAnim = op.exitAnim;
+ removeOp.popExitAnim = op.popExitAnim;
+ mOps.add(opNum, removeOp);
+ added.remove(old);
+ opNum++;
+ }
+ }
+ }
+ if (alreadyAdded) {
+ mOps.remove(opNum);
+ opNum--;
+ } else {
+ op.cmd = OP_ADD;
+ added.add(f);
+ }
+ }
+ break;
+ }
+ }
+ }
+
private static void setFirstOut(SparseArray<Fragment> firstOutFragments,
SparseArray<Fragment> lastInFragments, Fragment fragment) {
if (fragment != null) {
@@ -891,30 +838,13 @@ final class BackStackRecord extends FragmentTransaction implements
if (!mManager.mContainer.onHasView()) {
return; // nothing to see, so no transitions
}
- Op op = mHead;
- while (op != null) {
+ final int numOps = mOps.size();
+ for (int opNum = 0; opNum < numOps; opNum++) {
+ final Op op = mOps.get(opNum);
switch (op.cmd) {
case OP_ADD:
setLastIn(firstOutFragments, lastInFragments, op.fragment);
break;
- case OP_REPLACE: {
- Fragment f = op.fragment;
- if (mManager.mAdded != null) {
- for (int i = 0; i < mManager.mAdded.size(); i++) {
- Fragment old = mManager.mAdded.get(i);
- if (f == null || old.mContainerId == f.mContainerId) {
- if (old == f) {
- f = null;
- lastInFragments.remove(old.mContainerId);
- } else {
- setFirstOut(firstOutFragments, lastInFragments, old);
- }
- }
- }
- }
- setLastIn(firstOutFragments, lastInFragments, op.fragment);
- break;
- }
case OP_REMOVE:
setFirstOut(firstOutFragments, lastInFragments, op.fragment);
break;
@@ -931,8 +861,6 @@ final class BackStackRecord extends FragmentTransaction implements
setLastIn(firstOutFragments, lastInFragments, op.fragment);
break;
}
-
- op = op.next;
}
}
@@ -950,20 +878,13 @@ final class BackStackRecord extends FragmentTransaction implements
if (!mManager.mContainer.onHasView()) {
return; // nothing to see, so no transitions
}
- Op op = mTail;
- while (op != null) {
+ final int numOps = mOps.size();
+ for (int opNum = numOps - 1; opNum >= 0; opNum--) {
+ final Op op = mOps.get(opNum);
switch (op.cmd) {
case OP_ADD:
setFirstOut(firstOutFragments, lastInFragments, op.fragment);
break;
- case OP_REPLACE:
- if (op.removed != null) {
- for (int i = op.removed.size() - 1; i >= 0; i--) {
- setLastIn(firstOutFragments, lastInFragments, op.removed.get(i));
- }
- }
- setFirstOut(firstOutFragments, lastInFragments, op.fragment);
- break;
case OP_REMOVE:
setLastIn(firstOutFragments, lastInFragments, op.fragment);
break;
@@ -980,8 +901,6 @@ final class BackStackRecord extends FragmentTransaction implements
setFirstOut(firstOutFragments, lastInFragments, op.fragment);
break;
}
-
- op = op.prev;
}
}
@@ -1691,74 +1610,44 @@ final class BackStackRecord extends FragmentTransaction implements
bumpBackStackNesting(-1);
- Op op = mTail;
- while (op != null) {
+ final int numOps = mOps.size();
+ for (int opNum = numOps - 1; opNum >= 0; opNum--) {
+ final Op op = mOps.get(opNum);
+ Fragment f = op.fragment;
switch (op.cmd) {
- case OP_ADD: {
- Fragment f = op.fragment;
+ case OP_ADD:
f.mNextAnim = op.popExitAnim;
mManager.removeFragment(f,
FragmentManagerImpl.reverseTransit(mTransition),
mTransitionStyle);
- }
- break;
- case OP_REPLACE: {
- Fragment f = op.fragment;
- if (f != null) {
- f.mNextAnim = op.popExitAnim;
- mManager.removeFragment(f,
- FragmentManagerImpl.reverseTransit(mTransition),
- mTransitionStyle);
- }
- if (op.removed != null) {
- for (int i = 0; i < op.removed.size(); i++) {
- Fragment old = op.removed.get(i);
- old.mNextAnim = op.popEnterAnim;
- mManager.addFragment(old, false);
- }
- }
- }
- break;
- case OP_REMOVE: {
- Fragment f = op.fragment;
+ break;
+ case OP_REMOVE:
f.mNextAnim = op.popEnterAnim;
mManager.addFragment(f, false);
- }
- break;
- case OP_HIDE: {
- Fragment f = op.fragment;
+ break;
+ case OP_HIDE:
f.mNextAnim = op.popEnterAnim;
mManager.showFragment(f,
FragmentManagerImpl.reverseTransit(mTransition), mTransitionStyle);
- }
- break;
- case OP_SHOW: {
- Fragment f = op.fragment;
+ break;
+ case OP_SHOW:
f.mNextAnim = op.popExitAnim;
mManager.hideFragment(f,
FragmentManagerImpl.reverseTransit(mTransition), mTransitionStyle);
- }
- break;
- case OP_DETACH: {
- Fragment f = op.fragment;
+ break;
+ case OP_DETACH:
f.mNextAnim = op.popEnterAnim;
mManager.attachFragment(f,
FragmentManagerImpl.reverseTransit(mTransition), mTransitionStyle);
- }
- break;
- case OP_ATTACH: {
- Fragment f = op.fragment;
+ break;
+ case OP_ATTACH:
f.mNextAnim = op.popExitAnim;
mManager.detachFragment(f,
FragmentManagerImpl.reverseTransit(mTransition), mTransitionStyle);
- }
- break;
- default: {
+ break;
+ default:
throw new IllegalArgumentException("Unknown cmd: " + op.cmd);
- }
}
-
- op = op.prev;
}
if (doStateMove) {
@@ -1845,7 +1734,7 @@ final class BackStackRecord extends FragmentTransaction implements
}
public boolean isEmpty() {
- return mNumOp == 0;
+ return mOps.isEmpty();
}
public class TransitionState {
diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java
index bc2d788bf4c8..1e6424e165c5 100644
--- a/core/java/android/content/ContentProvider.java
+++ b/core/java/android/content/ContentProvider.java
@@ -208,7 +208,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
String selection, String[] selectionArgs, String sortOrder,
ICancellationSignal cancellationSignal) {
validateIncomingUri(uri);
- uri = getUriWithoutUserId(uri);
+ uri = maybeGetUriWithoutUserId(uri);
if (enforceReadPermission(callingPkg, uri, null) != AppOpsManager.MODE_ALLOWED) {
// The caller has no access to the data, so return an empty cursor with
// the columns in the requested order. The caller may ask for an invalid
@@ -247,7 +247,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
@Override
public String getType(Uri uri) {
validateIncomingUri(uri);
- uri = getUriWithoutUserId(uri);
+ uri = maybeGetUriWithoutUserId(uri);
return ContentProvider.this.getType(uri);
}
@@ -255,7 +255,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
public Uri insert(String callingPkg, Uri uri, ContentValues initialValues) {
validateIncomingUri(uri);
int userId = getUserIdFromUri(uri);
- uri = getUriWithoutUserId(uri);
+ uri = maybeGetUriWithoutUserId(uri);
if (enforceWritePermission(callingPkg, uri, null) != AppOpsManager.MODE_ALLOWED) {
return rejectInsert(uri, initialValues);
}
@@ -270,7 +270,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
@Override
public int bulkInsert(String callingPkg, Uri uri, ContentValues[] initialValues) {
validateIncomingUri(uri);
- uri = getUriWithoutUserId(uri);
+ uri = maybeGetUriWithoutUserId(uri);
if (enforceWritePermission(callingPkg, uri, null) != AppOpsManager.MODE_ALLOWED) {
return 0;
}
@@ -331,7 +331,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
@Override
public int delete(String callingPkg, Uri uri, String selection, String[] selectionArgs) {
validateIncomingUri(uri);
- uri = getUriWithoutUserId(uri);
+ uri = maybeGetUriWithoutUserId(uri);
if (enforceWritePermission(callingPkg, uri, null) != AppOpsManager.MODE_ALLOWED) {
return 0;
}
@@ -347,7 +347,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
public int update(String callingPkg, Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
validateIncomingUri(uri);
- uri = getUriWithoutUserId(uri);
+ uri = maybeGetUriWithoutUserId(uri);
if (enforceWritePermission(callingPkg, uri, null) != AppOpsManager.MODE_ALLOWED) {
return 0;
}
@@ -364,7 +364,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
String callingPkg, Uri uri, String mode, ICancellationSignal cancellationSignal,
IBinder callerToken) throws FileNotFoundException {
validateIncomingUri(uri);
- uri = getUriWithoutUserId(uri);
+ uri = maybeGetUriWithoutUserId(uri);
enforceFilePermission(callingPkg, uri, mode, callerToken);
final String original = setCallingPackage(callingPkg);
try {
@@ -380,7 +380,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
String callingPkg, Uri uri, String mode, ICancellationSignal cancellationSignal)
throws FileNotFoundException {
validateIncomingUri(uri);
- uri = getUriWithoutUserId(uri);
+ uri = maybeGetUriWithoutUserId(uri);
enforceFilePermission(callingPkg, uri, mode, null);
final String original = setCallingPackage(callingPkg);
try {
@@ -406,7 +406,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
@Override
public String[] getStreamTypes(Uri uri, String mimeTypeFilter) {
validateIncomingUri(uri);
- uri = getUriWithoutUserId(uri);
+ uri = maybeGetUriWithoutUserId(uri);
return ContentProvider.this.getStreamTypes(uri, mimeTypeFilter);
}
@@ -415,7 +415,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
Bundle opts, ICancellationSignal cancellationSignal) throws FileNotFoundException {
Bundle.setDefusable(opts, true);
validateIncomingUri(uri);
- uri = getUriWithoutUserId(uri);
+ uri = maybeGetUriWithoutUserId(uri);
enforceFilePermission(callingPkg, uri, "r", null);
final String original = setCallingPackage(callingPkg);
try {
@@ -1846,10 +1846,12 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
/** @hide */
private void validateIncomingUri(Uri uri) throws SecurityException {
String auth = uri.getAuthority();
- int userId = getUserIdFromAuthority(auth, UserHandle.USER_CURRENT);
- if (userId != UserHandle.USER_CURRENT && userId != mContext.getUserId()) {
- throw new SecurityException("trying to query a ContentProvider in user "
- + mContext.getUserId() + " with a uri belonging to user " + userId);
+ if (!mSingleUser) {
+ int userId = getUserIdFromAuthority(auth, UserHandle.USER_CURRENT);
+ if (userId != UserHandle.USER_CURRENT && userId != mContext.getUserId()) {
+ throw new SecurityException("trying to query a ContentProvider in user "
+ + mContext.getUserId() + " with a uri belonging to user " + userId);
+ }
}
if (!matchesOurAuthorities(getAuthorityWithoutUserId(auth))) {
String message = "The authority of the uri " + uri + " does not match the one of the "
@@ -1864,6 +1866,14 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
}
/** @hide */
+ private Uri maybeGetUriWithoutUserId(Uri uri) {
+ if (mSingleUser) {
+ return uri;
+ }
+ return getUriWithoutUserId(uri);
+ }
+
+ /** @hide */
public static int getUserIdFromAuthority(String auth, int defaultUserId) {
if (auth == null) return defaultUserId;
int end = auth.lastIndexOf('@');
diff --git a/core/java/android/content/UriMatcher.java b/core/java/android/content/UriMatcher.java
index 71a035e47f19..444edd0deac2 100644
--- a/core/java/android/content/UriMatcher.java
+++ b/core/java/android/content/UriMatcher.java
@@ -167,7 +167,7 @@ public class UriMatcher
if (path != null) {
String newPath = path;
// Strip leading slash if present.
- if (path.length() > 0 && path.charAt(0) == '/') {
+ if (path.length() > 1 && path.charAt(0) == '/') {
newPath = path.substring(1);
}
tokens = newPath.split("/");
diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java
index 6b23da93bb86..b9b609b5cad4 100644
--- a/core/java/android/content/pm/LauncherApps.java
+++ b/core/java/android/content/pm/LauncherApps.java
@@ -492,7 +492,7 @@ public class LauncherApps {
* If the calling launcher application contains pinned shortcuts, they will still work,
* even though the caller no longer has the shortcut host permission.
*
- * @throws IllegalStateException when the user is locked.
+ * <p>Returns {@code false} when the user is locked.
*
* @see ShortcutManager
*/
@@ -510,12 +510,13 @@ public class LauncherApps {
* <p>Callers must be allowed to access the shortcut information, as defined in {@link
* #hasShortcutHostPermission()}.
*
+ * <p>Returns am empty list when the user is locked, or when the {@code user} user
+ * is locked or not running.
+ *
* @param query result includes shortcuts matching this query.
* @param user The UserHandle of the profile.
*
* @return the IDs of {@link ShortcutInfo}s that match the query.
- * @throws IllegalStateException when the user is locked, or when the {@code user} user
- * is locked or not running.
*
* @see ShortcutManager
*/
@@ -555,11 +556,12 @@ public class LauncherApps {
* <p>The calling launcher application must be allowed to access the shortcut information,
* as defined in {@link #hasShortcutHostPermission()}.
*
+ * <p>Call will be ignored when the user is locked, or when the {@code user} user
+ * is locked or not running.
+ *
* @param packageName The target package name.
* @param shortcutIds The IDs of the shortcut to be pinned.
* @param user The UserHandle of the profile.
- * @throws IllegalStateException when the user is locked, or when the {@code user} user
- * is locked or not running.
*
* @see ShortcutManager
*/
@@ -628,12 +630,13 @@ public class LauncherApps {
* <p>The calling launcher application must be allowed to access the shortcut information,
* as defined in {@link #hasShortcutHostPermission()}.
*
+ * <p>Returns {@code null} when the user is locked, or when the user owning the shortcut
+ * is locked or not running.
+ *
* @param density The preferred density of the icon, zero for default density. Use
* density DPI values from {@link DisplayMetrics}.
*
* @return The drawable associated with the shortcut.
- * @throws IllegalStateException when the user is locked, or when the {@code user} user
- * is locked or not running.
*
* @see ShortcutManager
* @see #getShortcutBadgedIconDrawable(ShortcutInfo, int)
@@ -678,10 +681,11 @@ public class LauncherApps {
* <p>The calling launcher application must be allowed to access the shortcut information,
* as defined in {@link #hasShortcutHostPermission()}.
*
+ * <p>Returns {@code 0} when the user is locked, or when the user owning the shortcut
+ * is locked or not running.
+ *
* @param density Optional density for the icon, or 0 to use the default density. Use
* @return A badged icon for the shortcut.
- * @throws IllegalStateException when the user is locked, or when the {@code user} user
- * is locked or not running.
*
* @see ShortcutManager
* @see #getShortcutIconDrawable(ShortcutInfo, int)
@@ -700,13 +704,15 @@ public class LauncherApps {
* <p>The calling launcher application must be allowed to access the shortcut information,
* as defined in {@link #hasShortcutHostPermission()}.
*
+ * <p>Throws {@link android.content.ActivityNotFoundException}
+ * when the user is locked, or when the {@code user} user
+ * is locked or not running.
+ *
* @param packageName The target shortcut package name.
* @param shortcutId The target shortcut ID.
* @param sourceBounds The Rect containing the source bounds of the clicked icon.
* @param startActivityOptions Options to pass to startActivity.
* @param user The UserHandle of the profile.
- * @throws IllegalStateException when the user is locked, or when the {@code user} user
- * is locked or not running.
*
* @throws android.content.ActivityNotFoundException failed to start shortcut. (e.g.
* the shortcut no longer exists, is disabled, the intent receiver activity doesn't exist, etc)
@@ -724,11 +730,13 @@ public class LauncherApps {
* <p>The calling launcher application must be allowed to access the shortcut information,
* as defined in {@link #hasShortcutHostPermission()}.
*
+ * <p>Throws {@link android.content.ActivityNotFoundException}
+ * when the user is locked, or when the user owning the shortcut
+ * is locked or not running.
+ *
* @param shortcut The target shortcut.
* @param sourceBounds The Rect containing the source bounds of the clicked icon.
* @param startActivityOptions Options to pass to startActivity.
- * @throws IllegalStateException when the user is locked, or when the {@code user} user
- * is locked or not running.
*
* @throws android.content.ActivityNotFoundException failed to start shortcut. (e.g.
* the shortcut no longer exists, is disabled, the intent receiver activity doesn't exist, etc)
diff --git a/core/java/android/widget/RatingBar.java b/core/java/android/widget/RatingBar.java
index 223096116adb..3ad05b5e7c01 100644
--- a/core/java/android/widget/RatingBar.java
+++ b/core/java/android/widget/RatingBar.java
@@ -110,8 +110,8 @@ public class RatingBar extends AbsSeekBar {
}
// A touch inside a star fill up to that fractional area (slightly more
- // than 1 so boundaries round up).
- mTouchProgressOffset = 1.1f;
+ // than 0.5 so boundaries round up).
+ mTouchProgressOffset = 0.6f;
}
public RatingBar(Context context, AttributeSet attrs) {
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index 01c2a0b50c62..2956175ed622 100755
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -18,6 +18,7 @@
#include "CreateJavaOutputStreamAdaptor.h"
#include <Caches.h>
#include <hwui/Paint.h>
+#include <renderthread/RenderProxy.h>
#include "core_jni_helpers.h"
@@ -1361,6 +1362,14 @@ static jlong Bitmap_refPixelRef(JNIEnv* env, jobject, jlong bitmapHandle) {
return reinterpret_cast<jlong>(pixelRef);
}
+static void Bitmap_prepareToDraw(JNIEnv* env, jobject, jlong bitmapPtr) {
+ LocalScopedBitmap bitmapHandle(bitmapPtr);
+ if (!bitmapHandle.valid()) return;
+ SkBitmap bitmap;
+ bitmapHandle->getSkBitmap(&bitmap);
+ android::uirenderer::renderthread::RenderProxy::prepareToDraw(bitmap);
+}
+
///////////////////////////////////////////////////////////////////////////////
static const JNINativeMethod gBitmapMethods[] = {
@@ -1404,6 +1413,7 @@ static const JNINativeMethod gBitmapMethods[] = {
(void*)Bitmap_copyPixelsFromBuffer },
{ "nativeSameAs", "(JJ)Z", (void*)Bitmap_sameAs },
{ "nativeRefPixelRef", "(J)J", (void*)Bitmap_refPixelRef },
+ { "nativePrepareToDraw", "(J)V", (void*)Bitmap_prepareToDraw },
};
int register_android_graphics_Bitmap(JNIEnv* env)
diff --git a/core/res/Android.mk b/core/res/Android.mk
index a1bef8326fb7..b0669294dd9d 100644
--- a/core/res/Android.mk
+++ b/core/res/Android.mk
@@ -16,16 +16,18 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
+LOCAL_USE_AAPT2 := true
LOCAL_NO_STANDARD_LIBRARIES := true
LOCAL_PACKAGE_NAME := framework-res
LOCAL_CERTIFICATE := platform
+LOCAL_MODULE_TAGS := optional
-# Tell aapt to create "extending (non-application)" resource IDs,
-# since these resources will be used by many apps.
-LOCAL_AAPT_FLAGS := -x
+# Generate private symbols into the com.android.internal.R class
+# so they are not accessible to 3rd party apps.
LOCAL_AAPT_FLAGS += --private-symbols com.android.internal
-LOCAL_MODULE_TAGS := optional
+# Framework doesn't need versioning since it IS the platform.
+LOCAL_AAPT_FLAGS += --no-auto-version
# Install this alongside the libraries.
LOCAL_MODULE_PATH := $(TARGET_OUT_JAVA_LIBRARIES)
@@ -34,12 +36,4 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_JAVA_LIBRARIES)
# PRODUCT-agnostic resource data like IDs and type definitions.
LOCAL_EXPORT_PACKAGE_RESOURCES := true
-# Include resources generated by system RenderScript files.
-framework_GENERATED_SOURCE_DIR := $(call intermediates-dir-for,JAVA_LIBRARIES,framework,,COMMON)/src
-framework_RenderScript_STAMP_FILE := $(framework_GENERATED_SOURCE_DIR)/RenderScript.stamp
-#LOCAL_RESOURCE_DIR := $(framework_GENERATED_SOURCE_DIR)/renderscript/res $(LOCAL_PATH)/res
-
include $(BUILD_PACKAGE)
-
-# Make sure the system .rs files get compiled before building the package-export.apk.
-# $(resource_export_package): $(framework_RenderScript_STAMP_FILE)
diff --git a/core/res/res/color/watch_switch_thumb_color_material.xml b/core/res/res/color/watch_switch_thumb_color_material.xml
index a931724f3419..d4796a032631 100644
--- a/core/res/res/color/watch_switch_thumb_color_material.xml
+++ b/core/res/res/color/watch_switch_thumb_color_material.xml
@@ -12,6 +12,7 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:color="?android:colorAccent" android:state_checked="true" />
- <item android:color="?android:colorButtonNormal" android:state_checked="false" />
+ <item android:color="?android:colorButtonNormal" android:state_enabled="false" />
+ <item android:color="?android:colorControlActivated" android:state_checked="true" />
+ <item android:color="?android:colorButtonNormal" />
</selector> \ No newline at end of file
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 58d59f04f11a..23f27444e04a 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Reg!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Probeer weer"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Probeer weer"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Ontsluit vir alle kenmerke en data"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maksimum gesigontsluit-pogings oorskry"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Geen SIM-kaart nie"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Geen SIM-kaart in tablet nie."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android gradeer tans op..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android begin tans …"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimeer tans berging."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android gradeer tans op"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Sommige programme sal dalk nie behoorlik werk voordat die opgradering voltooi is nie"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> gradeer tans op …"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimeer program <xliff:g id="NUMBER_0">%1$d</xliff:g> van <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 6b3b8667099b..a1ba5362eebb 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ትክክል!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"እንደገና ሞክር"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"እንደገና ሞክር"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ለሁሉም ባህሪያት እና ውሂብ ያስከፍቱ"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"የመጨረሻውን የገጽ ክፈት ሙከራዎችን አልፏል"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ምንም ሲም ካርድ የለም"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"በጡባዊ ውስጥ ምንም SIM ካርድ የለም።"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android እያሻሻለ ነው..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android በመጀመር ላይ ነው…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"ማከማቻን በማመቻቸት ላይ።"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android በማላቅ ላይ ነው"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"አንዳንድ መተግበሪያዎች ማላቁ እስኪጠናቀቅ ድረስ በአግባቡ ላይሰሩ ይችላሉ"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> በማላቅ ላይ…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"መተግበሪያዎች በአግባቡ በመጠቀም ላይ <xliff:g id="NUMBER_0">%1$d</xliff:g> ከ <xliff:g id="NUMBER_1">%2$d</xliff:g> ፡፡"</string>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 72ba5eeb6b72..c3caa64cb181 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -690,6 +690,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"صحيح!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"أعد المحاولة"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"أعد المحاولة"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"إلغاء قفل جميع الميزات والبيانات"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"تم تجاوز الحد الأقصى لعدد محاولات تأمين الجهاز بالوجه"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"‏ليست هناك شريحة SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"‏ليس هناك شريحة SIM في الجهاز اللوحي."</string>
@@ -1114,7 +1115,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"‏جارٍ ترقية Android..."</string>
<string name="android_start_title" msgid="8418054686415318207">"‏جارٍ تشغيل Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"جارٍ تحسين السعة التخزينية."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"‏جارٍ ترقية Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"قد لا تعمل بعض التطبيقات بشكل مناسب إلا بعد انتهاء الترقية"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"جارٍ ترقية <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"جارٍ تحسين التطبيق <xliff:g id="NUMBER_0">%1$d</xliff:g> من <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-az-rAZ/strings.xml b/core/res/res/values-az-rAZ/strings.xml
index 23aa9186b506..8549a5bc1504 100644
--- a/core/res/res/values-az-rAZ/strings.xml
+++ b/core/res/res/values-az-rAZ/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Düzdür!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Bir də cəhd edin"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Bir daha cəhd et"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Bütün funksiyalar və data üçün kiliddən çıxarın"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Sifət kilidi cəhdləriniz bitdi"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM kart yoxdur."</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Planşetdə SIM kart yoxdur."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android təkmilləşdirilir..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android işə başlayır..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Yaddaş optimallaşdırılır."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android təkmilləşdirilir"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Güncəllənmə tamamlanana kimi bəzi tətbiqlər düzgün işləməyə bilər"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> təkmilləşdirilir…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> əddədən <xliff:g id="NUMBER_0">%1$d</xliff:g> tətbiq optimallaşır."</string>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index 8735a3bb0898..b7b219c92c95 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -681,6 +681,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Tačno!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Pokušajte ponovo"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Pokušajte ponovo"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Otključaj za sve funkcije i podatke"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Premašen je najveći dozvoljeni broj pokušaja Otključavanja licem"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nema SIM kartice"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"U tabletu nema SIM kartice."</string>
@@ -1045,7 +1046,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android se nadograđuje…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android se pokreće…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Memorija se optimizuje."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android se nadograđuje…"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Neke aplikacije možda neće ispravno funkcionisati dok se nadogradnja ne dovrši"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> se nadograđuje…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimizovanje aplikacije <xliff:g id="NUMBER_0">%1$d</xliff:g> od <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-be-rBY/strings.xml b/core/res/res/values-be-rBY/strings.xml
index 2737128982fb..334fd238a260 100644
--- a/core/res/res/values-be-rBY/strings.xml
+++ b/core/res/res/values-be-rBY/strings.xml
@@ -684,6 +684,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правільна!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Паспрабуйце яшчэ раз"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Паўтарыце спробу"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Разблакіраваць для ўсіх функцый і даных"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Перавышана максімальная колькасць спроб разблакоўкі праз Фэйскантроль"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Няма SIM-карты"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Няма SIM-карты ў планшэце."</string>
@@ -1068,7 +1069,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Абнаўленне Android..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android запускаецца..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Аптымізацыя сховішча."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Абнаўленне Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Пэўныя праграмы могуць не працаваць належным чынам, пакуль не скончыцца абнаўленне"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> абнаўляецца…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Аптымізацыя прыкладання <xliff:g id="NUMBER_0">%1$d</xliff:g> з <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index fb967883727d..bf93b3049877 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правилно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Опитайте отново"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Опитайте отново"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Отключете за достъп до всички функции и данни"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Максималният брой опити за отключване с лице е надвишен"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Няма SIM карта"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"В таблета няма SIM карта."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android се надстройва..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android се стартира…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Хранилището се оптимизира."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android се надстройва"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Някои приложения може да не работят правилно, докато надстройването не завърши"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> се надстройва…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Оптимизира се приложение <xliff:g id="NUMBER_0">%1$d</xliff:g> от <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml
index bd5960322f12..e2e6b6fd2978 100644
--- a/core/res/res/values-bn-rBD/strings.xml
+++ b/core/res/res/values-bn-rBD/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"সঠিক!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"আবার চেষ্টা করুন"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"আবার চেষ্টা করুন"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"সমস্ত বৈশিষ্ট্য এবং ডেটার জন্য আনলক করুন"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"মুখের সাহায্যে আনলক করার প্রচেষ্টা যতবার করা যায় তার সীমা পেরিয়ে গেছে"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"কোনো সিম কার্ড নেই"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ট্যাবলেটের মধ্যে কোনো সিম কার্ড নেই৷"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android আপগ্রেড করা হচ্ছে..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android চালু হচ্ছে…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"সঞ্চয়স্থান অপ্টিমাইজ করা হচ্ছে৷"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android আপগ্রেড করা হচ্ছে"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"আপগ্রেড সম্পন্ন না হওয়া পর্যন্ত কিছু অ্যাপ্লিকেশান সঠিকভাবে কাজ নাও করতে পারে"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> আপগ্রেড করা হচ্ছে…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g>টির মধ্যে <xliff:g id="NUMBER_0">%1$d</xliff:g>টি অ্যাপ্লিকেশান অপ্টিমাইজ করা হচ্ছে৷"</string>
@@ -1069,8 +1071,8 @@
<item quantity="one">খোলা ওয়াই-ফাই নেটওয়ার্কগুলি উপলব্ধ রয়েছে</item>
<item quantity="other">খোলা ওয়াই-ফাই নেটওয়ার্কগুলি উপলব্ধ রয়েছে</item>
</plurals>
- <string name="wifi_available_sign_in" msgid="9157196203958866662">"ওয়াই-ফাই নেটওয়ার্কে প্রবেশ করুন করুন"</string>
- <string name="network_available_sign_in" msgid="1848877297365446605">"নেটওয়ার্কে প্রবেশ করুন করুন"</string>
+ <string name="wifi_available_sign_in" msgid="9157196203958866662">"ওয়াই-ফাই নেটওয়ার্কে প্রবেশ করুন"</string>
+ <string name="network_available_sign_in" msgid="1848877297365446605">"নেটওয়ার্কে প্রবেশ করুন"</string>
<!-- no translation found for network_available_sign_in_detailed (8000081941447976118) -->
<skip />
<string name="wifi_no_internet" msgid="8451173622563841546">"ওয়াই-ফাই -তে কোনো ইন্টারনেট অ্যাক্সেস নেই"</string>
@@ -1400,7 +1402,7 @@
<string name="kg_login_instructions" msgid="1100551261265506448">"আনলক করতে আপনার Google অ্যাকাউন্টের মাধ্যমে প্রবেশ করুন করুন৷"</string>
<string name="kg_login_username_hint" msgid="5718534272070920364">"ব্যবহারকারী নাম (ইমেল)"</string>
<string name="kg_login_password_hint" msgid="9057289103827298549">"পাসওয়ার্ড"</string>
- <string name="kg_login_submit_button" msgid="5355904582674054702">"প্রবেশ করুন করুন"</string>
+ <string name="kg_login_submit_button" msgid="5355904582674054702">"প্রবেশ করুন"</string>
<string name="kg_login_invalid_input" msgid="5754664119319872197">"অবৈধ ব্যবহারকারী নাম অথবা পাসওয়ার্ড৷"</string>
<string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"আপনার ব্যবহারকারী নাম অথবা পাসওয়ার্ড ভুলে গেছেন?\n"<b>"google.com/accounts/recovery"</b>" এ যান৷"</string>
<string name="kg_login_checking_password" msgid="1052685197710252395">"অ্যাকাউন্ট পরীক্ষা করা হচ্ছে..."</string>
diff --git a/core/res/res/values-bs-rBA/strings.xml b/core/res/res/values-bs-rBA/strings.xml
index 671bf7e2b65f..f7b845543ed2 100644
--- a/core/res/res/values-bs-rBA/strings.xml
+++ b/core/res/res/values-bs-rBA/strings.xml
@@ -681,6 +681,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Ispravno!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Pokušajte ponovo"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Pokušajte ponovo"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Otključajte uređaj za sve funkcije i podatke"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Premašen maksimalni broj pokušaja otključavanja licem"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nema SIM kartice"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nema SIM kartice u tabletu."</string>
@@ -1047,7 +1048,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Nadogradnja sistema Android u toku..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android se pokreće..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimiziranje pohrane."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android se nadograđuje"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Neke aplikacije možda neće raditi ispravno dok traje nadogradnja"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Aplikacija <xliff:g id="APPLICATION">%1$s</xliff:g> se nadograđuje…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimiziranje aplikacije <xliff:g id="NUMBER_0">%1$d</xliff:g> od <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 7e366f5d2747..44da115731b4 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcte!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Torna-ho a provar"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Torna-ho a provar"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbl. per accedir a totes les funcions i dades"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"S\'ha superat el nombre màxim d\'intents de desbloqueig facial"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"No hi ha cap targeta SIM."</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No hi ha cap targeta SIM a la tauleta."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android s\'està actualitzant..."</string>
<string name="android_start_title" msgid="8418054686415318207">"S\'està iniciant Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"S\'està optimitzant l\'emmagatzematge."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android s\'està actualitzant"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Pot ser que algunes aplicacions no funcionin correctament fins que no es completi l\'actualització"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"S\'està actualitzant <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"S\'està optimitzant l\'aplicació <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 1e1919cb4957..f86ff911a1a8 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -684,6 +684,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Správně!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Zkusit znovu"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Zkusit znovu"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Funkce a data jsou k dispozici po odemčení"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Překročili jste maximální povolený počet pokusů o odemknutí obličejem."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Není vložena SIM karta"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"V tabletu není SIM karta."</string>
@@ -1068,7 +1069,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android se upgraduje..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Spouštění systému Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Probíhá optimalizace úložiště."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android se upgraduje"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Před dokončením upgradu nemusí některé aplikace fungovat správně"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Aplikace <xliff:g id="APPLICATION">%1$s</xliff:g> se upgraduje…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimalizování aplikace <xliff:g id="NUMBER_0">%1$d</xliff:g> z <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index ef201c5b2880..05123cb75a99 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Rigtigt!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Prøv igen"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Prøv igen"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Lås op for at se alle funktioner og data"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Det maksimale antal forsøg på at bruge Ansigtslås er overskredet"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Intet SIM-kort"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Der er ikke noget SIM-kort i tabletcomputeren."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android opgraderes..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android starter..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Lageret optimeres."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android opgraderes"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Nogle apps fungerer muligvis ikke korrekt, før opgraderingen er gennemført"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> opgraderer…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimerer app <xliff:g id="NUMBER_0">%1$d</xliff:g> ud af <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 509656501793..65193fd9a548 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Korrekt!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Erneut versuchen"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Erneut versuchen"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Entsperren, um alle Funktionen und Daten zu nutzen"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Die maximal zulässige Anzahl an Face Unlock-Versuchen wurde überschritten."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Keine SIM-Karte"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Keine SIM-Karte im Tablet"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android wird aktualisiert..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android wird gestartet…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Speicher wird optimiert"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android wird aktualisiert"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Einige Apps funktionieren unter Umständen nicht richtig, bis das Upgrade abgeschlossen ist"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Für <xliff:g id="APPLICATION">%1$s</xliff:g> wird gerade ein Upgrade ausgeführt…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"App <xliff:g id="NUMBER_0">%1$d</xliff:g> von <xliff:g id="NUMBER_1">%2$d</xliff:g> wird optimiert..."</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 5188f7b997e5..d1ef478cdb35 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Σωστό!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Προσπαθήστε ξανά"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Προσπαθήστε ξανά"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Ξεκλείδωμα για όλες τις λειτουργίες και δεδομένα"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Έγινε υπέρβαση του μέγιστου αριθμού προσπαθειών Face Unlock"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Δεν υπάρχει κάρτα SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Δεν υπάρχει κάρτα SIM στο tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Το Android αναβαθμίζεται..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Εκκίνηση Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Βελτιστοποίηση αποθηκευτικού χώρου."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Το Android αναβαθμίζεται"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Ορισμένες εφαρμογές ενδέχεται να μην λειτουργούν σωστά μέχρι την ολοκλήρωση της αναβάθμισης"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Η εφαρμογή <xliff:g id="APPLICATION">%1$s</xliff:g> αναβαθμίζεται…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Βελτιστοποίηση της εφαρμογής <xliff:g id="NUMBER_0">%1$d</xliff:g> από <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 43945e534016..fe78ee59e392 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correct!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Try again"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Try again"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Unlock for all features and data"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maximum Face Unlock attempts exceeded"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"No SIM card"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No SIM card in tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android is upgrading…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android is starting…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimising storage."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android is upgrading"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Some apps may not work properly until the upgrade finishes"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> is upgrading…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimising app <xliff:g id="NUMBER_0">%1$d</xliff:g> of <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 43945e534016..fe78ee59e392 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correct!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Try again"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Try again"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Unlock for all features and data"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maximum Face Unlock attempts exceeded"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"No SIM card"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No SIM card in tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android is upgrading…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android is starting…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimising storage."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android is upgrading"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Some apps may not work properly until the upgrade finishes"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> is upgrading…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimising app <xliff:g id="NUMBER_0">%1$d</xliff:g> of <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 43945e534016..fe78ee59e392 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correct!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Try again"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Try again"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Unlock for all features and data"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maximum Face Unlock attempts exceeded"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"No SIM card"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No SIM card in tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android is upgrading…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android is starting…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimising storage."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android is upgrading"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Some apps may not work properly until the upgrade finishes"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> is upgrading…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimising app <xliff:g id="NUMBER_0">%1$d</xliff:g> of <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 3f3d328d3819..9cb72fbf494e 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Vuelve a intentarlo."</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Volver a intentarlo"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloquea para acceder a funciones y datos"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Se superó el máximo de intentos permitido para el desbloqueo facial del dispositivo."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Sin tarjeta SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No hay tarjeta SIM en el tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android se está actualizando..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Iniciando Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimizando almacenamiento"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android se está actualizando"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Es posible que algunas apps no funcionen correctamente hasta que termine la actualización"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Se está actualizando <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimizando la aplicación <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>"</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 7efefe6a9b1f..5d9f0e75a515 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Vuelve a intentarlo"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Vuelve a intentarlo"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloquear para todos los datos y funciones"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Se ha superado el número máximo de intentos de desbloqueo facial."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Falta la tarjeta SIM."</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"No se ha insertado ninguna tarjeta SIM en el tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Actualizando Android"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android se está iniciando…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimizando almacenamiento."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Actualizando Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Es posible que algunas aplicaciones no funcionen correctamente hasta que finalice la actualización"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> se está actualizando…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimizando aplicación <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>..."</string>
diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml
index 9fbbba05fc48..83d1f30687e3 100644
--- a/core/res/res/values-et-rEE/strings.xml
+++ b/core/res/res/values-et-rEE/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Õige."</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Proovige uuesti"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Proovige uuesti"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Ava kõigi funktsioonide ja andmete nägemiseks"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maksimaalne teenusega Face Unlock avamise katsete arv on ületatud"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM-kaarti pole"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Tahvelarvutis pole SIM-kaarti."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android viiakse üle uuemale versioonile ..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android käivitub ..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Salvestusruumi optimeerimine."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android viiakse üle uuemale versioonile"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Mõned rakendused ei pruugi enne uuemale versioonile ülemineku lõpetamist korralikult töötada"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Rakenduse <xliff:g id="APPLICATION">%1$s</xliff:g> versiooni uuendatakse …"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g>. rakenduse <xliff:g id="NUMBER_1">%2$d</xliff:g>-st optimeerimine."</string>
diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml
index bde9f4902a5a..a621850cd56b 100644
--- a/core/res/res/values-eu-rES/strings.xml
+++ b/core/res/res/values-eu-rES/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Eredua zuzena da!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Saiatu berriro"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Saiatu berriro"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desblokeatu eginbide eta datu guztiak erabiltzeko"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Aurpegiaren bidez desblokeatzeko saiakera muga gainditu da"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Ez dago SIM txartelik"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Ez dago SIM txartelik tabletan."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android bertsio-berritzen ari da…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android abiarazten ari da…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Memoria optimizatzen."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android bertsioa berritzen ari gara"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Aplikazio batzuek agian ez dute behar bezala funtzionatuko bertsioa berritzen amaitu arte"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> bertsio-berritzen ari da…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g>/<xliff:g id="NUMBER_1">%2$d</xliff:g> aplikazio optimizatzen."</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 4377690c585d..40a5478599be 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -127,7 +127,7 @@
<item msgid="2254967670088539682">"‏برای برقراری تماس و ارسال پیام از طریق Wi-Fi، ابتدا از شرکت مخابراتی‌تان درخواست کنید این سرویس را راه‌اندازی کند. سپس دوباره از تنظیمات، تماس Wi-Fi را روشن کنید."</item>
</string-array>
<string-array name="wfcOperatorErrorNotificationMessages">
- <item msgid="6177300162212449033">"ثبت نام با شرکت مخابراتی شما"</item>
+ <item msgid="6177300162212449033">"ثبت‌نام با شرکت مخابراتی شما"</item>
</string-array>
<string-array name="wfcSpnFormats">
<item msgid="6830082633573257149">"%s"</item>
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"صحیح است!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"دوباره امتحان کنید"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"دوباره امتحان کنید"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"باز کردن قفل تمام قابلیت‌ها و داده‌ها"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"‏دفعات تلاش برای Face Unlock از حداکثر مجاز بیشتر شد"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"سیم کارت موجود نیست"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"سیم کارت درون رایانهٔ لوحی نیست."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"‏Android در حال ارتقا است..."</string>
<string name="android_start_title" msgid="8418054686415318207">"‏Android در حال راه‌اندازی است..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"بهینه‌سازی فضای ذخیره‌سازی."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"‏Android درحال ارتقا است"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"تا پایان ارتقا، ممکن است برخی از برنامه‌ها به‌درستی کار نکنند."</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> درحال ارتقا است...."</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"در حال بهینه‌سازی برنامهٔ <xliff:g id="NUMBER_0">%1$d</xliff:g> از <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
@@ -1511,8 +1513,8 @@
<string name="mediasize_japanese_kahu" msgid="6872696027560065173">"Kahu"</string>
<string name="mediasize_japanese_kaku2" msgid="2359077233775455405">"Kaku2"</string>
<string name="mediasize_japanese_you4" msgid="2091777168747058008">"You4"</string>
- <string name="mediasize_unknown_portrait" msgid="3088043641616409762">"عمودی ناشناخته"</string>
- <string name="mediasize_unknown_landscape" msgid="4876995327029361552">"افقی ناشناخته"</string>
+ <string name="mediasize_unknown_portrait" msgid="3088043641616409762">"عمودی ناشناس"</string>
+ <string name="mediasize_unknown_landscape" msgid="4876995327029361552">"افقی ناشناس"</string>
<string name="write_fail_reason_cancelled" msgid="7091258378121627624">"لغو شد"</string>
<string name="write_fail_reason_cannot_write" msgid="8132505417935337724">"خطا هنگام نوشتن محتوا"</string>
<string name="reason_unknown" msgid="6048913880184628119">"نامعلوم"</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index b32099d1a998..e84b58e68a9f 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Oikein!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Yritä uudelleen"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Yritä uudelleen"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Käytä kaikkia ominaisuuksia avaamalla lukitus."</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Face Unlock -yrityksiä tehty suurin sallittu määrä."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Ei SIM-korttia"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Tablet-laitteessa ei ole SIM-korttia."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Androidia päivitetään…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android käynnistyy…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimoidaan tallennustilaa."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Androidia päivitetään"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Kaikki sovellukset eivät ehkä toimi oikein, ennen kuin päivitys on valmis."</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> päivittyy…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimoidaan sovellusta <xliff:g id="NUMBER_0">%1$d</xliff:g>/<xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index a5d990d7f8fc..2969906a4c3c 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"C\'est exact!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Réessayer"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Réessayer"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Déverr. pour acc. aux autres fonction. et données"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Nombre maximal autorisé de tentatives Face Unlock atteint."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Aucune carte SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Aucune carte SIM n\'est insérée dans la tablette."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Mise à jour d\'Android…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android en cours de démarrage..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimisation du stockage."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Installation de la m. à niveau d\'Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Il se peut que certaines applications ne fonctionnent pas correctement jusqu\'à ce que la mise à niveau soit terminée"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Mise à niveau de <xliff:g id="APPLICATION">%1$s</xliff:g> en cours…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimisation de l\'application <xliff:g id="NUMBER_0">%1$d</xliff:g> sur <xliff:g id="NUMBER_1">%2$d</xliff:g>…"</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 5fcc9a45cfbe..6559c74ecdd3 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Combinaison correcte !"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Veuillez réessayer."</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Veuillez réessayer."</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Déverr. pour autres fonctionnalités et données"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Nombre maximal autorisé de tentatives Face Unlock atteint."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Pas de carte SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Aucune carte SIM n\'est insérée dans la tablette."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Mise à jour d\'Android…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Démarrage d\'Android en cours"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimisation du stockage en cours…"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Mise à jour d\'Android…"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Certaines applications peuvent ne pas fonctionner correctement jusqu\'à ce que la mise à jour soit terminée."</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Mise à jour de l\'application <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimisation de l\'application <xliff:g id="NUMBER_0">%1$d</xliff:g> sur <xliff:g id="NUMBER_1">%2$d</xliff:g>…"</string>
diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml
index feb08026b0ea..b4a835bb6169 100644
--- a/core/res/res/values-gl-rES/strings.xml
+++ b/core/res/res/values-gl-rES/strings.xml
@@ -249,7 +249,7 @@
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Calendario"</string>
<string name="permgroupdesc_calendar" msgid="3889615280211184106">"acceder ao teu calendario"</string>
<string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
- <string name="permgroupdesc_sms" msgid="4656988620100940350">"envíar e consultar mensaxes de SMS"</string>
+ <string name="permgroupdesc_sms" msgid="4656988620100940350">"enviar e consultar mensaxes de SMS"</string>
<string name="permgrouplab_storage" msgid="1971118770546336966">"Almacenamento"</string>
<string name="permgroupdesc_storage" msgid="637758554581589203">"acceder a fotos, contido multimedia e ficheiros no teu dispositivo"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Micrófono"</string>
@@ -259,7 +259,7 @@
<string name="permgrouplab_phone" msgid="5229115638567440675">"Teléfono"</string>
<string name="permgroupdesc_phone" msgid="6234224354060641055">"facer e xestionar chamadas telefónicas"</string>
<string name="permgrouplab_sensors" msgid="416037179223226722">"Sensores corporais"</string>
- <string name="permgroupdesc_sensors" msgid="7147968539346634043">"accede aos datos do sensor sobre as túas constantes vitais"</string>
+ <string name="permgroupdesc_sensors" msgid="7147968539346634043">"acceder aos datos do sensor sobre as túas constantes vitais"</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>
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Téntao de novo"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Téntao de novo"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloquea para gozar todas as funcións e datos"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Superouse o número máximo de intentos de desbloqueo facial"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Non hai ningunha tarxeta SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Non hai ningunha tarxeta SIM na tableta."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Estase actualizando Android…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Estase iniciando Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimizando almacenamento."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Estase actualizando Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"É posible que algunhas aplicacións non funcionen correctamente ata que finalice o proceso de actualización"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Actualizando <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimizando aplicación <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-gu-rIN/strings.xml b/core/res/res/values-gu-rIN/strings.xml
index 964b12ca7e8e..a45f7dbbbad9 100644
--- a/core/res/res/values-gu-rIN/strings.xml
+++ b/core/res/res/values-gu-rIN/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"સાચું!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ફરી પ્રયાસ કરો"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"ફરી પ્રયાસ કરો"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"તમામ સુવિધાઓ અને ડેટા માટે અનલૉક કરો"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"મહત્તમ ફેસ અનલૉક પ્રયાસો ઓળંગાયા"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"કોઈ SIM કાર્ડ નથી"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ટેબ્લેટમાં SIM કાર્ડ નથી."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android અપગ્રેડ થઈ રહ્યું છે..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android પ્રારંભ થઈ રહ્યું છે…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"સંગ્રહ ઓપ્ટિમાઇઝ કરી રહ્યું છે."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android અપગ્રેડ થઈ રહ્યું છે"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"અપગ્રેડ સમાપ્ત ન થાય ત્યાં સુધી કેટલીક ઍપ્લિકેશનો કદાચ યોગ્ય રીતે કામ ન કરે"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> અપગ્રેડ થઈ રહી છે…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> માંથી <xliff:g id="NUMBER_0">%1$d</xliff:g> ઍપ્લિકેશન ઓપ્ટિમાઇઝ કરી રહ્યું છે."</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index c646a5724cf3..0551a581ae9f 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"सही!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"फिर से प्रयास करें"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"फिर से प्रयास करें"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"सभी सुविधाओं और डेटा के लिए अनलॉक करें"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"फेस अनलॉक के अधिकतम प्रयासों की सीमा पार हो गई"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"कोई सिम कार्ड नहीं है"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"टेबलेट में कोई सिम कार्ड नहीं है."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android अपग्रेड हो रहा है..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android प्रारंभ हो रहा है…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"मेमोरी ऑप्‍टिमाइज़ हो रही है."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android अपग्रेड हो रहा है"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"जब तक अपग्रेड पूरा नहीं हो जाता, तब तक संभव है कि कुछ ऐप्लिकेशन ठीक से कार्य ना करें"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> अपग्रेड हो रहा है…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> में से <xliff:g id="NUMBER_0">%1$d</xliff:g> ऐप्स अनुकूलित हो रहा है."</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index eaca463aec96..a557b02b79ce 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -681,6 +681,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Ispravno!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Pokušajte ponovo"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Pokušajte ponovo"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Otključajte za sve značajke i podatke"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Premašen je maksimalni broj Otključavanja licem"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nema SIM kartice"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"U tabletnom uređaju nema SIM kartice."</string>
@@ -1045,7 +1046,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android se nadograđuje…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Pokretanje Androida..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimiziranje pohrane."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android se nadograđuje"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Neke aplikacije možda neće funkcionirati pravilno dok nadogradnja ne završi"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Nadogradnja aplikacije <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimiziranje aplikacije <xliff:g id="NUMBER_0">%1$d</xliff:g> od <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 7eecfa3109f2..f41bc58c62b6 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Helyes!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Próbálja újra"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Újra"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Oldja fel a funkciók és adatok eléréséhez"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Elérte az arcalapú feloldási kísérletek maximális számát"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nincs SIM-kártya."</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nincs SIM-kártya a táblagépben."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android frissítése folyamatban..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Az Android indítása…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Tárhely-optimalizálás."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android frissítése folyamatban"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"A frissítés befejezéséig előfordulhat, hogy egyes alkalmazások nem megfelelően működnek."</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"A(z) <xliff:g id="APPLICATION">%1$s</xliff:g> frissítése folyamatban van"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Alkalmazás optimalizálása: <xliff:g id="NUMBER_0">%1$d</xliff:g>/<xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml
index 85392ff67d67..53166c8603e7 100644
--- a/core/res/res/values-hy-rAM/strings.xml
+++ b/core/res/res/values-hy-rAM/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Ճիշտ է:"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Կրկին փորձեք"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Կրկին փորձեք"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Ապակողպեք՝ բոլոր գործառույթներն ու տվյալներն օգտագործելու համար"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Առավելագույն Դեմքով ապակողպման փորձերը գերազանցված են"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM քարտ չկա"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Գրասալիկում SIM քարտ չկա:"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android-ը նորացվում է..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android-ը մեկնարկում է…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Պահեստի օպտիմալացում:"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android-ը նորացվում է"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Հնարավոր է՝ որոշ հավելվածներ մինչև նորացման ավարտը ճիշտ չաշխատեն"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> հավելվածը նորացվում է…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Օպտիմալացվում է հավելված <xliff:g id="NUMBER_0">%1$d</xliff:g>-ը <xliff:g id="NUMBER_1">%2$d</xliff:g>-ից:"</string>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 4790524ed585..89ca466875f8 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Perbaiki!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Coba lagi"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Coba lagi"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Membuka kunci untuk semua fitur dan data"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Percobaan Face Unlock melebihi batas maksimum"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Tidak ada kartu SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Tidak ada kartu SIM dalam tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android sedang meningkatkan versi..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Memulai Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Mengoptimalkan penyimpanan."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android sedang meningkatkan versi"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Beberapa aplikasi mungkin tidak berfungsi dengan baik jika peningkatan versi belum selesai"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> sedang ditingkatkan versinya…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Mengoptimalkan aplikasi <xliff:g id="NUMBER_0">%1$d</xliff:g> dari <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml
index fb312678a3f0..190c40447ade 100644
--- a/core/res/res/values-is-rIS/strings.xml
+++ b/core/res/res/values-is-rIS/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Rétt!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Reyndu aftur"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Reyndu aftur"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Taktu úr lás til að sjá alla eiginleika og gögn"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Hámarksfjölda tilrauna til að opna með andliti náð"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Ekkert SIM-kort"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Ekkert SIM-kort í spjaldtölvunni."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android er að uppfæra…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android er að ræsast…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Fínstillir geymslu."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android er að uppfæra"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Hugsanlega virka sum forrit ekki fyrr en uppfærslunni lýkur"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> uppfærir…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Fínstillir forrit <xliff:g id="NUMBER_0">%1$d</xliff:g> af <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index eec694e7e7f9..ee21b2cff5e7 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -310,7 +310,7 @@
<string name="permdesc_enableCarMode" msgid="4853187425751419467">"Consente all\'applicazione di abilitare la modalità automobile."</string>
<string name="permlab_killBackgroundProcesses" msgid="3914026687420177202">"chiusura altre applicazioni"</string>
<string name="permdesc_killBackgroundProcesses" msgid="4593353235959733119">"Consente all\'applicazione di terminare i processi in background di altre applicazioni. Ciò potrebbe causare l\'interruzione di altre applicazioni."</string>
- <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"posizionamento davanti ad altre app"</string>
+ <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"visualizzazione sopra altre app"</string>
<string name="permdesc_systemAlertWindow" msgid="8584678381972820118">"Consente all\'applicazione di spostarsi sopra ad altre applicazioni o parti dell\'interfaccia utente. Potrebbe interferire con il tuo utilizzo dell\'interfaccia in qualsiasi applicazione o cambiare ciò che credi di vedere in altre applicazioni."</string>
<string name="permlab_persistentActivity" msgid="8841113627955563938">"esecuzione permanente delle applicazioni"</string>
<string name="permdesc_persistentActivity" product="tablet" msgid="8525189272329086137">"Consente all\'applicazione di rendere persistenti in memoria alcune sue parti. Ciò può limitare la memoria disponibile per altre applicazioni, rallentando il tablet."</string>
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Corretta."</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Riprova"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Riprova"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Sblocca per accedere a funzioni e dati"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Numero massimo di tentativi di Sblocco col sorriso superato"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nessuna scheda SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nessuna scheda SIM presente nel tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Aggiornamento di Android..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Avvio di Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Ottimizzazione archiviazione."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Aggiornamento di Android in corso"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Alcune app potrebbero non funzionare correttamente fino al completamento dell\'upgrade"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Upgrade dell\'app <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Ottimizzazione applicazione <xliff:g id="NUMBER_0">%1$d</xliff:g> di <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 39bb50f5b53a..924b5d282532 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -684,6 +684,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"נכון!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"נסה שוב"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"נסה שוב"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"בטל את הנעילה לכל התכונות והנתונים"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"חרגת ממספר הניסיונות המרבי של זיהוי פנים"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"‏אין כרטיס SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"‏אין כרטיס SIM בטאבלט."</string>
@@ -1068,7 +1069,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"‏Android מבצע שדרוג…"</string>
<string name="android_start_title" msgid="8418054686415318207">"‏הפעלת Android מתחילה…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"מתבצעת אופטימיזציה של האחסון."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"‏Android מבצע שדרוג"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"ייתכן שאפליקציות מסוימות לא יפעלו כראוי עד סיום השדרוג"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> מבצעת שדרוג…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"מבצע אופטימיזציה של אפליקציה <xliff:g id="NUMBER_0">%1$d</xliff:g> מתוך <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index da90057530ac..257755952dc0 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"一致しました"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"もう一度お試しください"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"もう一度お試しください"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"すべての機能とデータを利用するにはロック解除"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"フェイスアンロックの最大試行回数を超えました"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIMカードが挿入されていません"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"タブレット内にSIMカードがありません。"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Androidをアップグレードしています..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Androidの起動中…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"ストレージを最適化しています。"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android のアップグレード中"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"アップグレードが完了するまで一部のアプリが正常に動作しない可能性があります"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"「<xliff:g id="APPLICATION">%1$s</xliff:g>」をアップグレードしています…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g>個中<xliff:g id="NUMBER_0">%1$d</xliff:g>個のアプリを最適化しています。"</string>
diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml
index 2d3aaa62b83f..147277a52587 100644
--- a/core/res/res/values-ka-rGE/strings.xml
+++ b/core/res/res/values-ka-rGE/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"სწორია!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"კიდევ სცადეთ"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"კიდევ სცადეთ"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ყველა ფუნქციისა და მონაცემის განბლოკვა"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"სახის ამოცნობით განბლოკვის მცდელობამ დაშვებულ რაოდენობას გადააჭარბა"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM ბარათი არ არის"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ტაბლეტში არ დევს SIM ბარათი."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android ახალ ვერსიაზე გადადის…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android იწყება…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"მეხსიერების ოპტიმიზირება."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android ახალ ვერსიაზე გადადის"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"ახალ ვერსიაზე გადასვლის დასრულებამდე, ზოგიერთმა აპმა შეიძლება არასწორად იმუშაოს"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ახალ ვერსიაზე გადადის…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"მიმდინარეობს აპლიკაციების ოპტიმიზაცია. დასრულებულია <xliff:g id="NUMBER_0">%1$d</xliff:g>, სულ <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml
index 7d3eddfcce74..2c21cc8011bd 100644
--- a/core/res/res/values-kk-rKZ/strings.xml
+++ b/core/res/res/values-kk-rKZ/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Дұрыс!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Қайталап көріңіз"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Қайталап көріңіз"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Мүмкіндіктер мен деректер үшін құлыпты ашыңыз"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Бет-әлпет арқылы ашу әрекеттері анықталған шегінен асып кетті"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM картасы жоқ"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Планшетте SIM картасы жоқ."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android жаңартылуда…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android іске қосылуда…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Қойманы оңтайландыру."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android жаңартылуда"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Жаңарту аяқталғанға дейін кейбір қолданбалар дұрыс жұмыс істемеуі мүмкін"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> жаңартылуда…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> ішінен <xliff:g id="NUMBER_0">%1$d</xliff:g> қолданба оңтайландырылуда."</string>
diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml
index aaf692139e88..a8855b930d9a 100644
--- a/core/res/res/values-km-rKH/strings.xml
+++ b/core/res/res/values-km-rKH/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ត្រឹមត្រូវ!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ព្យាយាម​ម្ដង​ទៀត"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"ព្យាយាម​ម្ដង​ទៀត"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ដោះសោលក្ខណៈពិសេស និងទិន្នន័យទាំងអស់"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"បាន​លើស​ការ​ព្យាយាម​ដោះ​សោ​តាម​ទម្រង់​មុខ"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"គ្មាន​ស៊ី​ម​កាត"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"គ្មាន​ស៊ីម​កាត​ក្នុង​កុំព្យូទ័រ​បន្ទះ។"</string>
@@ -1024,7 +1025,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android កំពុង​ធ្វើ​បច្ចុប្បន្នភាព..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android កំពុង​ចាប់ផ្ដើម…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"កំពុងធ្វើឲ្យឧបករណ៍ផ្ទុកមានប្រសិទ្ធភាព។"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android កំពុងអាប់គ្រេត..."</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"កម្មវិធីមួយចំនួនអាចនឹងមិនដំណើរការប្រក្រតីនោះទេ រហូតដល់ការអាប់គ្រេតបញ្ចប់"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> អាប់គ្រេត…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"ធ្វើ​ឲ្យ​កម្មវិធី​ប្រសើរ​ឡើង <xliff:g id="NUMBER_0">%1$d</xliff:g> នៃ <xliff:g id="NUMBER_1">%2$d</xliff:g> ។"</string>
diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml
index 6cdf10cded55..969cbf5b8117 100644
--- a/core/res/res/values-kn-rIN/strings.xml
+++ b/core/res/res/values-kn-rIN/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ಸರಿಯಾಗಿದೆ!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ಎಲ್ಲ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಡೇಟಾಗೆ ಅನ್‌ಲಾಕ್ ಮಾಡಿ"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"ಗರಿಷ್ಠ ಫೇಸ್ ಅನ್‍ಲಾಕ್ ಪ್ರಯತ್ನಗಳು ಮೀರಿವೆ"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ಯಾವುದೇ ಸಿಮ್‌ ಕಾರ್ಡ್ ಇಲ್ಲ"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ಟ್ಯಾಬ್ಲೆಟ್‌ನಲ್ಲಿ ಸಿಮ್‌ ಕಾರ್ಡ್ ಇಲ್ಲ."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android ಅಪ್‌ಗ್ರೇಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"ಸಂಗ್ರಹಣೆಯನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗುತ್ತಿದೆ."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android ಅಪ್‌ಗ್ರೇಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"ಅಪ್‌ಗ್ರೇಡ್ ಮುಗಿಯುವ ತನಕ ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡದಿರಬಹುದು"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ಅಪ್‌ಗ್ರೇಡ್ ಆಗುತ್ತಿದೆ..."</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> ರಲ್ಲಿ <xliff:g id="NUMBER_0">%1$d</xliff:g> ಅಪ್ಲಿಕೇಶನ್‌ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗುತ್ತಿದೆ."</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 68a3f25934a8..0bd7bdf1c7fe 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"맞습니다."</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"다시 시도"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"다시 시도"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"모든 기능 및 데이터 잠금 해제"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"얼굴 인식 잠금해제 최대 시도 횟수를 초과했습니다."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM 카드가 없습니다."</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"태블릿에 SIM 카드가 없습니다."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android 업그레이드 중.."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android가 시작되는 중…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"저장소 최적화 중"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android 업그레이드 중"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"특정 앱은 업그레이드가 완료될 때까지 제대로 작동하지 않을 수 있습니다."</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> 업그레이드 중…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"앱 <xliff:g id="NUMBER_1">%2$d</xliff:g>개 중 <xliff:g id="NUMBER_0">%1$d</xliff:g>개 최적화 중"</string>
diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml
index fb5085df3fc4..f454d18b9f56 100644
--- a/core/res/res/values-ky-rKG/strings.xml
+++ b/core/res/res/values-ky-rKG/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Туура!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Дагы аракет кылыңыз"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Дагы аракет кылыңыз"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Элементтердин жана дайындардын кулпусун ачуу"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Жүзүнөн таанып ачуу аракеттеринин чегинен аштыңыз"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM-карта жок"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Планшетте SIM-карта жок."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android жаңыртылууда…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android жүргүзүлүүдө…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Сактагыч ыңгайлаштырылууда."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android жаңыртылууда"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Жаңыртуу аягына чыкмайынча айрым колдонмолор талаптагыдай иштебей калышы мүмкүн"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> жаңыртылууда..."</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> ичинен <xliff:g id="NUMBER_0">%1$d</xliff:g> колдонмо ыңгайлаштырылууда."</string>
diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml
index 6fcc233e0196..aebfb099baf4 100644
--- a/core/res/res/values-lo-rLA/strings.xml
+++ b/core/res/res/values-lo-rLA/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ຖືກຕ້ອງ!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ລອງໃໝ່ອີກຄັ້ງ"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"ທົດລອງອີກຄັ້ງ"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ປົດລັອກຄຸນສົມບັດ ແລະ ຂໍ້ມູນທັງໝົດ"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"ຄວາມພະຍາຍາມປົດລັອກດ້ວຍໜ້ານັ້ນ ເກີນຈຳນວນທີ່ກຳນົດແລ້ວ"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ບໍ່ມີ SIM card."</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ບໍ່ມີຊິມກາດໃນແທັບເລັດ."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"ກຳລັງອັບເກຣດ Android..."</string>
<string name="android_start_title" msgid="8418054686415318207">"ກຳ​ລັງ​ເລີ່ມລະ​ບົບ​ Android …"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"ການ​ປັບ​ບ່ອນ​ເກັບ​ຂໍ້​ມູນ​ໃຫ້​ເໝາະ​ສົມ."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"ກຳລັງອັບເກຣດ Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"ບາງແອັບອາດບໍ່ສາມາດເຮັດວຽກໄດ້ປົກກະຕິຈົນກວ່າຈະອັບເກຣດສຳເລັດ"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"ກຳລັງອັບເກຣດ<xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"ກຳລັງ​ປັບປຸງ​ປະສິດທິພາບ​ແອັບຯ​ທີ <xliff:g id="NUMBER_0">%1$d</xliff:g> ຈາກ​ທັງ​ໝົດ <xliff:g id="NUMBER_1">%2$d</xliff:g> ແອັບຯ."</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 8df29dbcea9e..39438e08b6ed 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -684,6 +684,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Teisingai!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Bandykite dar kartą"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Bandykite dar kartą"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Atrakinę pasieksite visas funkcijas ir duomenis"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Viršijote maksimalų atrakinimo pagal veidą bandymų skaičių"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nėra SIM kortelės"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Planšetiniame kompiuteryje nėra SIM kortelės."</string>
@@ -1068,7 +1069,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"„Android“ naujovinama..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Paleidžiama „Android“…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimizuojama saugykla."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"„Android“ naujovinama"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Kai kurios programos gali tinkamai neveikti, kol naujovinimo procesas nebus baigtas"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"„<xliff:g id="APPLICATION">%1$s</xliff:g>“ naujovinama..."</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimizuojama <xliff:g id="NUMBER_0">%1$d</xliff:g> progr. iš <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index c5df3542af4b..6490a98e1094 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -681,6 +681,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Pareizi!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Mēģināt vēlreiz"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Mēģināt vēlreiz"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Atbloķēt visām funkcijām un datiem"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Ir pārsniegts maksimālais Autorizācijas pēc sejas mēģinājumu skaits."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nav SIM kartes"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Planšetdatorā nav SIM kartes."</string>
@@ -1045,7 +1046,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Notiek Android jaunināšana..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Notiek Android palaišana…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Notiek krātuves optimizēšana."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Notiek Android jaunināšana..."</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Kamēr jaunināšana nebūs pabeigta, dažas lietotnes, iespējams, nedarbosies pareizi."</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Notiek lietotnes <xliff:g id="APPLICATION">%1$s</xliff:g> jaunināšana…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Tiek optimizēta <xliff:g id="NUMBER_0">%1$d</xliff:g>. lietotne no <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml
index cd25aa05cb25..f1d53dd92edb 100644
--- a/core/res/res/values-mk-rMK/strings.xml
+++ b/core/res/res/values-mk-rMK/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Точно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Обидете се повторно"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Обидете се повторно"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Отклучи за сите функции и податоци"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Максималниот број обиди на отклучување со лице е надминат"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Нема СИМ картичка"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Во таблетот нема СИМ картичка."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android се ажурира…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android стартува…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Оптимизирање на складирањето."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android се ажурира"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Некои апликации може да не работат правилно додека не се заврши надградбата"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> се надградува…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Се оптимизира апликација <xliff:g id="NUMBER_0">%1$d</xliff:g> од <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml
index 13e820d44722..e3d30e68459b 100644
--- a/core/res/res/values-ml-rIN/strings.xml
+++ b/core/res/res/values-ml-rIN/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ശരി!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"വീണ്ടും ശ്രമിക്കുക"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"വീണ്ടും ശ്രമിക്കുക"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"എല്ലാ ഫീച്ചറുകളും വിവരങ്ങളും ലഭിക്കാൻ അൺലോക്കുചെയ്യുക"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"മുഖം തിരിച്ചറിഞ്ഞുള്ള അൺലോക്ക് ശ്രമങ്ങളുടെ പരമാവധി കഴിഞ്ഞു"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"സിം കാർഡില്ല"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ടാബ്‌ലെറ്റിൽ സിം കാർഡൊന്നുമില്ല."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android അപ്ഗ്രേഡുചെയ്യുന്നു…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android ആരംഭിക്കുന്നു…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"സ്റ്റോറേജ് ഒപ്‌റ്റിമൈസ് ചെയ്യുന്നു."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android അപ്ഗ്രേഡുചെയ്യുന്നു"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"അപ്‌ഗ്രേഡ് പൂർത്തിയാകുന്നത് വരെ ചില ആപ്‌സ് ശരിയായി പ്രവർത്തിച്ചേക്കില്ല"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> അപ്ഗ്രേഡ് ചെയ്യുന്നു…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g> / <xliff:g id="NUMBER_1">%2$d</xliff:g> അപ്ലിക്കേഷൻ ഓപ്റ്റിമൈസ് ചെയ്യുന്നു."</string>
diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml
index 3a1b479b08cf..4cfb68b1e495 100644
--- a/core/res/res/values-mn-rMN/strings.xml
+++ b/core/res/res/values-mn-rMN/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Зөв!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Дахин оролдох"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Дахин оролдох"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Бүх онцлог, өгөгдлийн түгжээг тайлах"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Нүүрээр түгжээ тайлах оролдлогын тоо дээд хэмжээнээс хэтэрсэн"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM карт байхгүй"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Таблет SIM картгүй."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Андройдыг дэвшүүлж байна…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Андройд эхэлж байна..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Хадгалалтыг сайжруулж байна."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Андройдыг дэвшүүлж байна"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Шинэчилж дуустал зарим апп хэвийн бус ажиллаж болзошгүй"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g>-г сайжруулж байна…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g>-н <xliff:g id="NUMBER_0">%1$d</xliff:g> апп-г тохируулж байна."</string>
diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml
index d97be5051df7..3a1c0ed73d43 100644
--- a/core/res/res/values-mr-rIN/strings.xml
+++ b/core/res/res/values-mr-rIN/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"अचूक!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"पुन्हा प्रयत्न करा"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"पुन्हा प्रयत्न करा"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"सर्व वैशिष्‍ट्ये आणि डेटासाठी अनलॉक करा"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"कमाल चेहरा अनलॉक प्रयत्न ओलांडले"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"सिम कार्ड नाही"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"टॅब्लेटमध्ये सिम कार्ड नाही."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android श्रेणीसुधारित होत आहे..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android प्रारंभ करत आहे…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"संचयन ऑप्टिमाइझ करत आहे."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android श्रेणीसुधारित होत आहे"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"श्रेणीसुधारणा पूर्ण होईपर्यंत काही अॅप्स योग्यरित्या कार्य करणार नाहीत"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> श्रेणीसुधारित करीत आहे…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> पैकी <xliff:g id="NUMBER_0">%1$d</xliff:g> अॅप ऑप्टिमाइझ करत आहे."</string>
diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml
index 1068c083058b..b51cfc223cb1 100644
--- a/core/res/res/values-ms-rMY/strings.xml
+++ b/core/res/res/values-ms-rMY/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Betul!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Cuba lagi"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Cuba lagi"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Buka kunci semua ciri dan data"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Telah melepasi had cubaan Buka Kunci Wajah"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Tiada kad SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Tiada kad SIM dalam tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android sedang menaik taraf..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android sedang dimulakan…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Mengoptimumkan storan."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android sedang ditingkatkan"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Sesetengah apl mungkin tidak berfungsi dengan betul sehingga peningkatan selesai"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> sedang ditingkatkan…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Mengoptimumkan apl <xliff:g id="NUMBER_0">%1$d</xliff:g> daripada <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml
index ea9888c81ec5..b370f2d5b4ae 100644
--- a/core/res/res/values-my-rMM/strings.xml
+++ b/core/res/res/values-my-rMM/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"မှန်ပါသည်"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ထပ် စမ်းပါ"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"ထပ် စမ်းပါ"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ဝန်ဆောင်မှုနှင့် ဒေတာအားလုံးအတွက် လော့ခ်ဖွင့်ပါ"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"မျက်မှာမှတ် သော့ဖွင့်ခြင်း ခွင့်ပြုသော အကြိမ်ရေထက် ကျော်လွန်သွားပါပြီ"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ဆင်းကဒ် မရှိပါ"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"တက်ပလက်ထဲတွင်း ဆင်းကဒ် မရှိပါ"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"အန်ဒရွိုက်ကို မွမ်းမံနေ…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android စတင်နေ…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"သိုလှောင်မှုအား ပြုပြင်ခြင်း။"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android ကိုအဆင့်မြှင့်တင်နေပါသည်"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"အဆင့်မြှင့်တင်ခြင်း မပြီးဆုံးသေးသ၍ အချို့အက်ပ်များကို ကောင်းမွန်စွာအသုံးပြုနိုင်ဦးမည် မဟုတ်ပါ"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ကို အဆင့်မြှင့်တင်နေပါသည်…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g> ထဲက အက်ပ်<xliff:g id="NUMBER_1">%2$d</xliff:g>ကို ဆီလျော်အောင် လုပ်နေ"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 17d470e6894c..5ce2258a13a7 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Riktig!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Prøv på nytt"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Prøv på nytt"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Lås opp for å få alle funksjoner og data"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Du har overskredet grensen for opplåsingsforsøk med Ansiktslås"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM-kortet mangler"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nettbrettet mangler SIM-kort."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android oppgraderes …"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android starter …"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimaliser lagring."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android oppgraderes"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Noen apper fungerer kanskje ikke skikkelig før oppgraderingen er fullført"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> oppgraderes …"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimaliserer app <xliff:g id="NUMBER_0">%1$d</xliff:g> av <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml
index 5ada48606649..965283a8ac6a 100644
--- a/core/res/res/values-ne-rNP/strings.xml
+++ b/core/res/res/values-ne-rNP/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"सही!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"फेरि प्रयास गर्नुहोस्"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"फेरि प्रयास गर्नुहोस्"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"सबै सुविधाहरू र डेटाका लागि अनलक गर्नुहोस्"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"अत्याधिक मोहडा खोल्ने प्रयासहरू बढी भए।"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM कार्ड छैन"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ट्याब्लेटमा SIM कार्ड छैन।"</string>
@@ -1028,7 +1029,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"एन्ड्रोइड अपग्रेड हुँदैछ…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android शुरू हुँदैछ..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"भण्डारण अनुकूलन गर्दै।"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android को स्तरवृद्धि हुँदैछ"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"स्तरवृद्धि सम्पन्न नभएसम्म केही अनुप्रयोगहरू राम्ररी काम नगर्न सक्छन्"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> को स्तरवृद्धि हुँदैछ…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"अनुप्रयोग अनुकुल हुँदै <xliff:g id="NUMBER_0">%1$d</xliff:g> को <xliff:g id="NUMBER_1">%2$d</xliff:g>।"</string>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 5c553455968b..567a141ac84b 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Juist!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Opnieuw proberen"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Nogmaals proberen"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Ontgrendelen voor alle functies en gegevens"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Maximaal aantal pogingen voor Ontgrendelen via gezichtsherkenning overschreden"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Geen simkaart"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Geen SIM-kaart in tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android wordt bijgewerkt..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android wordt gestart…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Opslagruimte wordt geoptimaliseerd."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android wordt geüpgraded"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Sommige apps werken mogelijk pas correct nadat de upgrade is voltooid"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> upgraden…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"App <xliff:g id="NUMBER_0">%1$d</xliff:g> van <xliff:g id="NUMBER_1">%2$d</xliff:g> optimaliseren."</string>
@@ -1214,7 +1216,7 @@
<string name="deny" msgid="2081879885755434506">"Weigeren"</string>
<string name="permission_request_notification_title" msgid="6486759795926237907">"Toestemming gevraagd"</string>
<string name="permission_request_notification_with_subtitle" msgid="8530393139639560189">"Toestemming gevraagd\nvoor account <xliff:g id="ACCOUNT">%s</xliff:g>."</string>
- <string name="forward_intent_to_owner" msgid="1207197447013960896">"U gebruikt deze app buiten je werkprofiel"</string>
+ <string name="forward_intent_to_owner" msgid="1207197447013960896">"Je gebruikt deze app buiten je werkprofiel"</string>
<string name="forward_intent_to_work" msgid="621480743856004612">"U gebruikt deze app in je werkprofiel"</string>
<string name="input_method_binding_label" msgid="1283557179944992649">"Invoermethode"</string>
<string name="sync_binding_label" msgid="3687969138375092423">"Synchroniseren"</string>
diff --git a/core/res/res/values-pa-rIN/strings.xml b/core/res/res/values-pa-rIN/strings.xml
index c059202c7ffa..e78c022f4d8a 100644
--- a/core/res/res/values-pa-rIN/strings.xml
+++ b/core/res/res/values-pa-rIN/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ਸਹੀ!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ਸਾਰੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਡੈਟੇ ਲਈ ਅਨਲੌਕ ਕਰੋ"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"ਅਧਿਕਤਮ ਚਿਹਰਾ ਅਨਲੌਕ ਕੋਸ਼ਿਸ਼ਾਂ ਵਧੀਆਂ"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ਕੋਈ SIM ਕਾਰਡ ਨਹੀਂ"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ਟੈਬਲੇਟ ਵਿੱਚ ਕੋਈ SIM ਕਾਰਡ ਨਹੀਂ।"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android ਅਪਗ੍ਰੇਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android ਚਾਲੂ ਕਰ ਰਿਹਾ ਹੈ…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"ਸਟੋਰੇਜ ਅਨੁਕੂਲ ਕਰ ਰਿਹਾ ਹੈ।"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android ਅੱਪਗ੍ਰੇਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਕੁਝ ਐਪਾਂ ਅੱਪਗ੍ਰੇਡ ਦੇ ਪੂਰੀ ਹੋਣ ਤੱਕ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਾ ਕਰਨ"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ਅੱਪਗ੍ਰੇਡ ਹੋ ਰਹੀ ਹੈ…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g> <xliff:g id="NUMBER_1">%2$d</xliff:g> ਦਾ ਐਪ ਅਨੁਕੂਲ ਕਰ ਰਿਹਾ ਹੈ।"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 527a0c26225d..6423f1ebf6ce 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -684,6 +684,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Poprawnie!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Spróbuj ponownie."</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Spróbuj ponownie."</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Odblokowanie wszystkich funkcji i danych"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Przekroczono maksymalną liczbę prób rozpoznania twarzy."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Brak karty SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Brak karty SIM w tablecie."</string>
@@ -1068,7 +1069,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android jest uaktualniany..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android się uruchamia…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optymalizacja pamięci."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android jest uaktualniany"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Niektóre aplikacje mogą nie działać prawidłowo, dopóki nie zakończy się aktualizacja."</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Uaktualniam aplikację <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optymalizowanie aplikacji <xliff:g id="NUMBER_0">%1$d</xliff:g> z <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 9b683fc814ad..aaa424b4e8f4 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correto!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tente novamente"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Tente novamente"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloqueio para todos os recursos e dados"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"O número máximo de tentativas de Desbloqueio por reconhecimento facial foi excedido"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Sem cartão SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Não há um cartão SIM no tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"O Android está sendo atualizado..."</string>
<string name="android_start_title" msgid="8418054686415318207">"O Android está iniciando..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Otimizando o armazenamento."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"O Android está sendo atualizado"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Alguns apps podem não funcionar corretamente até que a atualização seja concluída"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> está fazendo upgrade…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Otimizando app <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index b6be06e066bd..687d96c4cab5 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tentar novamente"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Tentar novamente"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloquear para todas as funcionalid. e dados"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Excedido o n.º máximo de tentativas de Desbloqueio Através do Rosto"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nenhum cartão SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nenhum cartão SIM no tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"O Android está a ser atualizado..."</string>
<string name="android_start_title" msgid="8418054686415318207">"O Android está a iniciar…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"A otimizar o armazenamento."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"O Android está a ser atualizado"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Algumas aplicações podem não funcionar corretamente enquanto a atualização não for concluída"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"O <xliff:g id="APPLICATION">%1$s</xliff:g> está a ser atualizado…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"A otimizar a aplicação <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 9b683fc814ad..aaa424b4e8f4 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correto!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tente novamente"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Tente novamente"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Desbloqueio para todos os recursos e dados"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"O número máximo de tentativas de Desbloqueio por reconhecimento facial foi excedido"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Sem cartão SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Não há um cartão SIM no tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"O Android está sendo atualizado..."</string>
<string name="android_start_title" msgid="8418054686415318207">"O Android está iniciando..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Otimizando o armazenamento."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"O Android está sendo atualizado"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Alguns apps podem não funcionar corretamente até que a atualização seja concluída"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> está fazendo upgrade…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Otimizando app <xliff:g id="NUMBER_0">%1$d</xliff:g> de <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index a5cae2762654..d05a8b421615 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -681,6 +681,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Corect!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Încercați din nou"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Încercați din nou"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Deblocați pentru toate funcțiile și datele"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"S-a depășit numărul maxim de încercări pentru Deblocare facială"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Fără SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nu există card SIM în computerul tablet PC."</string>
@@ -1045,7 +1046,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android trece la o versiune superioară..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android pornește..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Se optimizează stocarea."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android face upgrade"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Este posibil ca unele aplicații să nu funcționeze corespunzător până când nu se finalizează upgrade-ul"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Se face upgrade pentru <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Se optimizează aplicația <xliff:g id="NUMBER_0">%1$d</xliff:g> din <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 6e95df8af1b6..e4fc0f996eff 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -268,7 +268,7 @@
<string name="permgroupdesc_sensors" msgid="7147968539346634043">"доступ к данным датчиков о состоянии организма"</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>
+ <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Включать Изучение касанием"</string>
<string name="capability_desc_canRequestTouchExploration" msgid="7543249041581408313">"Озвучивать нажимаемые элементы и разрешать управление устройством с помощью жестов."</string>
<string name="capability_title_canRequestEnhancedWebAccessibility" msgid="1739881766522594073">"Включать спец. возможности для Интернета"</string>
<string name="capability_desc_canRequestEnhancedWebAccessibility" msgid="7881063961507511765">"Могут быть установлены дополнительные скрипты."</string>
@@ -684,6 +684,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правильно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Повторите попытку"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Повторите попытку"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Разблок. для доступа ко всем функциям и данным"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Все попытки войти с помощью Фейсконтроля использованы"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Нет SIM-карты"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"SIM-карта не установлена."</string>
@@ -826,9 +827,9 @@
<string name="searchview_description_clear" msgid="1330281990951833033">"Удалить запрос"</string>
<string name="searchview_description_submit" msgid="2688450133297983542">"Отправить запрос"</string>
<string name="searchview_description_voice" msgid="2453203695674994440">"Голосовой поиск"</string>
- <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Включить аудиоподсказки?"</string>
- <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хочет включить функцию \"Аудиоподсказки\". Она позволяет прослушивать или просматривать описание элементов, которых вы касаетесь, и управлять планшетным ПК с помощью жестов."</string>
- <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хочет включить функцию \"Аудиоподсказки\". Она позволяет прослушивать или просматривать описание элементов, которых вы касаетесь, и управлять телефоном с помощью жестов."</string>
+ <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Включить Изучение касанием?"</string>
+ <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хочет включить Изучение касанием. Вы сможете прослушивать или просматривать описание элементов, которых касаетесь, и управлять планшетом с помощью жестов."</string>
+ <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> хочет включить Изучение касанием. Вы сможете прослушивать или просматривать описание элементов, которых касаетесь, и управлять телефоном с помощью жестов."</string>
<string name="oneMonthDurationPast" msgid="7396384508953779925">"1 месяц назад"</string>
<string name="beforeOneMonthDurationPast" msgid="909134546836499826">"Более месяца назад"</string>
<plurals name="last_num_days" formatted="false" msgid="5104533550723932025">
@@ -1068,7 +1069,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Обновление Android..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Запуск Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Оптимизация хранилища…"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Обновление Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Во время обновления возможны неполадки в работе приложений."</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Обновление приложения \"<xliff:g id="APPLICATION">%1$s</xliff:g>\"…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Оптимизация приложения <xliff:g id="NUMBER_0">%1$d</xliff:g> из <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml
index 006313ab48f9..86ccfafa5a2a 100644
--- a/core/res/res/values-si-rLK/strings.xml
+++ b/core/res/res/values-si-rLK/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"නිවැරදියි!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"නැවත උත්සාහ කරන්න"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"නැවත උත්සාහ කරන්න"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"සියලු විශේෂාංග සහ දත්ත අනවහිර කරන්න"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"මුහුණ භාවිතයෙන් අඟුළු හැරීමේ උපරිම ප්‍රයන්තයන් ගණන ඉක්මවා ඇත"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM පත නැත"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ටැබ්ලටයේ SIM පත නොමැත."</string>
@@ -1024,7 +1025,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android උත්ශ්‍රේණි වෙමින් පවතී..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android ආරම්භ කරමින්…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"ආචයනය ප්‍රශස්තිකරණය කිරීම."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android උත්ශ්‍රේණි කරමින්"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"උත්ශ්‍රේණි කිරීම අවසන් වන තෙක් සමහර යෙදුම් නිසි ලෙස ක්‍රියා නොකළ හැකිය"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> උත්ශ්‍රේණි කරමින්…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> කින් <xliff:g id="NUMBER_0">%1$d</xliff:g> වැනි යෙදුම ප්‍රශස්ත කරමින්."</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 6d513d0d78b7..f7c0478dc05f 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -249,23 +249,23 @@
<string name="user_owner_label" msgid="1119010402169916617">"Prepnúť na osobný"</string>
<string name="managed_profile_label" msgid="5289992269827577857">"Prepnúť na pracovný"</string>
<string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontakty"</string>
- <string name="permgroupdesc_contacts" msgid="6951499528303668046">"prístup k vašim kontaktom"</string>
+ <string name="permgroupdesc_contacts" msgid="6951499528303668046">"prístup ku kontaktom"</string>
<string name="permgrouplab_location" msgid="7275582855722310164">"Poloha"</string>
<string name="permgroupdesc_location" msgid="1346617465127855033">"prístup k polohe tohto zariadenia"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Kalendár"</string>
<string name="permgroupdesc_calendar" msgid="3889615280211184106">"prístup ku kalendáru"</string>
<string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
- <string name="permgroupdesc_sms" msgid="4656988620100940350">"posielať a zobrazovať SMS"</string>
+ <string name="permgroupdesc_sms" msgid="4656988620100940350">"posielanie a zobrazovanie SMS"</string>
<string name="permgrouplab_storage" msgid="1971118770546336966">"Úložisko"</string>
- <string name="permgroupdesc_storage" msgid="637758554581589203">"prístup k fotkám, médiám a súborom na zariadení"</string>
+ <string name="permgroupdesc_storage" msgid="637758554581589203">"prístup k fotkám, médiám a súborom v zariadení"</string>
<string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofón"</string>
- <string name="permgroupdesc_microphone" msgid="4988812113943554584">"zaznamenávanie zvuku"</string>
+ <string name="permgroupdesc_microphone" msgid="4988812113943554584">"nahrávanie zvuku"</string>
<string name="permgrouplab_camera" msgid="4820372495894586615">"Fotoaparát"</string>
<string name="permgroupdesc_camera" msgid="3250611594678347720">"fotenie a natáčanie videí"</string>
<string name="permgrouplab_phone" msgid="5229115638567440675">"Telefón"</string>
- <string name="permgroupdesc_phone" msgid="6234224354060641055">"telefonovať a spravovať hovory"</string>
+ <string name="permgroupdesc_phone" msgid="6234224354060641055">"telefonovanie a správu hovorov"</string>
<string name="permgrouplab_sensors" msgid="416037179223226722">"Telesné senzory"</string>
- <string name="permgroupdesc_sensors" msgid="7147968539346634043">"prístup k údajom senzorov o životných funkciách"</string>
+ <string name="permgroupdesc_sensors" msgid="7147968539346634043">"prístup k dátam senzorov vašich životných funkcií"</string>
<string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Načítať obsah okna"</string>
<string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Môžete preskúmať obsah okna, s ktorým pracujete."</string>
<string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Zapnúť funkciu Preskúmanie dotykom"</string>
@@ -684,6 +684,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Správne!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Skúsiť znova"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Skúsiť znova"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Všetky funkcie a dáta získate po odomknutí"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Prekročili ste maximálny povolený počet pokusov o odomknutie tvárou"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nie je vložená SIM karta"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"V tablete nie je žiadna SIM karta."</string>
@@ -1068,7 +1069,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Prebieha inovácia systému Android..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Systém Android sa spúšťa…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimalizuje sa úložisko"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Prebieha inovácia systému Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Niektoré aplikácie môžu správne fungovať až po dokončení inovácie"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Aplikácia <xliff:g id="APPLICATION">%1$s</xliff:g> sa inovuje…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Prebieha optimalizácia aplikácie <xliff:g id="NUMBER_0">%1$d</xliff:g> z <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 0239112f254e..f4f59fd73429 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -684,6 +684,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Pravilno."</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Poskusi znova"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Poskusite znova"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Odklenite za dostop do vseh funkcij in podatkov"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Presegli ste dovoljeno število poskusov odklepanja z obrazom"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Ni kartice SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"V tabličnem računalniku ni kartice SIM."</string>
@@ -1068,7 +1069,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Poteka nadgradnja Androida ..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android se zaganja …"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Optimiziranje shrambe."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Poteka nadgradnja Androida."</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Nekatere aplikacije morda ne bodo delovale pravilno, dokler ne bo dokončana nadgradnja."</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> se nadgrajuje …"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimiranje aplikacije <xliff:g id="NUMBER_0">%1$d</xliff:g> od <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-sq-rAL/strings.xml b/core/res/res/values-sq-rAL/strings.xml
index 6523abdd33a6..6163e1cc1dd2 100644
--- a/core/res/res/values-sq-rAL/strings.xml
+++ b/core/res/res/values-sq-rAL/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Saktë!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Provo sërish"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Provo sërish"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Shkyçe për të gjitha funksionet dhe të dhënat"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Tentativat maksimale të \"Shkyçjes me fytyrë\" u tejkaluan"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Nuk ka kartë SIM"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Nuk ka kartë SIM në tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"\"Androidi\" po përditësohet…"</string>
<string name="android_start_title" msgid="8418054686415318207">"\"Androidi\" po fillon…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Po përshtat ruajtjen."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android po përmirësohet"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Disa aplikacione mund të mos funksionojnë si duhet deri sa të përfundojë përmirësimi"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> po përmirësohet…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Po përshtat aplikacionin <xliff:g id="NUMBER_0">%1$d</xliff:g> nga gjithsej <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 26ca7d94cd17..896982780095 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -681,6 +681,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Тачно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Покушајте поново"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Покушајте поново"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Откључај за све функције и податке"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Премашен је највећи дозвољени број покушаја Откључавања лицем"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Нема SIM картице"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"У таблету нема SIM картице."</string>
@@ -1045,7 +1046,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android се надограђује…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android се покреће…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Меморија се оптимизује."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android се надограђује…"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Неке апликације можда неће исправно функционисати док се надоградња не доврши"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> се надограђује…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Оптимизовање апликације <xliff:g id="NUMBER_0">%1$d</xliff:g> од <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 9aacefce2e85..c34102513071 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Korrekt!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Försök igen"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Försök igen"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Lås upp för alla funktioner och all data"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Du har försökt låsa upp med Ansiktslås för många gånger"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Inget SIM-kort"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Inget SIM-kort i surfplattan."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android uppgraderas ..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android startar …"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Lagringsutrymmet optimeras."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android uppgraderas"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"En del appar kanske inte fungerar som de ska innan uppgraderingen har slutförts"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> uppgraderas …"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Optimerar app <xliff:g id="NUMBER_0">%1$d</xliff:g> av <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 42cfb8b761be..727343be48b6 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -676,6 +676,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Sahihi!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Jaribu tena"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Jaribu tena"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Fungua kifaa ili upate data na vipengele vyote"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Majaribio ya Juu ya Kufungua Uso yamezidishwa"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Hakuna SIM kadi"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Hakuna SIM kadi katika kompyuta ndogo."</string>
@@ -1020,7 +1021,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Toleo jipya la Android linawekwa..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Inaanzisha Android..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Inaboresha hifadhi."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Tunasasisha Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Huenda baadhi ya programu zisifanye kazi vizuri hadi itakapomaliza kusasisha"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> inapata toleo jipya…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Inaboresha programu <xliff:g id="NUMBER_0">%1$d</xliff:g> kutoka <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml
index 41e316f5d79d..22253b63f379 100644
--- a/core/res/res/values-ta-rIN/strings.xml
+++ b/core/res/res/values-ta-rIN/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"சரி!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"மீண்டும் முயற்சிக்கவும்"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"மீண்டும் முயற்சிக்கவும்"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"எல்லா அம்சங்கள் &amp; தரவை பெற, சாதனத்தை திறக்கவும்"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"முகம் திறப்பதற்கான அதிகபட்ச முயற்சிகள் கடந்தன"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"சிம் கார்டு இல்லை"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"டேப்லெட்டில் சிம் கார்டு இல்லை."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android மேம்படுத்தப்படுகிறது…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android துவங்குகிறது..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"சேமிப்பகத்தை உகந்ததாக்குகிறது."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android மேம்படுத்தப்படுகிறது"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"மேம்படுத்துவது முடியும் வரை, சில பயன்பாடுகள் சரியாக வேலைசெய்யாமல் போகக்கூடும்"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g>ஐ மேம்படுத்துகிறது…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g> / <xliff:g id="NUMBER_1">%2$d</xliff:g> பயன்பாட்டை ஒருங்கிணைக்கிறது."</string>
diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml
index 514eed4fe7d7..89d736c133cd 100644
--- a/core/res/res/values-te-rIN/strings.xml
+++ b/core/res/res/values-te-rIN/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"సరైనది!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"మళ్లీ ప్రయత్నించండి"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"మళ్లీ ప్రయత్నించండి"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"అన్ని లక్షణాలు మరియు డేటా కోసం అన్‌లాక్ చేయండి"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"ముఖంతో అన్‌లాక్ ప్రయత్నాల గరిష్ట పరిమితి మించిపోయారు"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"సిమ్ కార్డు లేదు"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"టాబ్లెట్‌లో సిమ్ కార్డు లేదు."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android అప్‌గ్రేడ్ అవుతోంది…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android ప్రారంభమవుతోంది…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"నిల్వను అనుకూలపరుస్తోంది."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android అప్‌గ్రేడ్ అవుతోంది"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"అప్‌గ్రేడ్ పూర్తయ్యే వరకు కొన్ని అనువర్తనాలు సరిగ్గా పని చేయకపోవచ్చు"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g>ని అప్‌గ్రేడ్ చేస్తోంది…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g>లో <xliff:g id="NUMBER_0">%1$d</xliff:g> అనువర్తనాన్ని అనుకూలీకరిస్తోంది."</string>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 26303da75115..f83d918b5ff2 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"ถูกต้อง!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"ลองอีกครั้ง"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"ลองอีกครั้ง"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"ปลดล็อกคุณลักษณะและข้อมูลทั้งหมด"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"มีความพยายามที่จะใช้ Face Unlock เกินขีดจำกัด"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ไม่มีซิมการ์ด"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"ไม่มีซิมการ์ดในแท็บเล็ต"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"กำลังอัปเกรด Android ..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android กำลังเริ่มต้น…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"กำลังเพิ่มประสิทธิภาพพื้นที่จัดเก็บข้อมูล"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android กำลังอัปเกรด"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"แอปบางแอปอาจทำงานไม่ถูกต้องจนกว่าจะอัปเกรดเสร็จ"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"กำลังอัปเกรด <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"กำลังเพิ่มประสิทธิภาพแอปพลิเคชัน <xliff:g id="NUMBER_0">%1$d</xliff:g> จาก <xliff:g id="NUMBER_1">%2$d</xliff:g> รายการ"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index bc0e4499f966..93a2d9707ab9 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Tama!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Subukang muli"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Subukang muli"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"I-unlock para sa lahat ng feature at data"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Nalagpasan na ang maximum na mga pagtatangka sa Face Unlock"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Walang SIM card"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Walang SIM card sa tablet."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Nag-a-upgrade ang Android…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Nagsisimula ang Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Ino-optimize ang storage."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Nag-a-upgrade ang Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Maaaring hindi gumana nang maayos ang ilang app hangga\'t hindi pa natatapos ang pag-upgrade"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Nag-a-upgrade ang <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Ino-optimize ang app <xliff:g id="NUMBER_0">%1$d</xliff:g> ng <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index b66d0dcc3bed..fd78ef288567 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Doğru!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Tekrar deneyin"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Tekrar deneyin"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Tüm özellikler ve veriler için kilidi açın"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Yüz Tanıma Kilidi için maksimum deneme sayısı aşıldı"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM kart yok"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Tablette SIM kart yok."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android yeni sürüme geçiriliyor..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android başlatılıyor…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Depolama optimize ediliyor."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android yeni sürüme geçiriliyor"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Yeni sürüme geçiş işlemi tamamlanana kadar bazı uygulamalar düzgün çalışmayabilir"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> yeni sürüme geçiriliyor…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_0">%1$d</xliff:g>/<xliff:g id="NUMBER_1">%2$d</xliff:g> uygulama optimize ediliyor."</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 3154ef96f27e..680533fac796 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -684,6 +684,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правильно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Повторіть спробу"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Повторіть спробу"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Розблокуйте, щоб бачити всі функції й дані"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Перевищено максимальну кількість спроб розблокування за допомогою функції \"Фейсконтроль\""</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Відсутня SIM-карта"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"У пристр. нема SIM-карти."</string>
@@ -1068,7 +1069,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android оновлюється..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Запуск ОС Android…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Оптимізація пам’яті."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android оновлюється"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Деякі додатки можуть не працювати належним чином, доки не завершиться оновлення"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"Додаток <xliff:g id="APPLICATION">%1$s</xliff:g> оновлюється…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Оптимізація програми <xliff:g id="NUMBER_0">%1$d</xliff:g> з <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml
index 59196187e85d..73812148fa55 100644
--- a/core/res/res/values-ur-rPK/strings.xml
+++ b/core/res/res/values-ur-rPK/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"صحیح!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"دوبارہ کوشش کریں"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"دوبارہ کوشش کریں"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"تمام خصوصیات اور ڈیٹا کیلئے غیر مقفل کریں"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"چہرہ کے ذریعے غیر مقفل کریں کی زیادہ سے زیادہ کوششوں سے تجاوز کرگیا"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"‏کوئی SIM کارڈ نہیں ہے"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"‏ٹیبلیٹ میں کوئی SIM کارڈ نہیں ہے۔"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"‏Android اپ گریڈ ہو رہا ہے…"</string>
<string name="android_start_title" msgid="8418054686415318207">"‏Android شروع ہو رہا ہے…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"اسٹوریج کو بہترین بنایا جا رہا ہے۔"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"‏Android اپ گریڈ ہو رہا ہے"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"اپ گریڈ ختم ہونے تک شاید کچھ ایپس ٹھیک طرح سے کام نہ کریں"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> اپ گریڈ ہو رہی ہے…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"ایپ <xliff:g id="NUMBER_0">%1$d</xliff:g> از <xliff:g id="NUMBER_1">%2$d</xliff:g> کو بہتر بنایا جا رہا ہے۔"</string>
diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml
index 30e753faa453..4efdd05383a7 100644
--- a/core/res/res/values-uz-rUZ/strings.xml
+++ b/core/res/res/values-uz-rUZ/strings.xml
@@ -245,7 +245,7 @@
<string name="permgrouplab_contacts" msgid="3657758145679177612">"Kontaktlar"</string>
<string name="permgroupdesc_contacts" msgid="6951499528303668046">"kontaktlarga kirish"</string>
<string name="permgrouplab_location" msgid="7275582855722310164">"Joylashuv"</string>
- <string name="permgroupdesc_location" msgid="1346617465127855033">"shu qurilmaning joylashuvi haqidagi ma’lumotlarga kirish"</string>
+ <string name="permgroupdesc_location" msgid="1346617465127855033">"shu qurilmaning joylashuvi haqidagi axborotga kirish"</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Taqvim"</string>
<string name="permgroupdesc_calendar" msgid="3889615280211184106">"taqvimingizga kirish"</string>
<string name="permgrouplab_sms" msgid="228308803364967808">"SMS"</string>
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"To‘g‘ri!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Qaytadan urining"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Qaytadan urining"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Barcha funksiya va ma’lumotlardan foydalanish uchun qulfdan chiqaring"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Yuzni tanitib qulfni ochishga urinish miqdoridan oshib ketdi"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM karta yo‘q"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Planshetingizda SIM karta yo‘q."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android yangilanmoqda…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android ishga tushmoqda…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Xotira optimallashtirilmoqda."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android yangilanmoqda"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Yangilanish vaqtida ba’zi ilovalar to‘g‘ri ishlamasligi mumkin"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> ilovasi yangilanmoqda…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Ilovalar optimallashtirilmoqda (<xliff:g id="NUMBER_0">%1$d</xliff:g> / <xliff:g id="NUMBER_1">%2$d</xliff:g>)."</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index eb25bf5443c3..c07e9f091712 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Chính xác!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Thử lại"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Thử lại"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Mở khóa đối với tất cả các tính năng và dữ liệu"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Đã vượt quá số lần Mở khóa bằng khuôn mặt tối đa"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Không có thẻ SIM nào"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Không có thẻ SIM nào trong máy tính bảng."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android đang nâng cấp..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android đang khởi động..."</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Tối ưu hóa lưu trữ."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android đang nâng cấp"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Một số ứng dụng có thể không hoạt động bình thường cho đến khi nâng cấp xong"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> đang nâng cấp…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Đang tối ưu hóa ứng dụng <xliff:g id="NUMBER_0">%1$d</xliff:g> trong tổng số <xliff:g id="NUMBER_1">%2$d</xliff:g>."</string>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 50a5b8634d67..2d40f55f83fc 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -678,6 +678,8 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"正确!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"重试"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"重试"</string>
+ <!-- no translation found for lockscreen_storage_locked (9167551160010625200) -->
+ <skip />
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"已超过“人脸解锁”尝试次数上限"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"没有 SIM 卡"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"平板电脑中没有SIM卡。"</string>
@@ -1022,7 +1024,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"Android正在升级..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android 正在启动…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"正在优化存储空间。"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"Android 正在升级"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"在升级完成之前,部分应用可能无法正常运行"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"正在升级<xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"正在优化第<xliff:g id="NUMBER_0">%1$d</xliff:g>个应用(共<xliff:g id="NUMBER_1">%2$d</xliff:g>个)。"</string>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 380be6b319e1..349b54ef98b5 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"正確!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"再試一次"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"再試一次"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"解鎖即可使用所有功能和資料"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"已超過臉容解鎖嘗試次數上限"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"找不到 SIM 卡"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"平板電腦中沒有 SIM 卡。"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"正在升級 Android..."</string>
<string name="android_start_title" msgid="8418054686415318207">"Android 正在啟動…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"正在優化儲存空間。"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"正在升級 Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"部分應用程式需要完成升級方可正常運作"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"「<xliff:g id="APPLICATION">%1$s</xliff:g>」正在升級…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"正在優化第 <xliff:g id="NUMBER_0">%1$d</xliff:g> 個應用程式 (共 <xliff:g id="NUMBER_1">%2$d</xliff:g> 個)。"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index edb6d0b3713c..2f2822e0249d 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"正確!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"再試一次"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"再試一次"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"解鎖即可使用所有功能和資料"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"已超過人臉解鎖嘗試次數上限"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"找不到 SIM 卡"</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"平板電腦中沒有 SIM 卡。"</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"正在升級 Android…"</string>
<string name="android_start_title" msgid="8418054686415318207">"Android 正在啟動…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"正在對儲存空間進行最佳化處理。"</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"正在升級 Android"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"升級完成前,部分應用程式可能無法正常運作"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"正在升級「<xliff:g id="APPLICATION">%1$s</xliff:g>」…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"正在最佳化第 <xliff:g id="NUMBER_0">%1$d</xliff:g> 個應用程式 (共 <xliff:g id="NUMBER_1">%2$d</xliff:g> 個)。"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 27ea7ae14cc3..1d8d19542a5f 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -678,6 +678,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Lungile!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Zama futhi"</string>
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Zama futhi"</string>
+ <string name="lockscreen_storage_locked" msgid="9167551160010625200">"Vulela zonke izici nedatha"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Ukuzama Kokuvula Ubuso Okuningi kudluliwe"</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Alikho ikhadi le-SIM."</string>
<string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Alikho ikhadi le-SIM efonini."</string>
@@ -1022,7 +1023,8 @@
<string name="android_upgrading_title" msgid="1584192285441405746">"I-Android ifaka ezakamuva..."</string>
<string name="android_start_title" msgid="8418054686415318207">"I-Android iyaqala…"</string>
<string name="android_upgrading_fstrim" msgid="8036718871534640010">"Ikhulisa isitoreji."</string>
- <string name="android_upgrading_notification_title" msgid="1619393112444671028">"I-Android iyathuthukiswa"</string>
+ <!-- no translation found for android_upgrading_notification_title (8428357096969413169) -->
+ <skip />
<string name="android_upgrading_notification_body" msgid="5761201379457064286">"Ezinye izinhlelo zokusebenza kungenzeka zingasebenzi kahle kuze kuqedwe ukuthuthukiswa"</string>
<string name="app_upgrading_toast" msgid="3008139776215597053">"<xliff:g id="APPLICATION">%1$s</xliff:g> iyathuthukisa…"</string>
<string name="android_upgrading_apk" msgid="7904042682111526169">"Ukubeka ezingeni eliphezulu <xliff:g id="NUMBER_0">%1$d</xliff:g> uhlelo lokusebenza <xliff:g id="NUMBER_1">%2$d</xliff:g>"</string>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 77de87dac601..a37db7e09901 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2742,4 +2742,25 @@
<public type="attr" name="showMetadataInPreview" id="0x0101052f" />
<public type="attr" name="colorSecondary" id="0x01010530" />
+ <!-- ===============================================================
+ Resources added in version O of the platform
+
+ NOTE: add <public> elements within a <public-group> like so:
+
+ <public-group type="attr" first-id="0x01010531">
+ <public name="exampleAttr1" />
+ <public name="exampleAttr2" />
+ </public-group>
+ =============================================================== -->
+ <eat-comment />
+
+ <public-group type="attr" first-id="0x01010531">
+ </public-group>
+
+ <public-group type="style" first-id="0x010302e0">
+ </public-group>
+
+ <public-group type="id" first-id="0x01020041">
+ </public-group>
+
</resources>
diff --git a/core/tests/coretests/src/android/net/UriMatcherTest.java b/core/tests/coretests/src/android/net/UriMatcherTest.java
index a728d4fd5813..dd46fa38d50e 100644
--- a/core/tests/coretests/src/android/net/UriMatcherTest.java
+++ b/core/tests/coretests/src/android/net/UriMatcherTest.java
@@ -82,9 +82,31 @@ public class UriMatcherTest extends TestCase {
checkAll(matcher);
}
+ @SmallTest
+ public void testContentUrisWithLeadingSlashAndOnlySlash() {
+ UriMatcher matcher = new UriMatcher(ROOT);
+ matcher.addURI("people", "/", PEOPLE);
+ matcher.addURI("people", "/#", PEOPLE_ID);
+ matcher.addURI("people", "/#/phones", PEOPLE_PHONES);
+ matcher.addURI("people", "/#/phones/blah", PEOPLE_PHONES_ID);
+ matcher.addURI("people", "/#/phones/#", PEOPLE_PHONES_ID);
+ matcher.addURI("people", "/#/addresses", PEOPLE_ADDRESSES);
+ matcher.addURI("people", "/#/addresses/#", PEOPLE_ADDRESSES_ID);
+ matcher.addURI("people", "/#/contact-methods", PEOPLE_CONTACTMETH);
+ matcher.addURI("people", "/#/contact-methods/#", PEOPLE_CONTACTMETH_ID);
+ matcher.addURI("calls", "/", CALLS);
+ matcher.addURI("calls", "/#", CALLS_ID);
+ matcher.addURI("caller-id", "/", CALLERID);
+ matcher.addURI("caller-id", "/*", CALLERID_TEXT);
+ matcher.addURI("filter-recent", null, FILTERRECENT);
+ matcher.addURI("auth", "/another/path/segment", ANOTHER_PATH_SEGMENT);
+ checkAll(matcher);
+ }
+
private void checkAll(UriMatcher matcher) {
check("content://asdf", UriMatcher.NO_MATCH, matcher);
check("content://people", PEOPLE, matcher);
+ check("content://people/", PEOPLE, matcher);
check("content://people/1", PEOPLE_ID, matcher);
check("content://people/asdf", UriMatcher.NO_MATCH, matcher);
check("content://people/2/phones", PEOPLE_PHONES, matcher);
@@ -97,9 +119,11 @@ public class UriMatcherTest extends TestCase {
check("content://people/2/contact-methods/3", PEOPLE_CONTACTMETH_ID, matcher);
check("content://people/2/contact-methods/asdf", UriMatcher.NO_MATCH, matcher);
check("content://calls", CALLS, matcher);
+ check("content://calls/", CALLS, matcher);
check("content://calls/1", CALLS_ID, matcher);
check("content://calls/asdf", UriMatcher.NO_MATCH, matcher);
check("content://caller-id", CALLERID, matcher);
+ check("content://caller-id/", CALLERID, matcher);
check("content://caller-id/asdf", CALLERID_TEXT, matcher);
check("content://caller-id/1", CALLERID_TEXT, matcher);
check("content://filter-recent", FILTERRECENT, matcher);
diff --git a/docs/html-intl/intl/es/training/articles/direct-boot.jd b/docs/html-intl/intl/es/training/articles/direct-boot.jd
index e1d99e9d2b0e..0ce3f5b2db27 100644
--- a/docs/html-intl/intl/es/training/articles/direct-boot.jd
+++ b/docs/html-intl/intl/es/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>En este documento</h2>
<ol>
<li><a href="#run">Solicitar acceso para ejecutar durante el inicio directo</a></li>
diff --git a/docs/html-intl/intl/es/training/articles/scoped-directory-access.jd b/docs/html-intl/intl/es/training/articles/scoped-directory-access.jd
index 67f9ad672d76..194bfd74d354 100644
--- a/docs/html-intl/intl/es/training/articles/scoped-directory-access.jd
+++ b/docs/html-intl/intl/es/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>En este documento</h2>
<ol>
<li><a href="#accessing">Acceder a un directorio de almacenamiento externo</a></li>
diff --git a/docs/html-intl/intl/es/training/tv/playback/picture-in-picture.jd b/docs/html-intl/intl/es/training/tv/playback/picture-in-picture.jd
index 0aa46dcaa980..30c9e8bf9cf0 100644
--- a/docs/html-intl/intl/es/training/tv/playback/picture-in-picture.jd
+++ b/docs/html-intl/intl/es/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>En este documento</h2>
<ol>
diff --git a/docs/html-intl/intl/es/training/tv/tif/content-recording.jd b/docs/html-intl/intl/es/training/tv/tif/content-recording.jd
index 855db8d5fffe..9e8a34679de4 100644
--- a/docs/html-intl/intl/es/training/tv/tif/content-recording.jd
+++ b/docs/html-intl/intl/es/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>En este documento</h2>
<ol>
<li><a href="#supporting">Indicar la compatibilidad para la grabación</a></li>
diff --git a/docs/html-intl/intl/in/training/articles/direct-boot.jd b/docs/html-intl/intl/in/training/articles/direct-boot.jd
index b06a7dd7864d..a7e3cf3cad77 100644
--- a/docs/html-intl/intl/in/training/articles/direct-boot.jd
+++ b/docs/html-intl/intl/in/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Dalam dokumen ini</h2>
<ol>
<li><a href="#run">Meminta Akses untuk Berjalan Selama Direct Boot</a></li>
diff --git a/docs/html-intl/intl/in/training/articles/scoped-directory-access.jd b/docs/html-intl/intl/in/training/articles/scoped-directory-access.jd
index 855993f0b15c..30aed6fbb2a4 100644
--- a/docs/html-intl/intl/in/training/articles/scoped-directory-access.jd
+++ b/docs/html-intl/intl/in/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Dalam dokumen ini</h2>
<ol>
<li><a href="#accessing">Mengakses Direktori Penyimpanan Eksternal</a></li>
diff --git a/docs/html-intl/intl/in/training/tv/playback/picture-in-picture.jd b/docs/html-intl/intl/in/training/tv/playback/picture-in-picture.jd
index 1cad9550e40c..41af6de97723 100644
--- a/docs/html-intl/intl/in/training/tv/playback/picture-in-picture.jd
+++ b/docs/html-intl/intl/in/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Dalam dokumen ini</h2>
<ol>
diff --git a/docs/html-intl/intl/in/training/tv/tif/content-recording.jd b/docs/html-intl/intl/in/training/tv/tif/content-recording.jd
index afedf8f31b21..3389dbf84cbf 100644
--- a/docs/html-intl/intl/in/training/tv/tif/content-recording.jd
+++ b/docs/html-intl/intl/in/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Dalam dokumen ini</h2>
<ol>
<li><a href="#supporting">Menunjukkan Dukungan untuk Perekaman</a></li>
diff --git a/docs/html-intl/intl/ja/training/articles/direct-boot.jd b/docs/html-intl/intl/ja/training/articles/direct-boot.jd
index 933e682c062b..eaa684c76292 100644
--- a/docs/html-intl/intl/ja/training/articles/direct-boot.jd
+++ b/docs/html-intl/intl/ja/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>このドキュメントの内容</h2>
<ol>
<li><a href="#run">ダイレクト ブート中に実行するためのアクセスを要求する</a></li>
diff --git a/docs/html-intl/intl/ja/training/articles/scoped-directory-access.jd b/docs/html-intl/intl/ja/training/articles/scoped-directory-access.jd
index 32681a03620e..076768933792 100644
--- a/docs/html-intl/intl/ja/training/articles/scoped-directory-access.jd
+++ b/docs/html-intl/intl/ja/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>このドキュメントの内容</h2>
<ol>
<li><a href="#accessing">外部ストレージのディレクトリへのアクセス</a></li>
diff --git a/docs/html-intl/intl/ja/training/tv/playback/picture-in-picture.jd b/docs/html-intl/intl/ja/training/tv/playback/picture-in-picture.jd
index 7593670c98fc..1df16cd54393 100644
--- a/docs/html-intl/intl/ja/training/tv/playback/picture-in-picture.jd
+++ b/docs/html-intl/intl/ja/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>このドキュメントの内容</h2>
<ol>
diff --git a/docs/html-intl/intl/ja/training/tv/tif/content-recording.jd b/docs/html-intl/intl/ja/training/tv/tif/content-recording.jd
index bf5f9a961a3b..3c58cfd31204 100644
--- a/docs/html-intl/intl/ja/training/tv/tif/content-recording.jd
+++ b/docs/html-intl/intl/ja/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>このドキュメントの内容</h2>
<ol>
<li><a href="#supporting">録画のサポートを示す</a></li>
diff --git a/docs/html-intl/intl/ko/training/articles/direct-boot.jd b/docs/html-intl/intl/ko/training/articles/direct-boot.jd
index 2674481181a4..e58a4f98019b 100644
--- a/docs/html-intl/intl/ko/training/articles/direct-boot.jd
+++ b/docs/html-intl/intl/ko/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>이 문서의 내용</h2>
<ol>
<li><a href="#run">직접 부팅 시 실행하기 위한 액세스 요청</a></li>
diff --git a/docs/html-intl/intl/ko/training/articles/scoped-directory-access.jd b/docs/html-intl/intl/ko/training/articles/scoped-directory-access.jd
index efd05f3e3a69..f2ce6500327d 100644
--- a/docs/html-intl/intl/ko/training/articles/scoped-directory-access.jd
+++ b/docs/html-intl/intl/ko/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>이 문서의 내용</h2>
<ol>
<li><a href="#accessing">외부 저장소 디렉터리 액세스</a></li>
diff --git a/docs/html-intl/intl/ko/training/tv/playback/picture-in-picture.jd b/docs/html-intl/intl/ko/training/tv/playback/picture-in-picture.jd
index 15d85fa4626e..96129ce216e1 100644
--- a/docs/html-intl/intl/ko/training/tv/playback/picture-in-picture.jd
+++ b/docs/html-intl/intl/ko/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>이 문서의 내용</h2>
<ol>
diff --git a/docs/html-intl/intl/ko/training/tv/tif/content-recording.jd b/docs/html-intl/intl/ko/training/tv/tif/content-recording.jd
index fa557bcf14fd..ed8b6e04ec85 100644
--- a/docs/html-intl/intl/ko/training/tv/tif/content-recording.jd
+++ b/docs/html-intl/intl/ko/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>이 문서의 내용</h2>
<ol>
<li><a href="#supporting">녹화 지원 나타내기</a></li>
diff --git a/docs/html-intl/intl/pt-br/training/articles/direct-boot.jd b/docs/html-intl/intl/pt-br/training/articles/direct-boot.jd
index 8f588411a612..d95f4cded3c1 100644
--- a/docs/html-intl/intl/pt-br/training/articles/direct-boot.jd
+++ b/docs/html-intl/intl/pt-br/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Neste documento</h2>
<ol>
<li><a href="#run">Solicitar acesso para executar durante a inicialização direta</a></li>
diff --git a/docs/html-intl/intl/pt-br/training/articles/scoped-directory-access.jd b/docs/html-intl/intl/pt-br/training/articles/scoped-directory-access.jd
index a4c51abe3398..215afd14b931 100644
--- a/docs/html-intl/intl/pt-br/training/articles/scoped-directory-access.jd
+++ b/docs/html-intl/intl/pt-br/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Neste documento</h2>
<ol>
<li><a href="#accessing">Acessar um diretório de armazenamento externo</a></li>
diff --git a/docs/html-intl/intl/pt-br/training/tv/playback/picture-in-picture.jd b/docs/html-intl/intl/pt-br/training/tv/playback/picture-in-picture.jd
index 14f52091c86b..baa7d61b1390 100644
--- a/docs/html-intl/intl/pt-br/training/tv/playback/picture-in-picture.jd
+++ b/docs/html-intl/intl/pt-br/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Neste documento</h2>
<ol>
diff --git a/docs/html-intl/intl/pt-br/training/tv/tif/content-recording.jd b/docs/html-intl/intl/pt-br/training/tv/tif/content-recording.jd
index 890e1403793b..c6d7bb7f4fe5 100644
--- a/docs/html-intl/intl/pt-br/training/tv/tif/content-recording.jd
+++ b/docs/html-intl/intl/pt-br/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Neste documento</h2>
<ol>
<li><a href="#supporting">Indicar suporte para gravação</a></li>
diff --git a/docs/html-intl/intl/ru/training/articles/direct-boot.jd b/docs/html-intl/intl/ru/training/articles/direct-boot.jd
index 3392c1355f8f..98849feeebb3 100644
--- a/docs/html-intl/intl/ru/training/articles/direct-boot.jd
+++ b/docs/html-intl/intl/ru/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Содержание документа</h2>
<ol>
<li><a href="#run">Запрос доступа для запуска в режиме Direct Boot</a></li>
diff --git a/docs/html-intl/intl/ru/training/articles/scoped-directory-access.jd b/docs/html-intl/intl/ru/training/articles/scoped-directory-access.jd
index f70c92c4e14d..3e67d358f8ee 100644
--- a/docs/html-intl/intl/ru/training/articles/scoped-directory-access.jd
+++ b/docs/html-intl/intl/ru/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Содержание документа</h2>
<ol>
<li><a href="#accessing">Доступ к каталогу во внешнем хранилище</a></li>
diff --git a/docs/html-intl/intl/ru/training/tv/playback/picture-in-picture.jd b/docs/html-intl/intl/ru/training/tv/playback/picture-in-picture.jd
index f0ffd482d86a..fc26368bb126 100644
--- a/docs/html-intl/intl/ru/training/tv/playback/picture-in-picture.jd
+++ b/docs/html-intl/intl/ru/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Содержание документа</h2>
<ol>
diff --git a/docs/html-intl/intl/ru/training/tv/tif/content-recording.jd b/docs/html-intl/intl/ru/training/tv/tif/content-recording.jd
index 5e6ce45b99ec..19d6db37eb02 100644
--- a/docs/html-intl/intl/ru/training/tv/tif/content-recording.jd
+++ b/docs/html-intl/intl/ru/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Содержание документа</h2>
<ol>
<li><a href="#supporting">Указание на поддержку записи</a></li>
diff --git a/docs/html-intl/intl/vi/training/articles/direct-boot.jd b/docs/html-intl/intl/vi/training/articles/direct-boot.jd
index 9b2a557c2b16..c93e2552e208 100644
--- a/docs/html-intl/intl/vi/training/articles/direct-boot.jd
+++ b/docs/html-intl/intl/vi/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Trong tài liệu này</h2>
<ol>
<li><a href="#run">Yêu cầu Truy cập để Chạy trong quá trình Khởi động Trực tiếp</a></li>
diff --git a/docs/html-intl/intl/vi/training/articles/scoped-directory-access.jd b/docs/html-intl/intl/vi/training/articles/scoped-directory-access.jd
index d3b71743dcae..a4d97796aaa3 100644
--- a/docs/html-intl/intl/vi/training/articles/scoped-directory-access.jd
+++ b/docs/html-intl/intl/vi/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Trong tài liệu này</h2>
<ol>
<li><a href="#accessing">Truy cập một Thư mục lưu trữ bên ngoài</a></li>
diff --git a/docs/html-intl/intl/vi/training/tv/playback/picture-in-picture.jd b/docs/html-intl/intl/vi/training/tv/playback/picture-in-picture.jd
index 8146a1578682..9156152eb0d0 100644
--- a/docs/html-intl/intl/vi/training/tv/playback/picture-in-picture.jd
+++ b/docs/html-intl/intl/vi/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Trong tài liệu này</h2>
<ol>
diff --git a/docs/html-intl/intl/vi/training/tv/tif/content-recording.jd b/docs/html-intl/intl/vi/training/tv/tif/content-recording.jd
index 6dfb53ea3c9a..bfd718b28986 100644
--- a/docs/html-intl/intl/vi/training/tv/tif/content-recording.jd
+++ b/docs/html-intl/intl/vi/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>Trong tài liệu này</h2>
<ol>
<li><a href="#supporting">Chỉ báo Hỗ trợ ghi lại</a></li>
diff --git a/docs/html-intl/intl/zh-cn/training/articles/direct-boot.jd b/docs/html-intl/intl/zh-cn/training/articles/direct-boot.jd
index 306a7a4130ca..20f8b57822b0 100644
--- a/docs/html-intl/intl/zh-cn/training/articles/direct-boot.jd
+++ b/docs/html-intl/intl/zh-cn/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>本文内容</h2>
<ol>
<li><a href="#run">请求在直接启动时运行</a></li>
diff --git a/docs/html-intl/intl/zh-cn/training/articles/scoped-directory-access.jd b/docs/html-intl/intl/zh-cn/training/articles/scoped-directory-access.jd
index 6473fc85c8d5..83d50b42f277 100644
--- a/docs/html-intl/intl/zh-cn/training/articles/scoped-directory-access.jd
+++ b/docs/html-intl/intl/zh-cn/training/articles/scoped-directory-access.jd
@@ -8,8 +8,8 @@ page.tags=Android N
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>本文内容</h2>
<ol>
<li><a href="#accessing">访问外部存储目录</a></li>
diff --git a/docs/html-intl/intl/zh-cn/training/tv/playback/picture-in-picture.jd b/docs/html-intl/intl/zh-cn/training/tv/playback/picture-in-picture.jd
index 782b5b868d63..6cfa815eca8b 100644
--- a/docs/html-intl/intl/zh-cn/training/tv/playback/picture-in-picture.jd
+++ b/docs/html-intl/intl/zh-cn/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>本文内容</h2>
<ol>
diff --git a/docs/html-intl/intl/zh-cn/training/tv/tif/content-recording.jd b/docs/html-intl/intl/zh-cn/training/tv/tif/content-recording.jd
index 2dec87d68724..754e0651fcb9 100644
--- a/docs/html-intl/intl/zh-cn/training/tv/tif/content-recording.jd
+++ b/docs/html-intl/intl/zh-cn/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>本文内容</h2>
<ol>
<li><a href="#supporting">指示支持录制</a></li>
diff --git a/docs/html-intl/intl/zh-tw/training/articles/direct-boot.jd b/docs/html-intl/intl/zh-tw/training/articles/direct-boot.jd
index 7e4ea732b244..fdcb1727cea4 100644
--- a/docs/html-intl/intl/zh-tw/training/articles/direct-boot.jd
+++ b/docs/html-intl/intl/zh-tw/training/articles/direct-boot.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>此文件內容</h2>
<ol>
<li><a href="#run">要求直接開機期間的執行權限</a></li>
diff --git a/docs/html-intl/intl/zh-tw/training/articles/scoped-directory-access.jd b/docs/html-intl/intl/zh-tw/training/articles/scoped-directory-access.jd
index 0aa0034a1d1e..b1c1a76ebb09 100644
--- a/docs/html-intl/intl/zh-tw/training/articles/scoped-directory-access.jd
+++ b/docs/html-intl/intl/zh-tw/training/articles/scoped-directory-access.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>此文件內容</h2>
<ol>
<li><a href="#accessing">存取外部儲存空間目錄</a></li>
diff --git a/docs/html-intl/intl/zh-tw/training/tv/playback/picture-in-picture.jd b/docs/html-intl/intl/zh-tw/training/tv/playback/picture-in-picture.jd
index b05198573eba..e643f65dbc1a 100644
--- a/docs/html-intl/intl/zh-tw/training/tv/playback/picture-in-picture.jd
+++ b/docs/html-intl/intl/zh-tw/training/tv/playback/picture-in-picture.jd
@@ -4,8 +4,8 @@ page.tags=androidn
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>此文件內容</h2>
<ol>
diff --git a/docs/html-intl/intl/zh-tw/training/tv/tif/content-recording.jd b/docs/html-intl/intl/zh-tw/training/tv/tif/content-recording.jd
index d857477d760b..8b3a5ce62cac 100644
--- a/docs/html-intl/intl/zh-tw/training/tv/tif/content-recording.jd
+++ b/docs/html-intl/intl/zh-tw/training/tv/tif/content-recording.jd
@@ -5,8 +5,8 @@ page.image=images/cards/card-nyc_2x.jpg
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>此文件內容</h2>
<ol>
<li><a href="#supporting">指出錄製支援</a></li>
diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml
index 3dcc736d3c90..00a7edd3f528 100644
--- a/docs/html/_redirects.yaml
+++ b/docs/html/_redirects.yaml
@@ -479,6 +479,14 @@ redirects:
to: /distribute/stories/index.html
- from: /distribute/stories/tablets.html
to: /distribute/stories/index.html
+- from: /distribute/stories/glu-dh.html
+ to: /distribute/stories/games/glu-dh.html
+- from: /distribute/stories/apps/tapps.html
+ to: /distribute/stories/games/tapps.html
+- from: /distribute/stories/apps/upbeat-games.html
+ to: /distribute/stories/games/upbeat-games.html
+- from: /distribute/stories/games/two-dots.html
+ to: /distribute/stories/games/dots.html
- from: /distribute/googleplay/edu/index.html
to: /distribute/googleplay/edu/about.html
- from: /distribute/googleplay/edu/contact.html
diff --git a/docs/html/about/dashboards/index.jd b/docs/html/about/dashboards/index.jd
index 3cbfde9cc386..f5d23e8b4032 100644
--- a/docs/html/about/dashboards/index.jd
+++ b/docs/html/about/dashboards/index.jd
@@ -59,7 +59,7 @@ Platform Versions</a>.</p>
</div>
-<p style="clear:both"><em>Data collected during a 7-day period ending on July 11, 2016.
+<p style="clear:both"><em>Data collected during a 7-day period ending on August 1, 2016.
<br/>Any versions with less than 0.1% distribution are not shown.</em>
</p>
@@ -81,7 +81,7 @@ Screens</a>.</p>
</div>
-<p style="clear:both"><em>Data collected during a 7-day period ending on July 11, 2016.
+<p style="clear:both"><em>Data collected during a 7-day period ending on August 1, 2016.
<br/>Any screen configurations with less than 0.1% distribution are not shown.</em></p>
@@ -101,7 +101,7 @@ support for any lower version (for example, support for version 2.0 also implies
<img alt="" style="float:right"
-src="//chart.googleapis.com/chart?chl=GL%202.0%7CGL%203.0%7CGL%203.1&chf=bg%2Cs%2C00000000&chd=t%3A47.5%2C41.9%2C10.6&chco=c4df9b%2C6fad0c&cht=p&chs=400x250">
+src="//chart.googleapis.com/chart?chl=GL%202.0%7CGL%203.0%7CGL%203.1&chf=bg%2Cs%2C00000000&chd=t%3A46.0%2C42.6%2C11.4&chco=c4df9b%2C6fad0c&cht=p&chs=400x250">
<p>To declare which version of OpenGL ES your application requires, you should use the {@code
android:glEsVersion} attribute of the <a
@@ -119,21 +119,21 @@ uses.</p>
</tr>
<tr>
<td>2.0</td>
-<td>47.5%</td>
+<td>46.0%</td>
</tr>
<tr>
<td>3.0</td>
-<td>41.9%</td>
+<td>42.6%</td>
</tr>
<tr>
<td>3.1</td>
-<td>10.6%</td>
+<td>11.4%</td>
</tr>
</table>
-<p style="clear:both"><em>Data collected during a 7-day period ending on July 11, 2016</em></p>
+<p style="clear:both"><em>Data collected during a 7-day period ending on August 1, 2016</em></p>
@@ -147,19 +147,19 @@ var SCREEN_DATA =
"Large": {
"hdpi": "0.5",
"ldpi": "0.2",
- "mdpi": "4.4",
+ "mdpi": "4.3",
"tvdpi": "2.1",
"xhdpi": "0.5"
},
"Normal": {
- "hdpi": "40.9",
- "mdpi": "4.1",
+ "hdpi": "40.0",
+ "mdpi": "3.8",
"tvdpi": "0.1",
- "xhdpi": "26.3",
- "xxhdpi": "15.1"
+ "xhdpi": "27.3",
+ "xxhdpi": "15.5"
},
"Small": {
- "ldpi": "1.9"
+ "ldpi": "1.8"
},
"Xlarge": {
"hdpi": "0.3",
@@ -167,8 +167,8 @@ var SCREEN_DATA =
"xhdpi": "0.7"
}
},
- "densitychart": "//chart.googleapis.com/chart?chco=c4df9b%2C6fad0c&chd=t%3A2.1%2C11.4%2C2.2%2C41.7%2C27.5%2C15.1&chf=bg%2Cs%2C00000000&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chs=400x250&cht=p",
- "layoutchart": "//chart.googleapis.com/chart?chco=c4df9b%2C6fad0c&chd=t%3A3.9%2C7.7%2C86.5%2C1.9&chf=bg%2Cs%2C00000000&chl=Xlarge%7CLarge%7CNormal%7CSmall&chs=400x250&cht=p"
+ "densitychart": "//chart.googleapis.com/chart?chd=t%3A2.0%2C11.0%2C2.2%2C40.8%2C28.5%2C15.5&chf=bg%2Cs%2C00000000&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&cht=p&chs=400x250&chco=c4df9b%2C6fad0c",
+ "layoutchart": "//chart.googleapis.com/chart?chd=t%3A3.9%2C7.6%2C86.7%2C1.8&chf=bg%2Cs%2C00000000&chl=Xlarge%7CLarge%7CNormal%7CSmall&cht=p&chs=400x250&chco=c4df9b%2C6fad0c"
}
];
@@ -176,7 +176,7 @@ var SCREEN_DATA =
var VERSION_DATA =
[
{
- "chart": "//chart.googleapis.com/chart?chco=c4df9b%2C6fad0c&chd=t%3A0.1%2C1.9%2C1.7%2C17.8%2C30.2%2C35.1%2C13.3&chf=bg%2Cs%2C00000000&chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat%7CLollipop%7CMarshmallow&chs=500x250&cht=p",
+ "chart": "//chart.googleapis.com/chart?chd=t%3A0.1%2C1.7%2C1.6%2C16.7%2C29.2%2C35.5%2C15.2&chf=bg%2Cs%2C00000000&chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat%7CLollipop%7CMarshmallow&cht=p&chs=500x250&chco=c4df9b%2C6fad0c",
"data": [
{
"api": 8,
@@ -186,47 +186,47 @@ var VERSION_DATA =
{
"api": 10,
"name": "Gingerbread",
- "perc": "1.9"
+ "perc": "1.7"
},
{
"api": 15,
"name": "Ice Cream Sandwich",
- "perc": "1.7"
+ "perc": "1.6"
},
{
"api": 16,
"name": "Jelly Bean",
- "perc": "6.4"
+ "perc": "6.0"
},
{
"api": 17,
"name": "Jelly Bean",
- "perc": "8.8"
+ "perc": "8.3"
},
{
"api": 18,
"name": "Jelly Bean",
- "perc": "2.6"
+ "perc": "2.4"
},
{
"api": 19,
"name": "KitKat",
- "perc": "30.1"
+ "perc": "29.2"
},
{
"api": 21,
"name": "Lollipop",
- "perc": "14.3"
+ "perc": "14.1"
},
{
"api": 22,
"name": "Lollipop",
- "perc": "20.8"
+ "perc": "21.4"
},
{
"api": 23,
"name": "Marshmallow",
- "perc": "13.3"
+ "perc": "15.2"
}
]
}
diff --git a/docs/html/distribute/stories/apps/aftenposten.jd b/docs/html/distribute/stories/apps/aftenposten.jd
index 149e6bbe5a4a..a813c00addca 100644
--- a/docs/html/distribute/stories/apps/aftenposten.jd
+++ b/docs/html/distribute/stories/apps/aftenposten.jd
@@ -2,7 +2,7 @@ page.title=Aftenposten Improves Retention by Allowing Readers to Customize Notif
page.metaDescription=Aftenposten upgraded their app and improved user retention.
page.tags="developerstory", "apps", "googleplay"
page.image=images/cards/distribute/stories/aftenposten.png
-page.timestamp=1468270114
+page.timestamp=1468901834
@jd:body
diff --git a/docs/html/distribute/stories/apps/el-mundo.jd b/docs/html/distribute/stories/apps/el-mundo.jd
index 2ee813d55d11..2dbaeea7c8f0 100644
--- a/docs/html/distribute/stories/apps/el-mundo.jd
+++ b/docs/html/distribute/stories/apps/el-mundo.jd
@@ -2,7 +2,7 @@ page.title=El Mundo Improves User Ratings and Engagement with Material Design
page.metaDescription=El Mundo uses Material Design principles to enhance their app's user experience.
page.tags="developerstory", "apps", "googleplay"
page.image=images/cards/distribute/stories/el-mundo.png
-page.timestamp=1468270112
+page.timestamp=1468901833
@jd:body
diff --git a/docs/html/distribute/stories/apps/segundamano.jd b/docs/html/distribute/stories/apps/segundamano.jd
index 4cbf817c6d43..7ed4d8e88a5d 100644
--- a/docs/html/distribute/stories/apps/segundamano.jd
+++ b/docs/html/distribute/stories/apps/segundamano.jd
@@ -2,7 +2,7 @@ page.title=Segundamano Develops Android-First as Its Fastest Channel for Growth
page.metaDescription=Segundamano developed Android app to increase potential for growth.
page.tags="developerstory", "apps", "googleplay"
page.image=images/cards/distribute/stories/segundamano.png
-page.timestamp=1468270110
+page.timestamp=1468901832
@jd:body
diff --git a/docs/html/distribute/stories/glu-dh.jd b/docs/html/distribute/stories/games/glu-dh.jd
index 3353f6998ee1..3353f6998ee1 100644
--- a/docs/html/distribute/stories/glu-dh.jd
+++ b/docs/html/distribute/stories/games/glu-dh.jd
diff --git a/docs/html/distribute/stories/apps/tapps.jd b/docs/html/distribute/stories/games/tapps.jd
index 129213946630..221b9a88622f 100644
--- a/docs/html/distribute/stories/apps/tapps.jd
+++ b/docs/html/distribute/stories/games/tapps.jd
@@ -1,8 +1,8 @@
page.title=Tapps Games Increases Installs by More Than 20% with Store Listing Experiments
page.metaDescription=Tapps Games increased their use of store listing experiments in the Developer Console, with impressive results.
-page.tags="developerstory", "apps", "googleplay"
+page.tags="developerstory", "games", "googleplay"
page.image=images/cards/distribute/stories/tapps.png
-page.timestamp=1468270108
+page.timestamp=1468901831
@jd:body
diff --git a/docs/html/distribute/stories/games/two-dots.jd b/docs/html/distribute/stories/games/two-dots.jd
deleted file mode 100644
index a2299ce1f7f9..000000000000
--- a/docs/html/distribute/stories/games/two-dots.jd
+++ /dev/null
@@ -1,77 +0,0 @@
-page.title=Two Dots increased installs by 7 percent using Store Listing Experiments
-page.metaDescription=Two Dots, the sequel to the popular game Dots, is a free-to-play puzzle game launched by Playdots, Inc. Playdots decided to use Store Listing Experiments to see if adding a call to action in the games’ store listing short descriptions had an impact on installs.
-page.tags="developerstory", "games", "googleplay"
-page.image=images/cards/distribute/stories/two-dots.png
-page.timestamp=1456431511
-
-@jd:body
-
-
-<h3>Background</h3>
-
-<div class="figure" style="width:113px">
- <img src="{@docRoot}images/distribute/stories/two-dots-icon.png"
- height="113" />
-</div>
-
-<p>
- <a class="external-link"
- href="https://play.google.com/store/apps/details?id=com.weplaydots.twodotsandroid&hl=en">
- Two Dots</a>, the sequel to the popular game
- <a class="external-link"
- href="https://play.google.com/store/apps/details?id=com.nerdyoctopus.gamedots&hl=en">
- Dots</a>, is a free-to-play puzzle game launched by Playdots, Inc. in May
- 2014. Since launch it has gained over 30 million downloads, seen over five
- billion games played, and achieved 15 times the revenue of the original Dots
- game within a year. Dots decided to use
- <a class="external-link"
- href="https://support.google.com/googleplay/android-developer/answer/6227309">
- Store Listing Experiments</a> to see if adding a call to action in the games'
- store listing short descriptions had an impact on installs.
-
-</p>
-
-<h3>What they did</h3>
-
-<p>
- Dots used localized store listing experiments in the Google Play Developer
- Console to test both games’ short descriptions. They compared the games’
- current descriptions — the control, with no call to action — against variant
- descriptions, targeting half of their traffic with the variant descriptions.
-</p>
-
-<h3>Results</h3>
-
-<p>
- The results showed that the addition of a call to action in the short
- description had a positive impact on installs.
-</p>
-
-
- <img
- src="{@docRoot}images/distribute/stories/two-dots-screenshot.png"
- srcset=
- "{@docRoot}images/distribute/stories/two-dots-screenshot.png 1x
- {@docRoot}images/distribute/stories/two-dots-screenshot_2x.png 2x">
- <p class="img-caption">
- Beautifully designed achievements badges encourage unlock
- </p>
-
-
-<p>
- In Dots, the conversion rate increased by 2 percent with a simple call to
- action in the variant text. In Two Dots, where a call to action was combined
- with messaging that the game is the “best puzzle game on Android”, conversion
- rates increased by 7 percent compared to the control description.
-</p>
-
-<h3>Get started</h3>
-
-<p>
- Learn how to run
- <a clas="external-link"
- href="https://support.google.com/googleplay/android-developer/answer/6227309">
- Store Listing Experiments</a> and read our best practices for
- <a href="https://developer.android.com/distribute/users/experiments.html">
- running successful experiments</a>.
-</p>
diff --git a/docs/html/distribute/stories/apps/upbeat-games.jd b/docs/html/distribute/stories/games/upbeat-games.jd
index 02222d39e686..16a1d51c19c9 100644
--- a/docs/html/distribute/stories/apps/upbeat-games.jd
+++ b/docs/html/distribute/stories/games/upbeat-games.jd
@@ -1,8 +1,8 @@
page.title=Witch Puzzle Achieves 98% of International Installs on Android
page.metaDescription=Witch Puzzle localized their app into 12 languages.
-page.tags="developerstory", "apps", "googleplay"
+page.tags="developerstory", "games", "googleplay"
page.image=images/cards/distribute/stories/witch-puzzle.png
-page.timestamp=1468270106
+page.timestamp=1468901832
@jd:body
diff --git a/docs/html/distribute/stories/index.jd b/docs/html/distribute/stories/index.jd
index 8fe10191247d..1adc5aeb4eba 100644
--- a/docs/html/distribute/stories/index.jd
+++ b/docs/html/distribute/stories/index.jd
@@ -19,21 +19,43 @@ page.metaDescription=Android developers, their apps, and their successes with An
<section class="dac-section dac-small" id="latest-apps"><div class="wrap">
<h2 class="norule">Latest from apps</h2>
+ <h3 class="norule">Videos</h3>
+
+ <div class="resource-widget resource-flow-layout col-16"
+ data-query="type:youtube+tag:developerstory+tag:apps"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x6"
+ data-items-per-page="15"
+ data-initial-results="6"></div>
+
+ <h3 class="norule">Articles</h3>
+
<div class="resource-widget resource-flow-layout col-16"
- data-query="type:distribute+tag:developerstory+tag:apps, type:youtube+tag:developerstory+tag:apps"
+ data-query="type:distribute+tag:developerstory+tag:apps"
data-sortOrder="-timestamp"
data-cardSizes="6x6"
data-items-per-page="15"
- data-initial-results="9"></div>
+ data-initial-results="6"></div>
</div></section>
<section class="dac-section dac-small" id="latest-games"><div class="wrap">
<h2 class="norule">Latest from games</h2>
+ <h3 class="norule">Videos</h3>
+
+ <div class="resource-widget resource-flow-layout col-16"
+ data-query="type:youtube+tag:developerstory+tag:games"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x6"
+ data-items-per-page="15"
+ data-initial-results="6"></div>
+
+ <h3 class="norule">Articles</h3>
+
<div class="resource-widget resource-flow-layout col-16"
- data-query="type:distribute+tag:developerstory+tag:games,type:youtube+tag:developerstory+tag:games"
+ data-query="type:distribute+tag:developerstory+tag:games"
data-sortOrder="-timestamp"
data-cardSizes="6x6"
data-items-per-page="15"
- data-initial-results="9"></div>
+ data-initial-results="6"></div>
</div></section>
diff --git a/docs/html/guide/topics/manifest/uses-feature-element.jd b/docs/html/guide/topics/manifest/uses-feature-element.jd
index 10841d675834..9b32244b736f 100755
--- a/docs/html/guide/topics/manifest/uses-feature-element.jd
+++ b/docs/html/guide/topics/manifest/uses-feature-element.jd
@@ -1230,7 +1230,7 @@ densities: '160'
</p>
<p>
- When declared as required, this feature indicates that the app is
+ By default, your app requires this feature. This feature indicates that the app is
compatible with a device only if that device emulates a touchscreen
("fake touch" interface) or has an actual touchscreen.
</p>
@@ -1240,19 +1240,12 @@ densities: '160'
that emulates a subset of a touchscreen's capabilities. For example, a
mouse or remote control could drive an on-screen cursor. If your app
requires basic point and click interaction (in other words, it won't work
- with only a d-pad controller), you should declare this feature. Because
+ with only a d-pad controller), you should declare this feature or simply
+ avoid declaring any {@code android.hardware.touchscreen.*} features. Because
this is the minimum level of touch interaction, you can also use an app
that declares this feature on devices that offer more complex touch
interfaces.
</p>
-
- <p class="note">
- <strong>Note:</strong> Apps require the {@code android.hardware.touchscreen}
- feature by default. If you want your app to be available to devices that
- provide a fake touch interface, you must also explicitly declare that a
- touchscreen is not required as follows:
- </p>
- <pre>&lt;uses-feature android:name="android.hardware.touchscreen" <strong>android:required="false"</strong> /&gt;</pre>
</dd>
<dt>
@@ -1327,21 +1320,9 @@ densities: '160'
</p>
<p>
- By default, your app requires this feature. As such, your app is not
- available to devices that provide only an emulated touch interface ("fake
- touch") by default. If you want to make your app available on devices
- that provide a fake touch interface (or even on devices that provide only
- a d-pad controller), you must explicitly declare that a touchscreen is
- not required by declaring {@code android.hardware.touchscreen} with
- {@code android:required="false"}. You should add this declaration if your
- app uses—but does not require—a real touchscreen interface.
- </p>
-
- <p>
If your app in fact requires a touch interface (to perform more advanced
- touch gestures such as fling), then you don't need to declare any touch
- interface features because they're required by default. However, it's
- best if you explicitly declare all features that your app uses.
+ touch gestures such as fling), then you must explicitly declare this feature
+ or any advanced touchscreen features.
</p>
<p>
diff --git a/docs/html/topic/arc/_book.yaml b/docs/html/topic/arc/_book.yaml
new file mode 100644
index 000000000000..ad83ba998138
--- /dev/null
+++ b/docs/html/topic/arc/_book.yaml
@@ -0,0 +1,9 @@
+toc:
+- title: Optimize Apps for Chromebooks
+ path: /topic/arc/index.html
+- title: Loading Apps on Chromebooks
+ path: /topic/arc/sideload.html
+- title: Chrome OS Device Support for Apps
+ path: /topic/arc/device-support.html
+- title: App Manifest Compatibility for Chromebooks
+ path: /topic/arc/manifest.html \ No newline at end of file
diff --git a/docs/html/training/_book.yaml b/docs/html/training/_book.yaml
index 0523ec9e12b0..891574fbc6ca 100644
--- a/docs/html/training/_book.yaml
+++ b/docs/html/training/_book.yaml
@@ -1384,6 +1384,11 @@ toc:
path_attributes:
- name: description
value: How to use the SafetyNet service to analyze a device where your app is running and get information about its compatibility with your app.
+ - title: Checking URLs with the Safe Browsing API
+ path: /training/safebrowsing/index.html
+ path_attributes:
+ - name: description
+ value: How to use the SafetyNet service to determine if a URL is designated as a known threat.
- title: Verifying Hardware-backed Key Pairs with Key Attestation
path: /training/articles/security-key-attestation.html
path_attributes:
diff --git a/docs/html/training/safebrowsing/index.jd b/docs/html/training/safebrowsing/index.jd
new file mode 100644
index 000000000000..c6c72bfd1460
--- /dev/null
+++ b/docs/html/training/safebrowsing/index.jd
@@ -0,0 +1,315 @@
+page.title=Checking URLs with the Safe Browsing API
+
+@jd:body
+
+
+<div id="tb-wrapper">
+ <div id="tb">
+ <h2>
+ In this document
+ </h2>
+
+ <ol>
+ <li>
+ <a href="#tos">Terms of Service</a>
+ </li>
+
+ <li>
+ <a href="#api-key">Requesting and Registering an Android API Key</a>
+ <ol>
+ <li>
+ <a href="#manifest">Adding the Android API to your
+ AndroidManifest.xml</a>
+ </li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="#connect-google-play">Connect to Google Play Services</a>
+ </li>
+
+ <li>
+ <a href="#url-check">Requesting a URL Check</a>
+ <ol>
+ <li>
+ <a href="#threat-types">Specifying threat types of interest</a>
+ </li>
+
+ <li>
+ <a href="#url-check-request">Send the URL check request</a>
+ </li>
+
+ <li>
+ <a href="#url-check-response">Read the URL check response</a>
+ </li>
+ </ol>
+ </li>
+
+ <li>
+ <a href="#warning-lang">Suggested Warning Language</a>
+ </li>
+ </ol>
+ </div>
+</div>
+
+<p>
+ SafetyNet provides services for determining whether a URL has been marked as
+ a known threat by Google.
+</p>
+
+<p>
+ The service provides an API your app can use to determine whether a
+ particular URL has been classified by Google as a known threat. Internally,
+ SafetyNet implements a client for the Safe Browsing Network Protocol v4
+ developed by Google. Both the client code and the v4 network protocol were
+ designed to preserve users' privacy, as well as keep battery and bandwidth
+ consumption to a minimum. This API allows you to take full advantage of
+ Google's Safe Browsing service on Android in the most resource-optimized way,
+ and without having to implement its network protocol.
+</p>
+
+<p>
+ This document shows you how to use SafetyNet for checking a URL for threat
+ types of interest.
+</p>
+
+<h2 id="tos">
+ Terms of Service
+</h2>
+
+<p>
+ By using the Safe Browsing API, you consent to be bound by the <a href=
+ "https://developers.google.com/safe-browsing/terms">Terms of Service</a>.
+ Please read and understand all applicable terms and policies before accessing
+ the Safe Browsing API.
+</p>
+
+<h2 id="api-key">
+ Requesting and Registering an Android API Key
+</h2>
+
+<p>
+ To create an API key, complete the following steps:
+</p>
+
+<ol>
+ <li>Go to the <a href="https://console.developers.google.com/project"
+ class="external-link">Google Developers Console</a>.
+ </li>
+
+ <li>On the upper toolbar, choose <strong>Select a project &gt;
+ <em>your-project-name</em></strong>.
+ </li>
+
+ <li>In the search box, enter <em>Safe Browsing APIs</em>; when the Safe
+ Browsing API name appears in the table, select it.
+ </li>
+
+ <li>After the page redisplays, select <strong>Enable</strong> then select
+ <strong>Go to Credentials</strong>.
+ </li>
+
+ <li>When the <em>Add credentials to your project</em> window appears, choose
+ your parameters then select <strong>What credentials do I need?</strong>.
+ </li>
+
+ <li>Enter a name for your API key then select <strong>Create API
+ key</strong>.
+ </li>
+
+ <li>
+ <p>
+ Your new API key appears; copy and paste this key for future use.
+ </p>
+
+ <p class="note">
+ <strong>Note:</strong> Your API key allows you to perform a URL check
+ 10,000 times each day. The key, in this instance, should just be a
+ hexadecimal string, not part of a URL.
+ </p>
+ </li>
+
+ <li>Select <strong>Done</strong> to complete the process.
+ </li>
+</ol>
+
+<p>
+ If you need more help, check out the <a href=
+ "https://developers.google.com/console/help/new/">Google Developers Console
+ Help Center</a>.
+</p>
+
+<h3 id="manifest">
+ Adding the Android API key to your AndroidManifest.xml
+</h3>
+
+<p>
+ Once your key has been whitelisted, you need to add the key to the
+ <code>AndroidManifest.xml</code> file for your app:
+</p>
+
+<pre>
+&lt;application&gt;
+
+ ...
+
+ &lt;!-- SafetyNet API metadata --&gt;
+ &lt;meta-data android:name="com.google.android.safetynet.API_KEY"
+ android:value="<var>your-API-key</var>" /&gt;
+
+ ...
+
+&lt;/application&gt;
+</pre>
+<h2 id="connect-google-play">
+ Connect to Google Play Services
+</h2>
+
+<p>
+ The SafetyNet API is part of Google Play services. To connect to the API, you
+ need to create an instance of the Google Play services API client. For
+ details about using the client in your app, see <a href=
+ "https://developers.google.com/android/guides/api-client#Starting">Accessing
+ Google APIs</a>. Once you have established a connection to Google Play
+ services, you can use the Google API client classes to connect to the
+ SafetyNet API.
+</p>
+
+<p>
+ To connect to the API, in your activity's <code><a href=
+ "{@docRoot}reference/android/app/Activity.html#onCreate(android.os.Bundle)">onCreate()</a></code>
+ method, create an instance of Google API Client using <code><a href=
+ "https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient.Builder">
+ GoogleApiClient.Builder</a></code>. Use the builder to add the SafetyNet API,
+ as shown in the following code example:
+</p>
+
+<pre>
+protected synchronized void buildGoogleApiClient() {
+ mGoogleApiClient = new GoogleApiClient.Builder(this)
+ .addApi(SafetyNet.API)
+ .addConnectionCallbacks(myMainActivity.this)
+ .build();
+}
+</pre>
+<p class="note">
+ <strong>Note:</strong> You can only call these methods after your app has
+ established a connection to Google Play services by receiving the <code>
+ <a href="https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks#public-methods">
+ onConnected()</a></code> callback. For details about listening for a completed
+ client connection, see <a href=
+ "https://developers.google.com/android/guides/api-client#Starting">Accessing
+ Google APIs</a>.
+</p>
+
+<h2 id="url-check">
+ Requesting a URL Check
+</h2>
+
+<p>
+ A URL check allows your app to determine if a URL has been marked as a threat
+ of interest. Some threat types may not be of interest to your particular
+ app, and the API allows you to choose which threat types are important for
+ your needs. You can specify multiple threat types of interest.
+</p>
+
+<h3 id="threat-types">
+ Specifying threat types of interest
+</h3>
+
+<p>
+ The constants in the {@code SafeBrowsingThreat} class contain the
+ currently-supported threat types:
+</p>
+
+<pre>
+package com.google.android.gms.safetynet;
+
+public class SafeBrowsingThreat {
+
+ /**
+ * This threat type identifies URLs of pages that are flagged as containing potentially
+ * harmful applications.
+ */
+ public static final int TYPE_POTENTIALLY_HARMFUL_APPLICATION = 4;
+
+ /**
+ * This threat type identifies URLs of pages that are flagged as containing social
+ * engineering threats.
+ */
+ public static final int TYPE_SOCIAL_ENGINEERING = 5;
+}
+</pre>
+<p>
+ When using the API, you must use constants that are not marked as deprecated.
+ You add threat type constants as arguments to the API. You may add as many
+ threat type constants as is required for your app.
+</p>
+
+<h3 id="url-check-request">
+ Send the URL check request
+</h3>
+
+<p>
+ The API is agnostic to the scheme used, so you can pass the URL with or
+ without a scheme. For example, either
+</p>
+
+<pre>
+String url = "https://www.google.com";
+</pre>
+<p>
+ or
+</p>
+
+<pre>
+String url = "www.google.com";
+</pre>
+<p>
+ is valid.
+</p>
+
+<pre>
+SafetyNet.SafetyNetApi.lookupUri(mGoogleApiClient, url,
+ SafeBrowsingThreat.TYPE_POTENTIALLY_HARMFUL_APPLICATION,
+ SafeBrowsingThreat.TYPE_SOCIAL_ENGINEERING)
+ .setResultCallback(
+ new ResultCallback&lt;SafetyNetApi.SafeBrowsingResult&gt;() {
+
+ &#64;Override
+ public void onResult(SafetyNetApi.SafeBrowsingResult result) {
+ Status status = result.getStatus();
+ if ((status != null) &amp;&amp; status.isSuccess()) {
+ // Indicates communication with the service was successful.
+ // Identify any detected threats.
+ if (result.getDetectedThreats().isEmpty()) {
+
+ }
+ } else {
+ // An error occurred. Let the user proceed without warning.
+ }
+ }
+});
+</pre>
+<h3 id="url-check-response">
+ Read the URL check response
+</h3>
+
+<p>
+ The result is provided as a list of {@code SafeBrowsingThreat} objects by
+ calling the {@code SafetyNetApi.SafeBrowsingResult.getDetectedThreats()}
+ method of the returned {@code SafetyNetApi.SafeBrowsingResult} object. If the
+ list is empty, no threats were detected; otherwise, calling {@code
+ SafeBrowsingThreat.getThreatType()} on each element in the list enumerates
+ the threats that were detected.
+</p>
+
+<h2 id="warning-lang">
+ Suggested Warning Language
+</h2>
+
+<p>
+ Please see the Safe Browsing API Developer's Guide for <a href=
+ "https://developers.google.com/safe-browsing/v4/usage-limits#suggested--warning-language">
+ suggested warning language</a>.
+</p> \ No newline at end of file
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java
index 1fdc1f575bd4..49721cf42666 100644
--- a/graphics/java/android/graphics/Bitmap.java
+++ b/graphics/java/android/graphics/Bitmap.java
@@ -1667,10 +1667,10 @@ public final class Bitmap implements Parcelable {
* and therefore is harmless.
*/
public void prepareToDraw() {
- // TODO: Consider having this start an async upload?
- // With inPurgeable no-op'd there's currently no use for this
- // method, but it could have interesting future uses.
checkRecycled("Can't prepareToDraw on a recycled bitmap!");
+ // Kick off an update/upload of the bitmap outside of the normal
+ // draw path.
+ nativePrepareToDraw(mNativePtr);
}
/**
@@ -1741,4 +1741,5 @@ public final class Bitmap implements Parcelable {
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);
+ private static native void nativePrepareToDraw(long nativeBitmap);
}
diff --git a/graphics/java/android/graphics/Path.java b/graphics/java/android/graphics/Path.java
index be31bbe0c086..2294b862192d 100644
--- a/graphics/java/android/graphics/Path.java
+++ b/graphics/java/android/graphics/Path.java
@@ -800,7 +800,6 @@ public class Path {
* Path. Typically this would be 0.5 so that
* the error is less than half a pixel.
* @return An array of components for points approximating the Path.
- * @hide
*/
public float[] approximate(float acceptableError) {
return native_approximate(mNativePath, acceptableError);
diff --git a/keystore/java/android/security/keystore/KeyGenParameterSpec.java b/keystore/java/android/security/keystore/KeyGenParameterSpec.java
index cbef540562e1..ed40b77be4a4 100644
--- a/keystore/java/android/security/keystore/KeyGenParameterSpec.java
+++ b/keystore/java/android/security/keystore/KeyGenParameterSpec.java
@@ -571,13 +571,12 @@ public final class KeyGenParameterSpec implements AlgorithmParameterSpec {
*
* <p>If this method returns {@code null}, and the spec is used to generate an asymmetric (RSA
* or EC) key pair, the public key will have a self-signed certificate if it has purpose {@link
- * KeyProperties#PURPOSE_SIGN} (see {@link #KeyGenParameterSpec(String, int)). If does not have
- * purpose {@link KeyProperties#PURPOSE_SIGN}, it will have a fake certificate.
+ * KeyProperties#PURPOSE_SIGN}. If does not have purpose {@link KeyProperties#PURPOSE_SIGN}, it
+ * will have a fake certificate.
*
* <p>Symmetric keys, such as AES and HMAC keys, do not have public key certificates. If a
- * {@link KeyGenParameterSpec} with {@link #hasAttestationCertificate()} returning
- * non-{@code null} is used to generate a symmetric (AES or HMAC) key,
- * {@link KeyGenerator#generateKey())} will throw
+ * KeyGenParameterSpec with getAttestationChallenge returning non-null is used to generate a
+ * symmetric (AES or HMAC) key, {@link javax.crypto.KeyGenerator#generateKey()} will throw
* {@link java.security.InvalidAlgorithmParameterException}.
*
* @see Builder#setAttestationChallenge(byte[])
@@ -1050,11 +1049,6 @@ public final class KeyGenParameterSpec implements AlgorithmParameterSpec {
return this;
}
- /*
- * TODO(swillden): Update this documentation to describe the hardware and software root
- * keys, including information about CRL/OCSP services for discovering revocations, and to
- * link to documentation of the extension format and content.
- */
/**
* Sets whether an attestation certificate will be generated for this key pair, and what
* challenge value will be placed in the certificate. The attestation certificate chain
@@ -1074,17 +1068,15 @@ public final class KeyGenParameterSpec implements AlgorithmParameterSpec {
*
* <p>If {@code attestationChallenge} is {@code null}, and this spec is used to generate an
* asymmetric (RSA or EC) key pair, the public key certificate will be self-signed if the
- * key has purpose {@link KeyProperties#PURPOSE_SIGN} (see
- * {@link #KeyGenParameterSpec(String, int)). If the key does not have purpose
- * {@link KeyProperties#PURPOSE_SIGN}, it is not possible to use the key to sign a
- * certificate, so the public key certificate will contain a dummy signature.
+ * key has purpose {@link android.security.keystore.KeyProperties#PURPOSE_SIGN}. If the key
+ * does not have purpose {@link android.security.keystore.KeyProperties#PURPOSE_SIGN}, it is
+ * not possible to use the key to sign a certificate, so the public key certificate will
+ * contain a dummy signature.
*
* <p>Symmetric keys, such as AES and HMAC keys, do not have public key certificates. If a
- * {@code getAttestationChallenge} returns non-{@code null} and the spec is used to
- * generate a symmetric (AES or HMAC) key, {@link KeyGenerator#generateKey()} will throw
+ * {@link #getAttestationChallenge()} returns non-null and the spec is used to generate a
+ * symmetric (AES or HMAC) key, {@link javax.crypto.KeyGenerator#generateKey()} will throw
* {@link java.security.InvalidAlgorithmParameterException}.
- *
- * @see Builder#setAttestationChallenge(String attestationChallenge)
*/
@NonNull
public Builder setAttestationChallenge(byte[] attestationChallenge) {
diff --git a/libs/hwui/TextureCache.cpp b/libs/hwui/TextureCache.cpp
index ade8600ab78b..523924af5ef1 100644
--- a/libs/hwui/TextureCache.cpp
+++ b/libs/hwui/TextureCache.cpp
@@ -167,6 +167,10 @@ bool TextureCache::prefetchAndMarkInUse(void* ownerToken, const SkBitmap* bitmap
return texture;
}
+bool TextureCache::prefetch(const SkBitmap* bitmap) {
+ return getCachedTexture(bitmap, AtlasUsageType::Use);
+}
+
Texture* TextureCache::get(const SkBitmap* bitmap, AtlasUsageType atlasUsageType) {
Texture* texture = getCachedTexture(bitmap, atlasUsageType);
diff --git a/libs/hwui/TextureCache.h b/libs/hwui/TextureCache.h
index a4317cee73fd..0a61b6b1a522 100644
--- a/libs/hwui/TextureCache.h
+++ b/libs/hwui/TextureCache.h
@@ -78,6 +78,13 @@ public:
bool prefetchAndMarkInUse(void* ownerToken, const SkBitmap* bitmap);
/**
+ * Attempts to precache the SkBitmap. Returns true if a Texture was successfully
+ * acquired for the bitmap, false otherwise. Does not mark the Texture
+ * as in use and won't update currently in-use Textures.
+ */
+ bool prefetch(const SkBitmap* bitmap);
+
+ /**
* Returns the texture associated with the specified bitmap from either within the cache, or
* the AssetAtlas. If the texture cannot be found in the cache, a new texture is generated.
*/
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index a3004df9ae0e..5f8c7989c669 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -366,11 +366,16 @@ void CanvasContext::draw() {
swap.damage = windowDirty;
swap.swapCompletedTime = systemTime(CLOCK_MONOTONIC);
swap.vsyncTime = mRenderThread.timeLord().latestVsync();
- int durationUs;
- mNativeSurface->query(NATIVE_WINDOW_LAST_DEQUEUE_DURATION, &durationUs);
- swap.dequeueDuration = us2ns(durationUs);
- mNativeSurface->query(NATIVE_WINDOW_LAST_QUEUE_DURATION, &durationUs);
- swap.queueDuration = us2ns(durationUs);
+ if (mNativeSurface.get()) {
+ int durationUs;
+ mNativeSurface->query(NATIVE_WINDOW_LAST_DEQUEUE_DURATION, &durationUs);
+ swap.dequeueDuration = us2ns(durationUs);
+ mNativeSurface->query(NATIVE_WINDOW_LAST_QUEUE_DURATION, &durationUs);
+ swap.queueDuration = us2ns(durationUs);
+ } else {
+ swap.dequeueDuration = 0;
+ swap.queueDuration = 0;
+ }
mCurrentFrameInfo->set(FrameInfoIndex::DequeueBufferDuration)
= swap.dequeueDuration;
mCurrentFrameInfo->set(FrameInfoIndex::QueueBufferDuration)
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index ad1af4043d10..d6eea877de0c 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -21,9 +21,11 @@
#include "Readback.h"
#include "Rect.h"
#include "renderthread/CanvasContext.h"
+#include "renderthread/EglManager.h"
#include "renderthread/RenderTask.h"
#include "renderthread/RenderThread.h"
#include "utils/Macros.h"
+#include "utils/TimeUtils.h"
namespace android {
namespace uirenderer {
@@ -43,6 +45,8 @@ namespace renderthread {
typedef struct { \
a1; a2; a3; a4; a5; a6; a7; a8; \
} ARGS(name); \
+ static_assert(std::is_trivially_destructible<ARGS(name)>::value, \
+ "Error, ARGS must be trivially destructible!"); \
static void* Bridge_ ## name(ARGS(name)* args)
#define SETUP_TASK(method) \
@@ -628,6 +632,41 @@ int RenderProxy::copySurfaceInto(sp<Surface>& surface, SkBitmap* bitmap) {
reinterpret_cast<intptr_t>( staticPostAndWait(task) ));
}
+CREATE_BRIDGE2(prepareToDraw, RenderThread* thread, SkBitmap* bitmap) {
+ if (Caches::hasInstance() && args->thread->eglManager().hasEglContext()) {
+ ATRACE_NAME("Bitmap#prepareToDraw task");
+ Caches::getInstance().textureCache.prefetch(args->bitmap);
+ }
+ delete args->bitmap;
+ args->bitmap = nullptr;
+ return nullptr;
+}
+
+void RenderProxy::prepareToDraw(const SkBitmap& bitmap) {
+ // If we haven't spun up a hardware accelerated window yet, there's no
+ // point in precaching these bitmaps as it can't impact jank.
+ // We also don't know if we even will spin up a hardware-accelerated
+ // window or not.
+ if (!RenderThread::hasInstance()) return;
+ RenderThread* renderThread = &RenderThread::getInstance();
+ SETUP_TASK(prepareToDraw);
+ args->thread = renderThread;
+ args->bitmap = new SkBitmap(bitmap);
+ nsecs_t lastVsync = renderThread->timeLord().latestVsync();
+ nsecs_t estimatedNextVsync = lastVsync + renderThread->timeLord().frameIntervalNanos();
+ nsecs_t timeToNextVsync = estimatedNextVsync - systemTime(CLOCK_MONOTONIC);
+ // We expect the UI thread to take 4ms and for RT to be active from VSYNC+4ms to
+ // VSYNC+12ms or so, so aim for the gap during which RT is expected to
+ // be idle
+ // TODO: Make this concept a first-class supported thing? RT could use
+ // knowledge of pending draws to better schedule this task
+ if (timeToNextVsync > -6_ms && timeToNextVsync < 1_ms) {
+ renderThread->queueAt(task, estimatedNextVsync + 8_ms);
+ } else {
+ renderThread->queue(task);
+ }
+}
+
void RenderProxy::post(RenderTask* task) {
mRenderThread.queue(task);
}
diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h
index 0bee858a84fa..d8129705b940 100644
--- a/libs/hwui/renderthread/RenderProxy.h
+++ b/libs/hwui/renderthread/RenderProxy.h
@@ -128,6 +128,7 @@ public:
ANDROID_API long getDroppedFrameReportCount();
ANDROID_API static int copySurfaceInto(sp<Surface>& surface, SkBitmap* bitmap);
+ ANDROID_API static void prepareToDraw(const SkBitmap& bitmap);
private:
RenderThread& mRenderThread;
diff --git a/libs/usb/tests/accessorytest/audio.c b/libs/usb/tests/accessorytest/audio.c
index d23d9b3fa5d3..36ee6b81839c 100644
--- a/libs/usb/tests/accessorytest/audio.c
+++ b/libs/usb/tests/accessorytest/audio.c
@@ -164,7 +164,6 @@ static void* capture_thread(void* arg)
static void* play_thread(void* arg)
{
struct pcm *pcm = arg;
- char *buffer;
int index, err;
fprintf(stderr, "play_thread start\n");
@@ -181,7 +180,6 @@ static void* play_thread(void* arg)
fprintf(stderr, "play_thread done\n");
pcm_close(pcm);
- free(buffer);
return NULL;
}
diff --git a/media/java/android/media/ExifInterface.java b/media/java/android/media/ExifInterface.java
index dad670180ada..591ceba371f7 100644
--- a/media/java/android/media/ExifInterface.java
+++ b/media/java/android/media/ExifInterface.java
@@ -1169,7 +1169,7 @@ public class ExifInterface {
};
// List of indices of the indicated tag groups according to the EXIF_POINTER_TAGS
private static final int[] EXIF_POINTER_TAG_HINTS = new int[] {
- IFD_TIFF_HINT, IFD_EXIF_HINT, IFD_GPS_HINT, IFD_INTEROPERABILITY_HINT,
+ IFD_PREVIEW_HINT, IFD_EXIF_HINT, IFD_GPS_HINT, IFD_INTEROPERABILITY_HINT,
ORF_CAMERA_SETTINGS_HINT, ORF_IMAGE_PROCESSING_HINT
};
// Tags for indicating the thumbnail offset and length
@@ -2298,35 +2298,15 @@ public class ExifInterface {
parseTiffHeaders(dataInputStream, exifBytes.length);
// Read TIFF image file directories. See JEITA CP-3451C Section 4.5.2. Figure 6.
- readImageFileDirectory(dataInputStream, IFD_PREVIEW_HINT);
-
- // Check if the preview image data should be a primary image data.
- // The 0th IFD (first to be parsed) is presumed to be a preview image data, with a SubIFD
- // that is a primary image data.
- // But if the 0th IFD does not have a SubIFD, then it must be a primary image data since
- // a primary image data must exist, but a preview image data does not have to.
- if (mAttributes[IFD_TIFF_HINT].isEmpty() && !mAttributes[IFD_PREVIEW_HINT].isEmpty()) {
- mAttributes[IFD_TIFF_HINT] = mAttributes[IFD_PREVIEW_HINT];
- mAttributes[IFD_PREVIEW_HINT] = new HashMap();
- }
-
- // Update TAG_IMAGE_WIDTH and TAG_IMAGE_LENGTH for primary image.
- updatePrimaryImageSizeValues(in);
-
- // Check if the preview image data should be a thumbnail image data.
- // In a RAW file, there may be a preview image, which is smaller than a primary image but
- // larger than a thumbnail image. Normally, the preview image can be considered a thumbnail
- // image if its size meets the requirements. Therefore, when a thumbnail image has not yet
- // been found, we should check if the preview image can be one.
- if (!mAttributes[IFD_PREVIEW_HINT].isEmpty() && mAttributes[IFD_THUMBNAIL_HINT].isEmpty()) {
- // Update preview image size if necessary
- retrieveJpegImageSize(in, IFD_PREVIEW_HINT);
+ readImageFileDirectory(dataInputStream, IFD_TIFF_HINT);
- if (isThumbnail(mAttributes[IFD_PREVIEW_HINT])) {
- mAttributes[IFD_THUMBNAIL_HINT] = mAttributes[IFD_PREVIEW_HINT];
- mAttributes[IFD_PREVIEW_HINT] = new HashMap();
- }
- }
+ // Update ImageLength/Width tags for all image data.
+ updateImageSizeValues(in, IFD_TIFF_HINT);
+ updateImageSizeValues(in, IFD_PREVIEW_HINT);
+ updateImageSizeValues(in, IFD_THUMBNAIL_HINT);
+
+ // Check if each image data is in valid position.
+ validateImages(in);
if (mMimeType == IMAGE_TYPE_PEF) {
// PEF files contain a MakerNote data, which contains the data for ColorSpace tag.
@@ -2923,6 +2903,8 @@ public class ExifInterface {
if (mAttributes[IFD_THUMBNAIL_HINT].isEmpty()) {
// Do not overwrite thumbnail IFD data if it alreay exists.
readImageFileDirectory(dataInputStream, IFD_THUMBNAIL_HINT);
+ } else if (mAttributes[IFD_PREVIEW_HINT].isEmpty()) {
+ readImageFileDirectory(dataInputStream, IFD_PREVIEW_HINT);
}
}
}
@@ -3081,6 +3063,28 @@ public class ExifInterface {
return false;
}
+ // Validate primary, preview, thumbnail image data by comparing image size
+ private void validateImages(InputStream in) throws IOException {
+ // Swap images based on size (primary > preview > thumbnail)
+ swapBasedOnImageSize(IFD_TIFF_HINT, IFD_PREVIEW_HINT);
+ swapBasedOnImageSize(IFD_TIFF_HINT, IFD_THUMBNAIL_HINT);
+ swapBasedOnImageSize(IFD_PREVIEW_HINT, IFD_THUMBNAIL_HINT);
+
+ // Check whether thumbnail image exists and whether preview image satisfies the thumbnail
+ // image requirements
+ if (mAttributes[IFD_THUMBNAIL_HINT].isEmpty()) {
+ if (isThumbnail(mAttributes[IFD_PREVIEW_HINT])) {
+ mAttributes[IFD_THUMBNAIL_HINT] = mAttributes[IFD_PREVIEW_HINT];
+ mAttributes[IFD_PREVIEW_HINT] = new HashMap();
+ }
+ }
+
+ // Check if the thumbnail image satisfies the thumbnail size requirements
+ if (!isThumbnail(mAttributes[IFD_THUMBNAIL_HINT])) {
+ Log.d(TAG, "No image meets the size requirements of a thumbnail image.");
+ }
+ }
+
/**
* If image is uncompressed, ImageWidth/Length tags are used to store size info.
* However, uncompressed images often store extra pixels around the edges of the final image,
@@ -3098,24 +3102,19 @@ public class ExifInterface {
* If image is a RW2 file, valid image sizes are stored in SensorBorder tags.
* See tiff_parser.cc GetFullDimension32()
* */
- private void updatePrimaryImageSizeValues(InputStream in) throws IOException {
+ private void updateImageSizeValues(InputStream in, int imageType) throws IOException {
// Uncompressed image valid image size values
ExifAttribute defaultCropSizeAttribute =
- (ExifAttribute) mAttributes[IFD_TIFF_HINT].get(TAG_DEFAULT_CROP_SIZE);
- // Compressed image valid image size values
- ExifAttribute pixelXDimAttribute =
- (ExifAttribute) mAttributes[IFD_EXIF_HINT].get(TAG_PIXEL_X_DIMENSION);
- ExifAttribute pixelYDimAttribute =
- (ExifAttribute) mAttributes[IFD_EXIF_HINT].get(TAG_PIXEL_Y_DIMENSION);
+ (ExifAttribute) mAttributes[imageType].get(TAG_DEFAULT_CROP_SIZE);
// RW2 image valid image size values
ExifAttribute topBorderAttribute =
- (ExifAttribute) mAttributes[IFD_TIFF_HINT].get(TAG_RW2_SENSOR_TOP_BORDER);
+ (ExifAttribute) mAttributes[imageType].get(TAG_RW2_SENSOR_TOP_BORDER);
ExifAttribute leftBorderAttribute =
- (ExifAttribute) mAttributes[IFD_TIFF_HINT].get(TAG_RW2_SENSOR_LEFT_BORDER);
+ (ExifAttribute) mAttributes[imageType].get(TAG_RW2_SENSOR_LEFT_BORDER);
ExifAttribute bottomBorderAttribute =
- (ExifAttribute) mAttributes[IFD_TIFF_HINT].get(TAG_RW2_SENSOR_BOTTOM_BORDER);
+ (ExifAttribute) mAttributes[imageType].get(TAG_RW2_SENSOR_BOTTOM_BORDER);
ExifAttribute rightBorderAttribute =
- (ExifAttribute) mAttributes[IFD_TIFF_HINT].get(TAG_RW2_SENSOR_RIGHT_BORDER);
+ (ExifAttribute) mAttributes[imageType].get(TAG_RW2_SENSOR_RIGHT_BORDER);
if (defaultCropSizeAttribute != null) {
// Update for uncompressed image
@@ -3135,8 +3134,8 @@ public class ExifInterface {
defaultCropSizeYAttribute =
ExifAttribute.createUShort(defaultCropSizeValue[1], mExifByteOrder);
}
- mAttributes[IFD_TIFF_HINT].put(TAG_IMAGE_WIDTH, defaultCropSizeXAttribute);
- mAttributes[IFD_TIFF_HINT].put(TAG_IMAGE_LENGTH, defaultCropSizeYAttribute);
+ mAttributes[imageType].put(TAG_IMAGE_WIDTH, defaultCropSizeXAttribute);
+ mAttributes[imageType].put(TAG_IMAGE_LENGTH, defaultCropSizeYAttribute);
} else if (topBorderAttribute != null && leftBorderAttribute != null &&
bottomBorderAttribute != null && rightBorderAttribute != null) {
// Update for RW2 image
@@ -3151,17 +3150,24 @@ public class ExifInterface {
ExifAttribute.createUShort(length, mExifByteOrder);
ExifAttribute imageWidthAttribute =
ExifAttribute.createUShort(width, mExifByteOrder);
- mAttributes[IFD_TIFF_HINT].put(TAG_IMAGE_LENGTH, imageLengthAttribute);
- mAttributes[IFD_TIFF_HINT].put(TAG_IMAGE_WIDTH, imageWidthAttribute);
+ mAttributes[imageType].put(TAG_IMAGE_LENGTH, imageLengthAttribute);
+ mAttributes[imageType].put(TAG_IMAGE_WIDTH, imageWidthAttribute);
}
} else {
// Update for JPEG image
- if (pixelXDimAttribute != null && pixelYDimAttribute != null) {
- mAttributes[IFD_TIFF_HINT].put(TAG_IMAGE_WIDTH, pixelXDimAttribute);
- mAttributes[IFD_TIFF_HINT].put(TAG_IMAGE_LENGTH, pixelYDimAttribute);
+ if (imageType == IFD_TIFF_HINT) {
+ ExifAttribute pixelXDimAttribute =
+ (ExifAttribute) mAttributes[IFD_EXIF_HINT].get(TAG_PIXEL_X_DIMENSION);
+ ExifAttribute pixelYDimAttribute =
+ (ExifAttribute) mAttributes[IFD_EXIF_HINT].get(TAG_PIXEL_Y_DIMENSION);
+ if (pixelXDimAttribute != null && pixelYDimAttribute != null) {
+ mAttributes[imageType].put(TAG_IMAGE_WIDTH, pixelXDimAttribute);
+ mAttributes[imageType].put(TAG_IMAGE_LENGTH, pixelYDimAttribute);
+ } else {
+ retrieveJpegImageSize(in, imageType);
+ }
} else {
- // Update image size values from SOF marker if necessary
- retrieveJpegImageSize(in, IFD_TIFF_HINT);
+ retrieveJpegImageSize(in, imageType);
}
}
}
@@ -3654,6 +3660,48 @@ public class ExifInterface {
}
}
+ // Swaps image data based on image size
+ private void swapBasedOnImageSize(int firstImageHint, int secondImageHint)
+ throws IOException {
+ if (mAttributes[firstImageHint].isEmpty() || mAttributes[secondImageHint].isEmpty()) {
+ if (DEBUG) {
+ Log.d(TAG, "Cannot perform swap since only one image data exists");
+ }
+ return;
+ }
+
+ ExifAttribute firstImageLengthAttribute =
+ (ExifAttribute) mAttributes[firstImageHint].get(TAG_IMAGE_LENGTH);
+ ExifAttribute firstImageWidthAttribute =
+ (ExifAttribute) mAttributes[firstImageHint].get(TAG_IMAGE_WIDTH);
+ ExifAttribute secondImageLengthAttribute =
+ (ExifAttribute) mAttributes[secondImageHint].get(TAG_IMAGE_LENGTH);
+ ExifAttribute secondImageWidthAttribute =
+ (ExifAttribute) mAttributes[secondImageHint].get(TAG_IMAGE_WIDTH);
+
+ if (firstImageLengthAttribute == null || firstImageWidthAttribute == null) {
+ if (DEBUG) {
+ Log.d(TAG, "First image does not contain valid size information");
+ }
+ } else if (secondImageLengthAttribute == null || secondImageWidthAttribute == null) {
+ if (DEBUG) {
+ Log.d(TAG, "Second image does not contain valid size information");
+ }
+ } else {
+ int firstImageLengthValue = firstImageLengthAttribute.getIntValue(mExifByteOrder);
+ int firstImageWidthValue = firstImageWidthAttribute.getIntValue(mExifByteOrder);
+ int secondImageLengthValue = secondImageLengthAttribute.getIntValue(mExifByteOrder);
+ int secondImageWidthValue = secondImageWidthAttribute.getIntValue(mExifByteOrder);
+
+ if (firstImageLengthValue < secondImageLengthValue &&
+ firstImageWidthValue < secondImageWidthValue) {
+ HashMap tempMap = mAttributes[firstImageHint];
+ mAttributes[firstImageHint] = mAttributes[secondImageHint];
+ mAttributes[secondImageHint] = tempMap;
+ }
+ }
+ }
+
// Checks if there is a match
private boolean containsMatch(byte[] mainBytes, byte[] findBytes) {
for (int i = 0; i < mainBytes.length - findBytes.length; i++) {
diff --git a/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml b/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml
index 20173b0dc3bf..24cbfbd6430e 100644
--- a/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml
+++ b/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml
@@ -4,7 +4,7 @@
<string name="app_name" msgid="5934709770924185752">"CaptivePortalLogin"</string>
<string name="action_use_network" msgid="6076184727448466030">"যেভাবে আছে সেভাবেই এই নেটওয়ার্ক ব্যবহার করুন"</string>
<string name="action_do_not_use_network" msgid="4577366536956516683">"এই নেটওয়ার্ক ব্যবহার করবেন না"</string>
- <string name="action_bar_label" msgid="917235635415966620">"নেটওয়ার্কে প্রবেশ করুন করুন"</string>
+ <string name="action_bar_label" msgid="917235635415966620">"নেটওয়ার্কে প্রবেশ করুন"</string>
<string name="ssl_error_warning" msgid="6653188881418638872">"আপনি যে নেটওয়ার্কে যোগ দেওয়ার চেষ্টা করছেন তাতে নিরাপত্তার সমস্যা আছে।"</string>
<string name="ssl_error_example" msgid="647898534624078900">"উদাহরণস্বরূপ, লগইন পৃষ্ঠাটি প্রদর্শিত প্রতিষ্ঠানের অন্তর্গত নাও হতে পারে৷"</string>
<string name="ssl_error_continue" msgid="6492718244923937110">"যাই হোক না কেন ব্রাউজারের মাধ্যমে অবিরত রাখুন"</string>
diff --git a/packages/SettingsLib/res/values-af/arrays.xml b/packages/SettingsLib/res/values-af/arrays.xml
index 13c22c4348a1..de103c9de154 100644
--- a/packages/SettingsLib/res/values-af/arrays.xml
+++ b/packages/SettingsLib/res/values-af/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Teken nie-reghoekige knipstreek in blou"</item>
<item msgid="1064373276095698656">"Merk getoetsde tekenopdragte in groen"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Af"</item>
- <item msgid="2751513398307949636">"Op skerm as balke"</item>
- <item msgid="1851438178120770973">"In adb-dop dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Af"</item>
<item msgid="7688197031296835369">"Wys oortrekareas"</item>
diff --git a/packages/SettingsLib/res/values-am/arrays.xml b/packages/SettingsLib/res/values-am/arrays.xml
index 5767829476ef..affc736636ba 100644
--- a/packages/SettingsLib/res/values-am/arrays.xml
+++ b/packages/SettingsLib/res/values-am/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"አራት ማእዘን ያልሆነ የቅንጥብ ክልልን በሰማያዊ ይሳሉ"</item>
<item msgid="1064373276095698656">"የተሞከሩ የስእል ትእዛዞችን በአረንጓዴ ያድምቁ"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"ጠፍቷል"</item>
- <item msgid="2751513398307949636">"ማያ ገጽ ላይ እንደ አሞሌዎች"</item>
- <item msgid="1851438178120770973">"በ adb shell dumpsys gfxinfo ውስጥ"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"ጠፍቷል"</item>
<item msgid="7688197031296835369">"ስዕሉ አልፎ የፈሰሰባቸው አካባቢዎችን አሳይ"</item>
diff --git a/packages/SettingsLib/res/values-ar/arrays.xml b/packages/SettingsLib/res/values-ar/arrays.xml
index e3d70fe08843..23f7206213dc 100644
--- a/packages/SettingsLib/res/values-ar/arrays.xml
+++ b/packages/SettingsLib/res/values-ar/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"رسم منطقة قصاصة غير مستطيلة بالأزرق"</item>
<item msgid="1064373276095698656">"إبراز أوامر رسم تم اختبارها بالأخضر"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"إيقاف"</item>
- <item msgid="2751513398307949636">"على الشاشة كأشرطة"</item>
- <item msgid="1851438178120770973">"‏باستخدام adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"إيقاف"</item>
<item msgid="7688197031296835369">"عرض مناطق تجاوز الحد"</item>
diff --git a/packages/SettingsLib/res/values-az-rAZ/arrays.xml b/packages/SettingsLib/res/values-az-rAZ/arrays.xml
index 396dfa114636..26ffbaeb13d4 100644
--- a/packages/SettingsLib/res/values-az-rAZ/arrays.xml
+++ b/packages/SettingsLib/res/values-az-rAZ/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Qeyri-düzbucaqlı regionu mavi rəngdə çəkin"</item>
<item msgid="1064373276095698656">"Testdən keçmiş çəkmə əmrlərini yaşıl rəng ilə vurğulayın"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Deaktiv"</item>
- <item msgid="2751513398307949636">"Ekranda panel şəklində"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Deaktiv"</item>
<item msgid="7688197031296835369">"Böyütmə sahələrini göstər"</item>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml b/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml
index 3e9f9045bcdc..04b56edead8b 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Nacrtaj oblast za isecanje koja nije pravougaonog oblika plavom bojom"</item>
<item msgid="1064373276095698656">"Istakni zelenom testirane komande za crtanje"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Isključeno"</item>
- <item msgid="2751513398307949636">"Na ekranu u vidu traka"</item>
- <item msgid="1851438178120770973">"U adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Isključi"</item>
<item msgid="7688197031296835369">"Prikaži oblasti preklapanja"</item>
diff --git a/packages/SettingsLib/res/values-be-rBY/arrays.xml b/packages/SettingsLib/res/values-be-rBY/arrays.xml
index 20106ef70bb8..3f67789da275 100644
--- a/packages/SettingsLib/res/values-be-rBY/arrays.xml
+++ b/packages/SettingsLib/res/values-be-rBY/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Намаляваць непрамавугольную вобласць кліпа сінім колерам"</item>
<item msgid="1064373276095698656">"Вылучыце выпрабаваныя каманды малявання зялёным колерам"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Выключана"</item>
- <item msgid="2751513398307949636">"На экране ў выглядзе слупкоў"</item>
- <item msgid="1851438178120770973">"У абалонцы adb dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Адключаны"</item>
<item msgid="7688197031296835369">"Паказаць вобласці з перабольшваннем"</item>
diff --git a/packages/SettingsLib/res/values-bg/arrays.xml b/packages/SettingsLib/res/values-bg/arrays.xml
index 8e803f5a1df4..63b9d2e01b71 100644
--- a/packages/SettingsLib/res/values-bg/arrays.xml
+++ b/packages/SettingsLib/res/values-bg/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Начертаване в синьо на неправоъгълна област"</item>
<item msgid="1064373276095698656">"Зелено за тествани команди за начертаване"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Изкл."</item>
- <item msgid="2751513398307949636">"На екрана като чертички"</item>
- <item msgid="1851438178120770973">"В adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Изключено"</item>
<item msgid="7688197031296835369">"Области за преизчертаване: Показв."</item>
diff --git a/packages/SettingsLib/res/values-bn-rBD/arrays.xml b/packages/SettingsLib/res/values-bn-rBD/arrays.xml
index d653a9717e70..d179151447c0 100644
--- a/packages/SettingsLib/res/values-bn-rBD/arrays.xml
+++ b/packages/SettingsLib/res/values-bn-rBD/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"নীল বঙের অ-আয়তক্ষেত্রাকার ক্লিপ অঞ্চল অঙ্কন করুন"</item>
<item msgid="1064373276095698656">"সবুজ রঙে অঙ্কন করা পরীক্ষিত কমান্ডগুলি হাইলাইট করুন"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"বন্ধ করুন"</item>
- <item msgid="2751513398307949636">"দন্ড হিসাবে স্ক্রীনে"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo এ"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"বন্ধ করুন"</item>
<item msgid="7688197031296835369">"অতিবর্ণনা এলাকা দেখান"</item>
diff --git a/packages/SettingsLib/res/values-bs-rBA/arrays.xml b/packages/SettingsLib/res/values-bs-rBA/arrays.xml
index 84526964fb04..72939b346923 100644
--- a/packages/SettingsLib/res/values-bs-rBA/arrays.xml
+++ b/packages/SettingsLib/res/values-bs-rBA/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Nacrtaj plavom bojom nepravougaonu oblast za isjecanje"</item>
<item msgid="1064373276095698656">"Označite zelenom bojom testirane komande za crtanje"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Isključeno"</item>
- <item msgid="2751513398307949636">"Na ekranu u vidu crtica"</item>
- <item msgid="1851438178120770973">"U ADB ljuski dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Isključeno"</item>
<item msgid="7688197031296835369">"Prikaži overdraw područja"</item>
diff --git a/packages/SettingsLib/res/values-ca/arrays.xml b/packages/SettingsLib/res/values-ca/arrays.xml
index e4f618e13ead..436d91307137 100644
--- a/packages/SettingsLib/res/values-ca/arrays.xml
+++ b/packages/SettingsLib/res/values-ca/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Dibuixa àrea retall no rectangular en blau"</item>
<item msgid="1064373276095698656">"Ressalta ordres de dibuix provats en verd"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Desactivat"</item>
- <item msgid="2751513398307949636">"En pantalla en forma de barres"</item>
- <item msgid="1851438178120770973">"A adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Desactiva"</item>
<item msgid="7688197031296835369">"Mostra les àrees superposades"</item>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index fb7180a0a3b8..99850a5d5cd4 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -111,7 +111,7 @@
<string name="tts_play_example_summary" msgid="8029071615047894486">"Reprodueix una breu demostració de síntesi de veu"</string>
<string name="tts_install_data_title" msgid="4264378440508149986">"Instal·la dades de veu"</string>
<string name="tts_install_data_summary" msgid="5742135732511822589">"Instal·la les dades de veu necessàries per a la síntesi de veu"</string>
- <string name="tts_engine_security_warning" msgid="8786238102020223650">"Pot ser que aquest motor de síntesi de la parla pugui recopilar tot el text que es dirà en veu alta, incloses les dades personals, com ara les contrasenyes i els números de les targetes de crèdit. Ve del motor <xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g>. Voleu activar l\'ús d\'aquest motor de síntesi de la parla?"</string>
+ <string name="tts_engine_security_warning" msgid="8786238102020223650">"Pot ser que aquest motor de síntesi de la parla pugui recopilar tot el text que es dirà en veu alta, incloses les dades personals, com ara les contrasenyes i els números de les targetes de crèdit. Ve del motor <xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g>. Vols activar l\'ús d\'aquest motor de síntesi de la parla?"</string>
<string name="tts_engine_network_required" msgid="1190837151485314743">"Aquest idioma requereix una connexió de xarxa activa per a la sortida de síntesi de veu."</string>
<string name="tts_default_sample_string" msgid="4040835213373086322">"Això és un exemple de síntesi de veu"</string>
<string name="tts_status_title" msgid="7268566550242584413">"Estat de l\'idioma predeterminat"</string>
diff --git a/packages/SettingsLib/res/values-cs/arrays.xml b/packages/SettingsLib/res/values-cs/arrays.xml
index b0185e87b600..0de3833893f6 100644
--- a/packages/SettingsLib/res/values-cs/arrays.xml
+++ b/packages/SettingsLib/res/values-cs/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Vykreslit neobdélníkový výstřižek modře"</item>
<item msgid="1064373276095698656">"Zvýraznit testované příkazy vykreslování zeleně"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Vypnuto"</item>
- <item msgid="2751513398307949636">"Na obrazovce ve formě sloupců"</item>
- <item msgid="1851438178120770973">"V nástroji adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Vypnuto"</item>
<item msgid="7688197031296835369">"Zobrazit překreslované oblasti"</item>
diff --git a/packages/SettingsLib/res/values-da/arrays.xml b/packages/SettingsLib/res/values-da/arrays.xml
index d06f39f34a17..263969ea764d 100644
--- a/packages/SettingsLib/res/values-da/arrays.xml
+++ b/packages/SettingsLib/res/values-da/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Tegn ikke-rektangulært klippeområde med blåt"</item>
<item msgid="1064373276095698656">"Fremhæv testede tegnekommandoer med grønt"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Fra"</item>
- <item msgid="2751513398307949636">"På skærmen som søjler"</item>
- <item msgid="1851438178120770973">"I adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Fra"</item>
<item msgid="7688197031296835369">"Vis områder med overlap"</item>
diff --git a/packages/SettingsLib/res/values-de/arrays.xml b/packages/SettingsLib/res/values-de/arrays.xml
index 9a81e8fda6df..8aa9579369ed 100644
--- a/packages/SettingsLib/res/values-de/arrays.xml
+++ b/packages/SettingsLib/res/values-de/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Nicht rechteckigen Clipbereich blau zeichnen"</item>
<item msgid="1064373276095698656">"Getestete Zeichenbefehle grün hervorheben"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Aus"</item>
- <item msgid="2751513398307949636">"Auf Bildschirm als Balken"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Aus"</item>
<item msgid="7688197031296835369">"Überschneidungsbereiche anzeigen"</item>
diff --git a/packages/SettingsLib/res/values-el/arrays.xml b/packages/SettingsLib/res/values-el/arrays.xml
index a6ce80ae0d01..6c36f0bc97b7 100644
--- a/packages/SettingsLib/res/values-el/arrays.xml
+++ b/packages/SettingsLib/res/values-el/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Σχεδίαση μη ορθογώνιας περιοχής με μπλε χρώμα"</item>
<item msgid="1064373276095698656">"Επισ/ση ελεγμένων εντολών με πράσ."</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Απενεργοποιημένο"</item>
- <item msgid="2751513398307949636">"Στην οθόνη ως ράβδοι"</item>
- <item msgid="1851438178120770973">"Σε adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Ανενεργές"</item>
<item msgid="7688197031296835369">"Εμφάνιση περιοχών υπέρβασης"</item>
diff --git a/packages/SettingsLib/res/values-en-rAU/arrays.xml b/packages/SettingsLib/res/values-en-rAU/arrays.xml
index 2ee613fc0343..996edc1bcfe1 100644
--- a/packages/SettingsLib/res/values-en-rAU/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rAU/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Draw non-rectangular clip region in blue"</item>
<item msgid="1064373276095698656">"Highlight tested drawing commands in green"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Off"</item>
- <item msgid="2751513398307949636">"On screen as bars"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Off"</item>
<item msgid="7688197031296835369">"Show overdraw areas"</item>
diff --git a/packages/SettingsLib/res/values-en-rGB/arrays.xml b/packages/SettingsLib/res/values-en-rGB/arrays.xml
index 2ee613fc0343..996edc1bcfe1 100644
--- a/packages/SettingsLib/res/values-en-rGB/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rGB/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Draw non-rectangular clip region in blue"</item>
<item msgid="1064373276095698656">"Highlight tested drawing commands in green"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Off"</item>
- <item msgid="2751513398307949636">"On screen as bars"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Off"</item>
<item msgid="7688197031296835369">"Show overdraw areas"</item>
diff --git a/packages/SettingsLib/res/values-en-rIN/arrays.xml b/packages/SettingsLib/res/values-en-rIN/arrays.xml
index 2ee613fc0343..996edc1bcfe1 100644
--- a/packages/SettingsLib/res/values-en-rIN/arrays.xml
+++ b/packages/SettingsLib/res/values-en-rIN/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Draw non-rectangular clip region in blue"</item>
<item msgid="1064373276095698656">"Highlight tested drawing commands in green"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Off"</item>
- <item msgid="2751513398307949636">"On screen as bars"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Off"</item>
<item msgid="7688197031296835369">"Show overdraw areas"</item>
diff --git a/packages/SettingsLib/res/values-es-rUS/arrays.xml b/packages/SettingsLib/res/values-es-rUS/arrays.xml
index eae9b1b30577..1a395dd50984 100644
--- a/packages/SettingsLib/res/values-es-rUS/arrays.xml
+++ b/packages/SettingsLib/res/values-es-rUS/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Recorte no rectangular en azul"</item>
<item msgid="1064373276095698656">"Comandos de dib. probados en verde"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Desactivado"</item>
- <item msgid="2751513398307949636">"En pantalla como barras"</item>
- <item msgid="1851438178120770973">"Dumpsys gfxinfo en adb shell"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Desactivado"</item>
<item msgid="7688197031296835369">"Mostrar áreas superpuestas"</item>
diff --git a/packages/SettingsLib/res/values-es/arrays.xml b/packages/SettingsLib/res/values-es/arrays.xml
index 168f3789719e..2e41d71306de 100644
--- a/packages/SettingsLib/res/values-es/arrays.xml
+++ b/packages/SettingsLib/res/values-es/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Dibujar región de recorte no rectangular en azul"</item>
<item msgid="1064373276095698656">"Resaltar comandos de dibujo probados en verde"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"No"</item>
- <item msgid="2751513398307949636">"En pantalla como barras"</item>
- <item msgid="1851438178120770973">"En adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"No"</item>
<item msgid="7688197031296835369">"Mostrar áreas sobredibujadas"</item>
diff --git a/packages/SettingsLib/res/values-et-rEE/arrays.xml b/packages/SettingsLib/res/values-et-rEE/arrays.xml
index 019bf50499ac..e35f840bde85 100644
--- a/packages/SettingsLib/res/values-et-rEE/arrays.xml
+++ b/packages/SettingsLib/res/values-et-rEE/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Joonista mittetäisnurkne osa siniselt"</item>
<item msgid="1064373276095698656">"Muuda testitud käsud roheliseks"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Väljas"</item>
- <item msgid="2751513398307949636">"Ekraanil ribadena"</item>
- <item msgid="1851438178120770973">"Adb-kestas dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Väljas"</item>
<item msgid="7688197031296835369">"Kuva ülejoonistatud alad"</item>
diff --git a/packages/SettingsLib/res/values-eu-rES/arrays.xml b/packages/SettingsLib/res/values-eu-rES/arrays.xml
index c6174457ca84..48a59f702110 100644
--- a/packages/SettingsLib/res/values-eu-rES/arrays.xml
+++ b/packages/SettingsLib/res/values-eu-rES/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Marraztu ez-angeluzuzena urdinez"</item>
<item msgid="1064373276095698656">"Nabarmendu agindu probatuak berdez"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Desaktibatuta"</item>
- <item msgid="2751513398307949636">"Pantailan barra gisa"</item>
- <item msgid="1851438178120770973">"ADB shell dumpsys gfxinfo aginduan"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Desaktibatuta"</item>
<item msgid="7688197031296835369">"Erakutsi gainidatzi diren eremuak"</item>
diff --git a/packages/SettingsLib/res/values-fa/arrays.xml b/packages/SettingsLib/res/values-fa/arrays.xml
index 6dc8491cd589..5c4a9a06493a 100644
--- a/packages/SettingsLib/res/values-fa/arrays.xml
+++ b/packages/SettingsLib/res/values-fa/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"کشیدن کلیپ قسمت غیر مربعی آبی"</item>
<item msgid="1064373276095698656">"هایلایت کردن دستورات کشیدن تست‌شده به رنگ سبز"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"خاموش"</item>
- <item msgid="2751513398307949636">"روی صفحه نمایش به‌صورت میله‌ای"</item>
- <item msgid="1851438178120770973">"‏در adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"غیرفعال"</item>
<item msgid="7688197031296835369">"نمایش نواحی بازنویسی"</item>
diff --git a/packages/SettingsLib/res/values-fi/arrays.xml b/packages/SettingsLib/res/values-fi/arrays.xml
index 3c2fe617c425..d3b0927e5272 100644
--- a/packages/SettingsLib/res/values-fi/arrays.xml
+++ b/packages/SettingsLib/res/values-fi/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Piirrä ei-suorakulm. leikealue sinisellä"</item>
<item msgid="1064373276095698656">"Korosta testatut piirtokom. vihreällä"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Pois käytöstä"</item>
- <item msgid="2751513398307949636">"Ruudulla palkkeina"</item>
- <item msgid="1851438178120770973">"Adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Ei käytössä"</item>
<item msgid="7688197031296835369">"Näytä päällekkäiset alueet"</item>
diff --git a/packages/SettingsLib/res/values-fr-rCA/arrays.xml b/packages/SettingsLib/res/values-fr-rCA/arrays.xml
index ba25d2752de6..972def4df2e4 100644
--- a/packages/SettingsLib/res/values-fr-rCA/arrays.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Dessiner zone de découpage non rectangulaire en bleu"</item>
<item msgid="1064373276095698656">"Surligner en vert les commandes de dessin testées"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Désactivé"</item>
- <item msgid="2751513398307949636">"À l\'écran sous forme de barres"</item>
- <item msgid="1851438178120770973">"Dans adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Désactivé"</item>
<item msgid="7688197031296835369">"Afficher les zones de conflit"</item>
diff --git a/packages/SettingsLib/res/values-fr/arrays.xml b/packages/SettingsLib/res/values-fr/arrays.xml
index 3340afb9341f..8948930122d5 100644
--- a/packages/SettingsLib/res/values-fr/arrays.xml
+++ b/packages/SettingsLib/res/values-fr/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Dessiner zone de découpage non rectangulaire en bleu"</item>
<item msgid="1064373276095698656">"Surligner en vert les commandes de dessin testées"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Désactivé"</item>
- <item msgid="2751513398307949636">"À l\'écran sous forme de barres"</item>
- <item msgid="1851438178120770973">"Dans adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Désactivé"</item>
<item msgid="7688197031296835369">"Afficher les zones de conflit"</item>
diff --git a/packages/SettingsLib/res/values-gl-rES/arrays.xml b/packages/SettingsLib/res/values-gl-rES/arrays.xml
index 201cda220d3e..734b529f6b38 100644
--- a/packages/SettingsLib/res/values-gl-rES/arrays.xml
+++ b/packages/SettingsLib/res/values-gl-rES/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Área recorte non rectangular azul"</item>
<item msgid="1064373276095698656">"Resaltar comandos debuxo en verde"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Desactivado"</item>
- <item msgid="2751513398307949636">"En pantalla en forma de barras"</item>
- <item msgid="1851438178120770973">"En adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Desactivado"</item>
<item msgid="7688197031296835369">"Mostrar áreas superpostas"</item>
diff --git a/packages/SettingsLib/res/values-gu-rIN/arrays.xml b/packages/SettingsLib/res/values-gu-rIN/arrays.xml
index c7461889ac66..77553b043a81 100644
--- a/packages/SettingsLib/res/values-gu-rIN/arrays.xml
+++ b/packages/SettingsLib/res/values-gu-rIN/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"બિન-લંબચોરસ ક્લિપ પ્રદેશને વાદળીમાં દોરો"</item>
<item msgid="1064373276095698656">"પરીક્ષણ કરેલ ડ્રોઇંગ આદેશો લીલામાં હાઇલાઇટ કરો"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"બંધ"</item>
- <item msgid="2751513398307949636">"બાર્સ તરીકે સ્ક્રીન પર"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo માં"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"બંધ"</item>
<item msgid="7688197031296835369">"ઓવરડ્રો ક્ષેત્રો બતાવો"</item>
diff --git a/packages/SettingsLib/res/values-hi/arrays.xml b/packages/SettingsLib/res/values-hi/arrays.xml
index 29b6beff427d..7b6ec0c0c140 100644
--- a/packages/SettingsLib/res/values-hi/arrays.xml
+++ b/packages/SettingsLib/res/values-hi/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"गैर-आयताकार क्लिप क्षेत्र नीले रंग से बनाएं"</item>
<item msgid="1064373276095698656">"परीक्षित ड्रॉइंग आदेशों को हरे रंग से हाइलाइट करें"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"बंद"</item>
- <item msgid="2751513398307949636">"बार के रूप में स्‍क्रीन पर"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo में"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"बंद"</item>
<item msgid="7688197031296835369">"ओवरड्रॉ क्षेत्रों को दिखाएं"</item>
diff --git a/packages/SettingsLib/res/values-hr/arrays.xml b/packages/SettingsLib/res/values-hr/arrays.xml
index a2d253c05a1f..c1beeac030db 100644
--- a/packages/SettingsLib/res/values-hr/arrays.xml
+++ b/packages/SettingsLib/res/values-hr/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Plavo nepravokutno područje isječka"</item>
<item msgid="1064373276095698656">"Istakni testirane naredbe zelenom"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Isključeno"</item>
- <item msgid="2751513398307949636">"Na zaslonu u obliku traka"</item>
- <item msgid="1851438178120770973">"U naredbi adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Isključeno"</item>
<item msgid="7688197031296835369">"Pokaži područja slojnih iscrtavanja"</item>
diff --git a/packages/SettingsLib/res/values-hu/arrays.xml b/packages/SettingsLib/res/values-hu/arrays.xml
index 41ce4b06db7d..692b26a3b582 100644
--- a/packages/SettingsLib/res/values-hu/arrays.xml
+++ b/packages/SettingsLib/res/values-hu/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Nem négyzetes kivágás kékkel"</item>
<item msgid="1064373276095698656">"Tesztelt rajzolási parancsok kiemelése zölddel"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Ki"</item>
- <item msgid="2751513398307949636">"A képernyőn sávként"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo elemben"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Ki"</item>
<item msgid="7688197031296835369">"Tartalom-felülírási területek mutatása"</item>
diff --git a/packages/SettingsLib/res/values-hy-rAM/arrays.xml b/packages/SettingsLib/res/values-hy-rAM/arrays.xml
index e93cbfcdf547..28e8ba1dfe8b 100644
--- a/packages/SettingsLib/res/values-hy-rAM/arrays.xml
+++ b/packages/SettingsLib/res/values-hy-rAM/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Ներկել ոչ ուղղանկյունային կտրվածքի տարածքը կապույտով"</item>
<item msgid="1064373276095698656">"Փորձարկված թեստի գունանշումը կանաչով"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Անջատել"</item>
- <item msgid="2751513398307949636">"Էկրանի վրա որպես գոտիներ"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo-ում"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Անջատված է"</item>
<item msgid="7688197031296835369">"Ցույց տալ գերազանցված հատվածները"</item>
diff --git a/packages/SettingsLib/res/values-in/arrays.xml b/packages/SettingsLib/res/values-in/arrays.xml
index a6126391c1c3..91fa0d771b99 100644
--- a/packages/SettingsLib/res/values-in/arrays.xml
+++ b/packages/SettingsLib/res/values-in/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Gambar wilayah non-kotak biru"</item>
<item msgid="1064373276095698656">"Sorot perintah gambar teruji hijau"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Nonaktif"</item>
- <item msgid="2751513398307949636">"Di layar dalam bentuk batang"</item>
- <item msgid="1851438178120770973">"Di adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Nonaktif"</item>
<item msgid="7688197031296835369">"Tampilkan area overdraw"</item>
diff --git a/packages/SettingsLib/res/values-is-rIS/arrays.xml b/packages/SettingsLib/res/values-is-rIS/arrays.xml
index 64d4da202059..044f4e23d976 100644
--- a/packages/SettingsLib/res/values-is-rIS/arrays.xml
+++ b/packages/SettingsLib/res/values-is-rIS/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Teikna klippt svæði sem ekki er rétthyrnt með bláu"</item>
<item msgid="1064373276095698656">"Auðkenna prófaðar teikniskipanir með grænu"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Slökkt"</item>
- <item msgid="2751513398307949636">"Á skjánum sem stikur"</item>
- <item msgid="1851438178120770973">"Í adb-skel dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Slökkt"</item>
<item msgid="7688197031296835369">"Sýna yfirteiknuð svæði"</item>
diff --git a/packages/SettingsLib/res/values-it/arrays.xml b/packages/SettingsLib/res/values-it/arrays.xml
index e6938e0e33c5..b8c58ad19509 100644
--- a/packages/SettingsLib/res/values-it/arrays.xml
+++ b/packages/SettingsLib/res/values-it/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Area ritaglio non rettangolare blu"</item>
<item msgid="1064373276095698656">"Evidenzia cmd disegno test in verde"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"OFF"</item>
- <item msgid="2751513398307949636">"Su schermo sotto forma di barre"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"OFF"</item>
<item msgid="7688197031296835369">"Mostra aree overdraw"</item>
diff --git a/packages/SettingsLib/res/values-iw/arrays.xml b/packages/SettingsLib/res/values-iw/arrays.xml
index 7bd46ad3a301..df794d1aad48 100644
--- a/packages/SettingsLib/res/values-iw/arrays.xml
+++ b/packages/SettingsLib/res/values-iw/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"שרטט אזור חיתוך שאינו מלבני בצבע כחול"</item>
<item msgid="1064373276095698656">"הדגש את פקודות האיור שנבדקות בצבע ירוק"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"כבוי"</item>
- <item msgid="2751513398307949636">"במסך כעמודות"</item>
- <item msgid="1851438178120770973">"‏ב-adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"כבוי"</item>
<item msgid="7688197031296835369">"הצגת אזורים עם חריגה"</item>
diff --git a/packages/SettingsLib/res/values-ja/arrays.xml b/packages/SettingsLib/res/values-ja/arrays.xml
index 5b9b41cf6772..5914f438c3df 100644
--- a/packages/SettingsLib/res/values-ja/arrays.xml
+++ b/packages/SettingsLib/res/values-ja/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"非矩形クリップ領域を青で描画"</item>
<item msgid="1064373276095698656">"テスト済み描画コマンドを緑でハイライト表示"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"OFF"</item>
- <item msgid="2751513398307949636">"バーとして画面に表示"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfoを使用"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"OFF"</item>
<item msgid="7688197031296835369">"オーバードロー領域の表示"</item>
diff --git a/packages/SettingsLib/res/values-ka-rGE/arrays.xml b/packages/SettingsLib/res/values-ka-rGE/arrays.xml
index 5e63ddd2578a..8964d33bea40 100644
--- a/packages/SettingsLib/res/values-ka-rGE/arrays.xml
+++ b/packages/SettingsLib/res/values-ka-rGE/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"დახატე არა მართკუთხა მოჭრის რეგიონი ლურჯად"</item>
<item msgid="1064373276095698656">"ხატვის ტესტირებული ბრძანების მწვანე ფერით მონიშვნა"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"გამორთვა"</item>
- <item msgid="2751513398307949636">"ეკრანზე ზოლების სახით"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"გამორთვა"</item>
<item msgid="7688197031296835369">"overdraw არეების ჩვენება"</item>
diff --git a/packages/SettingsLib/res/values-kk-rKZ/arrays.xml b/packages/SettingsLib/res/values-kk-rKZ/arrays.xml
index d1dae8744152..63551cf96cce 100644
--- a/packages/SettingsLib/res/values-kk-rKZ/arrays.xml
+++ b/packages/SettingsLib/res/values-kk-rKZ/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Көкпен тіктөртбұрышты емес кесу аймағын сызу"</item>
<item msgid="1064373276095698656">"Жасыл түсті тексерілген сызу пәрмендерін белгілеу"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Өшірулі"</item>
- <item msgid="2751513398307949636">"Экранда жолақтар түрінде"</item>
- <item msgid="1851438178120770973">"Аdb shell dumpsys gfxinfo арқылы"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Өшірулі"</item>
<item msgid="7688197031296835369">"Үстінен бастырылған аймақтарды көрсету"</item>
diff --git a/packages/SettingsLib/res/values-km-rKH/arrays.xml b/packages/SettingsLib/res/values-km-rKH/arrays.xml
index 17371f6a8df4..a4cdeddf79c9 100644
--- a/packages/SettingsLib/res/values-km-rKH/arrays.xml
+++ b/packages/SettingsLib/res/values-km-rKH/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"គូរ​តំបន់​កាត់​មិនមែន​រាង​ចតុកោណ​ជា​ពណ៌​ខៀវ"</item>
<item msgid="1064373276095698656">"រំលេច​ពាក្យ​បញ្ជា​គូរ​បាន​សាកល្បង​ជា​ពណ៌​បៃតង"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"បិទ"</item>
- <item msgid="2751513398307949636">"លើ​អេក្រង់​ជា​របារ"</item>
- <item msgid="1851438178120770973">"ក្នុង adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"បិទ"</item>
<item msgid="7688197031296835369">"បង្ហាញ​តំបន់​​ដែល​លើស"</item>
diff --git a/packages/SettingsLib/res/values-kn-rIN/arrays.xml b/packages/SettingsLib/res/values-kn-rIN/arrays.xml
index 5f6d69976932..30adbfc4d51e 100644
--- a/packages/SettingsLib/res/values-kn-rIN/arrays.xml
+++ b/packages/SettingsLib/res/values-kn-rIN/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"ಆಯತಾಕಾರವಲ್ಲದ ಕ್ಲಿಪ್‌ ಸ್ಥಳವನ್ನು ನೀಲಿಯಲ್ಲಿ ಡ್ರಾ ಮಾಡಿ"</item>
<item msgid="1064373276095698656">"ಪರೀಕ್ಷಿತ ಚಿತ್ರ ಆದೇಶವನ್ನು ಹಸಿರಿನಲ್ಲಿ ಹೈಲೈಟ್‌ ಮಾಡಿ"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"ಆಫ್"</item>
- <item msgid="2751513398307949636">"ಪರದೆಯ ಮೇಲಿನ ಪಟ್ಟಿಗಳು"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"ಆಫ್"</item>
<item msgid="7688197031296835369">"ಓವರ್‌ಡ್ರಾ ಪ್ರದೇಶಗಳನ್ನು ತೋರಿಸು"</item>
diff --git a/packages/SettingsLib/res/values-ko/arrays.xml b/packages/SettingsLib/res/values-ko/arrays.xml
index 596f93e4abad..22264385671f 100644
--- a/packages/SettingsLib/res/values-ko/arrays.xml
+++ b/packages/SettingsLib/res/values-ko/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"사각형이 아닌 클립 영역을 파란색으로 그립니다."</item>
<item msgid="1064373276095698656">"테스트한 그림 그리기 명령을 초록색으로 강조표시합니다."</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"사용 안함"</item>
- <item msgid="2751513398307949636">"화면에 막대로 표시"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo에서 사용"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"사용 안함"</item>
<item msgid="7688197031296835369">"오버드로 영역 표시"</item>
diff --git a/packages/SettingsLib/res/values-ky-rKG/arrays.xml b/packages/SettingsLib/res/values-ky-rKG/arrays.xml
index 33a0b5d3e4c0..ebe417c04f21 100644
--- a/packages/SettingsLib/res/values-ky-rKG/arrays.xml
+++ b/packages/SettingsLib/res/values-ky-rKG/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Тик бурчтуу эмес кесилген аймакты көк түстө тартуу"</item>
<item msgid="1064373276095698656">"Текшерилген тартуу буйруктарын жашыл менен белгилөө"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Өчүк"</item>
- <item msgid="2751513398307949636">"Экранда тилке катары"</item>
- <item msgid="1851438178120770973">"adb кабыгында dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Өчүк"</item>
<item msgid="7688197031296835369">"Үстүнө тартуу аймагын көргөзүү"</item>
diff --git a/packages/SettingsLib/res/values-lo-rLA/arrays.xml b/packages/SettingsLib/res/values-lo-rLA/arrays.xml
index 7a6b77ac4dc3..f495e8df9a1c 100644
--- a/packages/SettingsLib/res/values-lo-rLA/arrays.xml
+++ b/packages/SettingsLib/res/values-lo-rLA/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"ແຕ້ມຄລິບທີ່ບໍ່ແມ່ນສີ່ຫຼ່ຽມເປັນສີຟ້າ"</item>
<item msgid="1064373276095698656">"ສະແດງຄຳສັ່ງແຕ້ມທີ່ທົດສອບເປັນສີຂຽວ"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"ປິດ"</item>
- <item msgid="2751513398307949636">"ເປັນແຖບເທິງໜ້າຈໍ"</item>
- <item msgid="1851438178120770973">"ໃນ adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"ປິດ"</item>
<item msgid="7688197031296835369">"ສະແດງຂອບເຂດການແຕ້ມທັບ"</item>
diff --git a/packages/SettingsLib/res/values-lt/arrays.xml b/packages/SettingsLib/res/values-lt/arrays.xml
index 49908ada5c2b..37c4d9635d4f 100644
--- a/packages/SettingsLib/res/values-lt/arrays.xml
+++ b/packages/SettingsLib/res/values-lt/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Piešti ne stačiak. reg. mėlyna sp."</item>
<item msgid="1064373276095698656">"Paryš. išban. pieš. kom. žalia sp."</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Išjungta"</item>
- <item msgid="2751513398307949636">"Ekrane (stulpeliai)"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Išjungta"</item>
<item msgid="7688197031296835369">"Rodyti perdangos sritis"</item>
diff --git a/packages/SettingsLib/res/values-lv/arrays.xml b/packages/SettingsLib/res/values-lv/arrays.xml
index 801de5d8fa4d..ba4a0d044841 100644
--- a/packages/SettingsLib/res/values-lv/arrays.xml
+++ b/packages/SettingsLib/res/values-lv/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Lieko daļu iekrāsot zilā krāsā"</item>
<item msgid="1064373276095698656">"Pārb. zīmēš. kom. iezīmēt zaļu"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Izslēgta"</item>
- <item msgid="2751513398307949636">"Ekrānā kā joslas"</item>
- <item msgid="1851438178120770973">"Komandā “adb shell dumpsys gfxinfo”"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Izslēgta"</item>
<item msgid="7688197031296835369">"Rādīt apgab., kur pārsn. kapacitāte"</item>
diff --git a/packages/SettingsLib/res/values-mk-rMK/arrays.xml b/packages/SettingsLib/res/values-mk-rMK/arrays.xml
index a72bcd3ad98b..b1c5aa179362 100644
--- a/packages/SettingsLib/res/values-mk-rMK/arrays.xml
+++ b/packages/SettingsLib/res/values-mk-rMK/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Нацртај неправоаголен реон со сино"</item>
<item msgid="1064373276095698656">"Со зелено тестир. наредби за цртање"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Исклучено"</item>
- <item msgid="2751513398307949636">"На екранот како цртички"</item>
- <item msgid="1851438178120770973">"Во adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Исклучено"</item>
<item msgid="7688197031296835369">"Прикажи пречекорени делови"</item>
diff --git a/packages/SettingsLib/res/values-ml-rIN/arrays.xml b/packages/SettingsLib/res/values-ml-rIN/arrays.xml
index ac6841eb74fe..3b903bfe182a 100644
--- a/packages/SettingsLib/res/values-ml-rIN/arrays.xml
+++ b/packages/SettingsLib/res/values-ml-rIN/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"നീലനിറത്തിൽ ചതുരമല്ലാത്ത ക്ലിപ്പ് ഭാഗം വരയ്‌ക്കുക"</item>
<item msgid="1064373276095698656">"പരിശോധിച്ച ഡ്രോയിംഗ് കമാൻഡുകൾ പച്ചനിറത്തിൽ ഹൈലൈറ്റുചെയ്യുക"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"ഓഫ്"</item>
- <item msgid="2751513398307949636">"സ്‌ക്രീനിൽ ബാറുകളായി"</item>
- <item msgid="1851438178120770973">"adb ഷെൽ dumpsys gfxinfo-യിൽ"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"ഓഫ്"</item>
<item msgid="7688197031296835369">"ഓവർഡ്രോ ഭാഗങ്ങൾ ദൃശ്യമാക്കുക"</item>
diff --git a/packages/SettingsLib/res/values-mn-rMN/arrays.xml b/packages/SettingsLib/res/values-mn-rMN/arrays.xml
index e812043b975b..559171ab87dd 100644
--- a/packages/SettingsLib/res/values-mn-rMN/arrays.xml
+++ b/packages/SettingsLib/res/values-mn-rMN/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Тэгш өнцөгт бус клипийн бүсийг цэнхэрээр зурах"</item>
<item msgid="1064373276095698656">"Шалгасан зурах командуудыг ногоон өнгөөр тэмдэглэх"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Идэвхгүй"</item>
- <item msgid="2751513398307949636">"Дэлгэц дээр савхаар"</item>
- <item msgid="1851438178120770973">"adb шел доторх dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Идэвхгүй"</item>
<item msgid="7688197031296835369">"Давхар дүрслэлтэй хэсгийг харуулах"</item>
diff --git a/packages/SettingsLib/res/values-mr-rIN/arrays.xml b/packages/SettingsLib/res/values-mr-rIN/arrays.xml
index 5de2f4976ae9..b6d62f93c68d 100644
--- a/packages/SettingsLib/res/values-mr-rIN/arrays.xml
+++ b/packages/SettingsLib/res/values-mr-rIN/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"निळ्या रंगात आयताकार नसलेला क्लिप प्रांत रेखांकित करा"</item>
<item msgid="1064373276095698656">"चाचणी केलेले रेखांकित आदेश हिरव्या रंगामध्ये हायलाइट करा"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"बंद"</item>
- <item msgid="2751513398307949636">"बार म्हणून स्क्रीनवर"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo मध्ये"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"बंद"</item>
<item msgid="7688197031296835369">"अधोरेखांकित क्षेत्रे दर्शवा"</item>
diff --git a/packages/SettingsLib/res/values-ms-rMY/arrays.xml b/packages/SettingsLib/res/values-ms-rMY/arrays.xml
index d6ea50ccc195..7b344b9d03aa 100644
--- a/packages/SettingsLib/res/values-ms-rMY/arrays.xml
+++ b/packages/SettingsLib/res/values-ms-rMY/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Lukis keratan bukan segi empat tepat biru"</item>
<item msgid="1064373276095698656">"Serlahkan perintah lukisan diuji hijau"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Mati"</item>
- <item msgid="2751513398307949636">"Pada skrin sebagai bar"</item>
- <item msgid="1851438178120770973">"Dalam adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Mati"</item>
<item msgid="7688197031296835369">"Tunjukkan kawasan lebih lukis"</item>
diff --git a/packages/SettingsLib/res/values-my-rMM/arrays.xml b/packages/SettingsLib/res/values-my-rMM/arrays.xml
index 7ba8e9495ab0..5a9a3b5c18cf 100644
--- a/packages/SettingsLib/res/values-my-rMM/arrays.xml
+++ b/packages/SettingsLib/res/values-my-rMM/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"စတုဂံမဟုတ်သော ဖောက်ရန်အပိုင်းကို အပြာရောင်ဖြင့်ဆွဲပါ"</item>
<item msgid="1064373276095698656">"စမ်းသပ်ထားသော ပုံဆွဲရန်ညွှန်ကြားချက်များကို အစိမ်းရောင်ဖြင့် အသားပေး ဖော်ပြပါ"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"ပိတ်"</item>
- <item msgid="2751513398307949636">"ဖန်သားပြင်ပေါ်မှာ မျဉ်းတန်းကဲ့သို့"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys ထဲမှ gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"ပိတ်"</item>
<item msgid="7688197031296835369">"ရှိရင်းစွဲထက်ပိုသော ဧရိယာများကိုပြရန်"</item>
diff --git a/packages/SettingsLib/res/values-nb/arrays.xml b/packages/SettingsLib/res/values-nb/arrays.xml
index bc4ff27d85e8..8131cbfbe087 100644
--- a/packages/SettingsLib/res/values-nb/arrays.xml
+++ b/packages/SettingsLib/res/values-nb/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Merk urektangulært klippefelt blått"</item>
<item msgid="1064373276095698656">"Fremhev testede tegnekommandoer i grønt"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Av"</item>
- <item msgid="2751513398307949636">"På skjermen som stolper"</item>
- <item msgid="1851438178120770973">"I adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Av"</item>
<item msgid="7688197031296835369">"Vis overtrekksområder"</item>
diff --git a/packages/SettingsLib/res/values-ne-rNP/arrays.xml b/packages/SettingsLib/res/values-ne-rNP/arrays.xml
index 2063f17cc8f6..8612c7362e90 100644
--- a/packages/SettingsLib/res/values-ne-rNP/arrays.xml
+++ b/packages/SettingsLib/res/values-ne-rNP/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"गैर आयातकार क्षेत्र नीलो रङमा कोर्नुहोस्"</item>
<item msgid="1064373276095698656">"हाइलाइट परीक्षण चित्र कोर्ने आदेशहरू हरियोमा"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"बन्द"</item>
- <item msgid="2751513398307949636">"स्क्रिनमा बारको रूपमा"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo मा"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"बन्द"</item>
<item msgid="7688197031296835369">"overdraw क्षेत्रहरू देखाउनुहोस्"</item>
diff --git a/packages/SettingsLib/res/values-nl/arrays.xml b/packages/SettingsLib/res/values-nl/arrays.xml
index 4cdd4fa559a1..ffc393750f15 100644
--- a/packages/SettingsLib/res/values-nl/arrays.xml
+++ b/packages/SettingsLib/res/values-nl/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Niet-rechthoekige bijsnijdregio tekenen in blauw"</item>
<item msgid="1064373276095698656">"Geteste tekenopdrachten markeren in groen"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Uit"</item>
- <item msgid="2751513398307949636">"Op het scherm als balken"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Uit"</item>
<item msgid="7688197031296835369">"Gedeeltes met overbelasting weergeven"</item>
diff --git a/packages/SettingsLib/res/values-pa-rIN/arrays.xml b/packages/SettingsLib/res/values-pa-rIN/arrays.xml
index d0a26c8d40c4..48bf1073f4f2 100644
--- a/packages/SettingsLib/res/values-pa-rIN/arrays.xml
+++ b/packages/SettingsLib/res/values-pa-rIN/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"ਨੀਲੇ ਵਿੱਚ ਗ਼ੈਰ-ਆਇਤਾਕਾਰ ਕਲਿਪ ਖੇਤਰ ਡ੍ਰਾ ਕਰੋ"</item>
<item msgid="1064373276095698656">"ਹਾਈਲਾਈਟ ਜਾਂਚ ਕੀਤੀਆਂ ਡ੍ਰਾਇੰਗ ਕਮਾਂਡਾਂ ਹਰੇ ਵਿੱਚ ਹਨ"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"ਬੰਦ"</item>
- <item msgid="2751513398307949636">"ਬਾਰਸ ਦੇ ਤੌਰ ਤੇ ਸਕ੍ਰੀਨ ਤੇ"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo ਵਿੱਚ"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"ਬੰਦ"</item>
<item msgid="7688197031296835369">"ਓਵਰਡ੍ਰਾ ਖੇਤਰ ਦਿਖਾਓ"</item>
diff --git a/packages/SettingsLib/res/values-pl/arrays.xml b/packages/SettingsLib/res/values-pl/arrays.xml
index ff36e42bdd9b..37b3e3127f68 100644
--- a/packages/SettingsLib/res/values-pl/arrays.xml
+++ b/packages/SettingsLib/res/values-pl/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Rysuj nieprostokątny region przycinania na niebiesko"</item>
<item msgid="1064373276095698656">"Wyróżnij testowane polecenia rysowania na zielono"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Wyłączone"</item>
- <item msgid="2751513398307949636">"Na ekranie w postaci pasków"</item>
- <item msgid="1851438178120770973">"W adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Wył."</item>
<item msgid="7688197031296835369">"Pokaż przerysowywane obszary"</item>
diff --git a/packages/SettingsLib/res/values-pt-rBR/arrays.xml b/packages/SettingsLib/res/values-pt-rBR/arrays.xml
index 90f061c0f9b0..afbfedb52d62 100644
--- a/packages/SettingsLib/res/values-pt-rBR/arrays.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Desenhar região de corte não retangular em azul"</item>
<item msgid="1064373276095698656">"Destacar comandos de desenho testados em verde"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Desativado"</item>
- <item msgid="2751513398307949636">"Na tela em barras"</item>
- <item msgid="1851438178120770973">"Em adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Desativado"</item>
<item msgid="7688197031296835369">"Mostrar áreas de overdraw"</item>
diff --git a/packages/SettingsLib/res/values-pt-rPT/arrays.xml b/packages/SettingsLib/res/values-pt-rPT/arrays.xml
index 2c8b835838cf..1a0b06d2dcbe 100644
--- a/packages/SettingsLib/res/values-pt-rPT/arrays.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Desenhar região de clipe não retangular a azul"</item>
<item msgid="1064373276095698656">"Realçar comandos de desenho testados a verde"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Desativado"</item>
- <item msgid="2751513398307949636">"No ecrã como barras"</item>
- <item msgid="1851438178120770973">"Em adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Desativado"</item>
<item msgid="7688197031296835369">"Mostrar áreas de sobreposição"</item>
diff --git a/packages/SettingsLib/res/values-pt/arrays.xml b/packages/SettingsLib/res/values-pt/arrays.xml
index 90f061c0f9b0..afbfedb52d62 100644
--- a/packages/SettingsLib/res/values-pt/arrays.xml
+++ b/packages/SettingsLib/res/values-pt/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Desenhar região de corte não retangular em azul"</item>
<item msgid="1064373276095698656">"Destacar comandos de desenho testados em verde"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Desativado"</item>
- <item msgid="2751513398307949636">"Na tela em barras"</item>
- <item msgid="1851438178120770973">"Em adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Desativado"</item>
<item msgid="7688197031296835369">"Mostrar áreas de overdraw"</item>
diff --git a/packages/SettingsLib/res/values-ro/arrays.xml b/packages/SettingsLib/res/values-ro/arrays.xml
index d5574dd226c0..27bdad5c7407 100644
--- a/packages/SettingsLib/res/values-ro/arrays.xml
+++ b/packages/SettingsLib/res/values-ro/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Zonă decupare non-rectangulară albastră"</item>
<item msgid="1064373276095698656">"Controale de desenare testate, cu verde"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Dezactivat"</item>
- <item msgid="2751513398307949636">"Pe ecran ca bare"</item>
- <item msgid="1851438178120770973">"În adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Dezactivată"</item>
<item msgid="7688197031296835369">"Afișați zonele cu suprapunere"</item>
diff --git a/packages/SettingsLib/res/values-ru/arrays.xml b/packages/SettingsLib/res/values-ru/arrays.xml
index 2fff9ddf476c..6a610e23bbf0 100644
--- a/packages/SettingsLib/res/values-ru/arrays.xml
+++ b/packages/SettingsLib/res/values-ru/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Непрямоугольное усечение синим"</item>
<item msgid="1064373276095698656">"Тест. команды рисования зеленым"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Отключить"</item>
- <item msgid="2751513398307949636">"На экране в виде полос"</item>
- <item msgid="1851438178120770973">"В adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"ВЫКЛ"</item>
<item msgid="7688197031296835369">"Показывать области наложения"</item>
diff --git a/packages/SettingsLib/res/values-si-rLK/arrays.xml b/packages/SettingsLib/res/values-si-rLK/arrays.xml
index 518a3300682a..55ba70b21487 100644
--- a/packages/SettingsLib/res/values-si-rLK/arrays.xml
+++ b/packages/SettingsLib/res/values-si-rLK/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"ඍජුකෝණාස‍්‍ර-නොවන ක්ලිප් ප්‍රදේශය නිල් පාටින් අදින්න"</item>
<item msgid="1064373276095698656">"පරික්ෂා කරන ලද ඇඳීමේ විධාන කොළ පැහැයෙන් ඉස්මතු කරන්න"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"අක්‍රියයි"</item>
- <item msgid="2751513398307949636">"තිරයෙහි පටි ලෙස"</item>
- <item msgid="1851438178120770973">"Adb shell dumpsys gfxinfo තුළ"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"අක්‍රියයි"</item>
<item msgid="7688197031296835369">"වැඩිකොට දක්වනවා ඇති ප්‍රදේශ පෙන්වන්න"</item>
diff --git a/packages/SettingsLib/res/values-sk/arrays.xml b/packages/SettingsLib/res/values-sk/arrays.xml
index 28480404b4cb..558cee303394 100644
--- a/packages/SettingsLib/res/values-sk/arrays.xml
+++ b/packages/SettingsLib/res/values-sk/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Neobdĺžnikový výstrižok modrou"</item>
<item msgid="1064373276095698656">"Testované príkazy vykresľovania zelenou"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Vypnuté"</item>
- <item msgid="2751513398307949636">"Na obrazovke v podobe stĺpcov"</item>
- <item msgid="1851438178120770973">"V adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Vypnuté"</item>
<item msgid="7688197031296835369">"Zobraziť oblasti prekreslení"</item>
diff --git a/packages/SettingsLib/res/values-sl/arrays.xml b/packages/SettingsLib/res/values-sl/arrays.xml
index baa16acba8e0..24c9ff15f00a 100644
--- a/packages/SettingsLib/res/values-sl/arrays.xml
+++ b/packages/SettingsLib/res/values-sl/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Izris obm. nepravok. izreza z modro"</item>
<item msgid="1064373276095698656">"Ozn. presk. risal. ukazov z zeleno"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Izklopljeno"</item>
- <item msgid="2751513398307949636">"Na zaslonu kot vrstice"</item>
- <item msgid="1851438178120770973">"V dumpsys gfxinfo lupine adb"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Izklop"</item>
<item msgid="7688197031296835369">"Pokaži risanje zunaj vidnega območja"</item>
diff --git a/packages/SettingsLib/res/values-sq-rAL/arrays.xml b/packages/SettingsLib/res/values-sq-rAL/arrays.xml
index c40ad83466f2..9a0f3a0173a0 100644
--- a/packages/SettingsLib/res/values-sq-rAL/arrays.xml
+++ b/packages/SettingsLib/res/values-sq-rAL/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Vizatoje klipin në të kaltër"</item>
<item msgid="1064373276095698656">"Thekso komandat në të gjelbër"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Çaktivizuar"</item>
- <item msgid="2751513398307949636">"Në ekran si shirita"</item>
- <item msgid="1851438178120770973">"Në \"gfxinfo\" për ADB-në"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Çaktivizuar"</item>
<item msgid="7688197031296835369">"Shfaq zonat e konfliktit"</item>
diff --git a/packages/SettingsLib/res/values-sr/arrays.xml b/packages/SettingsLib/res/values-sr/arrays.xml
index 1817558cc892..7594a9a357be 100644
--- a/packages/SettingsLib/res/values-sr/arrays.xml
+++ b/packages/SettingsLib/res/values-sr/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Нацртај област за исецање која није правоугаоног облика плавом бојом"</item>
<item msgid="1064373276095698656">"Истакни зеленом тестиране команде за цртање"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Искључено"</item>
- <item msgid="2751513398307949636">"На екрану у виду трака"</item>
- <item msgid="1851438178120770973">"У adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Искључи"</item>
<item msgid="7688197031296835369">"Прикажи области преклапања"</item>
diff --git a/packages/SettingsLib/res/values-sv/arrays.xml b/packages/SettingsLib/res/values-sv/arrays.xml
index 9ecedca8429c..f979a41a25ae 100644
--- a/packages/SettingsLib/res/values-sv/arrays.xml
+++ b/packages/SettingsLib/res/values-sv/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Rita icke-rektangulära urklippsavsnitt i blått"</item>
<item msgid="1064373276095698656">"Markera testade ritningskommandon i grönt"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Av"</item>
- <item msgid="2751513398307949636">"På skärmen som fält"</item>
- <item msgid="1851438178120770973">"I adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Av"</item>
<item msgid="7688197031296835369">"Visa områden som överskrider gränsen"</item>
diff --git a/packages/SettingsLib/res/values-sw/arrays.xml b/packages/SettingsLib/res/values-sw/arrays.xml
index e2fbfc3ac536..99ec94c5428e 100644
--- a/packages/SettingsLib/res/values-sw/arrays.xml
+++ b/packages/SettingsLib/res/values-sw/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Chora eneo la klipu lisilo mstatili kwa rangi ya bluu"</item>
<item msgid="1064373276095698656">"Angazia amri za michoro iliyojaribiwa kwa rangi ya kijani"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Imezimwa"</item>
- <item msgid="2751513398307949636">"Kwenye skrini kama pau"</item>
- <item msgid="1851438178120770973">"Katika adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Zima"</item>
<item msgid="7688197031296835369">"Onyesha maeneo yaliyoondolewa"</item>
diff --git a/packages/SettingsLib/res/values-ta-rIN/arrays.xml b/packages/SettingsLib/res/values-ta-rIN/arrays.xml
index fed3cd10b750..c19701130c94 100644
--- a/packages/SettingsLib/res/values-ta-rIN/arrays.xml
+++ b/packages/SettingsLib/res/values-ta-rIN/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"செவ்வகம் அல்லாத கிளிப் பகுதியை நீல நிறத்தில் வரையவும்"</item>
<item msgid="1064373276095698656">"சோதிக்கப்பட்ட வரைதல் கட்டளைகளைப் பச்சை நிறத்தில் தனிப்படுத்தவும்"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"முடக்கத்தில்"</item>
- <item msgid="2751513398307949636">"திரையில் பட்டிகளாக"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo இல்"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"முடக்கத்தில்"</item>
<item msgid="7688197031296835369">"ஓவர்டிரா பகுதிகளைக் காட்டு"</item>
diff --git a/packages/SettingsLib/res/values-te-rIN/arrays.xml b/packages/SettingsLib/res/values-te-rIN/arrays.xml
index 482a1da2e8c5..3ccdb7929b04 100644
--- a/packages/SettingsLib/res/values-te-rIN/arrays.xml
+++ b/packages/SettingsLib/res/values-te-rIN/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"దీర్ఘచతురస్రం కాని క్లిప్ ప్రాంతాన్ని నీలి రంగులో గీయండి"</item>
<item msgid="1064373276095698656">"పరీక్షించబడిన డ్రాయింగ్ ఆదేశాలను పచ్చ రంగులో హైలైట్ చేయండి"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"ఆఫ్‌లో ఉంది"</item>
- <item msgid="2751513398307949636">"స్క్రీన్‌లో పట్టీలుగా"</item>
- <item msgid="1851438178120770973">"adb షెల్ డంప్‌సిస్ gfxinfoలో"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"ఆఫ్"</item>
<item msgid="7688197031296835369">"ఓవర్‌డ్రా ప్రాంతాలను చూపండి"</item>
diff --git a/packages/SettingsLib/res/values-th/arrays.xml b/packages/SettingsLib/res/values-th/arrays.xml
index 08caeb6577fb..8ae8aa2089e3 100644
--- a/packages/SettingsLib/res/values-th/arrays.xml
+++ b/packages/SettingsLib/res/values-th/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"วาดคลิปที่ไม่ใช่สี่เหลี่ยมด้วยสีฟ้า"</item>
<item msgid="1064373276095698656">"ไฮไลต์คำสั่งวาดที่ทดสอบด้วยสีเขียว"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"ปิด"</item>
- <item msgid="2751513398307949636">"เป็นแถบบนหน้าจอ"</item>
- <item msgid="1851438178120770973">"ใน adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"ปิด"</item>
<item msgid="7688197031296835369">"แสดงพื้นที่การวาดทับ"</item>
diff --git a/packages/SettingsLib/res/values-tl/arrays.xml b/packages/SettingsLib/res/values-tl/arrays.xml
index a1505dc0a610..4623714034a7 100644
--- a/packages/SettingsLib/res/values-tl/arrays.xml
+++ b/packages/SettingsLib/res/values-tl/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Iguhit sa asul ang di-parihabang clip region"</item>
<item msgid="1064373276095698656">"I-higlight nang berde ang tested drawing commands"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Naka-off"</item>
- <item msgid="2751513398307949636">"Sa screen bilang mga bar"</item>
- <item msgid="1851438178120770973">"In adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"I-off"</item>
<item msgid="7688197031296835369">"Tingnan ang mga overdraw na bahagi"</item>
diff --git a/packages/SettingsLib/res/values-tr/arrays.xml b/packages/SettingsLib/res/values-tr/arrays.xml
index c97e79c33c2f..19b0b92ffc2a 100644
--- a/packages/SettingsLib/res/values-tr/arrays.xml
+++ b/packages/SettingsLib/res/values-tr/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Dikdörtgen olm. kırpma bölgesini mavi çiz"</item>
<item msgid="1064373276095698656">"Test edilmiş çizim komutlarını yeşille vurgula"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Kapalı"</item>
- <item msgid="2751513398307949636">"Ekranda çubuk şeklinde"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo içinde"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Kapalı"</item>
<item msgid="7688197031296835369">"Fazla çizilen alanları göster"</item>
diff --git a/packages/SettingsLib/res/values-uk/arrays.xml b/packages/SettingsLib/res/values-uk/arrays.xml
index 7b720f3e9a74..ba2e3487a4f9 100644
--- a/packages/SettingsLib/res/values-uk/arrays.xml
+++ b/packages/SettingsLib/res/values-uk/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Непрямокутне обрізання синім"</item>
<item msgid="1064373276095698656">"Тест. команди малювання зеленим"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Вимк."</item>
- <item msgid="2751513398307949636">"На екрані у вигляді смужок"</item>
- <item msgid="1851438178120770973">"У adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Вимк."</item>
<item msgid="7688197031296835369">"Показувати області накладання"</item>
diff --git a/packages/SettingsLib/res/values-ur-rPK/arrays.xml b/packages/SettingsLib/res/values-ur-rPK/arrays.xml
index 4f081e55c7cf..9e02c4cd3f22 100644
--- a/packages/SettingsLib/res/values-ur-rPK/arrays.xml
+++ b/packages/SettingsLib/res/values-ur-rPK/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"نیلا غیر مستطیل نما کلپ خطہ بنائیں"</item>
<item msgid="1064373276095698656">"سبز رنگ میں آزمودہ ڈرائنگ کمانڈز کو نمایاں کریں"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"آف"</item>
- <item msgid="2751513398307949636">"بارز کے بطور اسکرین پر"</item>
- <item msgid="1851438178120770973">"‏adb shell dumpsys gfxinfo میں"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"آف"</item>
<item msgid="7688197031296835369">"اوور ڈرا والے حصے دکھائیں"</item>
diff --git a/packages/SettingsLib/res/values-uz-rUZ/arrays.xml b/packages/SettingsLib/res/values-uz-rUZ/arrays.xml
index f501242e96f3..8d591f91280a 100644
--- a/packages/SettingsLib/res/values-uz-rUZ/arrays.xml
+++ b/packages/SettingsLib/res/values-uz-rUZ/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"To‘g‘ri burchakli bo‘lmagan kesishmalarni ko‘k bilan"</item>
<item msgid="1064373276095698656">"Chizmaning sinov buyruqlarini yashil bilan"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"O‘chirib qo‘yish"</item>
- <item msgid="2751513398307949636">"Ekranda bo‘laklar tarzida"</item>
- <item msgid="1851438178120770973">"adb shell dumpsys gfxinfo ichida"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"O‘CHIQ"</item>
<item msgid="7688197031296835369">"Ortiqcha chizilgan joylarni ko‘rsatish"</item>
diff --git a/packages/SettingsLib/res/values-vi/arrays.xml b/packages/SettingsLib/res/values-vi/arrays.xml
index 237b4f4d3dda..eb773510f929 100644
--- a/packages/SettingsLib/res/values-vi/arrays.xml
+++ b/packages/SettingsLib/res/values-vi/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Vẽ vùng clip khác hình chữ nhật bằng màu lam"</item>
<item msgid="1064373276095698656">"Đánh dấu lệnh vẽ đã kiểm tra bằng màu lục"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Tắt"</item>
- <item msgid="2751513398307949636">"Trên màn hình dưới dạng thanh"</item>
- <item msgid="1851438178120770973">"Trong adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Tắt"</item>
<item msgid="7688197031296835369">"Hiển thị các vùng vẽ quá"</item>
diff --git a/packages/SettingsLib/res/values-zh-rCN/arrays.xml b/packages/SettingsLib/res/values-zh-rCN/arrays.xml
index 8a3febdaadd5..6f2b7bc9d3b7 100644
--- a/packages/SettingsLib/res/values-zh-rCN/arrays.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"以蓝色填充非矩形剪裁区域"</item>
<item msgid="1064373276095698656">"以绿色突出显示测试绘制命令"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"关闭"</item>
- <item msgid="2751513398307949636">"在屏幕上显示为条形图"</item>
- <item msgid="1851438178120770973">"在 adb shell dumpsys gfxinfo 中"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"关闭"</item>
<item msgid="7688197031296835369">"显示过度绘制区域"</item>
diff --git a/packages/SettingsLib/res/values-zh-rHK/arrays.xml b/packages/SettingsLib/res/values-zh-rHK/arrays.xml
index fe658844d8c9..084277577331 100644
--- a/packages/SettingsLib/res/values-zh-rHK/arrays.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"以藍色畫出非矩形裁剪區域"</item>
<item msgid="1064373276095698656">"以綠色顯示已測試的繪圖指令"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"關閉"</item>
- <item msgid="2751513398307949636">"在螢幕上以列顯示"</item>
- <item msgid="1851438178120770973">"在「adb shell dumpsys gfxinfo」指令中"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"關閉"</item>
<item msgid="7688197031296835369">"顯示過度繪製區域"</item>
diff --git a/packages/SettingsLib/res/values-zh-rTW/arrays.xml b/packages/SettingsLib/res/values-zh-rTW/arrays.xml
index 0939e93c3e69..17037a7446aa 100644
--- a/packages/SettingsLib/res/values-zh-rTW/arrays.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"將非矩形裁剪區域塗上藍色"</item>
<item msgid="1064373276095698656">"使用綠色標明測試繪圖指令"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"關閉"</item>
- <item msgid="2751513398307949636">"在螢幕上以列顯示"</item>
- <item msgid="1851438178120770973">"在「adb shell dumpsys gfxinfo」指令中"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"關閉"</item>
<item msgid="7688197031296835369">"顯示透支區域"</item>
diff --git a/packages/SettingsLib/res/values-zu/arrays.xml b/packages/SettingsLib/res/values-zu/arrays.xml
index 772dee8f2826..e66d581cd341 100644
--- a/packages/SettingsLib/res/values-zu/arrays.xml
+++ b/packages/SettingsLib/res/values-zu/arrays.xml
@@ -144,11 +144,7 @@
<item msgid="675719912558941285">"Dweba indawo yesiqeshana engesiyena unxantathu ngokuphuzi okwesibhakabhaka"</item>
<item msgid="1064373276095698656">"Beka obala iziqondiso ezihloliwe zokudwebela ngokuphuzi"</item>
</string-array>
- <string-array name="track_frame_time_entries">
- <item msgid="2193584639058893150">"Valiwe"</item>
- <item msgid="2751513398307949636">"Kusikrini njengamabha"</item>
- <item msgid="1851438178120770973">"Ku-adb shell dumpsys gfxinfo"</item>
- </string-array>
+ <!-- no translation found for track_frame_time_entries:2 (2355151170975410323) -->
<string-array name="debug_hw_overdraw_entries">
<item msgid="8190572633763871652">"Valiwe"</item>
<item msgid="7688197031296835369">"Bonisa izindawo zokukhipha okungaphezulu"</item>
diff --git a/packages/SettingsLib/res/values/arrays.xml b/packages/SettingsLib/res/values/arrays.xml
index 920e061b3771..5f45f15b5fbe 100644
--- a/packages/SettingsLib/res/values/arrays.xml
+++ b/packages/SettingsLib/res/values/arrays.xml
@@ -290,11 +290,11 @@
<item>highlight</item>
</string-array>
- <!-- Titles for frame time tracking preference. [CHAR LIMIT=35] -->
+ <!-- Titles for frame time tracking preference. [CHAR LIMIT=50] -->
<string-array name="track_frame_time_entries">
<item>Off</item>
<item>On screen as bars</item>
- <item>In adb shell dumpsys gfxinfo</item>
+ <item>In <xliff:g id="as_typed_command">adb shell dumpsys gfxinfo</xliff:g></item>
</string-array>
<!-- Values for frame time tracking preference. -->
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index d27f1f830c32..7497fc1da3c5 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -511,6 +511,13 @@ public class SettingsProvider extends ContentProvider {
@Override
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
+ final int userId = getUserIdFromUri(uri, UserHandle.getCallingUserId());
+ if (userId != UserHandle.getCallingUserId()) {
+ getContext().enforceCallingPermission(Manifest.permission.INTERACT_ACROSS_USERS,
+ "Access files from the settings of another user");
+ }
+ uri = ContentProvider.getUriWithoutUserId(uri);
+
final String cacheName;
if (Settings.System.RINGTONE_CACHE_URI.equals(uri)) {
cacheName = Settings.System.RINGTONE_CACHE;
@@ -523,8 +530,7 @@ public class SettingsProvider extends ContentProvider {
+ "ringtone playback is available through android.media.Ringtone");
}
- final File cacheFile = new File(
- getRingtoneCacheDir(UserHandle.getCallingUserId()), cacheName);
+ final File cacheFile = new File(getRingtoneCacheDir(userId), cacheName);
return ParcelFileDescriptor.open(cacheFile, ParcelFileDescriptor.parseMode(mode));
}
diff --git a/packages/Shell/res/values-pl/strings.xml b/packages/Shell/res/values-pl/strings.xml
index 73cd181bc632..9734b2ecfc2b 100644
--- a/packages/Shell/res/values-pl/strings.xml
+++ b/packages/Shell/res/values-pl/strings.xml
@@ -21,7 +21,7 @@
<string name="bugreport_finished_title" msgid="4429132808670114081">"Raport o błędzie <xliff:g id="ID">#%d</xliff:g> został zapisany"</string>
<string name="bugreport_updating_title" msgid="4423539949559634214">"Dodaję szczegóły do raportu o błędzie"</string>
<string name="bugreport_updating_wait" msgid="3322151947853929470">"Czekaj..."</string>
- <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"Raport o błędzie będzie się pojawiał na telefonie przez chwilę"</string>
+ <string name="bugreport_finished_text" product="watch" msgid="1223616207145252689">"Raport o błędzie będzie pojawiał się na telefonie przez chwilę"</string>
<string name="bugreport_finished_text" product="default" msgid="8353769438382138847">"Kliknij, by udostępnić raport o błędzie"</string>
<string name="bugreport_finished_pending_screenshot_text" product="watch" msgid="1474435374470177193">"Kliknij, by udostępnić raport o błędzie bez zrzutu ekranu, lub poczekaj, aż zostanie on wygenerowany"</string>
<string name="bugreport_finished_pending_screenshot_text" product="default" msgid="1474435374470177193">"Kliknij, by udostępnić raport o błędzie bez zrzutu ekranu, lub poczekaj, aż zostanie on wygenerowany"</string>
diff --git a/packages/Shell/res/values/strings.xml b/packages/Shell/res/values/strings.xml
index 5dfac95e3527..933d65077374 100644
--- a/packages/Shell/res/values/strings.xml
+++ b/packages/Shell/res/values/strings.xml
@@ -76,4 +76,7 @@
<!-- Label of button that save bugreport details. -->
<string name="save">Save</string>
+
+ <!-- Title displayed in the activity chooser used to share the bug report [CHAR LIMIT=30]-->
+ <string name="bugreport_intent_chooser_title">Share Bug report</string>
</resources>
diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java
index 235bfcc06a4d..4211369a27cb 100644
--- a/packages/Shell/src/com/android/shell/BugreportProgressService.java
+++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java
@@ -1000,12 +1000,17 @@ public class BugreportProgressService extends Service {
notifIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Send the share intent...
- mContext.startActivity(notifIntent);
+ sendShareIntent(mContext, notifIntent);
// ... and stop watching this process.
stopProgress(id);
}
+ static void sendShareIntent(Context context, Intent intent) {
+ context.startActivity(Intent.createChooser(intent,
+ context.getResources().getText(R.string.bugreport_intent_chooser_title)));
+ }
+
/**
* Sends a notification indicating the bugreport has finished so use can share it.
*/
diff --git a/packages/Shell/src/com/android/shell/BugreportWarningActivity.java b/packages/Shell/src/com/android/shell/BugreportWarningActivity.java
index 2426ba099dce..bdf41714d26c 100644
--- a/packages/Shell/src/com/android/shell/BugreportWarningActivity.java
+++ b/packages/Shell/src/com/android/shell/BugreportWarningActivity.java
@@ -21,6 +21,7 @@ import static com.android.shell.BugreportPrefs.STATE_SHOW;
import static com.android.shell.BugreportPrefs.STATE_UNKNOWN;
import static com.android.shell.BugreportPrefs.getWarningState;
import static com.android.shell.BugreportPrefs.setWarningState;
+import static com.android.shell.BugreportProgressService.sendShareIntent;
import android.app.AlertDialog;
import android.content.DialogInterface;
@@ -78,7 +79,7 @@ public class BugreportWarningActivity extends AlertActivity
if (which == AlertDialog.BUTTON_POSITIVE) {
// Remember confirm state, and launch target
setWarningState(this, mConfirmRepeat.isChecked() ? STATE_HIDE : STATE_SHOW);
- startActivity(mSendIntent);
+ sendShareIntent(this, mSendIntent);
}
finish();
diff --git a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
index ad66dfc992d0..8eed6a27d942 100644
--- a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
+++ b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java
@@ -175,6 +175,8 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
mDescription = sb.toString();
setWarningState(mContext, STATE_HIDE);
+
+ mUiBot.turnScreenOn();
}
public void testProgress() throws Exception {
diff --git a/packages/Shell/tests/src/com/android/shell/UiBot.java b/packages/Shell/tests/src/com/android/shell/UiBot.java
index ef24791aac72..d9f5b7a0415c 100644
--- a/packages/Shell/tests/src/com/android/shell/UiBot.java
+++ b/packages/Shell/tests/src/com/android/shell/UiBot.java
@@ -22,7 +22,6 @@ import android.support.test.uiautomator.By;
import android.support.test.uiautomator.UiDevice;
import android.support.test.uiautomator.UiObject;
import android.support.test.uiautomator.UiObjectNotFoundException;
-import android.support.test.uiautomator.UiScrollable;
import android.support.test.uiautomator.UiSelector;
import android.support.test.uiautomator.Until;
import android.util.Log;
@@ -156,56 +155,24 @@ final class UiBot {
}
/**
- * Chooses a given activity to handle an Intent, using the "Just Once" button.
+ * Chooses a given activity to handle an Intent.
*
* @param name name of the activity as displayed in the UI (typically the value set by
* {@code android:label} in the manifest).
*/
- // TODO: UI Automator should provide such logic.
public void chooseActivity(String name) {
- // First check if the activity is the default option.
- String shareText = "Share with " + name;
- Log.v(TAG, "Waiting for ActivityChooser text: '" + shareText + "'");
- boolean gotIt = mDevice.wait(Until.hasObject(By.text(shareText)), mTimeout);
- boolean justOnceHack = false;
-
- if (gotIt) {
- Log.v(TAG, "Found activity " + name + ", it's the default action");
- clickJustOnce();
- } else {
- // Since it's not, need to find it in the scrollable list...
- Log.v(TAG, "Activity " + name + " is not default action");
- UiScrollable activitiesList = new UiScrollable(new UiSelector().scrollable(true));
- try {
- activitiesList.scrollForward();
- } catch (UiObjectNotFoundException e) {
- // TODO: for some paranormal issue, the first time a test is run the scrollable
- // activity list is displayed but calling scrollForwad() (or even isScrollable())
- // throws a "UiObjectNotFoundException: UiSelector[SCROLLABLE=true]" exception
- justOnceHack = true;
- Log.d(TAG, "could not scroll forward", e);
- }
- UiObject activity = getVisibleObject(name);
- // ... then select it.
- click(activity, name);
- if (justOnceHack) {
- clickJustOnce();
- }
- }
- }
-
- private void clickJustOnce() {
- boolean gotIt = mDevice.wait(Until.hasObject(By.res("android", "button_once")), mTimeout);
- assertTrue("'Just Once' button not visible yet", gotIt);
-
- UiObject justOnce = mDevice
- .findObject(new UiSelector().resourceId("android:id/button_once"));
- assertTrue("'Just Once' button not found", justOnce.exists());
-
- click(justOnce, "Just Once");
+ // It uses an intent chooser now, so just getting the activity by text is enough...
+ UiObject activity = getVisibleObject(name);
+ click(activity, name);
}
public void pressBack() {
mDevice.pressBack();
}
+
+ public void turnScreenOn() throws Exception {
+ mDevice.executeShellCommand("input keyevent KEYCODE_WAKEUP");
+ mDevice.executeShellCommand("wm dismiss-keyguard");
+ }
+
}
diff --git a/packages/SystemUI/res/drawable/lockscreen_fingerprint_error_state_to_fp.xml b/packages/SystemUI/res/drawable/lockscreen_fingerprint_error_state_to_fp.xml
index 67e6a01640b1..e207cb3808c0 100644
--- a/packages/SystemUI/res/drawable/lockscreen_fingerprint_error_state_to_fp.xml
+++ b/packages/SystemUI/res/drawable/lockscreen_fingerprint_error_state_to_fp.xml
@@ -98,11 +98,11 @@
<path
android:name="path_2"
android:pathData="M 1.35900878906,6.76104736328 c 0.0,0.0 -2.69998168945,0.0 -2.69998168945,0.0 c 0.0,0.0 0.0,-2.69995117188 0.0,-2.69995117188 c 0.0,0.0 2.69998168945,0.0 2.69998168945,0.0 c 0.0,0.0 0.0,2.69995117188 0.0,2.69995117188 Z"
- android:fillColor="#FFF2501D" />
+ android:fillColor="@*android:color/system_error" />
<path
android:name="path_1"
android:pathData="M 1.35363769531,1.36633300781 c 0.0,0.0 -2.69998168945,0.0 -2.69998168945,0.0 c 0.0,0.0 0.0,-8.09997558594 0.0,-8.09997558594 c 0.0,0.0 2.69998168945,0.0 2.69998168945,0.0 c 0.0,0.0 0.0,8.09997558594 0.0,8.09997558594 Z"
- android:fillColor="#FFF2501D" />
+ android:fillColor="@*android:color/system_error" />
</group>
</group>
<group
@@ -117,7 +117,7 @@
<path
android:name="path_3"
android:pathData="M 0.0101470947266,10.8087768555 c -5.96701049805,0.0 -10.8000183105,-4.8330078125 -10.8000183105,-10.8000488281 c 0.0,-5.96691894531 4.8330078125,-10.7999267578 10.8000183105,-10.7999267578 c 5.96697998047,0.0 10.799987793,4.8330078125 10.799987793,10.7999267578 c 0.0,5.96704101562 -4.8330078125,10.8000488281 -10.799987793,10.8000488281 Z"
- android:strokeColor="#FFF2501D"
+ android:strokeColor="@*android:color/system_error"
android:strokeWidth="2"
android:trimPathStart="0"
android:trimPathEnd="1" />
diff --git a/packages/SystemUI/res/drawable/lockscreen_fingerprint_fp_to_error_state.xml b/packages/SystemUI/res/drawable/lockscreen_fingerprint_fp_to_error_state.xml
index bbadec197dfd..2b4babce277b 100644
--- a/packages/SystemUI/res/drawable/lockscreen_fingerprint_fp_to_error_state.xml
+++ b/packages/SystemUI/res/drawable/lockscreen_fingerprint_fp_to_error_state.xml
@@ -96,7 +96,7 @@
<path
android:name="ridge_5_path_0"
android:pathData="M -25.3591003418,-24.4138946533 c -0.569000244141,0.106399536133 -1.12660217285,0.140594482422 -1.45460510254,0.140594482422 c -1.29689025879,0.0 -2.53239440918,-0.343307495117 -3.62019348145,-1.12400817871 c -1.67700195312,-1.20349121094 -2.76950073242,-3.17008972168 -2.76950073242,-5.39189147949"
- android:strokeColor="#FFF2501D"
+ android:strokeColor="@*android:color/system_error"
android:strokeWidth="1.45"
android:strokeLineCap="round"
android:trimPathEnd="0" />
@@ -106,7 +106,7 @@
<path
android:name="ridge_7_path_0"
android:pathData="M -36.1409912109,-21.7843475342 c -1.00540161133,-1.19300842285 -1.57499694824,-1.9181060791 -2.36520385742,-3.50170898438 c -0.827560424805,-1.65869140625 -1.31352233887,-3.49159240723 -1.31352233887,-5.48489379883 c 0.0,-3.66279602051 2.96932983398,-6.63220214844 6.63221740723,-6.63220214844 c 3.6628112793,0.0 6.63220214844,2.96940612793 6.63220214844,6.63220214844"
- android:strokeColor="#FFF2501D"
+ android:strokeColor="@*android:color/system_error"
android:strokeWidth="1.45"
android:strokeLineCap="round"
android:trimPathEnd="0" />
@@ -116,7 +116,7 @@
<path
android:name="ridge_6_path_0"
android:pathData="M -42.1907958984,-25.6756896973 c -0.758117675781,-2.14370727539 -0.896545410156,-3.86891174316 -0.896545410156,-5.12921142578 c 0.0,-1.46069335938 0.249176025391,-2.84799194336 0.814682006836,-4.09748840332 c 1.56153869629,-3.45030212402 5.03434753418,-5.85076904297 9.0679473877,-5.85076904297 c 5.49430847168,0.0 9.94830322266,4.4539642334 9.94830322266,9.94825744629 c 0.0,1.83151245117 -1.48460388184,3.31610107422 -3.31610107422,3.31610107422 c -1.83149719238,0.0 -3.31610107422,-1.48469543457 -3.31610107422,-3.31610107422 c 0.0,-1.83139038086 -1.48458862305,-3.31610107422 -3.31610107422,-3.31610107422 c -1.83149719238,0.0 -3.31610107422,1.48471069336 -3.31610107422,3.31610107422 c 0.0,2.57020568848 0.989517211914,4.88710021973 2.60510253906,6.5865020752 c 1.22210693359,1.28550720215 2.43139648438,2.09950256348 4.47590637207,2.69030761719"
- android:strokeColor="#FFF2501D"
+ android:strokeColor="@*android:color/system_error"
android:strokeWidth="1.45"
android:strokeLineCap="round"
android:trimPathEnd="0" />
@@ -126,7 +126,7 @@
<path
android:name="ridge_2_path_0"
android:pathData="M -44.0646514893,-38.1672973633 c 1.19026184082,-1.77430725098 2.67503356934,-3.24531555176 4.55902099609,-4.27278137207 c 1.88395690918,-1.0274810791 4.04466247559,-1.61137390137 6.34175109863,-1.61137390137 c 2.28761291504,0.0 4.43991088867,0.579071044922 6.31831359863,1.59861755371 c 1.8784942627,1.01954650879 3.36059570312,2.4796295166 4.55279541016,4.24153137207"
- android:strokeColor="#FFF2501D"
+ android:strokeColor="@*android:color/system_error"
android:strokeWidth="1.45"
android:strokeLineCap="round"
android:trimPathStart="1" />
@@ -138,7 +138,7 @@
<path
android:name="ridge_1_path_0"
android:pathData="M 71.7812347412,97.0507202148 c -2.27149963379,-1.31344604492 -4.71360778809,-2.07006835938 -7.56221008301,-2.07006835938 c -2.84869384766,0.0 -5.23320007324,0.779556274414 -7.34411621094,2.07006835938"
- android:strokeColor="#FFF2501D"
+ android:strokeColor="@*android:color/system_error"
android:strokeWidth="1.45"
android:strokeLineCap="round"
android:trimPathEnd="0" />
@@ -157,11 +157,11 @@
<path
android:name="path_2"
android:pathData="M -1.3705291748,4.06730651855 c 0.0,0.0 0.036376953125,-0.0102386474609 0.036376953125,-0.0102386474609 c 0.0,0.0 -0.00682067871094,0.0040283203125 -0.00682067871093,0.0040283203125 c 0.0,0.0 -0.0161437988281,0.00479125976562 -0.0161437988281,0.00479125976563 c 0.0,0.0 -0.0134124755859,0.00141906738281 -0.0134124755859,0.00141906738281 Z"
- android:fillColor="#FFF2501D" />
+ android:fillColor="@*android:color/system_error" />
<path
android:name="path_1"
android:pathData="M -1.3737487793,-6.77532958984 c 0.0,0.0 0.00604248046875,0.0166625976562 0.00604248046876,0.0166625976562 c 0.0,0.0 0.0213623046875,0.0250244140625 0.0213623046875,0.0250244140625 c 0.0,0.0 -0.00604248046875,-0.0166625976562 -0.00604248046876,-0.0166625976562 c 0.0,0.0 -0.0213623046875,-0.0250244140625 -0.0213623046875,-0.0250244140625 Z"
- android:fillColor="#FFF2501D" />
+ android:fillColor="@*android:color/system_error" />
</group>
</group>
<group
@@ -176,7 +176,7 @@
<path
android:name="path_3"
android:pathData="M 0.0101470947266,10.8087768555 c -5.96701049805,0.0 -10.8000183105,-4.8330078125 -10.8000183105,-10.8000488281 c 0.0,-5.96691894531 4.8330078125,-10.7999267578 10.8000183105,-10.7999267578 c 5.96697998047,0.0 10.799987793,4.8330078125 10.799987793,10.7999267578 c 0.0,5.96704101562 -4.8330078125,10.8000488281 -10.799987793,10.8000488281 Z"
- android:strokeColor="#FFF2501D"
+ android:strokeColor="@*android:color/system_error"
android:strokeWidth="2"
android:trimPathStart="1" />
</group>
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/NightDisplayTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/NightDisplayTile.java
index 2d1f753898b7..9415b27f7570 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/NightDisplayTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/NightDisplayTile.java
@@ -16,6 +16,7 @@
package com.android.systemui.qs.tiles;
+import android.app.ActivityManager;
import android.content.Intent;
import android.provider.Settings;
import android.widget.Switch;
@@ -29,11 +30,12 @@ import com.android.systemui.qs.QSTile;
public class NightDisplayTile extends QSTile<QSTile.BooleanState>
implements NightDisplayController.Callback {
- private final NightDisplayController mController;
+ private NightDisplayController mController;
+ private boolean mIsListening;
public NightDisplayTile(Host host) {
super(host);
- mController = new NightDisplayController(mContext);
+ mController = new NightDisplayController(mContext, ActivityManager.getCurrentUser());
}
@Override
@@ -54,6 +56,22 @@ public class NightDisplayTile extends QSTile<QSTile.BooleanState>
}
@Override
+ protected void handleUserSwitch(int newUserId) {
+ // Stop listening to the old controller.
+ if (mIsListening) {
+ mController.setListener(null);
+ }
+
+ // Make a new controller for the new user.
+ mController = new NightDisplayController(mContext, newUserId);
+ if (mIsListening) {
+ mController.setListener(this);
+ }
+
+ super.handleUserSwitch(newUserId);
+ }
+
+ @Override
protected void handleUpdateState(BooleanState state, Object arg) {
final boolean isActivated = mController.isActivated();
state.value = isActivated;
@@ -79,6 +97,7 @@ public class NightDisplayTile extends QSTile<QSTile.BooleanState>
@Override
protected void setListening(boolean listening) {
+ mIsListening = listening;
if (listening) {
mController.setListener(this);
refreshState();
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
index ca59831786b4..ba31e3e835c0 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
@@ -200,6 +200,10 @@ class BackgroundTaskLoader implements Runnable {
if (cachedThumbnailData.thumbnail == null) {
cachedThumbnailData.thumbnail = mDefaultThumbnail;
+ } else {
+ // Kick off an early upload of the bitmap to GL so
+ // that this won't jank the first frame it's drawn in.
+ cachedThumbnailData.thumbnail.prepareToDraw();
}
// When svelte, we trim the memory to just the visible thumbnails when
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java
index 319375950916..c46adf15861f 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java
@@ -164,6 +164,7 @@ public class TaskViewThumbnail extends View {
/** Sets the thumbnail to a given bitmap. */
void setThumbnail(Bitmap bm, ActivityManager.TaskThumbnailInfo thumbnailInfo) {
if (bm != null) {
+ bm.prepareToDraw();
mBitmapShader = new BitmapShader(bm, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
mDrawPaint.setShader(mBitmapShader);
mThumbnailRect.set(0, 0, bm.getWidth(), bm.getHeight());
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java
index 405ccd601ff6..10facea1e8f8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java
@@ -334,6 +334,9 @@ public class QSTileHost implements QSTile.Host, Tunable {
|| ((CustomTile) tile).getUser() == currentUser)) {
if (DEBUG) Log.d(TAG, "Adding " + tile);
tile.removeCallbacks();
+ if (!(tile instanceof CustomTile) && mCurrentUser != currentUser) {
+ tile.userSwitch(currentUser);
+ }
newTiles.put(tileSpec, tile);
} else {
if (DEBUG) Log.d(TAG, "Creating tile: " + tileSpec);
diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto
index 41576bf5b62e..fc19fb5f8f92 100644
--- a/proto/src/metrics_constants.proto
+++ b/proto/src/metrics_constants.proto
@@ -2256,6 +2256,10 @@ message MetricsEvent {
// Package: Package of print service
ACTION_PRINT_RECOMMENDED_SERVICE_INSTALL = 512;
+ // OPEN: Settings > Display -> Ambient Display
+ // CATEGORY: SETTINGS
+ ACTION_AMBIENT_DISPLAY = 513;
+
// ---- End O Constants, all O constants go above this line ----
// Add new aosp constants above this line.
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index 64b473941e6f..e8b5310c9326 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -3633,19 +3633,22 @@ final class ActivityStack {
final ActivityState prevState = r.state;
if (DEBUG_STATES) Slog.v(TAG_STATES, "Moving to FINISHING: " + r);
r.state = ActivityState.FINISHING;
+ final boolean finishingActivityInNonFocusedStack
+ = r.task.stack != mStackSupervisor.getFocusedStack()
+ && prevState == ActivityState.PAUSED && mode == FINISH_AFTER_VISIBLE;
if (mode == FINISH_IMMEDIATELY
|| (prevState == ActivityState.PAUSED
- && (mode == FINISH_AFTER_PAUSE || mode == FINISH_AFTER_VISIBLE
- || mStackId == PINNED_STACK_ID))
+ && (mode == FINISH_AFTER_PAUSE || mStackId == PINNED_STACK_ID))
+ || finishingActivityInNonFocusedStack
|| prevState == ActivityState.STOPPED
|| prevState == ActivityState.INITIALIZING) {
r.makeFinishingLocked();
boolean activityRemoved = destroyActivityLocked(r, true, "finish-imm");
- if (prevState == ActivityState.PAUSED && mode == FINISH_AFTER_VISIBLE) {
- // Finishing activity that was in paused state - this can happen if it was in
- // not currently focused stack. Need to make something visible in its place.
+ if (finishingActivityInNonFocusedStack) {
+ // Finishing activity that was in paused state and it was in not currently focused
+ // stack, need to make something visible in its place.
mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS);
}
if (activityRemoved) {
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java
index 02ad7c650e11..d875f1e97cac 100644
--- a/services/core/java/com/android/server/pm/ShortcutService.java
+++ b/services/core/java/com/android/server/pm/ShortcutService.java
@@ -2170,9 +2170,9 @@ public class ShortcutService extends IShortcutService.Stub {
@Nullable ComponentName componentName,
int queryFlags, int userId) {
final ArrayList<ShortcutInfo> ret = new ArrayList<>();
-
- throwIfUserLocked(userId);
- throwIfUserLocked(launcherUserId);
+ if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) {
+ return ret;
+ }
final boolean cloneKeyFieldOnly =
((queryFlags & ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY) != 0);
@@ -2251,8 +2251,9 @@ public class ShortcutService extends IShortcutService.Stub {
Preconditions.checkStringNotEmpty(packageName, "packageName");
Preconditions.checkStringNotEmpty(shortcutId, "shortcutId");
- throwIfUserLocked(userId);
- throwIfUserLocked(launcherUserId);
+ if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) {
+ return false;
+ }
synchronized (mLock) {
getLauncherShortcutsLocked(callingPackage, userId, launcherUserId)
@@ -2270,8 +2271,9 @@ public class ShortcutService extends IShortcutService.Stub {
Preconditions.checkStringNotEmpty(packageName, "packageName");
Preconditions.checkStringNotEmpty(shortcutId, "shortcutId");
- throwIfUserLocked(userId);
- throwIfUserLocked(launcherUserId);
+ if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) {
+ return null;
+ }
final ShortcutPackage p = getUserShortcutsLocked(userId)
.getPackageShortcutsIfExists(packageName);
@@ -2294,8 +2296,9 @@ public class ShortcutService extends IShortcutService.Stub {
Preconditions.checkStringNotEmpty(packageName, "packageName");
Preconditions.checkNotNull(shortcutIds, "shortcutIds");
- throwIfUserLocked(userId);
- throwIfUserLocked(launcherUserId);
+ if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) {
+ return;
+ }
synchronized (mLock) {
final ShortcutLauncher launcher =
@@ -2317,8 +2320,9 @@ public class ShortcutService extends IShortcutService.Stub {
Preconditions.checkStringNotEmpty(packageName, "packageName can't be empty");
Preconditions.checkStringNotEmpty(shortcutId, "shortcutId can't be empty");
- throwIfUserLocked(userId);
- throwIfUserLocked(launcherUserId);
+ if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) {
+ return null;
+ }
synchronized (mLock) {
getLauncherShortcutsLocked(callingPackage, userId, launcherUserId)
@@ -2350,8 +2354,9 @@ public class ShortcutService extends IShortcutService.Stub {
Preconditions.checkNotNull(packageName, "packageName");
Preconditions.checkNotNull(shortcutId, "shortcutId");
- throwIfUserLocked(userId);
- throwIfUserLocked(launcherUserId);
+ if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) {
+ return 0;
+ }
synchronized (mLock) {
getLauncherShortcutsLocked(callingPackage, userId, launcherUserId)
@@ -2377,8 +2382,9 @@ public class ShortcutService extends IShortcutService.Stub {
Preconditions.checkNotNull(packageName, "packageName");
Preconditions.checkNotNull(shortcutId, "shortcutId");
- throwIfUserLocked(userId);
- throwIfUserLocked(launcherUserId);
+ if (!isUserUnlocked(userId) || !isUserUnlocked(launcherUserId)) {
+ return null;
+ }
synchronized (mLock) {
getLauncherShortcutsLocked(callingPackage, userId, launcherUserId)
@@ -2412,7 +2418,9 @@ public class ShortcutService extends IShortcutService.Stub {
@Override
public boolean hasShortcutHostPermission(int launcherUserId,
@NonNull String callingPackage) {
- throwIfUserLocked(launcherUserId);
+ if (!isUserUnlocked(launcherUserId)) {
+ return false;
+ }
return ShortcutService.this.hasShortcutHostPermission(callingPackage, launcherUserId);
}
}
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index 8d13b0d61414..ced84f686a52 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -2086,7 +2086,12 @@ public final class PowerManagerService extends SystemService
float screenAutoBrightnessAdjustment = 0.0f;
boolean autoBrightness = (mScreenBrightnessModeSetting ==
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
- if (isValidBrightness(mScreenBrightnessOverrideFromWindowManager)) {
+ if (!mBootCompleted) {
+ // Keep the brightness steady during boot. This requires the
+ // bootloader brightness and the default brightness to be identical.
+ autoBrightness = false;
+ brightnessSetByUser = false;
+ } else if (isValidBrightness(mScreenBrightnessOverrideFromWindowManager)) {
screenBrightness = mScreenBrightnessOverrideFromWindowManager;
autoBrightness = false;
brightnessSetByUser = false;
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index f268aa2620dd..6b0edad359eb 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -17,7 +17,9 @@
package com.android.server.wm;
import static android.app.ActivityManager.StackId;
+import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
+import static android.view.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM;
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_APP_TRANSITIONS;
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ADD_REMOVE;
@@ -280,10 +282,10 @@ class AppWindowToken extends WindowToken {
WindowState findMainWindow() {
WindowState candidate = null;
- int j = windows.size();
+ int j = allAppWindows.size();
while (j > 0) {
j--;
- WindowState win = windows.get(j);
+ WindowState win = allAppWindows.get(j);
if (win.mAttrs.type == WindowManager.LayoutParams.TYPE_BASE_APPLICATION
|| win.mAttrs.type == WindowManager.LayoutParams.TYPE_APPLICATION_STARTING) {
// In cases where there are multiple windows, we prefer the non-exiting window. This
@@ -358,6 +360,7 @@ class AppWindowToken extends WindowToken {
win.mWinAnimator.mAnimating = false;
}
}
+ requestUpdateWallpaperIfNeeded();
}
void destroySurfaces() {
@@ -405,6 +408,9 @@ class AppWindowToken extends WindowToken {
if (displayContent != null && !displayList.contains(displayContent)) {
displayList.add(displayContent);
}
+ if (cleanupOnResume) {
+ win.requestUpdateWallpaperIfNeeded();
+ }
win.mDestroying = false;
}
for (int i = 0; i < displayList.size(); i++) {
@@ -542,7 +548,7 @@ class AppWindowToken extends WindowToken {
clearVisibleBeforeClientHidden();
if (DEBUG_APP_TRANSITIONS || DEBUG_ANIM) Slog.d(TAG,
- "restoreSavedSurfaces: " + appWindowToken + " allDrawn=" + allDrawn
+ "restoreSavedSurfaces: " + this + " allDrawn=" + allDrawn
+ " numInteresting=" + numInteresting + " numDrawn=" + numDrawn);
}
@@ -609,8 +615,8 @@ class AppWindowToken extends WindowToken {
}
void setReplacingWindows(boolean animate) {
- if (DEBUG_ADD_REMOVE) Slog.d(TAG_WM, "Marking app token " + appWindowToken
- + " with replacing windows.");
+ if (DEBUG_ADD_REMOVE) Slog.d(TAG_WM,
+ "Marking app token " + this + " with replacing windows.");
for (int i = allAppWindows.size() - 1; i >= 0; i--) {
final WindowState w = allAppWindows.get(i);
@@ -627,7 +633,7 @@ class AppWindowToken extends WindowToken {
}
void setReplacingChildren() {
- if (DEBUG_ADD_REMOVE) Slog.d(TAG_WM, "Marking app token " + appWindowToken
+ if (DEBUG_ADD_REMOVE) Slog.d(TAG_WM, "Marking app token " + this
+ " with replacing child windows.");
for (int i = allAppWindows.size() - 1; i >= 0; i--) {
final WindowState w = allAppWindows.get(i);
@@ -638,8 +644,8 @@ class AppWindowToken extends WindowToken {
}
void resetReplacingWindows() {
- if (DEBUG_ADD_REMOVE) Slog.d(TAG_WM, "Resetting app token " + appWindowToken
- + " of replacing window marks.");
+ if (DEBUG_ADD_REMOVE) Slog.d(TAG_WM,
+ "Resetting app token " + this + " of replacing window marks.");
for (int i = allAppWindows.size() - 1; i >= 0; i--) {
final WindowState w = allAppWindows.get(i);
@@ -769,8 +775,8 @@ class AppWindowToken extends WindowToken {
if (!mFrozenMergedConfig.isEmpty()) {
mFrozenMergedConfig.remove();
}
- for (int i = windows.size() - 1; i >= 0; i--) {
- final WindowState win = windows.get(i);
+ for (int i = allAppWindows.size() - 1; i >= 0; i--) {
+ final WindowState win = allAppWindows.get(i);
if (!win.mHasSurface) {
continue;
}
diff --git a/services/core/java/com/android/server/wm/WallpaperController.java b/services/core/java/com/android/server/wm/WallpaperController.java
index 917a899db51f..7b6f9e318650 100644
--- a/services/core/java/com/android/server/wm/WallpaperController.java
+++ b/services/core/java/com/android/server/wm/WallpaperController.java
@@ -590,18 +590,9 @@ class WallpaperController {
"Animating wallpapers: old#" + oldI + "=" + oldW + "; new#"
+ wallpaperTargetIndex + "=" + wallpaperTarget);
- // Set the new target correctly.
- if (wallpaperTarget.mAppToken != null
- && wallpaperTarget.mAppToken.hiddenRequested) {
- if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG,
- "Old wallpaper still the target.");
- mWallpaperTarget = oldW;
- wallpaperTarget = oldW;
- wallpaperTargetIndex = oldI;
- }
- // Now set the upper and lower wallpaper targets correctly,
+ // Set the upper and lower wallpaper targets correctly,
// and make sure that we are positioning the wallpaper below the lower.
- else if (wallpaperTargetIndex > oldI) {
+ if (wallpaperTargetIndex > oldI) {
// The new target is on top of the old one.
if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG,
"Found target above old target.");
@@ -616,6 +607,16 @@ class WallpaperController {
mUpperWallpaperTarget = oldW;
mLowerWallpaperTarget = wallpaperTarget;
}
+
+ // If the new target is going hidden, set it back to the old target.
+ if (wallpaperTarget.mAppToken != null
+ && wallpaperTarget.mAppToken.hiddenRequested) {
+ if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG,
+ "Old wallpaper still the target.");
+ mWallpaperTarget = oldW;
+ wallpaperTarget = oldW;
+ wallpaperTargetIndex = oldI;
+ }
}
}
}
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 292561a1e59e..04930847b620 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -1621,7 +1621,6 @@ public class WindowManagerService extends IWindowManager.Stub
void addInputMethodWindowToListLocked(WindowState win) {
int pos = findDesiredInputMethodWindowIndexLocked(true);
if (pos >= 0) {
- win.mTargetAppToken = mInputMethodTarget.mAppToken;
if (DEBUG_WINDOW_MOVEMENT || DEBUG_ADD_REMOVE) Slog.v(
TAG_WM, "Adding input method window " + win + " at " + pos);
// TODO(multidisplay): IMEs are only supported on the default display.
@@ -1630,7 +1629,6 @@ public class WindowManagerService extends IWindowManager.Stub
moveInputMethodDialogsLocked(pos + 1);
return;
}
- win.mTargetAppToken = null;
addWindowToListInOrderLocked(win, true);
moveInputMethodDialogsLocked(pos);
}
@@ -1674,7 +1672,6 @@ public class WindowManagerService extends IWindowManager.Stub
}
if (pos >= 0) {
- final AppWindowToken targetAppToken = mInputMethodTarget.mAppToken;
// Skip windows owned by the input method.
if (mInputMethodWindow != null) {
while (pos < windows.size()) {
@@ -1689,7 +1686,6 @@ public class WindowManagerService extends IWindowManager.Stub
if (DEBUG_INPUT_METHOD) Slog.v(TAG_WM, "Adding " + N + " dialogs at pos=" + pos);
for (int i=0; i<N; i++) {
WindowState win = dialogs.get(i);
- win.mTargetAppToken = targetAppToken;
pos = win.reAddWindowLocked(pos);
}
if (DEBUG_INPUT_METHOD) {
@@ -1700,7 +1696,6 @@ public class WindowManagerService extends IWindowManager.Stub
}
for (int i=0; i<N; i++) {
WindowState win = dialogs.get(i);
- win.mTargetAppToken = null;
reAddWindowToListInOrderLocked(win);
if (DEBUG_INPUT_METHOD) {
Slog.v(TAG_WM, "No IM target, final list:");
@@ -1756,11 +1751,6 @@ public class WindowManagerService extends IWindowManager.Stub
pos++;
}
if (pos >= N) {
- // Z order is good.
- // The IM target window may be changed, so update the mTargetAppToken.
- if (imWin != null) {
- imWin.mTargetAppToken = mInputMethodTarget.mAppToken;
- }
return false;
}
}
@@ -1775,7 +1765,6 @@ public class WindowManagerService extends IWindowManager.Stub
Slog.v(TAG_WM, "List after removing with new pos " + imPos + ":");
logWindowList(windows, " ");
}
- imWin.mTargetAppToken = mInputMethodTarget.mAppToken;
imWin.reAddWindowLocked(imPos);
if (DEBUG_INPUT_METHOD) {
Slog.v(TAG_WM, "List after moving IM to " + imPos + ":");
@@ -1793,7 +1782,6 @@ public class WindowManagerService extends IWindowManager.Stub
if (imWin != null) {
if (DEBUG_INPUT_METHOD) Slog.v(TAG_WM, "Moving IM from " + imPos);
imWin.removeFromWindowList(0);
- imWin.mTargetAppToken = null;
reAddWindowToListInOrderLocked(imWin);
if (DEBUG_INPUT_METHOD) {
Slog.v(TAG_WM, "List with no IM target:");
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index f0054f83494e..d20529da6b42 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -158,7 +158,6 @@ class WindowState extends WindowContainer implements WindowManagerPolicy.WindowS
WindowToken mToken;
WindowToken mRootToken;
AppWindowToken mAppToken;
- AppWindowToken mTargetAppToken;
// mAttrs.flags is tested in animation without being locked. If the bits tested are ever
// modified they will need to be locked.
@@ -619,17 +618,17 @@ class WindowState extends WindowContainer implements WindowManagerPolicy.WindowS
}
mIsFloatingLayer = mIsImWindow || mIsWallpaper;
- final WindowState appWin = getTopParentWindow();
- WindowToken appToken = appWin.mToken;
- while (appToken.appWindowToken == null) {
- WindowToken parent = mService.mTokenMap.get(appToken.token);
- if (parent == null || appToken == parent) {
+ final WindowState topParentWindow = getTopParentWindow();
+ WindowToken rootToken = topParentWindow.mToken;
+ while (rootToken.appWindowToken == null) {
+ WindowToken parent = mService.mTokenMap.get(rootToken.token);
+ if (parent == null || rootToken == parent) {
break;
}
- appToken = parent;
+ rootToken = parent;
}
- mRootToken = appToken;
- mAppToken = appToken.appWindowToken;
+ mRootToken = rootToken;
+ mAppToken = rootToken.appWindowToken;
if (mAppToken != null) {
final DisplayContent appDisplay = getDisplayContent();
mNotOnAppsDisplay = displayContent != appDisplay;
@@ -1495,14 +1494,21 @@ class WindowState extends WindowContainer implements WindowManagerPolicy.WindowS
}
int getAnimLayerAdjustment() {
- if (mTargetAppToken != null) {
- return mTargetAppToken.mAppAnimator.animLayerAdjustment;
- } else if (mAppToken != null) {
+ final boolean isImeType =
+ mAttrs.type == TYPE_INPUT_METHOD || mAttrs.type == TYPE_INPUT_METHOD_DIALOG;
+ if (isImeType && mService.mInputMethodTarget != null) {
+ final AppWindowToken appToken = mService.mInputMethodTarget.mAppToken;
+ if (appToken != null) {
+ return appToken.mAppAnimator.animLayerAdjustment;
+ }
+ }
+
+ if (mAppToken != null) {
return mAppToken.mAppAnimator.animLayerAdjustment;
- } else {
- // Nothing is animating, so there is no animation adjustment.
- return 0;
}
+
+ // Nothing is animating, so there is no animation adjustment.
+ return 0;
}
void scheduleAnimationIfDimming() {
@@ -2580,9 +2586,7 @@ class WindowState extends WindowContainer implements WindowManagerPolicy.WindowS
pw.print(prefix); pw.print("mBaseLayer="); pw.print(mBaseLayer);
pw.print(" mSubLayer="); pw.print(mSubLayer);
pw.print(" mAnimLayer="); pw.print(mLayer); pw.print("+");
- pw.print((mTargetAppToken != null ?
- mTargetAppToken.mAppAnimator.animLayerAdjustment
- : (mAppToken != null ? mAppToken.mAppAnimator.animLayerAdjustment : 0)));
+ pw.print(getAnimLayerAdjustment());
pw.print("="); pw.print(mWinAnimator.mAnimLayer);
pw.print(" mLastLayer="); pw.println(mWinAnimator.mLastLayer);
}
@@ -2595,9 +2599,6 @@ class WindowState extends WindowContainer implements WindowManagerPolicy.WindowS
pw.print(isAnimatingWithSavedSurface());
pw.print(" mAppDied=");pw.println(mAppDied);
}
- if (mTargetAppToken != null) {
- pw.print(prefix); pw.print("mTargetAppToken="); pw.println(mTargetAppToken);
- }
pw.print(prefix); pw.print("mViewVisibility=0x");
pw.print(Integer.toHexString(mViewVisibility));
pw.print(" mHaveFrame="); pw.print(mHaveFrame);
diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
index 2cd5be989bbe..95f5d424efa1 100644
--- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
+++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
@@ -1096,6 +1096,26 @@ class WindowSurfacePlacer {
boolean fullscreenAnim = false;
boolean voiceInteraction = false;
+ int i;
+ for (i = 0; i < appsCount; i++) {
+ final AppWindowToken wtoken = mService.mOpeningApps.valueAt(i);
+ // Clearing the mAnimatingExit flag before entering animation. It's set to
+ // true if app window is removed, or window relayout to invisible.
+ // This also affects window visibility. We need to clear it *before*
+ // maybeUpdateTransitToWallpaper() as the transition selection depends on
+ // wallpaper target visibility.
+ wtoken.clearAnimatingFlags();
+
+ }
+ // Adjust wallpaper before we pull the lower/upper target, since pending changes
+ // (like the clearAnimatingFlags() above) might affect wallpaper target result.
+ final DisplayContent displayContent = mService.getDefaultDisplayContentLocked();
+ if ((displayContent.pendingLayoutChanges & FINISH_LAYOUT_REDO_WALLPAPER) != 0 &&
+ mWallpaperControllerLocked.adjustWallpaperWindows()) {
+ mService.mLayersController.assignLayersLocked(windows);
+ displayContent.layoutNeeded = true;
+ }
+
final WindowState lowerWallpaperTarget =
mWallpaperControllerLocked.getLowerWallpaperTarget();
final WindowState upperWallpaperTarget =
@@ -1112,7 +1132,6 @@ class WindowSurfacePlacer {
upperWallpaperAppToken = upperWallpaperTarget.mAppToken;
}
- int i;
// Do a first pass through the tokens for two
// things:
// (1) Determine if both the closing and opening
@@ -1137,12 +1156,6 @@ class WindowSurfacePlacer {
if (wtoken == lowerWallpaperAppToken || wtoken == upperWallpaperAppToken) {
openingAppHasWallpaper = true;
}
- // Clearing the mAnimatingExit flag before entering animation. It's set to
- // true if app window is removed, or window relayout to invisible.
- // This also affects window visibility. We need to clear it *before*
- // maybeUpdateTransitToWallpaper() as the transition selection depends on
- // wallpaper target visibility.
- wtoken.clearAnimatingFlags();
}
voiceInteraction |= wtoken.voiceInteraction;
@@ -1205,7 +1218,7 @@ class WindowSurfacePlacer {
// This has changed the visibility of windows, so perform
// a new layout to get them all up-to-date.
- mService.getDefaultDisplayContentLocked().layoutNeeded = true;
+ displayContent.layoutNeeded = true;
// TODO(multidisplay): IMEs are only supported on the default display.
if (windows == mService.getDefaultWindowListLocked()
diff --git a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
index 2346f8547550..16a0def7d5a5 100644
--- a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
+++ b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
@@ -574,6 +574,7 @@ public class AppLaunch extends InstrumentationTestCase {
mLaunchIntent = intent;
mForceStopBeforeLaunch = forceStopBeforeLaunch;
mLaunchReason = launchReason;
+ mResult = -1L;
}
public Long getResult() {
diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp
index 288b2a320de6..cbad4b9b48a9 100644
--- a/tools/aapt/Command.cpp
+++ b/tools/aapt/Command.cpp
@@ -529,6 +529,16 @@ struct FeatureGroup {
int openGLESVersion;
};
+static bool hasFeature(const char* name, const FeatureGroup& grp,
+ const KeyedVector<String8, ImpliedFeature>& implied) {
+ String8 name8(name);
+ ssize_t idx = grp.features.indexOfKey(name8);
+ if (idx < 0) {
+ idx = implied.indexOfKey(name8);
+ }
+ return idx >= 0;
+}
+
static void addImpliedFeature(KeyedVector<String8, ImpliedFeature>* impliedFeatures,
const char* name, const char* reason, bool sdk23) {
String8 name8(name);
@@ -616,9 +626,16 @@ static void addParentFeatures(FeatureGroup* grp, const String8& name) {
} else if (name == "android.hardware.location.gps" ||
name == "android.hardware.location.network") {
grp->features.add(String8("android.hardware.location"), Feature(true));
+ } else if (name == "android.hardware.faketouch.multitouch") {
+ grp->features.add(String8("android.hardware.faketouch"), Feature(true));
+ } else if (name == "android.hardware.faketouch.multitouch.distinct" ||
+ name == "android.hardware.faketouch.multitouch.jazzhands") {
+ grp->features.add(String8("android.hardware.faketouch.multitouch"), Feature(true));
+ grp->features.add(String8("android.hardware.faketouch"), Feature(true));
} else if (name == "android.hardware.touchscreen.multitouch") {
grp->features.add(String8("android.hardware.touchscreen"), Feature(true));
- } else if (name == "android.hardware.touchscreen.multitouch.distinct") {
+ } else if (name == "android.hardware.touchscreen.multitouch.distinct" ||
+ name == "android.hardware.touchscreen.multitouch.jazzhands") {
grp->features.add(String8("android.hardware.touchscreen.multitouch"), Feature(true));
grp->features.add(String8("android.hardware.touchscreen"), Feature(true));
} else if (name == "android.hardware.opengles.aep") {
@@ -2033,8 +2050,12 @@ int doDump(Bundle* bundle)
}
}
- addImpliedFeature(&impliedFeatures, "android.hardware.touchscreen",
- "default feature for all apps", false);
+ // If the app hasn't declared the touchscreen as a feature requirement (either
+ // directly or implied, required or not), then the faketouch feature is implied.
+ if (!hasFeature("android.hardware.touchscreen", commonFeatures, impliedFeatures)) {
+ addImpliedFeature(&impliedFeatures, "android.hardware.faketouch",
+ "default feature for all apps", false);
+ }
const size_t numFeatureGroups = featureGroups.size();
if (numFeatureGroups == 0) {
diff --git a/tools/aapt2/Android.mk b/tools/aapt2/Android.mk
index bbb9a51ad407..4f38e9435141 100644
--- a/tools/aapt2/Android.mk
+++ b/tools/aapt2/Android.mk
@@ -133,7 +133,7 @@ hostStaticLibs := \
libziparchive-host \
libpng \
libbase \
- libprotobuf-cpp-lite_static
+ libprotobuf-cpp-lite
# Statically link libz for MinGW (Win SDK under Linux),
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index ef095357d9e6..1203db7734ea 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -211,9 +211,11 @@ bool ManifestFixer::buildRules(xml::XmlActionExecutor* executor, IDiagnostics* d
// Provider actions.
applicationAction["provider"].action(requiredNameIsJavaClassName);
- applicationAction["provider"]["grant-uri-permissions"];
+ applicationAction["provider"]["intent-filter"] = intentFilterAction;
applicationAction["provider"]["meta-data"] = metaDataAction;
+ applicationAction["provider"]["grant-uri-permissions"];
applicationAction["provider"]["path-permissions"];
+
return true;
}
diff --git a/tools/aapt2/remove-duplicates.py b/tools/aapt2/remove-duplicates.py
new file mode 100644
index 000000000000..fb98bb73e9a4
--- /dev/null
+++ b/tools/aapt2/remove-duplicates.py
@@ -0,0 +1,181 @@
+#!/usr/bin/env python
+
+import os
+import os.path
+import sys
+import tempfile
+import xml.parsers.expat
+
+"""
+Scans each resource file in res/values/ looking for duplicates.
+All but the last occurrence of resource definition are removed.
+This creates no semantic changes, the resulting APK when built
+should contain the same definition.
+"""
+
+class Duplicate:
+ """A small struct to maintain the positions of a Duplicate resource definition."""
+ def __init__(self, name, product, depth, start, end):
+ self.name = name
+ self.product = product
+ self.depth = depth
+ self.start = start
+ self.end = end
+
+class ResourceDefinitionLocator:
+ """Callback class for xml.parsers.expat which records resource definitions and their
+ locations.
+ """
+ def __init__(self, parser):
+ self.resource_definitions = {}
+ self._parser = parser
+ self._depth = 0
+ self._current_resource = None
+
+ def start_element(self, tag_name, attrs):
+ self._depth += 1
+ if self._depth == 2 and tag_name not in ["public", "java-symbol", "eat-comment", "skip"]:
+ resource_name = None
+ product = ""
+ try:
+ product = attrs["product"]
+ except KeyError:
+ pass
+
+ if tag_name == "item":
+ resource_name = "{0}/{1}".format(attrs["type"], attrs["name"])
+ else:
+ resource_name = "{0}/{1}".format(tag_name, attrs["name"])
+ self._current_resource = Duplicate(
+ resource_name,
+ product,
+ self._depth,
+ (self._parser.CurrentLineNumber - 1, self._parser.CurrentColumnNumber),
+ None)
+
+ def end_element(self, tag_name):
+ if self._current_resource and self._depth == self._current_resource.depth:
+ # Record the end position of the element, which is the length of the name
+ # plus the </> symbols (len("</>") == 3).
+ self._current_resource.end = (self._parser.CurrentLineNumber - 1,
+ self._parser.CurrentColumnNumber + 3 + len(tag_name))
+ key_name = "{0}:{1}".format(self._current_resource.name,
+ self._current_resource.product)
+ try:
+ self.resource_definitions[key_name] += [self._current_resource]
+ except KeyError:
+ self.resource_definitions[key_name] = [self._current_resource]
+ self._current_resource = None
+ self._depth -= 1
+
+def remove_duplicates(xml_path):
+ """Reads the input file and generates an output file with any duplicate
+ resources removed, keeping the last occurring definition and removing
+ the others. The output is written to a temporary and then renamed
+ to the original file name.
+ """
+ input = ""
+ with open(xml_path) as fin:
+ input = fin.read()
+
+ parser = xml.parsers.expat.ParserCreate("utf-8")
+ parser.returns_unicode = True
+ tracker = ResourceDefinitionLocator(parser)
+ parser.StartElementHandler = tracker.start_element
+ parser.EndElementHandler = tracker.end_element
+ parser.Parse(input)
+
+ # Treat the input as UTF-8 or else column numbers will be wrong.
+ input_lines = input.decode('utf-8').splitlines(True)
+
+ # Extract the duplicate resource definitions, ignoring the last definition
+ # which will take precedence and be left intact.
+ duplicates = []
+ for res_name, entries in tracker.resource_definitions.iteritems():
+ if len(entries) > 1:
+ duplicates += entries[:-1]
+
+ # Sort the duplicates so that they are in order. That way we only do one pass.
+ duplicates = sorted(duplicates, key=lambda x: x.start)
+
+ last_line_no = 0
+ last_col_no = 0
+ output_lines = []
+ current_line = ""
+ for definition in duplicates:
+ print "{0}:{1}:{2}: removing duplicate resource '{3}'".format(
+ xml_path, definition.start[0] + 1, definition.start[1], definition.name)
+
+ if last_line_no < definition.start[0]:
+ # The next definition is on a new line, so write what we have
+ # to the output.
+ new_line = current_line + input_lines[last_line_no][last_col_no:]
+ if not new_line.isspace():
+ output_lines.append(new_line)
+ current_line = ""
+ last_col_no = 0
+ last_line_no += 1
+
+ # Copy all the lines up until this one.
+ for line_to_copy in xrange(last_line_no, definition.start[0]):
+ output_lines.append(input_lines[line_to_copy])
+
+ # Add to the existing line we're building, by including the prefix of this line
+ # and skipping the lines and characters until the end of this duplicate definition.
+ last_line_no = definition.start[0]
+ current_line += input_lines[last_line_no][last_col_no:definition.start[1]]
+ last_line_no = definition.end[0]
+ last_col_no = definition.end[1]
+
+ new_line = current_line + input_lines[last_line_no][last_col_no:]
+ if not new_line.isspace():
+ output_lines.append(new_line)
+ current_line = ""
+ last_line_no += 1
+ last_col_no = 0
+
+ for line_to_copy in xrange(last_line_no, len(input_lines)):
+ output_lines.append(input_lines[line_to_copy])
+
+ if len(duplicates) > 0:
+ print "{0}: writing deduped copy...".format(xml_path)
+
+ # Write the lines to a temporary file.
+ dirname, basename = os.path.split(xml_path)
+ temp_name = ""
+ with tempfile.NamedTemporaryFile(prefix=basename, dir=dirname, delete=False) as temp:
+ temp_name = temp.name
+ for line in output_lines:
+ temp.write(line.encode('utf-8'))
+
+ # Now rename that file to the original so we have an atomic write that is consistent.
+ os.rename(temp.name, xml_path)
+
+def enumerate_files(res_path):
+ """Enumerates all files in the resource directory that are XML files and
+ within a values-* subdirectory. These types of files end up compiled
+ in the resources.arsc table of an APK.
+ """
+ values_directories = os.listdir(res_path)
+ values_directories = filter(lambda f: f.startswith('values'), values_directories)
+ values_directories = map(lambda f: os.path.join(res_path, f), values_directories)
+ all_files = []
+ for dir in values_directories:
+ files = os.listdir(dir)
+ files = filter(lambda f: f.endswith('.xml'), files)
+ files = map(lambda f: os.path.join(dir, f), files)
+ all_files += files
+ return all_files
+
+if __name__ == '__main__':
+ if len(sys.argv) < 2:
+ print >> sys.stderr, "please specify a path to a resource directory"
+ sys.exit(1)
+
+ res_path = os.path.abspath(sys.argv[1])
+ print "looking in {0} ...".format(res_path)
+
+ for f in enumerate_files(res_path):
+ print "checking {0} ...".format(f)
+ remove_duplicates(f)
+