diff options
author | Ram Peri <ramperi@google.com> | 2022-11-25 12:40:04 -0500 |
---|---|---|
committer | Cherrypicker Worker <android-build-cherrypicker-worker@google.com> | 2023-02-08 21:16:40 +0000 |
commit | 5ebba863cff595275735ffc2c2c597a6448ac7d5 (patch) | |
tree | be765d0807d592fc1db909acb6fdb20fb44b1654 | |
parent | 957709ee107f82407fa52c9763e01f09ddabf0e5 (diff) | |
download | layoutlib-5ebba863cff595275735ffc2c2c597a6448ac7d5.tar.gz |
Add empty string check for resource loading.
When a resource name is invalid or empty we should return null.
Bug: 260244331
Test: run_tests.sh for regression.
Change-Id: I70dfff9f2cc9a7a0119d99b17f5359c18f766068
(cherry picked from commit 82120bb6b8d9f496393a2795c02bc769aa327bcb)
Merged-In: I70dfff9f2cc9a7a0119d99b17f5359c18f766068
3 files changed, 11 insertions, 2 deletions
diff --git a/bridge/src/android/graphics/Typeface_Delegate.java b/bridge/src/android/graphics/Typeface_Delegate.java index 2d343a58ca..4568876d1d 100644 --- a/bridge/src/android/graphics/Typeface_Delegate.java +++ b/bridge/src/android/graphics/Typeface_Delegate.java @@ -61,6 +61,11 @@ public final class Typeface_Delegate { if (typeface != null) { return typeface; } + + if (path.isBlank()) { + return null; + } + String lowerCaseValue = path.toLowerCase(); if (lowerCaseValue.endsWith(AndroidConstants.DOT_XML)) { // create a block parser for the file @@ -113,4 +118,4 @@ public final class Typeface_Delegate { /*package*/ static Typeface create(Typeface family, int style, boolean isItalic) { return Typeface.create_Original(family, style, isItalic); } -}
\ No newline at end of file +} diff --git a/bridge/src/android/graphics/fonts/Font_Builder_Delegate.java b/bridge/src/android/graphics/fonts/Font_Builder_Delegate.java index 46d3dcf160..c21a4f1722 100644 --- a/bridge/src/android/graphics/fonts/Font_Builder_Delegate.java +++ b/bridge/src/android/graphics/fonts/Font_Builder_Delegate.java @@ -47,6 +47,10 @@ public class Font_Builder_Delegate { /*package*/ static ByteBuffer createBuffer(@NonNull AssetManager am, @NonNull String path, boolean isAsset, int cookie) throws IOException { + if (path.isBlank()) { + return null; + } + try (InputStream assetStream = isAsset ? am.open(path, AssetManager.ACCESS_BUFFER) : am.openNonAsset(cookie, path, AssetManager.ACCESS_BUFFER)) { diff --git a/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java b/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java index c6888d0998..87bed3d967 100644 --- a/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java +++ b/bridge/src/com/android/layoutlib/bridge/impl/ResourceHelper.java @@ -481,7 +481,7 @@ public final class ResourceHelper { */ public static Typeface getFont(String fontName, BridgeContext context, Theme theme, boolean isFramework) { - if (fontName == null) { + if (fontName == null || fontName.isBlank()) { return null; } |